OpenPilot Revolution and RevoMini¶
Images and some content courtesy of the LibrePilot wiki
- STM32F405RGT6 ARM Cortex-M4 microcontroller
- 168 Mhz/1 MB Flash
- 32-bit failsafe co-processor
- InvenSense MPU6000 IMU (accel, gyro)
- Honeywell HMC5883L compass
- MS5611 barometers
- 4.8V ~ 10V input power provided through ESC connection for fullsize Revolution
- 5V max on RevoMini
- 6 PWM outputs
- RC input PPM/sBus on RC input port’s signal pin 1
- analog to digital inputs for battery voltage and current monitoring, more adcs possible on arbitrary pins
- GPS rx / tx on RC input signal pins 3 & 4
- Telem1 on mainport
- Telem2 on Flexi port
- USB port
- SWD Port for flashing and debugging, including 3.3V output for optional periphereals
- MMCX antenna connector for integrated HopeRF RFM22B 100mW 433MHz (fullsize Revolution only)
- OPLink port on RevoMini. OPLink hardware is not supported by ArduPilot, but this port exposes pins to be used for supported periphereals like SD card adapter
- I2C on Flexi port
- RevoMini’s OPLink port can be used for external SD card connection
- arbitrary pins can be used for various connections like 2nd GPS, additional PWM outputs etc. within certain restrictions
The RevoMini likely is the smallest footprint autpilot hardware to support ArduPilot. It does not offer CAN bus connectivity or sufficient onboard memory for storage of relevant logging data. However, an external SD card adapter can be added with limited effort.
Support for Revolution and RevoMini has been introduced with Ardupilot’s ChibiOS port. Firmware files can be found here Besides the .apj files for firmware flashing via MissionPlanner, there’s also .hex files for use with various utilities like dfu-util or betaflight / iNav GUIs. You will also find a _bl.hex that contains the firmware plus the ArduPilot compatible bootloader in case it is not already present on your board.
The ArduPilot compatible bootloader is required for first time flashing of ArduPilot firmware. The provided _bl.hex file can be flashed using BF or iNav GUI, likely the most convenient way to get ArduPilot on your board the first time.
Alternatively, the bootloader can be flashed separately. This requires the board to be put into DFU mode. Tools like dfu-util can be used to flash the bootlader. Once the bootlader is present, all subsequent firmware updates can be done using MissionPlanner’s firmware functions.
Enter DFU Mode¶
To do this, you’ll need to locate and short two pads on the device.
You can short the pads in any particular way (either with a wire, solder joint, or something else). Detailed instructions are available on the Revo Mini LibrePilot Wiki. A small wire is the easiest way to short the device. You can also power the device via USB first, and then short the pads if using a wire. Once you have the device in DFU mode and connected to your machine continue with the steps here.
sudo apt-get install dfu-util
brew install dfu-util
Refer to the Revo Mini LibrePilot wiki above. Install the Zadig USB driver and download the LibrePilot_dfu_flash.zip. Extract the zip archive and open a command prompt or PowerShell window in the directory.
Bootloader binaries for the current targets can be found here
Download revo-mini_bl.bin for this board type. With your board connected via USB and put into DFU mode, open a terminal and flash the new bootloader with the following command line:
sudo dfu-util -d 0483:df11 -c 1 -i 0 -a 0 -D revo-mini_bl.bin -s 0x08000000
Once the flashing is complete, power cycle the board and you should see a solid power LED and a rapidly blinking blue LED.
Alternatively, board-specific bootloaders can be built from source with ./waf using the –bootloader option.
Open Mission Planner and go to the Initial Setup tab. Verify that the COM port in the top right is the same as in Device Manager.
Choose “Load Custom Firmware” and browse to the respective .apj file. After the flash is complete, power cycle the device.
Congratulations! You’re now running ArduPilot on the OpenPilot Revolution Mini. You can use this same process to upgrade to newer versions of ArduPilot. Either use MP’s firmware update functionality or compile your own desired vehicle firmware from source and upload the .apj file to the board.