In this post I’ll be reviewing the Crazyflie 2.0 by Bitcraze AB: A nano quadcopter that’s also a flying development board. This little quad was my introduction to the world of drones and FPV. It continues to be a test bench for a lot of coding work I do, so I thought it was a fitting subject for the first article on this site.
What is it?
The Crazyflie 2.0 is an x-shaped nano quad that measures 93mm from motor to motor on the diagonal. It comes with 0715mm brushed motors that push 46mm propellers. The default configuration is 30g, including the 240mAh battery. It features an STM32F4-based flight controller with an on-board NRF51822 SoC which acts as the Rx (using either Nordic’s ESB protocol or Bluetooth 4.0), an Invensense MPU9250 combined accel/gyro/mag and an ST LPS25H barometer. It’s sold as a kit for $180.00 USD.
Its main charter is to be a development platform predominately for autonomous flight It’s being used in several research facilities across the globe to this end. However, I also find it to be a solid performer in the brushed FPV category. Plus, you can even use the MLB as a flight controller for a larger (brushless) build.
Crazyflie as a Standalone Quadcopter
The Crazyflie 2.0 is a solid all-around nano quadcopter. It’s extremely light and compact: The x-shaped flight controller PCB actually is the frame. Plastic motor holders slide right on to the arms and stay in place with friction. The plastic arms are a bit fragile in a crash, but I find that actually helps mitigate damage. I’d much rather break a cheap piece of plastic than the PCB arm itself.
The crazyflie can be flown from an iOS or Android device via Bluetooth, from a Mac/PC using the optional (but strongly recommended) CrazyradioPA and a USB controller (such as a PS3/Xbox gamepad, or just about any standard transmitter that supports a USB mode, like Spektrum, Taranis, or Devo radios), or directly from a Devo radio running deviationTx firmware and the NRF24L01 hardware modification. It runs a custom open-source firmware by default, but I’ve also written a Betaflight/Cleanflight target that’ll be included in Betaflight 3.2.
It also does pretty well as a brushed FPV quad. I used some heavy duty double sided tape to put a 25mW all in one video transmitter on top. The stock motors/props are the slightest bit underpowered for extreme acrobatics (like recovering from dives or freefalls without hitting the ground), but with an upgrade to high kV 0720mm motors (like these), some larger props, and some high discharge batteries (caution: the leads on the connector must be reversed on those batteries prior to use!) it’s a little rocket. You’ll want to use a proper transmitter for FPV flight – either a Taranis/Spektrum/Etc in USB mode, or a Walkera Devo radio with a simple hardware mod to add an NRF24 radio internally. (Also, I recently bought a 4-in-1 module for my Taranis’ module bay and you can expect I’ll be adding crazyflie support to that someday soon). If you want to get in to the code you could even build your own expansion deck with the receiver of your choice.
Crazyflie as a Development Platform
The real differentiator for the Crazyflie is the fact that it’s a fully open-source (hardware too!) development platform with a vibrant developer community. All code is available on GitHub and schematics for the board are available on the wiki. It features two rows of pins that provide access to a handful of busses and GPIOs. It’s got an on-board JTAG/SWD connector for debugging/flashing of the STM32, and additional pads to attach a JTAG/SWD breakout board to the NRF51822. That CrazyradioPA I mentioned earlier really shines when using the Crazyflie as a devkit: There’s a full python library which can be used to programmatically flash, update, and control the copter OTA from Windows/Mac/Linux.
Bitcraze also produces a series of expansion decks that are designed to plug straight in to the I/O headers to provide some additional functionality like an LED ring or data-logging to an SD card. There’s lots of innovation going on here, mostly around autonomous flight. You can see the full range of expansion decks here, but there are two I’d like to draw extra attention to.
Loco positioning deck/system
The BigQuad deck is cheap ($7.00 USD) and allows you to also use the Crazyflie as the flight controller board in a larger, brushless build. I’ve currently got one in a QAV210 frame and it’s solid. I feel this deck is worth highlighting because it opens up a different category of possibilities, and makes a great choice for people interested in firmware development for larger quads (again, this is the same board, so you get the same stuff: IO access, JTAG, Bluetooth…). All of your development will accrue towards the larger quad (and yes, I did extend the Cleanflight/Betaflight target mentioned earlier to support the BigQuad deck as a variant, if you’re more focused on just flying). The downside of this deck is that just about all of the header pins are used up by core functions (ESC PWM output, voltage/current sensor input, CPPM input, etc) which makes it impossible to find all the I/O you need for a classic FPV quad (for example you’ll only get 2 UARTs so you need to choose what’s more important to you between serial Rx/Telemetry, OSD, GPS, TBS Unify SmartAudio, etc). Also, a good portion of the other expansion decks won’t be compatible (again, depending on IO availability).
Should you buy one?
At $180 USD, if your quadcopter goals are purely piloting (FPV or not) then I would have to say no, the Crazyflie 2.0 is probably not for you. There are many cheaper RC “toy” quadcopters available under the $100 USD mark, and many ready-to-fly fully featured FPV quads around the $100 USD mark.
Developers, tinkerers? It’s an easy yes, and the $180 USD price is more than reasonable for what you’re getting. You’re going to be hard pressed to find another flight controller with an open hardware design (with access to schematics), a dual MCU design with Bluetooth 4.0 support, and easy on-board JTAG/SWD connections. On top of these unique features, the stuff Bitcraze is doing with the expansion decks and the Loco Positioning System is impressive.