Hi there,
So I’m seeing the RMT isn’t fully supported on the C6 it has different timing, Again S3 is your man on this … LEDc is all that supported now , with PWM on the C6 .try switching BSP’s but I 'm skeptical . the first one may be the only one that works , something about a Macro compatibility
The AI has it this way, Unfortunately…
The user’s example sketch compiles and runs, and the stepper does move… but with weird behavior:
- Starts slowly
- Chatters
- Pauses mid-move
- Ramps again
This matches known issues when FastAccelStepper is not correctly configured for:
- The C6’s timing architecture
- Driver backend not being set explicitly
- Missing RMT support
Root Problems
1. ESP32-C6 is not fully supported by FastAccelStepper
- As of now, the
FastAccelStepper
library doesn’t have official support for ESP32-C6. - The library has backends like
DRIVER_RMT
andDRIVER_TMC2209_UART
, butDRIVER_RMT
depends on ESP32’s RMT peripheral — not yet ported or tested on the C6 in this library.
2. The macro DRIVER_RMT
is undefined
- That’s why this fails:
stepperMain = engine.stepperConnectToPin(stepPinStepper, DRIVER_RMT);
- It fails because on ESP32-C6, the
fas_arch
layer doesn’t defineDRIVER_RMT
, nor does it map to the correct timing system (ledc
,mcpwm
, orrmt
).
3. The default fallback step timing engine may glitch
- When no specific driver is selected, the engine might default to a bit-banged or partially timed loop, which behaves erratically under load or without tight control of FreeRTOS tasks.
Recommendations
Quick Fix: Try Slower, Simpler Step Timing
Until the C6 is fully supported by FastAccelStepper
, consider:
- Lower
setSpeedInHz()
to 100–200 Hz - Use a
delay()
between moves - Try
stepper->runForward();
for continuous movement and test stability
Use LEDC Instead of RMT
The ESP32C6 has LEDC PWM but limited RMT channels, and RMT driver usage differs from ESP32/S3. Consider:
- Switching to LEDC-based PWM using a manual stepper library like
AccelStepper
(with LEDC under the hood)
Migrate to the ESP32-S3
If he needs:
- RMT support
- Known working FastAccelStepper
- Full peripheral support
Then the ESP32-S3 is a better choice. The FastAccelStepper community has confirmed working setups on ESP32 and S3, not C6 (yet).
HTH
GL PJ
Mailman can’t get there fast enough