FastLED 3.10.6
Loading...
Searching...
No Matches

◆ resolveCaptureBackend()

RxBackend fl::validation::resolveCaptureBackend ( RxBackend requested_backend,
bool has_explicit_override,
bool is_parlio_driver,
bool is_esp32_c6 )
inline

Select the independent capture backend used by AutoResearch.

ESP32-C6 RMT RX does not preserve PARLIO's sub-microsecond low phases even though the same pad's GPIO input sees them. An explicit caller override remains authoritative for diagnostics.

The GPIO ISR timestamp backend was used here originally (#3880) but cannot work: its measured capture ceiling is ~2 us between edges (min=2000 ns, under1us=0 across 1137 intervals of a 100-LED frame) while WS2812 needs ~300 ns resolution. PARLIO RX oversamples the pin into DMA at 16 MHz (62.5 ns) with no per-edge interrupt, which is the only path on C6 fast enough (FastLED#3586).

Definition at line 50 of file validation.h.

53 {
54 if (!has_explicit_override && is_parlio_driver && is_esp32_c6) {
56 }
57 return requested_backend;
58}
@ PARLIO_RX
PARLIO 1-bit oversampling backend (ESP32-C6 et al) — DMA sampling at 16 MHz with no per-edge interrup...
Definition types.h:16

References fl::FL_NO_EXCEPT, and fl::PARLIO_RX.