Flight Core Firmware - PX4 Flight Controller Firmware
Table of contents
Summary
The PX4 firmware discussed here applies to both Flight Core and VOXL Flight. We are currently shipping a minor fork of PX4 v1.14.0
ArduPilot / ArduCopter support is progressing through the ArduPilot community, more details below.
Note, Flight Core v2 firmware can be found here
PX4 v1.14
Starting with PX4 1.14, our flight core and VOXL2-SDSP PX4 firmwares and now built from the same repo. The flight Core V1 firmware can be found here: http://voxl-packages.modalai.com/dists/fc-v1/
The SDK-1.1 folder contains the PX4 firmware that’s tested with SDK-1.1 running on VOXL.
Make sure you upgrade your flight core firmware with the file included in the voxl_SDK_1.1.0.tar.gz SDK installer. The SDK instaLL script will only flash VOXL, you will beed to follow the instructions below to flash the flight core.
PX4 v1.11
PX4 v1.11.3 has been tested and is included in Flight Core and VOXL Flight production releases starting 2022-01-27 using a slightly modified fork as v1.11.3-0.2.3
.
Firmware Files - PX4 Stable Release
With PX4 v1.11, you can update Flight Core or VOXL Flight using QGroundControl by selecting the current stable release.
Firmware Files - ModalAI Builds
We’re constantly testing new stuff, and we’ve taken v1.11 and added some tweaks (see changelog below). You can get the ModalAI v1.11 files here:
Update Procedure
The firmware update procedure can be found here
v1.11 Change Log
The goal is to have PX4 mainline support for Flight Core, although occasionally fixes or enhancements are introduced and released by ModalAI faster than PX4 releases.
ModalAI’s v1.11 development branch is found here
Version | Type | Change Description | Commit | Status |
---|---|---|---|---|
FCv1 - v1.11.3-0.2.3 | ModalAI Enhancement | - Add alternate GPS LED i2c address - Add support for: - GPS-to-VIO fusion - Automatic Data Fusion Selection - VIO airspaces - FCv2 Board Support added - Mainline Cherry Pick: icm42688p: properly disable anti-aliasing and notch filter info here | Tag | Released |
v1.11.3-0.0.5 | ModalAI Enhancement | - Integrate v1.11.3 patches from PX4 mainline | Tag | Released |
v1.11.2-0.0.4 | ModalAI Enhancement | - Add support for MDK-M0051-1-00 test device - Add modalai system command for factory testing | Tag | |
v1.11.2-0.0.3 | ModalAI Enhancement | - Make ICM42688 default - Add support for M0051 | Tag | |
v1.11.2-0.0.2 | ModalAI Enhancement | - Allow EKF to init without VIO | Tag | |
v1.11.2-0.0.1 | ModalAI Enhancement | - UART ESC Support - EKF init w/o mag | Tag |
PX4 v1.10
When using PX4 v1.10, it is recommended that you use the ModalAI v1.10 build, which fixes some bugs present in the PX4 v1.10 release affecting this hardware (see changelog below for details).
Firmware Files
You can get the v1.10 files here:
- Update using QGroundControl(git hash: 782a54bfd6ec2bd0a82cd43ce8c5dc9cd3de6ff0)
- Update using Binary (not common, e.g. SEGGER)(git hash: 782a54bfd6ec2bd0a82cd43ce8c5dc9cd3de6ff0)
Update Procedure
The firmware update procedure can be found here
v1.10 Change Log
The goal is to have PX4 mainline support for Flight Core, although occasionally fixes or enhancements are introduced and released by ModalAI faster than PX4 releases.
NOTE: in v1.10, to find the version, run ver all
from nsh and find the fw-hash
Version (fw-hash) | Type | Change Description | PR / Commit | Status |
---|---|---|---|---|
Latest, 782a54bf | Enchancement | Add support for VOXL PM v3 (INA231) | 782a54bf | Merged into Master, likely in v1.12 or v1.11 maintenance |
Bug Fix | Fix for timer config bug resulting in chan5 output being overwritten | 65c2b4d7 | Fixed in ModalAI v1.10, Mainlined in v1.11 | |
Enchancement | Support velocity odometry with MAV_FRAM_LOCAL_FRD | 1cbbfffc | stale - no longer required by voxl-vision-px4 | |
Enchancement | Allow EKF2 to intialize without mag if VIO valid | 2d7ff3c6 | Not mainlined, PR rejected | |
Enchancement | HW detection of Flight Core vs VOXL Flight | 589c4a46 and 0f6ffc53 | Fixed in ModalAI v1.10, Mainlined in v1.11 | |
Bug Fix | Fixes issue with Flight Core HW rev detection | 589c4a46 | Fixed in ModalAI v1.10, Mainlined in v1.11 | |
Bug Fix | Fix for SD card writing failures | ea1e5b72 and dbd065ab and fd0a00f9 | Fixed in ModalAI v1.10, Mainlined in v1.11 | |
Bug Fix | Fix for timer config bug resulting in chan5 output being overwritten | 65c2b4d7 | Fixed in ModalAI v1.10, Mainlined in v1.11 | |
Enchancmeent | Add Support for VOXL-Flight | 5ffab958 | Fixed in ModalAI v1.10, Mainlined in v1.11 | |
Bug Fix | rotate default orientation 180° yaw | dc816a5c | Fixed in ModalAI v1.10, Mainlined in v1.11 | |
Bug Fix | Various stack size and defconfig bug fixes | a37c028a and 5dd4c0dc and ff994390 | Fixed in ModalAI v1.10, Mainlined in v1.11 | |
PX4 Release | PX4 v1.10.0 production release | 4f6faac2 |
How to Build the Firwmare
This example uses the PX4 mainline repository.
git clone https://github.com/PX4/Firmware.git
cd Firmware
make modalai_fc-v1
Flashing Using SEGGER JLink
You can use JFlash
with a .jlink
file with command like so, where deadbeef.bin
is the name of the binary file:
loadbin modalai_fc-v1.bin,0x08008000
ArduPilot
ModalAI’s Flight Core is integrated into ArduPilot by the great ArduPilot community. The engineers at ModalAI do not have experience with ArduPilot, so can not offer significant support. It is recommended to find support through the normal ArduPilot channels (boards & Discord). Hopefully ModalAI will gain experience with ArduPilot in the future.
ArduPilot pull request for ModalAI Flight Core v1 base hardware support Github
ArduPilot pull request for VOXL-compatible Visual Inertial Odometry support Github