Custom telescope mount using harmonic drives and ESP32

svendewaerhert.com

301 points by waerhert 2 days ago


HorizonXP - 2 days ago

Amazing project and write up, very good timing too! I’ve been into amateur astronomy since I was 13, owning a few telescopes and spending many hours with family at star parties.

This week I pulled out our big Meade 10” SCT and our small Meade 4” Newtonian to show my 7yo son the moon and Saturn from my parents Bortle 8 backyard. It was wonderful seeing his awe and surprise, and the fact that my parents were there to see it too.

That 10” SCT is on an old fork mount which is motorized but has no GOTO capabilities at all. I’ve also gone down the rabbit hole of researching mount options, thinking I could just buy my way out of it. However, as much as I like the idea of GOTO, a big part of the fun is finding the objects. So I’ve never been able to pull the trigger. I did buy a ZWO 585MC though, I’ve always wanted a dedicated cooled camera.

That said, we have lost way too many hours to trying to find objects. The Telrad isn’t always enough!

I’ve been looking into using my 3D printer and electronics know-how to build my way out of this. I was even thinking of swapping the motors for NEMA 17 steppers.

Then I stumbled upon PiFinder, and I think this project is going to be the exact balance of automation and Push-to guidance that I would like.

https://www.pifinder.io/

It’s a wonderful hobby and I think the latest in 3D printing and PCB manufacturing does mean we’re going to be able to solve a lot of these problems soon.

Neywiny - 18 hours ago

So a note on the capacitor bank. Basically the power cable from the USB-C supply acts as an inductor. Meaning, it has an LC (C from its capacities) filter which acts as a low-pass. The capacitors on-board basically are here to counteract that. If you think about it, let's say the motors do start taking a high amount of current. Where would it come from? In an instant, an inductor can't change how much current goes through it, so it'll basically look like an open. That's where the capacitors come in. They'll provide the current while the inductor is responding. Eventually the inductor will allow current flow out of the supply's capacitors.

sfeng - 2 days ago

One tiny nit on this amazing project / write up. He mentions that the traces have to be extra wide to support 24V. In truth though, the higher voltage means lower current, which means if anything the traces can be less wide. The size of the traces is determined by the current they carry, the voltage determines how much space must be between the traces (but it’s unlikely to be an issue at these voltages).

fusslo - 2 days ago

I've been using freeCAD for about 3 years now. Looking at what he was able to make with it blows my mind. I love freeCAD, but I don't think I've ever been so continuously frustrated by a piece of software

topspin - a day ago

From the blog: "Not surprising once you understand that slewing to a target significantly increases the number of pulses per second sent to the motors, and everything became just too much to handle for our little ESP32."

A hobby application of mine involves driving multiple steppers at high-ish frequencies, following sigmoid curves precisely and no tolerance for glitches, because the mass and the cost of the device(s) is too great to risk any failure in pulse output, and there is no feedback, so I must not suffer "missed" steps, glitches, etc. The big hammer that solves this is obviating the MCU core (ARM or otherwise,) in motion control and using timer peripherals with DMA.

Ultimately, I ended up turning to STM32G4 MCUs because of the ACT (advanced control timer) peripheral. These timers can generate arbitrary waveforms using DMA in a relatively simple manner: the ARM core and its code/RTOS/whatever can suffer whatever overload, priority inversion, sleep mode, etc. happens to emerge, and the timers are unaffected.

Today I would consider using RP2350 and the PIO peripheral, which is also capable of achieving this, I believe.

ESP32 has its MCPWM peripheral, but I determined that with MCPWM you can't do the sort of arbitrary acceleration/deceleration profiles I needed in a 100% "core-free" manner without either a.) cascading timers or b.) using interrupts. The former is, comparatively speaking, complex[1], and the later gets you back into the MCU core, and possible glitches[2]. With the ST ACT peripheral, the problem is self contained to one timer per motor: simple and straightforward. At least one of their MCUs has three of those timers (G474, in larger packages, for example.)

The other way to go is specialized motor driver ICs. Analog Devices, by way of their Trimanic line of devices and low cost breakout boards, has great products there, widely used with 3D printers, CNC and similar. The driver software is much more complex than my simple ACT peripheral solution, however.

