XIAO ESP32C2 ~5 ms pause/freeze every 2 seconds

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:

  1. The C6’s timing architecture
  2. Driver backend not being set explicitly
  3. Missing RMT support

:rotating_light: 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 and DRIVER_TMC2209_UART, but DRIVER_RMT depends on ESP32’s RMT peripheralnot 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 define DRIVER_RMT, nor does it map to the correct timing system (ledc, mcpwm, or rmt).

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.

:hammer_and_wrench: Recommendations

:white_check_mark: 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

:white_check_mark: 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)

:white_check_mark: 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 :slight_smile: PJ :v:

Mailman can’t get there fast enough :grin: