Earlier quoted context omitted.
OpenSCAD is great for functional parts, built of basic components. It can start to be good for moderate complexity components with the BOSL library (I use BOSL2) including chamfers/fillets where needed. And the parametric/customization aspect is second to none - IF it's built with that in mind. 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…
> I've also tried to spend some time performance optimizing for render/output. It is not cooperative at all. Have you started using a recent nightly build with the Manifold backend and not the "stable" (aka obsolete ) release?
Custom telescope mount using harmonic drives and ESP32
111–118 of 118 posts
Re: Custom telescope mount using harmonic drives and ESP32
#112From 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…
When I was doing stepper control on rp2040 I looked into using PIO but the 5 bit counters and 32 instruction limit made it too awkward to use. What worked better for my needs was dedicating 2nd core for just motion control and bit-banging the step/dir signals- simple to implement and good enough for the modest needs I had (just trapezoidal velocity profile for single axis motion).
Re: Custom telescope mount using harmonic drives and ESP32
#113From 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…
When I was doing stepper control on rp2040 I looked into using PIO but the 5 bit counters and 32 instruction limit made it too awkward to use. What worked better for my needs was dedicating 2nd core for just motion control and bit-banging the step/dir signals- simple to implement and good enough for the modest needs I had (just trapezoidal velocity profile for single axis motion).
Re: Custom telescope mount using harmonic drives and ESP32
#114From 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…
When I was doing stepper control on rp2040 I looked into using PIO but the 5 bit counters and 32 instruction limit made it too awkward to use. What worked better for my needs was dedicating 2nd core for just motion control and bit-banging the step/dir signals- simple to implement and good enough for the modest needs I had (just trapezoidal velocity profile for single axis motion).
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.Re: Custom telescope mount using harmonic drives and ESP32
#115Amazing 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 s…
>However, as much as I like the idea of GOTO, a big part of the fun is finding the objects. 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
Re: Custom telescope mount using harmonic drives and ESP32
#116Amazing 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 s…
HorizonXP - I think you should submit this as a story/link!
Re: Custom telescope mount using harmonic drives and ESP32
#117Earlier quoted context omitted.
> I've also tried to spend some time performance optimizing for render/output. It is not cooperative at all. Have you started using a recent nightly build with the Manifold backend and not the "stable" (aka obsolete ) release?
I have not! I will give that a shot, and hope that it will maintain compatibility with BOSL2 (also beta).
Re: Custom telescope mount using harmonic drives and ESP32
#118Earlier quoted context omitted.
OpenSCAD is genuinely great for the right kind of user. If you’re familiar with CSS and have experience with animations in the past, you already possess the skills to be productive with OpenSCAD. In my opinion, the most challenging aspect is getting accustomed to the disconnect between visualizing something and manipulating it, as it’s done through code.
I used OpenSCAD a long time ago because it felt very natural having spent a lot of time with POVray as a teen. 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 f…