I am new here and signed up because my google searches frequently lead me here. I figured this community has the knowledge to help me with my project.
1. First, a quick background
Some time ago, back in 1994, my father and I bought a Meade LX200 EMC 8" (I believe it is commonly referred to as "LX200 classic" nowadays).
At some point, unfortunately, the electronics died and for many years I just used it manually and eventually not anymore at all.
Astrophotography was something I had wanted to pursue but without automated tracking this was now a tedious task.
A while ago, I started programming an Arduino to control my digital camera to take pictures of water droplets fallling on a water surface. I soon realized, that with an Arduino you can do about anything, so I thought, why not replace all the old electronics of the LX200 (except for the motors) by an Arduino.
2. The current status - Arduino controlled LX200
By the end of 2020, I managed to have an Arduino Mega 2560 control the RA-motor of the telescope in a controlled fashion using the original optical encoder. That is, the motor speed is closed-loop controlled to run at constant speed in order to track celestial objects.
Apart from that I am using a second Arduino Mega 2560 with a touchscreen module as replacement for the original keypad-controller. Together with the selfmade handcontroller, I am currently able to perform the following tasks:
- turn the scope in all four directions (N, S, E, W) at three different speeds by pushing the respective buttons on the touch screen (manual mode)
- turn on tracking and adjust the setpoint to match it to different celestial objects (automatic mode)
Doesn't sound like much but since I am not a programmer by training, I get excited every time I turn it on and it actually performs the very slow tracking motion.
Here are pictures of what the setup looks like:
Figure 1: During development and testing. Mounted were the power panel used to be is the Arduino Mega 2560 with the motor shield rev. 3 on top of it. The white board to the right is a rebuild of the original Schmitt-trigger circuit that converts the analog sine signal of the optical encoder to a digital square signal (1 or 0, ON or OFF, HIGH or LOW, ~0 Volts or ~5 Volts).
Figure 2: The touchscreen handcontroller in manual mode set to track speed. Pushing the arrow keys will turn the scope in the respective direction at that speed. "Output: 14" on the top shows the PWM value [0 ... 255] send to the motors at track speed. (I have yet to change the keynames to N, S, E, W)
Figure 3: With the original power panel back in place, the Arduino is safely tugged away but still accessible for programming via the blue usb cable. The Schmitt-trigger board hides were the main board used to be. Controlling the telescope with the Arduino handcontroller is made possible via the white network cable on the left. The telescope is now mounted on the equatorial wedge and ready for tracking.
3. What I am currently working on
The next step for me is to connect the telescope (i.e. the Arduino) to my Windows PC, so it can eventually be controlled by a planetarium software and possibly even by an autoguiding application like PHD through an ASCOM driver.
I can think of two options:
a) Implement a custom protocol on the Arduino and write the appropriate ASCOM driver
b) Use an existing Meade LX200 ASCOM driver and implement the protocol on the Arduino
Option b) seems more realistic to me given my programming skills especially after looking into writing an ASCOM driver for a telescope mount.
4. And here is where I need help:
I implemented a very small part of the LX200 serial protocol, documented in the LX200 manual, on an Arduino so that it answers to the commands ":GD#" and ":GR#" (without the "") by sending declination and right accension, repectively. Stellarium accepts this and shows a mark at the coordinates currently hard coded in the Arduino when I use the build-in LX200 driver!
However, when I choose an LX200 classic ASCOM driver, which I downloaded from the ASCOM-website, the driver does not connect to the Arduino although COM-port settings are correct and according to the LX200 protocol.
- Does anyone know, what the real LX200 classic sends out via the serial port upon startup to identify itself as an LX200?
- Is there any documentation about what the ASCOM drivers for the LX200 classic specifically expect?
I appreciate any comments, ideas and of course help from people who have tried something similar with an LX200. I am also happy to share any knowlegde and the progress of my project if that is desired here.
Best regards and good seeing,
P.S.:If someone happens to be able to post a sound recording of their LX200 classic in tracking mode up-close, that would help me judge if I got the PWM frequency correct.
Edited by mattjowil, 18 January 2021 - 05:45 AM.