-
-
Notifications
You must be signed in to change notification settings - Fork 92
Open
Description
Hii,
We’re using FastAccelStepper in a high-duty 2 axis delta robot (80–100 PPM, short segments ~10–20 ms, upto ~96k steps/s peak each for 2 motors ) and would appreciate your guidance on execution determinism and architecture.
We are currently evaluating two setups:
- ESP32-S3
- Backend: MCPWM / RMT
- Hardware-timed step pulses
- Segment transitions and FIFO refill handled by CPU/RTOS
- Communication via Ethernet (UDP), with individual packets transferred in <0.5 ms
- RP2040 / RP2350 (Pico / Pico 2)
- Backend: PIO (currently used as pulse generator)
- Segment transitions and FIFO refill still CPU-driven
- Communication via USB CDC, with packet transfer ~1–1.5 ms
Key questions:
- From FastAccelStepper’s architecture, is PIO inherently more deterministic than MCPWM, or are they effectively equivalent when pulse timing is hardware-generated?
- In the current FastAccelStepper design, are segment boundary transitions CPU-governed on both ESP32 and Pico?
- Does using PIO without a DMA-driven execution model provide a meaningful determinism advantage over MCPWM?
- If higher determinism is desired, would achieving a real advantage on Pico require a custom DMA→PIO execution pipeline beyond FastAccelStepper’s current scheduling model?
- For short-segment, high-jerk motion, which platform would you personally consider the safer or more deterministic choice when using FastAccelStepper as-is?
- Regarding the PIO backend (currently used as a pulse generator): How can we architect the system to make it truly independent of the CPU? Specifically, we want to understand if it is possible to use PIO to:
- Decide when a segment ends autonomously.
- Transition velocity profiles without CPU intervention.
- React to encoder mismatches in real-time.
- Continue motion deterministically even if the CPU stalls.
We are not comparing raw step rates, but rather execution ownership and determinism at segment boundaries and direction changes at high accel/decel. Your perspective as the library author would help us ground this decision in how FastAccelStepper actually behaves across platforms.
Thanks in advance!
Metadata
Metadata
Assignees
Labels
No labels