The receiver's port is a poor choice, or two telemetry set-ups collide
What ArduPilot says:
- …: passthrough telemetry conflict on SERIALN
- …: running on non-DMA serial port
“running on non-DMA serial port”: the receiver is on a serial port without DMA, the hardware that moves bytes without the processor's help. CRSF and ELRS run at about 420,000 baud or faster, and without DMA bytes can be lost; processors of the H7 family do not need it and never show this. “passthrough telemetry conflict on SERIALn”: RC_OPTIONS bit 8 asks for Yaapu passthrough telemetry over the CRSF link, while port n is also set to FrSky passthrough (SERIALn_PROTOCOL 10). Only one can have it, and the CRSF one is not started.
What to do, most likely first
The receiver is wired to a UART that has no DMA on this board.
CheckThe Board & Wiring Planner shows which serial ports of your board have DMA.
FixMove the receiver to a port with DMA, set that port's
SERIALn_PROTOCOLto 23 and the old one to -1, and reboot.Passthrough telemetry is asked for twice: over CRSF and on a FrSky port.
Check
RC_OPTIONShas bit 8 set, and the port named in the message hasSERIALn_PROTOCOL10.FixKeep the one you use: set the named port's
SERIALn_PROTOCOLto -1, or clearRC_OPTIONSbit 8, and reboot.
Parameters to look at
| Parameter | What it is |
|---|---|
RC_OPTIONS | RC options |
SERIAL1_PROTOCOL | Telem1 protocol selection |
SERIAL2_PROTOCOL | Telemetry 2 protocol selection |
SERIAL3_PROTOCOL | Serial 3 (GPS) protocol selection |
SERIAL4_PROTOCOL | Serial4 protocol selection |
Where to do it:Board & Wiring Planner
The code that sends it
…: passthrough telemetry conflict on SERIALN
libraries/AP_RCTelemetry/AP_CRSF_Telem.cpp AP_CRSF_Telem::setup_custom_telemetry() · Open in ArduPilot Copter-4.7.1
…: running on non-DMA serial port
libraries/AP_RCTelemetry/AP_CRSF_Telem.cpp AP_CRSF_Telem::process_rf_mode_changes() · Open in ArduPilot Copter-4.7.1
libraries/AP_RCTelemetry/AP_GHST_Telem.cpp AP_GHST_Telem::process_rf_mode_changes() · Open in ArduPilot Copter-4.7.1