Omnibus F4 Pro (on-board current sensor) and Omnibus F4 AIO (no sensor onboard)¶
Support for this board is available with Copter-3.6.0 and Plane-3.9.0 (and higher)
Due to flash memory limitations, this board does not include all ArduPilot features. See Firmware Limitations for details.
- STM32F405 ARM
- InvenSense MPU6000 IMU (accel, gyro)
- BMP280 barometer
- Voltage and current (only Pro version) sensors
- 6 or 8 PWM (Pro only) outputs
- RC input PWM/PPM, SBUS
- I2C port for external compass
- USB port
- Built-in OSD
There have been many versions of this board and many clones. Best results, with no feature/performance impacts will be obtained boards which have solder jumpers for selecting “SBUS” or “PPM” RX input. This should be soldered to the “PPM” selection for ALL reciever types. ArduPilot will automatically detect and accept any supported format (SBUS/PPM/DSM/etc.) on the RX input with this jumper selection. In addition, be sure the board has a barometer, SD Card slot, and Current sense circuit.
GPS is attached to UART6 (SERIAL3)
Telem is available at UART 1 (SERIAL1)
The shared USART3/I2C pins are ,by default, enabled only for I2C operation to allow external compass or digital airspeed sensor attachment.If at least one device attached externally, does not have pull-up resistors, then 2K ohm pull-up resistors will need to be added externally.
However, by setting BRD_ALT_CONFIG to 1, the external I2C connection is disabled, so that USART3 may be used as a normal UART. It is SERIAL2 in the parameters listings.
The board’s RSSI pad can be used as an analog RSSI input. Use pin “0” as the RSSI input pin in Mission Planner. Mission planner default values for battery voltage and current scales are provided, however since many variations of this board are available, these may needed to be manually calibrated.
The RSSI pad can be re-purposed to be the TX output of UART4 instead of analog RSSI input, if the BRD_ALT_CONFIG param is set to 2 or 3. And if BRD_ALT_CONFIG param is set to 3, then PWM output pin 5 becomes instead, the RX pin of UART4 to provide a full addition UART. Also, if BRD_ALT_CONFIG param is set to 4, then both UART3 and UART4 are active and available.
If you want to power the servos from the ESC BEC via the board’s center rail for the servo outputs, then you should remove the diode as per here: https://www.rcgroups.com/forums/showthread.php?2874687, otherwise, independently power the servos directly from the ESC or independent BEC with no connection to the board’s servo output center rail. The VCC pin next to the RX in pin is a 5V output only and not affected by this modification.
Video power provided on the video input and output center rail, is provide through an on-board noise filter. Either ~4.5V (labeled 5V) or VBAT-0.5V (VBAT) can be selected by solder pads on the back of the board.
PPM solder pad/resistor should be soldered and “S-BUS” resistor/solder pad removed Otherwise, UART1 or UART6 or RCIN will not work.
The Pro version has 6 PWM outputs available on thru-hole pads, and two additional (PWM7 & PWM8) on the rear, via solder pads above the “MOTO” silk screen printing. The AIO version only provides 6 PWM outputs via thru-hole pads.
Default UART order¶
- SERIAL0 = console = USB
- SERIAL1 = Telemetry1 = USART1
- SERIAL2 = not assigned (Telemetry2 = USART3 if BRD_ALT_CONFIG =1)
- SERIAL3 = GPS1 = USART6
- SERIAL4 = GPS2 = UART4 (if BRD_ALT_CONFIG = 2 or 3)
- SERIAL5 = not assigned
- SERIAL6 = not assigned
Serial protocols can be adjusted to personal preferences.
All motor/servo outputs are Dshot and PWM capable. However, mixing Dshot and normal PWM operation for outputs is restricted into groups, ie. enabling Dshot for an output in a group requires that ALL outputs in that group be configured and used as Dshot, rather than PWM outputs. The output groups that must be the same (PWM rate or Dshot, when configured as a normal servo/motor output) are: 1/2/6, 3/4/5, 7/8(Pro only).
Usually these boards are sold pre-flashed with betaflight / INav firwares and require both firmware and bootloader to be updated if you want to use ArduPilot, as an ArduPilot-compatible bootloader is required for subsequent ArduPilot firmware-upgrade handling.
Firmware files can be found here. Use omnibusf4pro firmware for the OmnibusF4Pro boards and omnibusf4 firmware for the AIO versions. The pro version will be used in the following examples. 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 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 the DFU jumper on your board. On most board flavours this is a little push button thas needs to be pressed while connecting your board to your PC via USB:
sudo apt-get install dfu-util
brew install dfu-util
Download the dfu-util to your local system, e.g., under D:dfu-util.
Rename it to dfu-util.exe
Append the path of the dfu-util.exe to the system environment variable Path: “My Computer” > “Properties” > “Advanced” > “Environment Variables” > “Path”. Please note that paths in the variable Path are seperated by semicolon ;. This will allow dfu-util to be executed globally in command prompt.
Instead of using dfu-util, you could flash bootloader with betaflight. Instructions are detailled here : https://github.com/betaflight/betaflight/wiki/Installing-Betaflight If you board is not recognize as a com port under windows, you have to download and install zadig : http://zadig.akeo.ie/
Bootloader binaries for the current targets can be found here.
Download omnibusf4pro_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 omnibusf4pro_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 your omnibusF4. 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.
To build your own firmware, see the instructions on setting up a build envrionment and compiling the source code: Building the Code