Hello everyone! This weekend I took pisolaris out to my friends summer home in the middle of nowhere for a field test. It had internet, clear super dark no-moon skies, lots and lots of stars. The perfect environment for our first voyage!
Yeah, pisolaris dwarfs in comparison to my friends nebula-seeing 12" dobsonian telescope. But at least I had the ability to track stars automatically :)
My project performed admirably and it was a really fun experiment, but I had many takeaways. Let's break down each major component with a detailed explanation of what worked and what could be improved.
This was the first time everything was in a more-or-less polished and finished state. So having the motor cables covered with a cable wrap and plugged into my custom raspberry-pi zero hat mounted seamlessly into the base... It looked great and there was no fuss with the electronics. This is definitely a win!
All you need to do is plug it in to a power bank of some kind and pisolaris will automatically connect to the internet. Which brings us to the very first snag of this field test... Internet connectivity!
Using AWS IoT is all great and well. In fact necessary for most of the things I plan to do with pisolaris as part of phase-2. Unfortunately, relying on internet connectivity to simply use the telescope is a huge disadvantage. Technically the firmware should not require internet connectivity, but then actually sending commands to the telescope will become very cumbersome without some kind of interface device.
A few ways to solve this:
- Have a bluetooth mode
- Make pisolaris a wifi hotspot that you can connect a laptop to
- Still rely on network connectivity but instead of requiring internet, just use a local protocol or web interface if there is no external access.
I am honestly leaning towards bluetooth right now. I think controlling it through a tablet or any kind of portable computer would be a great boon for anybody as it provides a large amount of flexibility. But what exactly that looks like is still up for debate.
The day before my field test, I found the "sweet spot" of necessary offsets in order to correctly calculate the amount of steps needed for any given angle. In the field, this totally seemed to work. I was able to issue angles and pisolaris would very consistently navigate to them. My only question is - were the angles actually correct? Eyeballing it, they seemed to be more-or-less accurate. But I am going to work on developing a more scientific method for measuring the rotational position. This will greatly assist in debugging any star-finding problems and help verify the authenticity of the final position.
There was a minor problem on that first day of testing which I quickly fixed. If my horizontal position was 0 degrees and I told it to go to 359 degrees, pisolaris would make a near-complete circle to arrive at that destination angle instead of simply going backwards by 1 degree. With that fixed, the movement was exactly as I expected and quite consistent. Yay!
I have not discussed this mechanism much, so let me describe how it works. With the telescope setup to accept angles and translate those into motor steps, theoretically you need only figure out which angles a given celestial body is currently at, then issue that positioning information to the telescope.
To achieve this end, I wrote a little utility where I can query a database of stars and use some math + pre-recorded gps positioning to calculate instantaneous "altitude" and "azimuth" positions which, in theory, correspond to angles along both of my telescopes axis.
In all cases, it was generally off by a few degrees when I told it to navigate to a specific star. I was absolutely thrilled that it was only a few degrees, because that means it's got to be doing something right! But that's not quite good enough, so I will need to investigate this further. There are many possible sources of error: motors slipping at certain angles, the math being wrong, my gps coordinates being wrong, the time being wrong.
Moving forward, I will first develop the ability to know exactly what angle the motors are at using some external resource (perhaps it can be as simple as printing a circular disk with all major angles on it and affixing it to the hub on the side of the telescope). Once i have this information, it will be much easier to debug the possible error sources and tighten up tolerances.
All in all, this was a great experiment! I've learned a lot of things and now have some concrete direction for next steps. I'm going to work on the changes mentioned above and continue iterating on the design. I'll be sure to keep y'all posted with my progress.