You are browsing as a guest. Sign up (or log in) to start making projects!

Open Door Star Tracker

Hardware
  • 8 Devlogs
  • 18 Total hours

A complete all-in-one, budget friendly, highly customizable, easy to use, and precise barn-door star tracker, that is powered with a 28BYJ-48 stepper motor and wifi control through an ESP 32.

Open comments for this post

4h 39m 48s logged

DEVLOG 008
I worked on a large portion of the main program, which is nearing completion now. The main parts I worked on were the automatic slewing, automatic tracker reset, and live-updating speed adjustments. This means that when I press the track button, it starts at position zero, and it measures the number of millimeters it travels over time, and you can see it live-updating on the position number on the HTML webpage. This took me a while to code, as I initially used a blocking code, which used the delay() function to send individual number of steps to the motor, and then change the number afterwards, but it was not a very professional setup, so I made it much better by using globals like trackingState, or resetState, that allow me to simply turn them on and off, and use the in built microseconds timer, to make the motor take each step at the correct time, to get the correct speed. The slewing commands were also upgraded to use this general, fully non-blocking system throughout the entire code.

I also removed the night mode feature as it wouldn’t help block much of the light either way, so I will encourage users to use a filter on their main phone. I got the set zero position button to work easily, as well as the reset button. I also managed to use the preferences library on the ESP32 to permanently store any speed changes, so that if the speed is adjusted, you do not have to recode it or change the number manually again.

Overall, I truly believe I learned so much over this huge period of time, and I am much better at using this kind of ESP32 webpage setup, as well as C++, HTML, JavaScript, and CSS, much, much more.

This should be the second-to-last DEVLOG, as I really have only small amounts of things left to code, and for the next DEVLOG, I will just do a lot of final publication stuff and film the YouTube demo video. These coding things include:

  • Autonomous safety stop at max angle
  • A time estimate feature that tells me roughly how much time I have before I have to reset it.
    And a few more.
    There are a few things I wish to add in the future, like a dew heater and temperature monitor system, but those are large projects and will take a while to get working correctly, so I will likely make them at a later time. The Arduino code is up to 500 lines, with the HTML page being around 200 lines of it.
0
0
15
Open comments for this post

52m 22s logged

DEVLOG 007
I worked on the CAD model for the wedge design of the camera mount. I struggled to figure out how to use the stl file given by the original creator of the camera mount, but I still managed to my own planes in onshape and do some sketches and extrusions and craft out the 40 degree angle for my latitude. I also added in four small hooks that will embed themselves into the wood when tightened, eliminating any chances of it spinning around and breaking a camera. I will print this with many extra walls, maybe nearly 7 to 6 walls, and then add my screw in very tightly, as it will dig into the plastic quite deeply and strongly. Also, since the whole bottom post is attached to this wedge in one piece, it eliminates the need for any additional screws than before, and also gets rid of any motion in the bottom system, allowing the user to spin the top frame that has the tightening screw to any possible angle for safe adjustment of the camera angles. I also moved up the position to allow even more camera freedom, as well as balancing out the CG more, since the camera is the heaviest part of the whole tracker setup.

Next time, I will make this CAD model parametric, so it can adjust to any angle the user wants. I will also try to fully complete another huge section of the coding, sending the position feedback and constantly updating that and storing it, as well as the tracking speed permanent saves using the esp32 preferences library, to store it permanently. I also hope to finish up the code, specifically the HTML site, and by that I mean completely wrap up the details and comment through every part of the code, and eliminate any unnecessary parts to prepare it to be made public. I will assign full CSS to each HTML object and text, so that on all devices it looks seamless.

Finally then, to continue to wrap up this project, I will finish the GitHub page, write the assembly and code instructions, and then do some rigorous final accuracy and periodic error testing, really pushing it to the limit of what focal length and how long exposures it can get.

0
0
27
Open comments for this post

4h 5m 1s logged

