Die Funkstrecke ist der Teil am Quad, der einen am wenigsten spektakulär, aber am hartnäckigsten ärgert. Ein Empfänger, ein Sender, ein serielles Protokoll — und trotzdem saß ich mehr als einmal vor einem Modell, das auf dem Schreibtisch piepte und in Mission Planner keinen einzigen Stick-Ausschlag zeigte.
Dieser Erfahrungsbericht dokumentiert die Umstellung von einem alten IBUS-Empfänger auf ELRS (ExpressLRS) mit CRSF und bidirektionaler Telemetrie: Aufbau, Sender-Seite, ArduPilot-Parameter und die Stolpersteine.
Aufbau
Vier Dinge sind beteiligt: der Sender RadioMaster TX16S mit einem ELRS-Sendemodul in der JR-Bay (bei mir ein Ranger Micro), der Empfänger RadioMaster RP3 (2,4 GHz ELRS) und der Flugcontroller Pixhawk 6C Mini mit ArduPilot Copter. Verbunden werden sie über CRSF (Crossfire) — ein bidirektionales serielles Protokoll, das Steuerbefehle und Telemetrie in einem UART bündelt.
Der entscheidende Unterschied zu IBUS/SBUS: CRSF braucht nur eine serielle Leitung, dafür einen echten UART mit Bandbreite. Er hängt an einem TELEM-Port des FCs — nicht am RC-IN-Port.
Verkabelung (JST-GH am TELEM-Port)
Der RP3 hat vier verlötete Pads. Sie gehen über ein 6-poliges JST-GH-Kabel an TELEM2; die Adern sind gekreuzt (TX des Pixhawk redet in den RX des Empfängers):
| RP3-Pad | Kabelfarbe | Signal | TELEM2-Pin |
|---|---|---|---|
- | Schwarz | GND | Pin 6 (GND) |
5V | Rot | VCC | Pin 1 (VCC) |
T | Weiß | TX → Pixhawk | Pin 3 (RX) |
R | Grün | RX ← Pixhawk | Pin 2 (TX) |
Aus einem 6-poligen Holybro-JST-GH-Kabel (Pin 1 = Rot/VCC, Pin 6 = Schwarz/GND)
werden drei Adern genutzt und an den Stecker gelötet: Pin 1 → RP3-Rot, Pin 2 →
RP3-Grün (R), Pin 3 → RP3-Weiß (T), Pin 6 → RP3-Schwarz. Pin 4 + 5
(CTS/RTS) bleiben frei und einzeln isoliert.
Zwei Fehler lassen den Port stumm: den Empfänger an RC IN stecken statt an TELEM, und die CTS/RTS-Adern mitbelegen. CRSF läuft ohne Hardware-Flusskontrolle, und RC IN ist kein frei konfigurierbarer UART.
Die Spannung kommt aus dem TELEM-Port selbst (5 V) — kein separates BEC nötig.
Sender-Seite (EdgeTX)
Auf der TX16S: MDL → Model Setup → External RF, dort Mode CRSF, Baud
400000, Channel Range CH1-16, Receiver 1 und Internal RF → Off
(der alte Empfänger wird nicht mehr gebraucht). ELRS selbst steckt im Lua-Menü
unter SYS → Tools → ExpressLRS — dort stehen Packet Rate, Telem Ratio, TX
Power und Switch Mode, und unten die Firmware-Version (z. B. LBT_3.3.1).
Sender und Empfänger müssen dieselbe Major-Version haben. Gebunden wird über eine Bind-Phrase (beide Seiten bekommen dieselbe Zeichenkette und binden sich automatisch, sobald sie sich sehen) oder über den Knopf-/Power-Cycle-Weg: SYS → Tools → ExpressLRS → [Bind] drücken und das Menü offen lassen, dann am RP3 dreimal schnell hintereinander Strom anlegen → LED blinkt schnell (Bind-Mode), warten bis Dauerlicht = gebunden.
Der kleine Knopf am RP3 ist nicht der zuverlässige Weg. Der Dreifach-Power-Cycle hat bei mir reproduzierbar funktioniert, der Knopf nicht.
ArduPilot-Seite
Der TELEM2-UART wird auf das RC-Eingangsprotokoll gestellt; der alte IBUS-Port wird abgeschaltet:
SERIAL2_PROTOCOL = 23 # RCIN — CRSF/ELRS am TELEM2
SERIAL2_BAUD = 460 # 460800 bps
RC_PROTOCOLS = 536 # CRSF-Bit
RSSI_TYPE = 3 # ReceiverProtocol (RSSI/LQ aus CRSF)
SERIAL5_PROTOCOL = -1 # deaktiviert (war der alte IBUS-Empfänger)
Nach dem Schreiben den FC neu starten (USB ab/ab oder MAVLink-Reboot) — ArduPilot zieht serielle Protokolle nicht immer zur Laufzeit um. Verifiziert wird nicht im Parameter-Dialog, sondern live: Radio Calibration öffnen und Sticks bewegen — die Balken müssen ausschlagen.
Telemetrie-Rückkanal
Auf der TX16S TELE lange drücken und Discover new sensors wählen. Es erscheinen RxBt (Empfänger-/Akku-Spannung), Curr (Strom), Capa (verbrauchte Kapazität in mAh), Bat% (Restkapazität) und RQly (Link Quality).
Sensoren erst entdecken, wenn sie da sind. GPS, Höhe und Satelliten liefern intermittierend und lösen sonst dauernd „Sensor verloren" aus. Wer die Meldung loswerden will, setzt
disableTelemetryWarning: 1in der Modell-YAML oder löscht die nicht vorhandenen Sensoren im Telemetrie-Menü.
Fallstricke
ELRS-WLAN-Overlay. Ein Empfänger ohne Verbindung öffnet nach rund 60
Sekunden einen eigenen WLAN-Zugangspunkt („ExpressLRS RX") mit einem kleinen
Webinterface — dort prüft man etwa das Feld serial-protocol (für MAVLink muss
es 7 sein). Beim Ändern des ELRS-Switch-Mode (Wide/Hybrid) muss der FC
vorher stromlos sein, sonst antwortet das Modul mit „not while connected".
MAVLink-over-ELRS (der Rückstell-Parameter). Ab ELRS 3.5 kann derselbe
2,4-GHz-Link RC und MAVLink zusammen tragen, sodass eine Bodenstation kabellos
mitfliegt. Das ist ein bewusster Umbau mit einem FC-Overlay — SERIAL2_PROTOCOL
von 23 auf 2 (MAVLink2), RSSI_TYPE von 3 auf 5 (MAVLink
RADIO_STATUS) und die SR2_*-Stream-Rates auf 1 (außer ADSB/PARAMS/RAW_CTRL
bleiben 0) — plus zwei Schalter am Sender: Link Mode von Normal auf
MAVLink und — der Schalter, der mich am längsten gekostet hat — Backpack →
Telemetry von AUTO/ESPNOW auf WiFi. Erst dann leitet der Backpack
MAVLink per UDP weiter, und die SSID bekommt ein Suffix.
SERIAL2_BAUDnicht auf 420 stellen. 460800 ist der Wert, den die Kette erwartet; ein abweichender Baud bricht den Link stumm.RC_PROTOCOLSbleibt auf 536 — ArduPilot zieht die RC-Kanäle aus dem MAVLink-Stream, solange der UART auf Protokoll 2 steht — und der Passthrough-Bit inRC_OPTIONS = 288(256er-Bit) bleibt für die Sender-Telemetrie kompatibel. Der definierte Rückweg bei Problemen:SERIAL2_PROTOCOLzurück auf 23,RSSI_TYPEauf 3, alleSR2_*auf 0, dazu am Sender Link ModeNormalund Backpack-TelemetrieAUTO/ESPNOW.
2-Positions-Flugmodus-Workaround. ELRS sendet bei einem 3-Positions-Schalter im Wide-/Hybrid-Mode nur zwei Werte (~999 und ~2000); die Mittelstellung kommt nicht durch und trifft den eingestellten Flugmodus nie. Ausweg: nur FLTMODE1 und FLTMODE6 belegen.
FLTMODE_CH = 5 # Flight Mode auf Kanal 5
FLTMODE1 = 2 # Schalter oben (PWM ~999): AltHold
FLTMODE6 = 5 # Schalter unten (PWM ~2000): Loiter
Hintergrund ist die PWM-Zuordnung von ArduPilot: 0–1230 → FLTMODE1, 1231–1360 → FLTMODE2, 1361–1490 → FLTMODE3, 1491–1620 → FLTMODE4, 1621–1749 → FLTMODE5, 1750+ → FLTMODE6. Ein 3-Pos-Schalter sendet ~988/1500/2012 und träfe FLTMODE1/4/6; ELRS liefert nur ~999/~2000 → nur FLTMODE1 und FLTMODE6 werden je erreicht. Auch der Mode-Wechsel braucht danach einen FC-Reboot.
Troubleshooting in Kurzform. Sticks bewegen sich, Schalter nicht:
Switch-Mode-Thema — prüfen, ob der Sender auf CH5 −100/0/+100 zeigt
(MDL → Outputs), sonst Switch Mode wechseln (Wide ↔ Hybrid) und Power-Cycle,
zuletzt der FLTMODE1/FLTMODE6-Workaround. RP3 blinkt schnell, Binding klappt
nicht: Firmware-Mismatch, beide Seiten müssen dieselbe Major-Version haben.
Gar kein RC: Kalibrierung, TELEM-Port, Protokoll/Baud auf SERIAL2 und
Reboot prüfen. Keine Telemetrie: Sensoren neu entdecken, Warnung abschalten,
RSSI_TYPE prüfen.
Lessons Learned
- CRSF gehört an einen TELEM-Port, nicht an RC IN — und CTS/RTS bleiben frei. Beide Fehler sieht man nur im Calibration-Bild, nicht am Piepen.
- Verifizierungspunkt ist Radio Calibration, nicht der Parameter-Dialog. Erst wenn Sticks und Schalter live ausschlagen, ist der Link fertig.
- Der Dreifach-Power-Cycle bindet zuverlässiger als der Knopf am Empfänger.
- ELRS-Switch-Mode nie am verbundenen FC umstellen — FC vorher stromlos.
- Bei MAVLink-over-ELRS sind es drei Schalter, nicht einer: Overlay am FC, Link Mode am Sender, Backpack-Telemetrie auf WiFi. Der letzte war der teuerste.
SERIAL2_BAUD = 460nie anfassen — ein „runderer" Wert wie 420 ist kein ArduPilot-Standard und tötet den Link ohne Fehlermeldung.
Checkliste
- RP3 an TELEM2 (nicht RC IN), TX/RX gekreuzt, Pin 4+5 isoliert
- Spannung aus dem TELEM-Port (5 V), Empfänger-LED leuchtet
- EdgeTX: External RF = CRSF, Baud 400000, CH1-16, Internal RF aus
- TX- und RX-Firmware gleiche Major-Version
- Binding über Bind-Phrase oder Power-Cycle, LED auf Dauerlicht
-
SERIAL2_PROTOCOL=23,SERIAL2_BAUD=460,RC_PROTOCOLS=536,RSSI_TYPE=3, alter IBUS-Port deaktiviert, FC rebootet - Radio Calibration: Sticks und Schalter schlagen aus
- Sensoren entdeckt (RxBt, Curr, Capa, Bat%, RQly)
- Flugmodi auf FLTMODE1/FLTMODE6, beide Anschläge getestet
- Bei MAVLink-Modus: Overlay + Link Mode + Backpack-Telemetrie gesetzt, Rollback-Parameter bereit
Hardware
- 🎮 RadioMaster TX16S MK3 (EdgeTX-Sender) – der Sender; inzwischen die MK3-Variante (MkII/MAX gibt es auf Amazon.de nicht mehr regulär)
- 📡 RadioMaster Ranger Micro (2,4 GHz ELRS-Sendemodul) – ELRS-Sendemodul in der JR-Bay
- 📡 RadioMaster RP3 (2,4 GHz ELRS-Empfänger) – ELRS-Empfänger am Frame (2,4 GHz, an TELEM2)
Der Flugcontroller (Pixhawk 6C Mini) läuft hier nur als Gegenstelle mit — er steht schon am Frame und ist ohnehin nicht der Teil, den man für die Funkstrecke tauscht.