21st of September, 2023

Firmware update: ArduCopter 4.4.0 and SpeedyBeeF4v3

Firmware update: ArduCopter 4.4.0 and SpeedyBeeF4v3
Skybrush Team
Skybrush Team

We are proud to announce the release of version 20230920 of our firmware, which is now based on ArduCopter 4.4.0, bringing you all the latest and greatest improvements in the ArduCopter codebase. At the time of writing, 4.4.0 is the latest stable release of ArduCopter and we are committed to keeping our firmware fork updated in the future with newer versions of ArduCopter.

New supported flight controllers #

Due to popular demand, we also added the Speedy Bee F4 v3 to the list of flight controllers for which we are providing pre-compiled binaries. The only catch is that this flight controller has only 1 MB of flash memory, and it is getting increasingly harder to fit the fimrware into 1 MB of flash, so we had to disable support for OSD displays in our firmware variant.

The firmware is also available as pre-compiled binaries for the Lightdynamix Pixel drone.

New features #

We have added support for I2C-based and NeoPixel RGBW LEDs in the firmware. Internally, the show files still represent colors with RGB components as this is the easiest to work with in Blender. However, if you configure an RGBW LED on the drone, the firmware will automatically convert RGB colors into RGBW, saving precious battery power if you use the white color frequently. RGBW conversion uses the naive use-min-of-R-G-and-B-as-white algorithm by default, but if you happen to know the exact color temperature of your W LED, you can use the SHOW_LED0_WTEMP parameter to fine-tune the algorithm.

Internally, the old SHOW_MAX_XY_ERR parameter was renamed to SHOW_TAKEOFF_ERR; the conversion is automatic and you do not need to do anything during the upgrade. We also introduced two new parameters: SHOW_MAX_XY_ERR and SHOW_MAX_Z_ERR, which represent trajectory tracking thresholds during the execution of a show. When the actual and the desired position of the drone differs by more than SHOW_MAX_XY_ERR meters horizontally or SHOW_MAX_Z_ERR vertically, a status flag is triggered in the status packets. Future versions of Skybrush Server and Live (to be released soon) will use this flag to tell the operator whether a drone is struggling with keeping up with the planned trajectory. The firmware also logs the horizontal and vertical drift from the desired trajectory in the SHOW log records, which is useful not only for tuning the position controller of the drone but also for testing new shows before showing them to your clients and audience.

You can download our firmware on the download page, or get its source code from Github. Make sure to work with one of the CMCopter-... branches as the master branch simply tracks ArduPilot’s master branch.

Cover photo by Victor Aznabaev on Unsplash