DEVLOG 006
I worked on the code for the controller app. It is very complicated, and it took me some time to understand it and the way that the code functions. I specifically added the slewing and position functions, along with it updating the position right when the webpage is opened, so that if the tracker is running and you exit and come back to the page, it saves it. The slewing function also works, but I also changed the motion system to a much more raw format, which sends signals to each pin correctly, to control each step more accurately. This will allow me to use the adjust speed function on the fly, rather than trying to adjust the microseconds and then reuploading the code many times. I now have to change the slewing function to rotate exactly a certain number of steps, either for 5mm or 1mm, as well as some kind of progress bar, because it only spins at 3x the tracking rate, at roughly 15 rpm. Then, I have to add the position sending values to be able to accurately view the position, as well as a time calculator that sends a warning if it is running out of room, and also stops automatically in a safe zone. Finally, I still have to add the night mode function to change the colors and fix the general html css.

I also did a test run the night that I finished this slewing code, with my Olympus OMD EM10 camera, at roughly 24mm zoom, and using the program called Camera Control, made for Olympus cameras. I was able to fully remotely operate the entire rig with my laptop using the program and my phone for the tracker. I got around 30 minutes of 20-second exposures, with very good tracking and not much error at all. I likely could have gotten up to 30-second subs, but decided to just test it out. I sadly did forget to take dark or bias frames, so the final image has many hot pixels, and bad streaking, but the total image has many stars in it. I hope to also add a wedge that lifts the camera out of the angle, allowing me to aim it better to zenith, and towards the south, where sagitarrius and the milky way core is. After implementing all of these, final features, and completing the whole program, I hope to take the rig out to a nearby park, and get up to an hour of good exposure on the sagitarrius area of the milky way, without any of the house lights, and also take flat frames as well.

0
0
14
Open comments for this post

1h 44m 7s logged

DEVLOG 005
I worked on finishing up the mounting and printing of the electronics bay. I printed four versions, because each one, had incorrect hole spacing, and other similar issues. I finally got it perfected, so the stepper wire fits through its hole perfectly, the esp32 grips onto the mount, with the correct amount of grip to hold it in place, without many screws, and the usb wire connects to the esp32 easily.

I also cadded the electronics bay case, which has the open door star tracker printed on it, with silver sharpie to highlight it well.

0
0
26
Open comments for this post

2h 42m 2s logged

DEVLOG 004
I worked on finishing up the major new cad that I have to do like creating the electronics bay that houses the esp32, stepper driver, and extra stepper motor wire. I think I did quite well when I cadded it, as I am getting much better at CAD after practicing so much about it. I also mounted this box to the main assembly, added the stepper motor to the main assembly, as well as the main screw. I now have only a few things left to add to the main assembly including the camera ball head, the 5:1 gears, the door hinge wood pieces, and the electronics bay lid.

After that, I switched over to finishing up the software side of this project, and worked a lot on understanding deeply how I can use the esp32 to control this system wirelessly. I now know the different possible control methods include station mode, which I have previously used in another project, which requires internet connection, and also access point mode, in which the esp makes its own wifi network, and you can join it without the internet, because it sends data over its own wifi connection, rather than through the interconnected internet. I have chosen right now, to go with AP mode, as many people will use this remotely, but I definetly will make a system, where you can change between either mode, or possibly use both modes at once, so if you usually use the tracker at home, you can connect to it from anywhere in your house, but if you take it outside somewhere, it switches to AP mode, and acts as a solo wifi station.

I then worked on the frontend of the html mostly, making a neatly organized web control software with many buttons and labels. I included controls that I though were helpful, but if this becomes successful, than I am extremely open to any additional suggestions, as I might even add on a simple red led on the outside of the tracker, to use as a flashlight, to see the ground without ruining your night vision. This led could also be used as a quick indicator, which tells you if it is actively tracking, or if there is some error with the system, then it would start blinking rapidly. I can probably use the pwm pins to control this and allow easy dimming controls through the webpage. Another possible thing I can add is a dew heater with a thermistor to read the outside temperature, and camera temperature, and then automatically turn it on when it hits a certain temperature, or just manually control the temperature through a pwm loop.

I also added a small amount of the frontend’s backend; by that I mean the JavaScript portion, in which I added the ability to turn on and off tracking, and it switches the CSS of the button to say either ON in white letters or OFF in red letters, with a black background.

