20th of June, 2025

Skybrush supports pyro control

Skybrush supports pyro control
Skybrush Team
Skybrush Team

Our first drone show with drone-launched pyro is dated back to 2017-2018, but it was only recently that we have received enough input from our kind users to propose a first official solution for pyro support in Skybrush.

It is still in an experimental phase, but we try to do it the right way:

  • with dedicated modular design tools in Skybrush Studio for Blender (version 3.13 and up – just released),
  • with dedicated enhancements in the Skybrush compiled file format (.skyc) storing all relevant information about pyro trigger events and corresponding pyro payloads,
  • with Skybrush Studio Server, Skybrush Live and Skybrush Server capable of handling .skyc files with pyro control,
  • with a new block type to store pyro events in a compact way in Skybrush Binary files (.skyb) uploaded to the drones,
  • with new algorithms in libskybrush to decode pyro trigger events properly as part of the show execution process in our outdoor, ArduCopter-based drone firmware fork,
  • and finally, with a flexible framework to support different pyro triggering hardware on the drones.

In this blog post we go through the full life cycle of pyro handling from design to execution using the Skybrush framework to give an introduction on usage.

Pyro control design in Skybrush #

Pyro control in our framework currently consists of unique pyro trigger events that can occur on a given pyro channel of a given drone at a given time, assigned with an optional pyro payload descriptor. Multiple pyro channels are supported on every drone, and only a single event can be triggered on each channel. The pyro payload descriptor contains a descriptive name field (that can be e.g. a VDL string such as in Finale 3D, or any format you like) and an obligatory prefire time value that lets you design your events exactly at the moment when they should appear, because Skybrush will automatically enforce earlier triggering with this parameter to compensate for delays and reaction/ignition times. Other payload parameters can and might be added later as conveninent, if such requests arrive from the community.

To add such pyro trigger events to the drone show timeline, one can use the new Pyro tab of Skybrush Studio for Blender, available from version 3.13.0.

Exporting pyro events into drone show files #

Exporting pyro events to different show formats is available only with paid Skybrush Studio licenses. We currently support drone-launched pyro with the following show export formats:

Skybrush compiled format (.skyc) #

Our standard .skyc drone show format has been extended to contain structured pyro control information with all details necessary for pyro visualizations and for transmitting this information to the drones. If you have a paid license and you need to export pyro event triggers into your .skyc file, you simply need to check the “Export pyro” checkbox on the export pop-up dialog when you select your target .skyc file path.

Finale 3D (.vviz) #

Our VVIZ exporter available as part of the Pro X package also exports pyro information accurately, treating payload name descriptors as VDL strings to encode many details of a pyro payload conveniently. For further details see the new Skybrush section in Finale 3D’s own documentation.

Depence (.ddsf) #

Our DDSF exporter as part of the Pro X package also exports pyro information accurately to be used with Depence.

Transmitting pyro control data to drones #

The professional (paid) version of Skybrush Server handles pyro data upload to the drones automatically since version 2.28.0 as part of the standard show upload process. Once you have a .skyc file with pyro data included and also obtained a pro license, you do not need to give extra attention to pyro at this point.

Configuring and testing pyro modules attached to drones #

The CMCopter-4.6 branch of the ArduCopter-based Skybrush firmware has been updated to handle pyro event triggering. See the description of new SHOW_PYRO_* parameters for setting up your pyro devices properly. There are currently two pyro device types supported: a debug device and a servo-based device. If you wish to have support for your other device type, please get in contact with us.

Skybrush Live supports pyro testing and pyro upload since version 2.10.0 (currently only available as a beta release for initial testing of new features). To test your pyro module, double click on your drone, select the Tests tab on the Properties dialog and press the Execute pyro test button. Use with care, obviously, only confirm when triggering your pyro is safe.

Safety of pyro handling #

We have implemented several ways to ensure that pyro is triggered only when all circumstances are safe. This includes the following procedures.

Manual pyro authorization #

TODO(ntamas): describe pyro hw switch and pyro auth flag

Automatic real-time pyro safety checking #

Pyro triggering has automatic real-time safety checking in the firmware itself. Pyros are allowed to be triggered by Skybrush if and only if:

  • The show is currently performing (implies that we are in show mode)
  • Motors are running (implies that the crash check has not triggered)
  • The drone is currently airborne, has absolute position information, and the GPS is not glitching
  • Geofence is not breached
  • The drone is not in EKF or battery failsafe
  • The drone is not drifting from the expected position during the show
  • The altitude is higher than the minimum altitude for firing pyrotechnics

Note that these circumstances do not apply for pyro tests initiated from Live, only to automated pyro triggering encoded in the show files.

Providing feedback #

As always, we encourage you to give us as much feedback as possible while using our software. This is the best way to ensure that possible bugs get corrected in the shortest time and features of interest get included in next versions.

You can provide feedback on our Discord server or in the issue trackers of all our repositories on GitHub.

If you like the open-core Skybrush Suite, you use it and wish to continue using it, please consider a one-time or recurring donation, or visit our webshop to purchase professional licenses. We will use your support to keep Skybrush alive in the future with new and new features that best suit your needs.

Thank you!

essential