FastLED 3.9.15
Loading...
Searching...
No Matches

◆ begin()

virtual bool fl::RxDevice::begin ( const RxConfig & config)
pure virtual

Initialize (or re-arm) RX channel with configuration.

Parameters
configRX configuration (signal ranges, edge detection, skip count)
Returns
true on success, false on failure

First call: Initializes hardware and arms receiver Subsequent calls: Re-arms receiver for new capture (clears state)

Edge Detection:

  • start_low=true: Skip symbols until first rising edge (LOW→HIGH), default for WS2812B
  • start_low=false: Skip symbols until first falling edge (HIGH→LOW), for inverted signals

This solves the "spurious LOW capture" problem where RX captures the idle pin state before TX starts transmitting.

Example:

RxConfig config;
config.signal_range_min_ns = 100; // Glitch filter
config.signal_range_max_ns = 100000; // Idle timeout
config.start_low = true; // WS2812B idle = LOW
rx->begin(config);
u32 signal_range_min_ns
Minimum pulse width (glitch filter, default: 100ns)
Definition rx.h:222
bool start_low
Pin idle state: true=LOW (WS2812B), false=HIGH (inverted)
Definition rx.h:225
u32 signal_range_max_ns
Maximum pulse width (idle threshold, default: 100μs)
Definition rx.h:223
Configuration for RX device initialization.
Definition rx.h:216

References FL_NOEXCEPT.