Crazyradio

A Crazyradio 2.0 must be used in order to use the full potential of this library.

Warning

USB permissions need to be set up in order to use the Crazyradio. Follow this guide to do so.

Because the performance of the original crazyradio firmware fails to accomplish a high data rate when multiple Crazyflies are connected, we provide a modified firmware. The firmware is only compatible with the Crazyradio 2.0.

Flashing the modified firmware

The modified firmware can be found here. Plug in your Crazyradio2.0 with the button pressed, this will put the Crazyradio into bootloader mode. The Crazyradio will then show up as a mass storage device named Crazyradio. You can then drag and drop the crazyradio2.uf2 file onto the Crazyradio, which will automatically flash the modified firmware.

Note

The modified firmware is not compatible with any other crazyflie library, such as Crazyswarm 2, Crazyswarm or the crazyflie-lib-python used by the crazyflie client. You can however build this library in legacy radio mode, which will use the official radio-usb protocol and is compatible with the Crazyradio PA and the Crazyradio 2.0.

Compile custom firmware

The modified firmware can be found at here. Instructions on building and flashing can be found here.

Be sure to have the Bitcraze Toolbelt installed, as it is required to build the firmware.

Modifications

The modifications are described in this issue. The main improvements was to not change id and channel with sendVendorSetup() but insted use the bulkTransfer() usb communication to set the id and channel, as this does not waste time on the usb communication.

This improves the communication rate from ~300Hz to ~1000Hz when multiple Crazyflies are connected.

Legacy Compilation

Execute the following command after you build the library. This will recompile the crazyradio in a way that the official radio-usb protocol is used, which is compatible with the Crazyradio PA and the Crazyradio 2.0.

colcon build --packages-select crazyradio --cmake-args -DLEGACY_RADIO=ON

If the library is compiled in legacy radio mode it is possible to use either crazyradio 2.0 or Crazyradio PA. You can then follow the Getting started with the Crazyradio 2.0 guide. Upload the latest CRPA emulation firmware (tested with V1.2)

If you are using a Crazyradio PA specific firmware, only the Crazyswarm or Crazyswarm 2 prebuilt folder needs to be used. This special firmware has the necessary broadcasting features implemented.