← Back to context

Comment by dekhn

5 days ago

I think the ESP32 also has an RMT, did you also exclude that as an option?

Good question, and yes, I did. RMT can work, but ACT has a key advantage. Motion curves are naturally segmented into phases. With ACT, the Repeat Count Register (RCR) defines how many cycles to hold a given frequency and duty, so each phase is exactly 64 bits: PSC, ARR, CCR, and RCR. A full curve reduces to a compact precomputed table that can be hardcoded, generated once, or streamed with negligible core load for continuous motion.

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.