[Bug] rc_input uses the UART when RC_INPUT_PROTO is None

Author: UnderMind0x41Created Sep 16, 2026Updated Sep 16, 2026
Labelsstatus:needs-triage

Describe the bug

RC_INPUT_PROTO=0 (None) disables parsing, but rc_input still starts, configures the UART for SBUS and reads incoming bytes. This can interfere with another protocol using that UART, such as MAVLink RC.

On a bench setup, use an available UART and run:

bash
rc_input stop
param set RC_INPUT_PROTO 0
rc_input start -d /dev/ttyS4
rc_input status

Expected: the disabled driver leaves the UART untouched. Actual: the driver runs in state None and consumes incoming bytes.

Verification

Reproduced on main at 651b8687b8 using a Linux pseudo-terminal with rc_input enabled: sending 128 bytes produced UART RX bytes: 128 despite protocol None.

The proposed fix was also bench-tested on Holybro Kakute H7: the same start command reports not running, while ELRS MAVLink RC continues at approximately 100 Hz.

After the fix, the pseudo-terminal test also confirms that all 128 bytes and the UART settings remain untouched with None; selecting SBUS still reads the injected bytes.