RFD900 Radio Configuration
Reference RFD-TR-001. How to configure the RFD900x (ground) and RFD900ux (airborne) telemetry radios.
Over-the-air (OTA) configuration — the standard method
Section titled “Over-the-air (OTA) configuration — the standard method”PX4 does not provide a serial-passthrough shell, so routine configuration of the airborne radio is done over the air from the ground station:
- Connect the ground RFD900 to your PC and establish a link with the aircraft.
- Open QGroundControl → the Radio / SiK Radio configuration tab.
- Click Load Settings — settings for both the Local (ground) and Remote (aircraft) radios load.
- Modify the Remote settings as required (NetID, power, duty cycle) and Save — changes are sent over the air.
Deep changes — serial passthrough on the bench
Section titled “Deep changes — serial passthrough on the bench”Changing the airborne radio’s baud, encryption, or firmware requires a direct serial path. The RFD900ux has no exposed connector once installed — the path is through the autopilot, by temporarily flashing ArduPilot (which has a passthrough feature PX4 lacks):
- Power: connect the flight battery (props off) — the airborne radio is powered from the servo-rail supply and stays dark on USB power alone.
- Flash ArduPilot via QGC → Vehicle Setup → Firmware (select ArduPilot, your board).
- Port order matters: open your serial terminal (e.g. CuteCom, 57600 baud,
/dev/ttyACM0) before opening QGC, or QGC seizes the port. - In QGC set:
SERIAL1_BAUD 57,SERIAL1_OPTIONS 1024(stops MAVLink on the port),SERIAL_PASSTIMO -1(bridge stays open), thenSERIAL_PASS2 1. Wait ~30 s. - In the terminal, set line ending None, send
+++→ the radio answersOK(AT mode). Then set line ending CR/LF for all further commands. - Configure (cheat sheet below),
AT&Wto save,ATZto reboot. - Re-flash the RFD PX4 firmware + parameter file and run the acceptance check.
SiK AT-command cheat sheet
Section titled “SiK AT-command cheat sheet”Diagnostics:
| Command | Function |
|---|---|
ATI |
Firmware version |
ATI5 |
Print all parameters (S-registers) |
ATI7 |
Signal-strength (RSSI) statistics |
Configuration (ATS<register>=<value>):
| Command | Function | Notes |
|---|---|---|
ATS1=57 |
Serial baud (57600) | Must match the autopilot’s telemetry-port baud |
ATS2=64 |
Air data rate | Lower = more range, less throughput |
ATS3=<0–499> |
NetID | Both radios must match |
ATS4=<1–30> |
Transmit power (dBm) | 30 = 1 W maximum |
ATS6=1 |
MAVLink framing | Standard MAVLink |
ATS8 / ATS9 |
Band min/max frequency (kHz) | Per your country’s regulations — in Australia, the 915–928 MHz class licence |
Saving:
| Command | Function |
|---|---|
AT&W |
Write to EEPROM — without this, changes are lost on reboot |
ATZ |
Reboot the radio |
ATO |
Exit AT mode, resume data |
Troubleshooting
Section titled “Troubleshooting”- Radio dead / no lights: airborne radio needs the flight battery (servo-rail powered), not USB.
+++gets noOK: line ending must be None for+++; MAVLink may still be streaming (checkSERIAL1_OPTIONS 1024); wait the full 30 s after enabling passthrough.- Endless green flashing, never solid: the two radios don’t match — NetID, air rate, band, or encryption mismatch. An encrypted radio will never link to an unencrypted one.
- Terminal prints endless
#garbage: MAVLink is still on the port — passthrough isn’t active.
Refer to the RFDesign RFD900x/ux manuals for the full register reference.