- Using Skybrush
- What sort of outdoor drones is Skybrush compatible with?
- What sort of indoor drones is Skybrush compatible with?
- I am a drone manufacturer. What components do I need in an outdoor show drone to make it compatible with Skybrush?
- Can you help me in building a drone compatible with Skybrush?
- Can I bundle Skybrush with the drones that I sell?
- I have written an extension for Skybrush that is used internally within my company. Do I need to release the source code?
- I have written an extension for Skybrush that is provided to my customers as part of a customized Skybrush build. Do I need to release the source code?
- I have modified the Skybrush firmware to add a missing feature or to fix a bug. Do I need to release the source code of the feature or fix?
Frequently Asked Questions
This page occasionally discusses topics related to the GNU General Public License. While the information we provide here is accurate to the best of our knowledge, the information is provided "as is", without any warranty. If you want legal advice about the GNU GPL or other free/open source licenses please consult a lawyer.
Also, if you think we are mistaken in our interpretation of the GNU GPL or other legal issues, please let us know.
You are free to use Skybrush for any purpose, and you are also allowed to modify and distribute it, with or without your own modifications. We publish the source code of Skybrush components so you can build the software on your own. The only restriction is that if you distribute changed versions of Skybrush, you are obliged to publish your modifications under the GNU GPL as well.
No, you don’t. Show files (
.skyc files) are considered outputs and you are free to license or sell them in any way you want.
Yes, you can compile and distribute Skybrush under your own branding if you compile it from source code on your own and you also offer it according to the conditions of the GNU GPL to your own clients. You are not allowed to remove or change Skybrush’s original copyright notices or make claims that you created Skybrush. You can also not make claims that projects that others made with the official Skybrush releases were made using your version of Skybrush.
Yes, you can. Show content that you make with Skybrush is your own property and you are free to sell or license it in any way you want to. Shows performed with Skybrush and their video or audio recordings also remain yours. If you are a hardware manufacturer and you distribute Skybrush with your own hardware, you should be aware of the obligations of the GPL, namely that you have to make the source code of the version that you distribute available as well. If you did not make any modifications to Skybrush, it is enough to name Skybrush explicitly in your documentation and link to our homepage so your customers can get access to the source code. If you did make any modifications, you are obliged to publish these modifications – but in that case, it would probably be easier to ask us to include your modifications in the next version, wouldn’t it? :)
There are no programmatic limits on the number of drones that Skybrush itself can handle, provided that all other components of your operation (laptops, network routers, radio transmitters, chargers, logistics and so on) can also handle the drone count that you have in mind.
Binaries (i.e. pre-compiled versions) of Skybrush that we distribute may have built-in limitations on the number of drones that the software is willing to handle simultaneously, or other features of the software. The current limitations are always displayed when you start Skybrush Live or Skybrush Server. You can remove the limitations either by compiling Skybrush on your own from the source code, or by buying a professional licence or subscribing to an enterprise support tier, which entitles you to pre-compiled binaries without the limitations, according to contractual terms.
In practice, the limitations we build into pre-compiled versions of Skybrush will not prevent you from evaluating and testing Skybrush with smaller shows; we only ask you to purchase a professional licence, to subscribe to enterprise support or to compile the code on your own if you intend to perform larger projects.
By subscribing to our paid services and products, you are helping us financially in maintaining and developing Skybrush further, and this benefits your own business as well in the long term.
For outdoor shows, Skybrush works with practically any drone that is able to run the open-source ArduCopter firmware. We use a modified version of ArduCopter and we publish the source code of the modified firmware on Github. You need to compile and install our modified version on your own drone in order to ensure full compatibility. We publish pre-compiled versions of the firmware for the most common autopilots, so if your drone uses one of these autopilots, you can simply use our pre-compiled version instead of compiling on your own.
When working with our firmware fork, make sure to check out one of the
CMCopter-... branches with the appropriate upstream ArduPilot version number as the
master branch simply tracks ArduPilot’s
For indoor shows, Skybrush currently supports drones based on the flight controllers of the Crazyflie ecosystem, both the “stock” Crazyflie and larger drones based on the Crazyflie Bolt. We use a modified version of the Crazyflie firmware and we publish its source code on Github as well. You need to compile and install our modified version on your drone in order to ensure full compatibility. We publish pre-compiled versions of the firmware for the stock Crazyflie and several suggested Bolt-based builds.
If you wish to make your drones compatible with Skybrush, contact us to do it together to become trusted partners! If you wish to try it on your own, these are the basic rules to follow.
First and foremost, you need to use an autopilot module that can run the ArduCopter firmware. We recommend using one that has more than 1MB of flash memory, but even older Pixhawk1-compatible units would be suitable. Besides the autopilot, you need some onboard permanent storage (typically an SD card) and at least one bidirectional telemetry link to the ground in order to be able to upload show trajectories and receive telemetry data during the flight. Most show drones solve this with an onboard Wi-Fi module. The cheapest option is to use an ESP8266-based Wi-Fi telemetry board, but note that this gives you connectivity in the 2.4 GHz band only, and that one tends to be saturated in crowded urban environments, so a dual 2.4 GHz + 5 GHz module is usually a better option. You can also opt for using 4G/5G connectivity with VPN, but then you need a dedicated onboard computer to handle the 4G/5G connection and the VPN itself as the autopilot boards are not equipped for handling VPN connections.
One telemetry link is the minimum, but some countries require two independent telemetry links, so it is usually a good idea to use a secondary ISM radio link as well. SiK telemetry radios are a common choice.
If you want accurate positioning in the air, the drones should also be equipped with an RTK-capable GPS unit, and you also need an RTK base station or another data source for RTK corrections at the place of the flight. For testing purposes, it is entirely possible to fly without RTK; the formations will not be as accurate (especially in the vertical direction) and you need a bit larger safety distance between drones, though.
Finally, all drones should be equipped with a strong, bright RGBW LED light or many smaller LEDs distributed all along the body of the drone. There are multiple options to connect the LEDs; the easiest is to use three or four PWM outputs of the autopilot to drive the red, green, blue (and optionally the white) channels of the LED, but our firmware also supports driving NeoPixel (WS2812) or ProfiLED LED strips with a single serial line (which means less wiring), and there is also an option for I2C-connected LED modules.
Yes, you can. You are allowed to redistribute the pre-compiled binaries for Skybrush components, but note that these pre-compiled binaries may include limitations in the number of drones that the software is willing to handle simultaneously, or other features of the software. You may also compile Skybrush from its source code, and you are then allowed to redistribute the unrestricted binaries. However, note that we cannot provide support beyond the standard community support for your customers for free.
Contact us if you would like us to be responsible for supporting your customers in using Skybrush beyond community support as part of our trusted partner program.
No, you do not. You can keep the source code private as long as you are not distributing the extension to your customers. Providing services based on the extension is acceptable as long as the extension is not distributed. However, if you distribute the extension to your customers, you are legally required to disclose the source code to your customers, who may then decide to redistribute it on their own.
Yes, you are legally required to make the source code available to your customers under the conditions of the GNU GPL, who may then decide to redistribute the source code on their own. There are certain exceptions to this rule; for instance, if Skybrush communicates with your extension in a manner that the two codebases are running in separate processes and exchange information only using certain standard data structures, then the GNU GPL does not apply to you. Please consult a lawyer to be on the safe side.
As long as you only use the firmware internally and you do not distribute it in binary form to others, you are not required to disclose the source code. As soon as you start distributing the modified firmware in binary form, you are legally obliged to distribute the source code with it. But in either case, wouldn’t it be easier to contribute your fix or feature to the community so we can adopt it in the official Skybrush firmware and rid you of the burden of porting it forward to new Skybrush firmware releases? :)