Guides / hardware
Holybro X500 setup guide
Frame, Pixhawk 6C, M10 GPS and SiK telemetry. Assembled, wired, calibrated, with the transmitter and failsafe configuration I actually fly with.
hardware40 min11 October 2026
Draft. The parameter values are the ones on my aircraft as of 14 October 2026.
This is the setup that flies in the AI drone build. Nothing exotic: Holybro’s X500 V2 kit, a Pixhawk 6C, an M10 GPS, a pair of SiK 915 MHz telemetry radios, a RadioLink AT9S Pro transmitter and 4S batteries. The value of this page is the configuration, which is the part the kit instructions leave to you.
The parts
| Role | Part |
|---|---|
| Frame | Holybro X500 V2 (500 mm, carbon plates, 10-inch props) |
| Flight controller | Pixhawk 6C with PX4 |
| GPS and compass | Holybro M10 |
| Telemetry | SiK 915 MHz pair, 57600 baud |
| Transmitter | RadioLink AT9S Pro, SBUS receiver |
| Battery | 4S LiPo |
| Ground station | QGroundControl on a Mac |
Assembly notes
- Arms, motors and landing gear per Holybro’s PDF. The one thing to decide early is the battery position, because everything else you bolt on changes the centre of gravity.
- The flight controller sits on its foam pads with the arrow forward. The GPS mast goes as far from the power wiring as the frame allows.
- Telemetry radio on the top plate, antenna vertical, away from the GPS.
- Do the first power-up with the props off and leave them off until the last section.
QGroundControl setup, in order
- Firmware. Latest stable PX4 for the Pixhawk 6C.
- Airframe. Holybro X500 V2 from the quadrotor list, then reboot.
- Sensors. Compass, gyro, accelerometer, level horizon. Redo level horizon any time the payload changes.
- Radio. Calibrate the sticks, then map the switches below.
- Flight modes and failsafes. The tables below.
- Power. 4S, cell voltages 3.6 V empty and 4.05 V charged, and the battery thresholds.
Transmitter mapping
| Parameter | Value | Meaning |
|---|---|---|
RC_MAP_FLTMODE | 10 | Three-position switch on channel 10 selects the mode |
COM_FLTMODE1 | 2 | Switch up: Position |
COM_FLTMODE4 | −1 | Switch middle: unassigned, mode stays as it was |
COM_FLTMODE6 | 11 | Switch down: Land |
RC_MAP_KILL_SW | 9 | Kill switch on channel 9. Instant motor stop, the aircraft falls |
RC_MAP_ARM_SW | 0 | No arm switch, arm with the stick gesture |
COM_RC_OVERRIDE | 1 | Any stick movement in an automatic mode returns to Position |
So the switch is Position at one end, Land at the other, with a dead middle. Kill is a separate guarded switch. The override parameter is what makes “the transmitter always wins” true at the firmware level: any stick input in Hold, Takeoff, Return or Land drops the aircraft back into Position under your hands.
Failsafes
| Parameter | Value | Meaning |
|---|---|---|
NAV_RCL_ACT | 2 | RC lost for 0.5 s: Return |
NAV_DLL_ACT | 0 | Telemetry lost: nothing. Losing the laptop never triggers an action |
COM_LOW_BAT_ACT | 2 | Battery low: Land. Not Return, which climbs to 30 m first |
BAT_LOW_THR / CRIT / EMERGEN | 15 / 7 / 5 % | Thresholds |
COM_DISARM_PRFLT | 10 s | Armed but never took off: disarm |
COM_DISARM_LAND | 2 s | Landed: disarm |
EKF2_HGT_REF | Barometer | Height reference. Not GPS, see below |
Two of these were changed after the first real session with the AI pilot. GPS altitude near buildings drifted four metres in ten seconds while the barometer stayed honest, so the height reference is the barometer. And the battery action was warning-only, which is no action at all.
Telemetry radio
The SiK radios ship with error correction off. In a city, 915 to 928 MHz overlaps the top of the GSM-900 band, and my aircraft-side noise floor read 91 to 102 at the flying site against 20 at home. Turn ECC on in both radios, remote first, using the AT command interface or a small script. Halves raw throughput, which does not matter at the message rates a telemetry link needs.
QGroundControl grabs the serial port on launch. If another program needs the radio, disconnect the link in QGC first or turn off its serial autoconnect.
First flights
- Props off: arm, check motor order and direction with the motor test, disarm.
- Props on, open ground, Position mode: hover at eye height for thirty seconds, land.
- A box pattern at a few metres, then a Land from the switch, then an RC-loss test with the transmitter switched off at two metres of height, ready to switch it back on.
- Only then anything that commands the aircraft from software.
Getting the logs
Connect the Pixhawk over USB, QGC > Analyze > Log Download. Every flight is a .ulg file. The pyulog package reads them in Python, and vehicle_command in the log records every command the aircraft received and which system sent it, which is how you prove what the software did and did not do.