Table of Contents
As an Amazon Associate, I earn from qualifying purchases. Links will be marked as an Amazon Affiliate link.
After you’re done reading this, here is Part 2
It’s been a while since I’ve posted about the remote focus project. It’s been coming along nicely with some hiccups here and there, but it works. Before I get to the current state of the project though, lets take a few steps back. Feel free to check out the original post (found here) or continue reading.
Starting the Development
I began this project because there were no existing solutions for the Celestron NexStar 4SE (Amazon Affiliate link) to focus electronically. Using various parts from the Elegoo Uno R3 kit I decided to make a DIY solution to this problem! The main components included the controller board, a smaller breadboard, and a DHT11 temperature/humidity sensor. Getting it to log data to the Arduino IDE console was a quick success. Awesome!
Next, I started working with the ESP8266 module, another Arduino-based microcontroller similar to the Uno R3, but with limited I/O due to its size. Without proper connectors, I directly connected a cable to the module instead of using the premade wires from the Uno R3 kit.
In my search for components, I discovered a 0.96″ OLED LCD screen. Connecting it to the Arduino was straightforward with just four wires using the I2C protocol protocol. This screen displayed the activity of the focus motor (direction and speed), as well as humidity and temperature. With additional coding, it also showed the dew point and heat index. The top yellow pixels cycled through the IP address, project name, and my website address, adding a touch of professionalism.
Getting the Remote Focuser Online
Due to the ESP8266 being it’s own microcontroller, I had to figure out how to get the two to communicate. Fortunately, they both have serial data connections. I was able to get the Uno R3 to send humidity and temperature data to the ESP8266, which then displayed the info on a local web server the 8266 hosted.
The unfortunate side of both controllers having serial data connections was that to program one or the other I had to disconnect them from each other. I could have assigned two of the other pins on the Uno R3 to be TX/RX for the ESP8266, but I wanted to leave as much I/O open as I could. For a while, I would just unplug them as needed, which was also a hassle because programming the ESP8266 required shorting two of its pins to put it into programming mode.
Ditching the breadboard
I reached a point where the temporary breadboard proved to be unreliable. Wires would come loose, and on a few occasions I would hook up the wires wrong and burn out a part. I replaced the breadboard with the prototype expansion board, or “shield”, that came in the Uno R3 kit. It plugs directly into the pins on the Uno R3. The expansion board has a multitude of through-hole solder points for better connectivity. It also included power 3.3v and 5v power rails along with ground points.
I purchased a JST and Dupont connector kit with a crimping tool for both. This made it easier and more secure to connect the DHT11 sensor, ESP8266 module, the OLED LCD screen, the stepper motor driver, and the switches for programming the modules. The Uno R3 kit also came with 5 small push buttons, one of which I used to reset the ESP8266 as needed. It comes in handy occasionally when first booting it up, as the wifi module will sometimes get its connection before the Uno R3 is ready, which interferes with the serial connection between the two. That is probably something I could handle by tweaking the software though.
Final Testing and Part 2 Teaser
Testing was extensive before integrating the stepper motor, which I’ll cover in detail in the second post. I went through multiple wiring setups, eventually settling on shorter cables for better management. The final setup has the DHT11 sensor connected via a JST connector, the OLED screen with a short cable, and the wifi module with a much shorter cable. The stepper motor controller, however, required longer cables due to its positioning.
I feel that the project is pushing the Uno R3 and ESP8266 to their limits, occasional delays occur, sometimes taking a few seconds for commands to execute. Early in development, responsiveness was a significant issue, often taking minutes to respond. I’ll dive deeper into those challenges and solutions, along with the development of the mount for the motor in part 2, coming in a few days.
Make sure you check out my youtube channel. I stream there live as often as the weather allows. Stay tuned for more updates, and until then, clear skies to all!