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

RolePart
FrameHolybro X500 V2 (500 mm, carbon plates, 10-inch props)
Flight controllerPixhawk 6C with PX4
GPS and compassHolybro M10
TelemetrySiK 915 MHz pair, 57600 baud
TransmitterRadioLink AT9S Pro, SBUS receiver
Battery4S LiPo
Ground stationQGroundControl 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

  1. Firmware. Latest stable PX4 for the Pixhawk 6C.
  2. Airframe. Holybro X500 V2 from the quadrotor list, then reboot.
  3. Sensors. Compass, gyro, accelerometer, level horizon. Redo level horizon any time the payload changes.
  4. Radio. Calibrate the sticks, then map the switches below.
  5. Flight modes and failsafes. The tables below.
  6. Power. 4S, cell voltages 3.6 V empty and 4.05 V charged, and the battery thresholds.

Transmitter mapping

ParameterValueMeaning
RC_MAP_FLTMODE10Three-position switch on channel 10 selects the mode
COM_FLTMODE12Switch up: Position
COM_FLTMODE4−1Switch middle: unassigned, mode stays as it was
COM_FLTMODE611Switch down: Land
RC_MAP_KILL_SW9Kill switch on channel 9. Instant motor stop, the aircraft falls
RC_MAP_ARM_SW0No arm switch, arm with the stick gesture
COM_RC_OVERRIDE1Any 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

ParameterValueMeaning
NAV_RCL_ACT2RC lost for 0.5 s: Return
NAV_DLL_ACT0Telemetry lost: nothing. Losing the laptop never triggers an action
COM_LOW_BAT_ACT2Battery low: Land. Not Return, which climbs to 30 m first
BAT_LOW_THR / CRIT / EMERGEN15 / 7 / 5 %Thresholds
COM_DISARM_PRFLT10 sArmed but never took off: disarm
COM_DISARM_LAND2 sLanded: disarm
EKF2_HGT_REFBarometerHeight 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

  1. Props off: arm, check motor order and direction with the motor test, disarm.
  2. Props on, open ground, Position mode: hover at eye height for thirty seconds, land.
  3. 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.
  4. 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.