20th of October, 2025

Firmware update: ArduCopter 4.6.2 with brand new features

Firmware update: ArduCopter 4.6.2 with brand new features
Skybrush Team
Skybrush Team

We are proud to announce the release of version 20251017 of our outdoor firmware, which is now based on ArduCopter 4.6.2, bringing you all the latest and greatest improvements in the ArduCopter codebase. At the time of writing, 4.6.2 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.

Our custom CMCopter-4.6 fork brings brand new dedicated features for raising the level of state-of-the-art in drone shows. The most important new features are summarized below.

Pyro support #

We implemented pyro support throughout the entire Skybrush workflow from design in Skybrush Studio for Blender to actual pyro triggering done by the new firmware.

Currently we support three triggering mechanisms that can be configured by the SHOW_PYRO_TYPE custom parameter:

  • Single servo - this option lets you drive two pyro channels on a single servo channel by setting the PWM level to 85% and 100% for the two pyro channels on trigger events.

  • Multiple servos - this option lets you configure up to 8 servo channels to serve one pyro channel each (Set the SERVOx_FUNCTION parameter to 105 (Scripting 12) for those channels that you wish to use for pyro triggering).

  • Cobra - this option lets you connect a Cobra fireworks firing system to your drone through one of the serial ports (set the SERIALx_PROTOCOL parameter to 14 (Volz servo out) as a kind of hacky workaround to drive the Cobra device from this port automatically).

To further configure your pyro system, look through all SHOW_PYRO_* custom parameters on our documentation site.

Compact telemetry for scaling #

With the introduction of the new SHOW_TEL_PROFILE firmware parameter you can setup compact telemetry (value of 1) to decrease the required bandwidth of your swarm during the show. This feature becomes truly handy with swarms over several thousands of drones.

Individual addressing above the 8-bit SYSID_THISMAV limit #

The new SHOW_GROUP parameter enables you to extend the address space of MAVLink system IDs and address more than 250 drones individually with a single radio link from Skybrush Sidekick (version 1.8.0 or later). Drones 1 to 250 should be assigned to SHOW_GROUP = 0, drones 251 to 500 should be assigned to SHOW_GROUP = 1 and so on. Sidekick will transparently map from the full numerical drone ID to the combination of the MAVLink system ID and the assigned group index when sending a command to a particular drone.

Note that this addressing method requires the latest version of our firmware fork and it will not work for “standard” MAVLink drones. You also need to switch the protocol in the settings of Skybrush Sidekick to “MAVLink (Skybrush extended)” to let the system know that it is safe to use this addressing scheme.

Precision landing into docks and trays #

By setting the second least significant bit of the SHOW_OPTIONS parameter to 1 (add value of 2 to it), you can enable drones to land precisely to the point where they took off from when certain conditions are met:

  • the trajectory that the drone is supposed to fly is circular (takeoff and landing points have the same X and Y coordinates)

  • and the takeoff position of the drone is sufficiently close to the planned takeoff point (closer than 50 centimeters).

This option corrects the landing segment of the trajectory at takeoff time to ensure that the trajectory ends at the point where the drone actually took off from, not where it was supposed to take off from, compensating any differences between the ideal and the actual placement of the trays.

Note that you can only use this feature if you have stable RTK+ positions and your show trajectories are circular, i.e., all your drones are returned to their original home positions in the show file. This can be assured by using the Smart RTH operator in the professional version of Skybrush Studio for Blender.

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

Cover photo by Victor Aznabaev on Unsplash

essential