By then, the print for the electronics bay was finished, and I was elated to discover that the whole ESP32 and stepper driver setup didn’t even fit in it. I must have measured horribly wrong, as it is a whole roughly 4mm too small in one dimension. but I also tested the fit of the stepper wire through its slot, which fits well, as well as the fitment of the esp32 pins, which sadly do not fit very well as they are way too small to fit, so I will make them much bigger.

0
0
10
Open comments for this post

1h 28m 47s logged

DEVLOG 003
I worked on soldering the esp32 and the stepper motor driver together using a simple perfboard. It was my first time soldering a perfboard and it was incredibly difficult and frustrating! I eventually got better, and figured out that I did not have to use so much solder, and was able to control the flow better by removing excess solder with solder wick. I often used my multimeter to check continuity with each pin, and to check that no pins were accidentally over lapping at the solder, which many were, and I had to fix. I eventually resorted to using a small xacto knife to cut the very tiny bridges at the base of the point, where the soldering iron could not reach by itself, without messing up the surrounding solder. It was very frustrating, and I really wanted to quit around half way through when all of the solder got stuck in a big blob, as I thought it simply was not possible to make this kind of perfboard soldering with my setup, but I kept trying and it worked! The esp32 mounts to one side of the perfboard, and four of the pins in a row were aligned with the same pins on the driver, very simply, and then also very simply, the ground connection was perfboarded over similarly using a much more separated single line, and the 5v pin was not even on the perfboard, so i very simply used a small black wire to connect it to the perfboard, and then connected it with solder like usual.

For the official guide of this, I have chosen not to make a pcb for this, even though it would be incredibly easy to make, and would be way simpler to solder the esp32 and driver to, as many people who make this type of ultra budget tracker, likely wont even have a soldering iron, so in the official github repo, I will show the different methods that you can do this, either with some incredibly simple standard arduino dupont wires, or this simple, slightly more compact, perfboard version. In the future, if this becomes popular, I will definitely consider making a simple, modular PCB, and getting them in bulk and selling them for very cheap and shipping for very cheap, so that more people have access to it.

I then got the program to work, because it did not initially work, because the wires must have been flipped when I used the jumper wires, so since it is just some basic logic pins, I can very easily change the pins on the code, without any change to the performance.

I will now work on the box that will mount this setup to the bottom of the tracker, with some storage space for all of the extra stepper motor wires, along with easy accessibility to the other I/O pins for expandability, like adding a dew heater or small red LEDs for convenience

I will also work on completing the full cad model, as well as the advanced webpage controller system. Very fun session, and I am incredibly excited to design the webpage and finally get to make this project look better on the outside.

0
0
10
Open comments for this post

1h 48m 48s logged

DEVLOG 002 I worked on the full cad model, as this is a fully open source project, and I want to have all possible dimensions available in cad. I also worked in real life to mount the 3d printed eq wedge as well as the curved screw, stepper motor and things like that to the actual mount. I also roughly mounted the polar scope to it, but I hope to improve upon it in the future, by adding precise polar scope adjustment, as well as focuser locking, as the telescope I used does not lock in place. The curve that I roughly bent the screw too, is not incredibly accurate, as it rubs against the top board when moving, specifically when the boards are closer together, but for around 75 percent of the curve, it is accurate enough for the stepper motor to mesh the gears. I also did a very basic test program of running the stepper motor ar 5 rpm, which works well. I will be testing the accuracy of the general speed soon, and polishing up the rest of the features.

0
0
53
Open comments for this post

46m 20s logged

DEVLOG 001 I worked on making the initial accurate and precisely movable EQ wedge base, to allow for quick and simple polar aligment when using the polar scope as well. I also made an initial google sheet, and had to work around how to properly mount the base to the tripod using a central screw, and having two separate screws for the part that mounts to the wooden base of the tracker. In the next few sessions, I hope to size the screws correctly and 3d print this part out, and mount everything to the base of the current wooden frame. I also hope to buy the steel threaded rod, and bend it to the proper curve, and then mount and begin coding a simple ESP 32 control system.

0
0
13

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…