ArduPilot Firmware builds
These firmware builds are automatically generated by the ArduPilot autotest system.ArduCopter - for multicopters and traditional helicopters
APMrover2 - for land vehicles and boats
PX4IO - for the PX4IO board
Types of firmware available
To choose a firmware to download you need to choose:- The type of board that you have
- Whether you want the stable, beta or latest version of the firmware
- Whether you want a HIL (hardware in the loop) image
- stable - this is the version recommended for new users. It has had the most testing
- beta - this is the firmware to choose if you want to be part of beta testing of new versions prior to release as a stable version. Note that during some development times the beta release will be the same as the stable release
- latest - this is the latest version from our git source code repository. This version is only for developers. The code may have unknown bugs and extreme care should be taken by anyone using it
How to load your firmware
After downloading a firmware image from one of the links above you will need to load it into your board. If you are using the APM Mission Planner then you can load a hex file using the "Firmware" screen by clicking on the "Load custom firmware" button in the bottom right corner of the screen.Loading firmware to a PX4FMU board
If you have a PX4FMU board then you can load firmware on Windows using the px4uploader.exe utility, which you will find in the "APM Planner" installation directory of your Windows machine. When you run that utility it will ask you for the location of a px4fmu.px4 file to load. It will then wait for your PX4 board to go into bootloader mode. The PX4 board enters bootloader mode when it powers on, or when the reset switch on the side of the PX4 is pressed. It may take a few seconds for Windows to recognise your PX4 board and upload to begin.The PX4 will exit bootloader mode and start the flight firmware 5 seconds after it boots, so if the firmware load hasn't started within 5 seconds of booting your PX4 then you should press the PX4 reset switch and try again.
Loading firmware to a PX4IO board
If you have a PX4IO board attached to your PX4FMU then you will need to separately load the latest firmware to that board. To load the PX4IO firmware you need to download the px4io.bin file from the above link, then put it in the root directory of the microSD card you have in your PX4FMU board.You then need to hold the arming switch while applying power to your PX4FMU board. The PX4IO board detects that the arming switch is held when it powers on, and will enter bootloader mode, which is indicated by a rapidly flashing red light on your PX4IO board.
The APM firmware for your PX4FMU board will check in the root directory of your microSD card every time it boots, and if it finds a new px4io.bin file it will attempt to load it to your PX4IO board. A log of the firmware load attempt is placed in the APM directory of your microSD card to aid with debugging.
Loading APM1 or APM2 firmware on Linux or MacOS
If you don't use Mission Planner on Linux then you can load firmware using the avrdude command. A typical command for uploading a file called ArduPlane.hex to an APM2 or APM1-2560 is:avrdude -patmega2560 -cstk500v2 -P /dev/ttyACM0 -b115200 -D -Uflash:w:ArduPlane.hex:iYou will need to replace the /dev/ttyACM0 path with the path to your APM device. You may wish to use the device paths in /dev/serial/by-id so the path doesn't change. If you have an APM1-1280 then the command would be:
avrdude -patmega1280 -cstk500v1 -P /dev/ttyUSB1 -b115200 -D -Uflash:w:ArduPlane.hex:i
Loading PX4FMU firmware on Linux or MacOS
To load a PX4FMU firmware on a Linux or MacOS machine you will need to use the px_uploader.py python script. You can run it like this:python px_uploader.py --port /dev/ttyACM0 px4fmu.px4After starting the script, press the reset button on your PX4FMU to make it enter bootloader mode.