Documentation

Welcome to the documentation for the Crazyflie ecosystem!

The documentation is organized in two parts:

  • An overview of the system, starting on this page. It drills further down, dividing the system into smaller pieces of hardware and functionality, providing an overview of how the parts fit togeather.
  • Repository documentation. Documentation of specifics in each Bitcraze github source repository.

System overview

There are three main areas to consider when starting to understand the infrastructure.

System overview


The Crazyflie family of devices

The Crazyflie family of devices

The Crazyflie family members are the Crazyflie 2.0 nano quadcopter, the Crazyflie 2.1 nano quadcopter, the Crazyflie Bolt quadcopter controller and the Roadrunner UWB positioning tag. They are all based on similar hardware but have a bit different flavours and properties. They run similar firmware and can be used with the other components in the Crazyflie ecosystem, such as clients and positioning systems.

Crazyradio and clients

Crazyradio and clients

The main client for controling the Crazyflie device family is the python client that runs on a PC and communicates via the Crazyradio PA USB dongle. The client uses a python library, which also is the main connection point for programs and scripts that communicate with the devices.

Swarms of Crazyflies can be controlled through the python library, the external CrazySwarm project or other software.

There are mobile phone apps for Android and IOS that connects via BLE, mainly for manual flight.

Positioning technologies

Positioning technologies

Positioning support is needed for automated or autonomous flight. There are two in-house position systems in the Crazyflie ecosystem: the Ultra Wide Band based Loco Positioning System and the Lighthouse positioning system, based on HTC Vive. It is also possible to integrate with external positioning systems, for instance Motion Capture systems.