XIAO ESP32C2 ~5 ms pause/freeze every 2 seconds

Hi there,

Yea , so I should clarify… buzers etc. sure… the C6 supports the RMT peripheral (it’s just slightly different from S3/ESP32 classic). If configured correctly in the SDK or ESP-IDF layer, it’s usable for waveform generation (buzzers, IR, step pulses, etc).

also further clarification.
The FastAccelStepper library currently has limited or no full support for the ESP32-C6 Arduino platform out of the box.

  • The DRIVER_RMT not being defined is a sign the library wasn’t compiled with proper C6 support macros or files.
  • If the C6 is not explicitly supported in fas_arch, you’ll run into missing defines or incompatible peripheral mappings.

But out of the box, without adjustments or a solid understanding of C6 architecture, the S3 is a more straightforward choice because:

  • It’s better supported by libraries like FastAccelStepper.
  • Dual-core design avoids many Arduino-loop blocking issues.
  • More robust peripheral support (e.g., LEDC, MCPWM, RMT).

You can create a FreeRTOS task to handle stepping*:

  • Absolutely — moving stepper timing logic into a FreeRTOS task (with xTaskCreatePinnedToCore()) avoids interference from the loop() task or BLE/WiFi handlers.

The issue isn’t with the hardware, but rather how the Arduino layer handles loop execution and task scheduling. LOL, it doesn’t :grin:

anyway, may try the first BSP too…the C6 isn’t getting the full effort from espressif IMO.

HTH
GL :slight_smile: PJ :v:

1 Like