QGroundControl desktop versions can be used to install PX4 firmware onto Pixhawk-series flight-controller boards.
Before you start installing Firmware all USB connections to the vehicle must be disconnected (both direct or through a telemetry radio). The vehicle must not be powered by a battery.
Generally you should use the most recent released version of PX4, in order to benefit from bug fixes and get the latest and greatest features.
This is the version that is installed by default.
To install PX4:
First select the Gear icon (Vehicle Setup) in the top toolbar and then Firmware in the sidebar.
Connect the flight controller directly to your computer via USB.
Connect directly to a powered USB port on your machine (do not connect through a USB hub).
Select the PX4 Flight Stack X.x.x Release option to install the latest stable version of PX4 for your hardware (autodetected).
Click the OK button to start the update.
The firmware will then proceed through a number of upgrade steps (downloading new firmware, erasing old firmware etc.). Each step is printed to the screen and overall progress is displayed on a progress bar.
Once the firmware has completed loading, the device/vehicle will reboot and reconnect.
If QGroundControl installs the FMUv2 target (see console during installation) and you have a newer board, you may need to update the bootloader in order to access all the memory on your flight controller.
Next you will need to specify the vehicle airframe (and then sensors, radio, etc.)
To install a different version of PX4:
- Connect the vehicle as above, and select PX4 Flight Stack vX.x.x Stable Release
- Check Advanced settings and select the version from the dropdown list:
- Standard Version (stable): The default version (i.e. no need to use advanced settings to install this!)
- Beta Testing (beta): A beta/candidate release. Only available when a new release is being prepared.
- Developer Build (master): The latest build of PX4/Firmware.
- Custom Firmware file...: A custom firmware file (e.g. that you have built locally). If you select this you will have to choose the custom firmware from the file system in the next step.
Firmware update then continues as before.
If QGroundControl installs the FMUv2 target (see console during installation), and you have a newer board, you may need to update the bootloader in order to access all the memory on your flight controller.
Early FMUv2 Pixhawk-series flight controllers had a hardware issue that restricted them to using 1MB of flash memory. The problem is fixed on newer boards, but you may need to update the factory-provided bootloader in order to install FMUv3 Firmware and access all 2MB available memory.
To update the bootloader:
- Insert an SD card (enables boot logging to debug any problems).
Update the Firmware to PX4 master version (when updating the firmware, check Advanced settings and then select Developer Build (master) from the dropdown list). QGroundControl will automatically detect that the hardware supports FMUv2 and install the appropriate Firmware.
Wait for the vehicle to reboot.
- Find and enable the parameter SYS_BL_UPDATE.
- Reboot (disconnect/reconnect the board). The bootloader update will only take a few seconds.
Then Update the Firmware again. This time QGroundControl should autodetect the hardware as FMUv3 and update the Firmware appropriately.
If the hardware has the Silicon Errata it will still be detected as FMUv2 and you will see that FMUv2 was re-installed (in console). In this case you will not be able to install FMUv3 hardware.
For more information see Bootloader Update.