Loading Firmware onto boards without existing ArduPilot firmware

Recent versions of ArduPilot (Copter-3.6, Plane-3.9, Rover-3.5) run on relatively small, non-Pixhawk, autopilots using the ChibiOS operating system. Examples of these boards include the OpenPilot RevoMini, Mateksys F405-Wing and Omnibus F4 Pro.

Most often, these boards have another flight controller software pre-installed. (If the board has ArduPilot already installed, see Loading Firmware for firmware loading instructions.

Installing ArduPilot to these autopilot involves:

  • Installing the required driver and flashing tool
  • Downloading the appropriate ArduPilot firmware
  • Loading ArduPilot to the board

Note

Instructions for ArduPilot using ChibiOS to Pixhawk autopilots can be found here.

Download driver and flashing tool

The STM32CubeProgrammer will install the required DFU (direct firmware upload) drivers and can be used to flash the firmware to autopilots in DFU mode. This is available for Windows, Linux, and MacOS systems. Download and install this program. You may be required to also install JAVA in order to setup this program.

Download the ArduPilot firmware

  • Download the ArduPilot firmware for your board from firmware.ardupilot.org. You can normally find the appropriate firmware by doing the following:
    • open firmware.ardupilot.org
    • select click on the link for your vehicle type (i.e. Plane, Copter, Rover, Sub or Antenna Tracker)
    • select “beta” or “stable”
    • look for the directory with the name that most closely matches the autopilot
    • download the “arduXXX_with_bl.hex” file clicking on it. It will usually be saved in your Downloads folder.

Upload the firmware to autopilot

  • Hold down the board’s DFU button or temporarily bridge its “BOOT” pins, and plug in a USB cable (attached to your PC). Release button or unbridge once powered.

  • Open the windows device manager and look under “Universal Serial Bus devices” for “STM32 BOOTLOADER” to confirm that the board is in DFU mode.

    ../_images/loading-firmware-device-manager.png
  • Start the STM32CubeProgrammer

../_images/STM32CubeProgrammer1.jpg
  1. Select the connection method: USB
  2. Make sure a USB port shows…that means the board is detected in DFU mode.
  3. Press “Connect”
  4. Then the boards cpu specifics will appear here.
  5. Press “Open file” to select the “arduXXX_with_bl.hex” file you downloaded.
  6. The file name will appear in the tab.
../_images/STM32CubeProgrammer2.jpg
  1. Press “Download” to flash the file to the board.

You may now reboot the board and connect with your favourite ground station (Mission Planner, QGC, etc) and future firmware uploads should also be possible using the normal method for Pixhawk boards.

Alternate method

Download and Install Zadig (Windows only)

  • Download and run Zadig (search for “Zadig 2.3” just below “Download”) to allow accessing the board using USB.

  • Choose “List all devices” option from options menu

  • Select “STM32 BOOTLOADER” from the drop-down and press the “Replace Driver” button

    ../_images/loading-firmware-zadig.png
  • Optionally, you may wish to check the board is visible as a USB port:

    • Hold down the board’s DFU button and plug in a USB cable (attached to your PC)
    • Open the windows device manager and look under “Universal Serial Bus devices” for “STM32 BOOTLOADER” to confirm that the board is in DFU mode.
    ../_images/loading-firmware-device-manager.png

Download the ArduPilot firmware

  • Download the ArduPilot firmware for your board from firmware.ardupilot.org. You can normally find the appropriate firmware by doing the following:
    • open firmware.ardupilot.org
    • select click on the link for your vehicle type (i.e. Plane, Copter, Rover, Sub or Antenna Tracker)
    • select “beta” or “stable”
    • look for the directory with the name that most closely matches the autopilot
    • download the “arduXXX_with_bl.hex” file clicking on it. It will usually be saved in your Downloads folder.

Upload ArduPilot to the board

  • Download, install and run the Betaflight Configurator.

    • Select “Firmware Flasher” on the left side of the screen
    • Select DFU from the top right
    • Push “Load Firmware [Local]” from the bottom right and select the arduXXX_with_bl.hex file you downloaded above.
    • Push “Flash Firmware” and after a few minutes the firmware should be loaded
    ../_images/loading-firmware-betaflight-configurator.png

You may now reboot the board and connect with your favourite ground station (Mission Planner, QGC, etc) and future firmware uploads should also be possible using the normal method for Pixhawk boards.