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.
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.
I love reading this because it shows how different people are and how much room there is in the hobby for different interests. I am grateful for goto mounts specifically because finding the object is one of my least favorite parts of it. :D
HorizonXP - I think you should submit this as a story/link!
[1] https://www-eng.lbl.gov/~shuman/NEXT/CURRENT_DESIGN/TP/MATER...
But most people don't learn the big CADs first, they learn Fusion. The few times I've tried Fusion, it's given me a headache. It's probably a bigger headache going the other direction.
Then, there are those who do all their CAD work in OpenSCAD. They scare me.
Where it really falls down is when you need to somehow get data OUT of the model to feed to other shapes. I would love to be able to specify a chamfer or fillet along a contact edge of two other shapes, but unless you know the exact contact shape, location, and size a priori you will have a tough time getting anything to line up. If you want to use a mesh or model as a negative, every model's zero coordinate needs to be just right or it will just be entirely misaligned.
I've also tried to spend some time performance optimizing for render/output. It is not cooperative at all. It will just soak CPU time for a minute at a time for not even a complex shape! As pseudosudoer said, it really goes off the rails.
But for functional connectors, adapters, and replicating parts, it's great to be able to leverage my software skills in 3D modeling!
Yes, this is how the big cad programs work, they are 'constraint based'. You pick points and lines from other features (or other parts) and add whatever new geometry you want, and a solver fills in the rest. Features build off each other in this way. In OpenSCAD, you are the solver. But, the big programs have a ton of buttons, and scripting, while there, is usually hidden.
It's kind of like the difference between <insert image library> and Photoshop. Photoshop has a ton of useful tools inside, but if all you want to do is crop the bottom 30px from 2000 images, it's better to have a script do that. The scripts can technically do everything that Photoshop can do, but for other things it's easier just to click a few buttons and be done than reinvent the wheel from the ground up each time.
Have you started using a recent nightly build with the Manifold backend and not the "stable" (aka obsolete) release?
But I found it to be very difficult to design parts with specific dimensions that were needed to line up with objects in the real world.
In FreeCAD (/Solidworks/Onshape/solvespace/etc.) it's easy to just create a logical sketch of your part, fix the require dimensions, angles, symmetries, etc and it solves for the geometry.
Siemens Solid Edge also has a hobbyist version with very fair terms.
FreeCAD has gotten enormously better (in terms of both crashy and general usability) in the last couple years.
You can also ask it to build a study guide for you to help build foundational knowledge.
But as always, expect some hallucinations, so ask it to provide links/references.
Meta comment: damn it's good to see something worthwhile at #1 on HN this morning.
Free cad gets really complicated the moment you want to do surface modeling.
It's amazing how much can be done, but anything that I think will take an hour, lasts 6. Many times into the night.
That said, I recommend Autodesk Fusion free tier for anyone who just wants to get quality work done quickly. Some will refuse to use it on principle and that’s fine for them, but it really is quality software free for hobbyist use with trivial restrictions.
EDIT: Getting downvoted, presumably for suggesting a non-OSS software to get a job done. However I’d recommend anyone who just wants to get work done at least consider the options at their disposal. Not every software decision needs to be made on principle.
FreeCAD is just that far behind.
People sneer and tell me I’m going to get burned some day, but meanwhile I’ve been using it to great effect for many years for hobby projects that I can share around and edit easily.
Do you have a source for this? Or are you speculating?
> but it's out of principle
Great that it works for you. I have limited time for hobbies and I can’t justify making choices based on principle to avoid hypotheticals that even you admit aren’t going to happen.
> but don't complain other people should do the same because you can.
I’m not complaining. Anyone who wants to use a certain software based on principle is free to do so.
I’m sharing recommendations from my own experience and that of my peers. If the goal is to focus on the project you’re trying to do instead of fighting with software then people should be aware of their options.
I don't see that in Autodesk's terms, which (per quick search - not exhaustive) seem to apply to "Fusion for Personal Use":
https://www.autodesk.com/company/terms-of-use/en/general-ter...
The only license I can find it compels is "If You provide Autodesk with ideas for improvement, suggestions, or other feedback".
(Not a lawyer, not your lawyer, not legal advice etc. etc.)
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.
Since that capability is present, it's probably worth your while to apply it. Good motion control is hard, but important. Unnecessary vibration due to phase noise in the pulse train is an example of the subtleties that matter at high frequency. Excessive force generated when moving large masses can prematurely wear drive components and, over time, backlash increases and you get precision and repeatability problems. Well managed motion control will mitigate these things.
5 bit shift register, I believe you mean. Have a look at this. 16 instructions. Completely untested. I qualified my comment about RP2350 as "I believe," because I haven't actually done this: only investigated it via ChatGPT and Gemini. But it appears sound. Precision bit banging. PIO is pretty cool.
; PIO program for high-precision stepper profiles with a two-word data format.
; RP2350 clock is 150 MHz
; Word 1: [32-bit Low-Time Delay]. A value of 0 is the sentinel to stop.
; Word 2: [32-bit Repetition Count] (N-1).
.program stepper_pwm
.define HIGH_PULSE_CYCLES 2998 ; 20us @ 150MHz. Total delay is (CONSTANT + 2) cycles. 3000 - 2 = 2998.
.side_set 1 opt
entry_point:
pull block ; Pull Word 1 (Low-Time Delay) from DMA.
mov x, osr ; Copy to X for sent sentinel test
jmp !x, process_step ; fall through to the stop_sequence when sentinel == 0
stop_sequence:
nop side 0 ; Force the output pin LOW.
irq set 5 ; Signal the core that the profile has finished.
halt_loop:
jmp halt_loop ; Halt state machine.
process_step:
mov y, x ; Y now holds the 32-bit Low-Time Delay.
mov isr, y ; Save LOW delay in ISR for use in every repetition.
pull block ; Pull Word 2 (Repetition Count) from DMA.
mov x, osr ; X now holds the 32-bit Repetition Count.
rep_loop:
; High pulse duration = (HIGH_PULSE_CYCLES + 2) clock cycles.
mov y, HIGH_PULSE_CYCLES side 1
high_loop:
jmp y-- high_loop side 1
; Low pulse duration between reps = (LOW_DELAY_FROM_ISR + 3) clock cycles.
mov y, isr side 0
low_loop:
jmp y-- low_loop side 0
jmp x-- rep_loop ; Decrement repetition counter and loop if not zero.
jmp entry_point ; Finished all reps for this step, get the next one.
With RMT, you either need a large table of individual level/duration symbols or involve the core to manage phase pulses.
It’s entirely feasible to do this with ESP32 using MCPWM, RMT, etc. Its been done and has worked well. But I value the dead-simple, hard-to-get-wrong invariants of ST's timers.
Getting a telescope mount calibrated that well is nigh on impossible. Calculating position by relative position of nearby stars is incredibly accurate.
Tbh this is the sort of thing why I would want to do this experiment, to determine what observations/measurements you actually need.
As you noted, to do plate solving successfully you need accurate and comprehensive star catalogue. But if you are starting from first principles then can you build such catalogue without precision aiming? Maybe you can, but it is all bit difficult to wrap your head around without concrete experimentation.
Of course historically afaik this sort of work was done with precision transit instruments. But that is interesting question, can we bypass that step if we use photography and some computation
https://astropolis.pl/topic/60163-wasp-10-b-w-pegazie-1270-m...
Frankly, distraction grating sounds like the perfect name for an amateur astronomy accessory.
I really need the distraction grating to be something that distracts me before I buy more astronomy gear.
Not to take away from Brahes exceptional ability at naked eye observations, but the key here is having some sort of instrument that enables precise measurements, be it telescope on a mount or huge mural quadrant.
For more "complicated" parts (e.g. lots of signals, high frequency, high power, etc.), integrating the part into a board design isn't necessarily straightforward. Rather than putting a ton of detail in the datasheet, the vendor will sometimes have an entirely separate document with design guidelines for the part.
some stuff may be somewhat glossed over, like usage of ground planes or which traces you're supposed to keep short, but when those are important they'll usually be mentioned, or even spelled out in a application note
https://www.youtube.com/watch?v=EEb_0dja8tE&t=746s
Hans Rosenburg explains some tricky concepts very clearly. The upshot is
a) 4 layer boards are much easier to get right
b) you really need an unbroken ground plane for return currents. This is often incompatible with having just two layers.
c) putting the ground plane much closer to the protected signals is a really good thing. Again, that means 4 layer boards.
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
I also heavily use Jupyter for analysis, and with this code I can take over the telescope and command it in a jupyter session, allowing me to do live data analysis.
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.
Sure. Skyfield is a python library to calculate that (among others). Right on the front page is an example how to calculate the azimuth and elevation of Mars: https://rhodesmill.org/skyfield/
For example, Stellarium on your phone can connect to the mount’s wifi station and control it.
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.
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.
Great design and writeup btw, it looks as good if not better than most of the commercial designs out there. You might enjoy Bruce Van Deventer's vids on youtube: https://www.youtube.com/@djcheckonetwo/videos (direct drive mount with 26 bit renishaw ring encoder might whet your appetite a bit)
You'd just need to write some glue code to take the ADSB streams from a given plane (could pick based on area or strongest signal or whatever) and convert that to alt/az from your reference frame to feed the motor controllers for tracking. Your mount would clearly be adequate for optical tracking so you'd want to add some smoothing and likely some kind of tracking corrections/trim but you'd be close right off the bat.
Maybe I missed it, but where in Europe are you? Are the temps part of your softness issue? I'm in Texas, and during the summer when it's prime time for central part of the Milky Way the seeing is horrible from the extreme high temps and the disturbance it causes in the air.
I've been looking at getting a dedicated astro camera as well to reduce that weight as well as free up the camera body to go back to its primary mission of time lapse. I've already gone down the rabbit hole deep enough to have a secondary scope and camera to use as a guide scope to overcome any of the slight mis-alignments during polar alignment. The hole is deep and easy to fall into. Be careful when looking down that hole wondering how far you'd be willing to go as you'll be deeper than you expected before you realize you've left the edge.
For long enough observation there is no such thing as correct polar alignment on earth, thanks to atmospheric lensing. The density of the atmosphere shifts stars up with increasing amounts depending on how low they are.
If your mount can accurately track in dec, then using a more complete pointing model-- the accommodates this lensing along with the major mount orthogonality errors-- generally eliminates the need for a guide camera.
I've got a Juwei-17 (Onstep harmonic drive with performance similar to the ZWO AM5N, but at nearly half the price) paired with the ZWO TC4 carbon fibre tripod.
The tripod has a load capacity of 50 kg (110 lbs) and weighs just 2.5 kg (5.5 lbs). The harmonic drive mount has a load capacity of 13 kg (29 lbs), or 18 kg (lbs) with a counterweight, and weighs 5.5 kg (12 lbs). Alltogether, the setup weighs about 8 kg (18 lbs) since I don't have to use counterweights.
One disadvantage compared to traditional mounts is that they absolutely need guidance, and with a pretty fast guide loop at that (like 0.5s). You can’t do long unguided exposures with a strain wave. But anyone who’s serious about astrophotography is guiding anyway so that’s not really a big deal.