Skip to content

Issue with DShotRMT on ESP32-C6 (RISC-V) - Bidirectional Mode not arming #50

Description

@joseluisoterino

Hi Wastl,

First of all, thank you for your work on the DShotRMT library.

I am writing to you regarding an issue I’m facing with the Seeed Studio XIAO ESP32-C6.

Just to be transparent: I am not an expert C++ programmer; I am a hobbyist using an AI assistant to help me understand the code and debug this project. We have hit a wall and I was hoping you might have some insight.

My Setup:

MCU: Seeed Studio XIAO ESP32-C6 (RISC-V).

ESC: FLYCOLOR Francy 2 Bluejay firmware (DShot300/150).

Connection: Pin D1 to ESC Signal.

The Problem: Using the standard library configuration (Bidirectional / Open Drain), the ESC refuses to arm. It seems it doesn't recognize the signal properly.

What we have tested so far:

PWM Mode: Works perfectly. Hardware is fine.

Unidirectional (Push-Pull): If we modify your library to force GPIO_MODE_OUTPUT (Push-Pull) and disable the RX logic, the ESC arms and works perfectly. This suggests the DShot timing is correct.

Bidirectional (Open Drain): We reverted to the standard Open Drain mode and added external Pull-Up resistors (tried 4.7kΩ and stronger 2.2kΩ to 3.3V), but the ESC still refuses to arm.

Conclusion: It seems the ESP32-C6 RMT driver struggles with the Open Drain configuration or the switching between TX and RX specifically on this RISC-V chip. Since Push-Pull works, the signal generation logic seems fine, but the electrical level or the idle state in Open Drain fails.

Do you have any experience with the ESP32-C6? Is there any specific RMT flag or configuration we might be missing for this specific chip architecture?

Any help or suggestion would be greatly appreciated.

Best regards,

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions