22 FL_WARN(
"[RX TEST] Testing RX channel with manual GPIO toggle on PIN " << pin_tx);
29 const int num_toggles = 16;
30 const int toggle_delay_us = 1000;
31 const u32 signal_range_max_ns = 2000000;
41 if (!rx_channel->begin(rx_config)) {
42 FL_ERROR(
"[RX TEST]: Failed to begin RX channel");
50 for (
int i = 0; i < num_toggles; i++) {
67 FL_ERROR(
"[RX TEST]: RX channel wait failed (result: " <<
static_cast<int>(wait_result) <<
")");
68 FL_ERROR(
"[RX TEST]: RX may not be working - check PIN_RX (" << pin_rx <<
") and RMT peripheral");
69 FL_ERROR(
"[RX TEST]: If using non-RMT TX, ensure physical jumper from PIN " << pin_tx <<
" to PIN " << pin_rx);
76 size_t edge_count = rx_channel->getRawEdgeTimes(check_edges, 0);
77 if (edge_count == 0) {
78 FL_ERROR(
"[RX TEST]: wait() succeeded but 0 edges captured - DMA trigger may be misconfigured");
79 FL_ERROR(
"[RX TEST]: Check DMAMUX source number for PIN_RX (" << pin_rx <<
")");
83 FL_WARN(
"[RX TEST] ✓ RX channel captured " << edge_count <<
" edges from " << num_toggles <<
" toggles");
84 FL_WARN(
"[RX TEST] ✓ RX channel is functioning correctly");
void resize(fl::size n) FL_NOEXCEPT
Delay utilities for FastLED Includes nanosecond-precision delays, cycle counting, and microsecond del...
Centralized logging categories for FastLED hardware interfaces and subsystems.
bool testRxChannel(fl::shared_ptr< fl::RxChannel > rx_channel, int pin_tx, int pin_rx, u32 hz, size_t buffer_size)
Test RX channel with manual GPIO toggle pattern.
@ Low
Logic low (0V / GND)
@ High
Logic high (3.3V / 5V, platform-dependent)
void pinMode(int pin, PinMode mode)
Set pin mode (input, output, pull-up, pull-down)
void digitalWrite(int pin, PinValue val)
Write digital value to pin.
RxWaitResult
Result codes for RX wait() operations.
@ SUCCESS
Operation completed successfully.
void delayMicroseconds(u32 us)
Delay for a given number of microseconds.
@ Output
Digital output (push-pull)
@ Input
Digital input (high impedance)
Base definition for an LED controller.