CRSFDude

Custom CRSF module for ESP32-C3 — half-duplex telemetry in a JR bay

View the Project on GitHub rngtng/CRSFDude

CRSFDude — Session Retro

What slowed us down

Trial-and-error on half-duplex pin switching

~15 iterations of GPIO matrix / uart_set_line_inverse / open-drain combos. Each required flash + test + radio restart. Should have searched the internet earlier for existing implementations (mLRS, ESP32 forums). Had to be nudged twice to do web searches.

Lesson: Search for working reference implementations before trying to figure out low-level hardware behavior from scratch.

Misdiagnosing the radio freeze

Many iterations assuming it was a pin release problem. It was actually a protocol problem (missing Device Ping handshake). Only found it after cloning EdgeTX and reading the source.

Lesson: When behavior is “works once then stops forever”, think protocol state machine, not just hardware.

Not reading the CRSF spec first

The inverted signal is documented. The half-duplex timing is documented. Could have skipped the auto-detect detour by reading the spec up front.

How to go faster next time

What went well