Crazyflie: Where Innovation Takes Flight

The Crazyflie 2.1 is a versatile, open-source flying development platform that weighs just 27 grams and fits comfortably in the palm of your hand

The Crazyflie 2.1 excels in flight and features both low-latency, long-range radio and Bluetooth LE. This versatility allows you to use a mobile app for control or, when paired with the Crazyradio PA, to connect to your computer for data display and game controller piloting

The latest iteration of the successful Crazyflie platform boasts enhanced flight performance, increased durability, and improved radio capabilities. Supported by a robust ecosystem of software and deck expansions, it's perfectly suited for educational, research, and swarm robotics applications

All projects are open source and hosted on GitHub, developed in collaboration with a community of talented individuals. This ongoing partnership helps evolve the ecosystem and introduce new functionalities. The commitment to transparency, complete freedom of modification, and avoiding lock-in with proprietary APIs ensures flexibility and innovation

Specification

IMU specification

  • 3 axis accelerometer / gyroscope (BMI088)
  • High precision pressure sensor (BMP388)

Features

  • Durable design
  • Easy to assemble and no soldering required
  • Supports expansion decks with automatic detection
  • Supports flying from iOS and Android with Bluetooth LE, as well as from Windows/Mac OSX/Linux with the Crazyradio or Crazyradio PA
  • Tested to further than 1 km radio range line-of-sight (LOS) with the Crazyradio PA
  • Wireless firmware updates
  • On-board charging via standard uUSB
  • Dual-MCU architecture with dedicated radio/power management SoC for advanced applications
  • Real-time logging, graphing and variable setting in addition to full use of expansion decks when using a Crazyradio or Crazyradio PA and a computer

Mechanical specifications

  • Takeoff weight: 27g
  • Size (WxHxD): 92x92x29mm (motor-to-motor and including motor mount feet)

Onboard microcontrollers

  • STM32F405 main application MCU (Cortex-M4, 168MHz, 192kb SRAM, 1Mb flash)
  • nRF51822 radio and power management MCU (Cortex-M0, 32Mhz, 16kb SRAM, 128kb flash)
  • micro-USB connector
  • On-board LiPo charger with 100mA, 500mA and 980mA modes available
  • Full speed USB device interface
  • Partial USB OTG capability (USB OTG present but no 5V output)
  • 8KB EEPROM

Flight specifications

  • Flight time with stock battery: 7 minutes
  • Charging time with stock battery: 40 minutes
  • Max recommended payload weight: 15 g

Radio specification

  • 2.4GHz ISM band radio
  • Increased range with 20 dBm radio amplifier, tested to > 1 km range LOS with Crazyradio PA (environmentally dependent)
  • Bluetooth Low Energy support with iOS and Android clients available
  • Dual antenna support with both on board chip antenna and U.FL connector

Usage

The Crazyflie 2.1 is designed for maximum flexibility. This includes integrating numerous features and developing firmware that is easily modifiable. Beyond its standard functionality, the Crazyflie 2.1 features a versatile expansion interface. This allows for the attachment of various expansion decks on both the top and bottom of the device. Through this interface, users can access multiple buses including UART, I2C, and SPI, as well as PWM, analog in/out, and GPIO

Updating

We continuously update the firmware, software, and documentation to explore creative uses of the system. New expansion decks are also designed regularly, enhancing functionality and expanding the Crazyflie ecosystem. The platform supports effortless wireless firmware updates via radio and Bluetooth LE, ensuring that new releases are easy to implement

Getting started

Visit the Crazyflie 2.X Getting Started tutorial to assemble your Crazyflie, update its firmware, and begin flying with the clients. Additionally, explore our System Overview to gain a deeper understanding of the Crazyflie ecosystem, including positioning systems, clients, and the Crazyflie itself along with its expansion decks

Development

Expansion connector specification

The expansion connector allows for the attachment of decks that enhance functionality. Users can opt for official Bitcraze decks or design their own custom versions using our KiCad template

The expansion connector includes the following:

  • VCC 3.0V (max 100mA)
  • GND
  • VCOM (unregulated VBAT or VUSB, max 1A)
  • VUSB (both for input and output)
  • I2C (400kHz)
  • SPI
  • 2 x UART
  • 4 x GPIO/CS for SPI
  • 1-wire bus for expansion identification
  • 2 x GPIO connected to nRF51

Please note the following:

  • The Crazyflie 2.1 is a 3.0V system, meaning a high output will be 3.0V but still compatible with a 3.3V system.
  • All IO pins are 5V tolerant except PA5 and the NRF51 pins
  • The NRF51 pins can be multiplexed with any of the available NRF51 peripheral.
  • The STM32F405RG pins can be multiplexed with more functions.




We believe that a development platform should offer more than just accessible code. Therefore, our software, firmware, and utilities include features like logging, real-time parameter setting, and wireless firmware updates. The entire development environment for most subsystems is accessible via a virtual machine, eliminating the need for installing any toolchains to begin development. This virtual machine is also fully capable for flying operations.

After making modifications, you can simply flash the new firmware over the radio to update your device. For those interested in advanced development, a development adapter kit is available, facilitating an easy JTAG/SWD connection to both MCUs on the Crazyflie 2.1

Open Source

The Crazyflie 2.1 is a fully open-source project, with both source code and hardware schematics thoroughly documented and freely available. All development tools, with the exception of iOS, are open-source, allowing us to redistribute them easily to our users. Beyond the core firmware and software, the project benefits from a variety of community-supported APIs written in Java, Ruby, C/C++, C#, and JavaScript

Change the code

Whether you prefer Python, Ruby, C#, C/C++, JavaScript, Node.JS, Cylon.JS, or Java, there are ample opportunities to engage with the code. Our primary client API is in Python, but you can find numerous other client-side implementations on GitHub. You can also dive into mobile development by cloning our iOS repository to work with ObjectiveC/Swift.

For those interested in embedded systems, the STM32F405 processor provides substantial power for conducting experiments, making improvements, and integrating new features. Additionally, our expansion decks offer the freedom to experiment with, prototype, and design custom hardware

Check out what clients say

“In our lab, we love to work with the Crazyflie ecosystem because its open-source platform allows us to write new flight controllers. We have used them to develop modular vehicles, blimps, catenary robots, and jumping robots.”

-David Saldaña, Assistant Professor at Lehigh University

“The Crazyflie is easily obtainable, safe, and (we can certify ourselves) very robust. Moreover, since it is open-source and fully programmable, we were able to easily modify the Crazyflie to fit our needs.”

-Brandon Araki, researcher at MIT

“The Crazyflie is a great platform for reearch because of its openness and extensibility; additionally, the size allows us to test algorithms on a swarm of robots even in space-limited indoor environments.”

-Wolfgang Hoenig, researcher at TU Berlin

“We use the Crazyflie platform to evaluate our algorithms because the hardware is robust and the user community has helped make firmware available on which we can base our own systems”

-Ellen Cappo, researcher at Carnegie Mellon University

Used by

Clicky