[1] I know it's possible and others have done it. The ST peripheral is far easier to get working and get right, if you can deal with CMSIS and the ST reference manual.

[2] I know about interrupt priorities. I also know about code evolution, bugs and other ways that dealing in interrupt priorities can get fragile.

zokier - 2 days ago

One thing that I'd be interested in is having telescope mount suitable for doing quantitative measurements, basically doing astrometry from first principles. To me solving the orbits of planets (etc) based solely on my own measurements sounds very compelling. It would be like retracing the steps Kepler etc did.

stavros - 2 days ago

This is great! I never understood how people learn how to make solid PCBs, I've made a few things but I think I must be missing some decoupling capacitors or resistors or whatever, because my microcontrollers aren't very stable. How do you all just know what stuff to put on the PCB? Do you read the datasheet for the component and add whatever is there?

mrgaro - 2 days ago

I'm most impressed with being able to order the CNC'ed metal parts. I'm just a novice cad designer and I'd love to learn that capability.

ddahlen - 2 days ago

This is really impressive! I considered buying a big harmonic drive mount for my scope, but the cost is really prohibitive.

I have experienced the pain of getting ekos/kstars/indi tools to work well on my personal scope. If you want to try driving indi devices via python I have some python code (it's not super polished, but it does enough for my needs): https://github.com/dahlend/contindi

_Microft - a day ago

Great project!

The cost of the PCBs must be driven by assembly, right? The board itself should qualify for JLCPCB's budget offer at least: 2 layers (judging by the KiCAD-screenshot), < 100mm, HASL, nothing special about solder mask or board thickness either from the look of it. I'm not not sure about the plated slots of the USB connector, though? Do these cost extra?

How many did you get assembled per version? Just two of the boards or all five of them? Did you try to stick to using the standard parts or extended library? Which difference would it have made to do some work on the PCBs yourself, e.g. by soldering the through-hole connectors by hand?

Either way, it is definitely an amazing project!

Edit: as soon as any part is from the extended library, all different components (even standard ones) incur a cost for loading them into the pick and place machine, right? So minimizing number of different components is the only way of keeping the cost down, I guess.

artgship - 2 days ago

I love this so much. Is there any open-source software that calculates where a given planet or star might be (based on your coordinates) and automatically finds the star / planet and then follows it? Can these mounts be used with such software if it exists?

bhouston - 2 days ago

You could sell kits for this btw. There would be demand. And I think you could be quite successful.

The reason is that Trump is tariffing the hell out of the main Chinese telescope accessories manufacturer, ZWO. So if you can provide a non-Chinese alternative....

Think of trying to be Prusa 3D solution in the astrophotography area.

rightbyte - a day ago

Nice. Harmonic drives are my 'favourite' machine element. The lash is silly and watching the carrier(?) deform is hypnotic.

Aaargh20318 - 2 days ago

Cool project. Strain wave mounts are fantastic. Just ordered a wave 150i myself. Can’t wait to not having to waste time balancing my scope anymore.

davidhyde - 2 days ago

Loved the write up, well done to the author. I get the same feeling building stuff with freecad and then printing it. Feels like there is no limit to what can be done. After going through the growing pains of designing stuff that was just poor and difficult to print I’m now confident enough to send it to be printed by jlcpcb or pcbway. And when they tell me to accept the risk of a failed print then I think, “I feel your pain, good luck”. So far I have never gotten a failed print back. Maybe a little warped but way better than my attempts. If I never have to use my large resin printer ever again I will be happy.

On the pcb front, I dread going through those final steps in the pcb ordering process. No matter how many parts I preorder, there is always something that is unavailable. So much churn in component availability.

dylan604 - 2 days ago

After using standard EQ-mounts for so long, seeing something without a counter weight just looks wrong to my neanderthal brain. My current mount weighs 40lbs, the counter weight is 17lbs, and the tripod legs are 20lbs. So that's over 75lbs of weight and size of gear to move around every time it goes on a road trip. This design looks like it was a fraction of that. Color me intrigued

ryanong - 2 days ago

This post reminds me of the beauty of open source. Well done build and a great project summary!

donkeybeer - 2 days ago

So is the accuracy and stability he achieved better or worse than the commercial mount?

contingencies - a day ago

I would encourage the author to share the kicad board and freecad parts on github.