What you need
- A flight controller running PX4 or ArduPilot, for example a Pixhawk-class board.
- A way for its MAVLink telemetry to reach the phone over Wi-Fi/UDP:
- an ESP32 MAVLink Wi-Fi bridge, such as mLRS or DroneBridge;
- an ExpressLRS TX backpack with MAVLink over Wi-Fi;
- a companion computer running mavlink-router (a Raspberry Pi kit is described in Hardware Center).
- Your normal RC link, which stays your primary control.
USB telemetry radios (SiK) cannot be plugged into the phone yet. Bridge them to Wi-Fi first.
Connect
- Real Flight → My Real Drone. Set Connection to PX4 / ArduPilot (MAVLink over Wi-Fi/UDP).
- The app listens on UDP port 14550 and answers whichever vehicle talks first. If your bridge waits for the ground station to speak first, also enter the vehicle address.
- Put the phone on the bridge's Wi-Fi network, then choose Connect.
- The console shows LINK OK once heartbeats arrive. Compare battery, GPS and attitude with QGroundControl or Mission Planner before trusting them.
To send commands, set up a secure link and complete the safety checklist.
Failsafes to set on the aircraft
Set these with QGroundControl or Mission Planner. Drone Horizon does not edit parameters.
| Autopilot | Setting | Why |
|---|---|---|
| PX4 | COM_OF_LOSS_T = 1 s |
Offboard setpoints stopping means a failsafe, quickly |
| PX4 | COM_OBL_RC_ACT = Hold or Return |
What the aircraft does when Offboard is lost |
| PX4 | RC override kept enabled | Your sticks override app control |
| ArduPilot | FS_GCS_ENABLE |
Ground-station loss triggers a failsafe |
How app control works
- PX4: before asking for Offboard, the app streams velocity setpoints for half a second at 20 Hz, as PX4 requires. A refused mode change stops the stream.
- ArduPilot: the app uses Guided with the same body-frame velocity setpoints.
Releasing commands Hold (PX4) or Loiter (ArduPilot).
Practise without an aircraft: PX4 SITL
You can connect to a simulated PX4 running on your computer:
- On a PC, build and run PX4 SITL:
make px4_sitl gz_x500. - Put the phone and PC on the same Wi-Fi network. Forward SITL's MAVLink to the phone's IP on port 14550, or enter the PC as the vehicle address.
- Connect in Real Flight and run through the checklist and commands with nothing that can fall.
SITL reached over Wi-Fi is treated like a real aircraft. The app watches it, and commands still need a signed link. That makes SITL a good place to rehearse signing too.
Status
ArduPilot was tested against real ArduCopter firmware in simulation, with and without signing. PX4 behaviour was tested against a scripted stand-in that follows PX4's documented Offboard rules; real PX4 SITL is the next step. No physical aircraft has been flown with Drone Horizon yet.

