Open Source Subnet An independent Open Source community View more
First Look

The Crazyflie Nano Quadcopter: Cheap, hackable, and thoroughly awesome

The Crazyflie is amazing not just in its design, specification, and performance but for being completely open and inviting improvement and enhancement.

Crazyflie Nano Quadcopter
Credit: Bitcraze SE

Drones are hot. The news stories on UAVs (Unmanned Aerial Vehicles) keep coming thick and fast whether it’s a disaster such as a Dutch tourist crashing a drone into Yellowstone National Park's Grand Prismatic Spring or a victory such as the RCMP using a drone to find people who’ve got lost in the woods.

Should you, yourself, wish to experiment with drones you have many choices but serious, hackable platforms tend to be pricey starting at $500+ (though, that said, the Parrot AR Drone, which retails for around $300, is the focus of lots of interesting hacking such as the SkyJack project).

There is, however, one low-cost platform that will delight everyone who wants to do some serious quadcopter hacking: The Crazyflie Nano Quadcopter developed by Bitcraze and sold in the US by Seedstudio.

Crazyflie Nano Quadcopter Bitcraze SE

Crazyflie Nano Quadcopter

This quadcopter is amazing; it’s built on a 4-layer printed circuit board on which the electronics and motors and a 170mAh Li-Po battery are directly mounted. The electronics consist of a 1mW on-board low-energy radio (giving a range of about 80m range) and a 32-bit ARM Cortex-M3 running at 72 MHz with 128KB flash and 20KB RAM. But it’s the number sensors that is surprising: On the 6-DOF version there’s a 3-axis high-performance gyro and a 3-axis accelerometer while the 10-DOF version adds a 3-axis magnetometer (compass) and a high precision altimeter. 

All of that weighs just 19g (that’s less than 0.7 ounces for the non-metric), is just 90mm (just over 3.5 inches) from motor to motor, and flies for about 7 minutes on a single charge!

Crazyradio Bitcraze SE

Crazyradio adapter

The radio system that controls the Crazyflie is called, not surprisingly, Crazyradio and is implemented as a USB dongle. This device operates at 2.4GHz and provides 125 channels with data rates of 2Mbps, 1Mbps, and 250Kbps sending and receiving data packets of up to 32 bytes.

But wait! There’s more ‘cause that’s just the hardware. There’s also the software that runs the show and that’s implemented in a virtual machine in OVA format built for Oracle’s VirtualBox. In the VM Bitcraze has assembled a complete toolkit based on Xubuntu Linux distribution and Python along with:

  • VirtualBox guest additions (for network sharing, screen resize, etc)
  • gnu-arm-none-eabi toolchain and build tools
  • Mercurial
  • TortoiseHG/Git
  • pyusb, pygame and pyqt
  • Qt4 and QtDesigner
  • PyQtGraph
  • PyCharm
  • Oracle Java JRE (for PyCharm)
  • KDE Marble built with Python-bindings
  • KiCad (built from source)
  • Eclipse with compiling/debugging/flashing configured (for use with BusBlaster)
  • gedit
  • SDCC 3.2

Cloned into the VM is the sources for all of Bitcraze’s projects which include the Crazyflie firmware, the bootloader for the Crazyflie, the pc-client application that you use to fly the Crazyflie, the Crazyradio firmware, and schematics for the Crazyradio electronics. Using this setup you can:

  • Update and build the latest versions of the Crazyflie/Crazyradio firmware
  • Easily flash the Crazyflie firmware from Eclipse using the radio
  • Debug the Crazyflie firmware via JTAG (pre-configured for BusBlaster)
  • View and modify the Crazyradio electronics design
  • Develop for Crazyflie PC client with QtDesigner for the UI

On my iMac I tried to import the OVA file into VMware Fusion 6.0.4 (it complained about the file not being properly formatted but lets you override that warning) but the resulting VM appeared to stall and only displayed a blank screen. I gave in and installed VirtualBox version  4.3.14 (4.3.16 had just been released) and got the VM running fairly easily.

Next, I plugged the Crazyradio into a spare USB port and “passed” it to the VM, did the same with an Xbox controller, fired up the pc-client. Here’s what the pc-client looks like:

Crazyflie client Bitcraze SE

Crazyflie client

Awesome! As you can see the display shows all the sensor data (except for the magnetometer and  altimeter which have yet to be integrated with the software) along with battery level, control values, and an attitude display and all in real time!

Next I configured the controller, switched on the Crazyflie, pushed the throttle and ... zoom, thud! Straight into the wall. After some experimentation I realized that the Xbox controller is very “twitchy” and even when you’re not touching them, there’s jitter in the joysticks that makes control tricky. In addition Xbox the joysticks don’t zero accurately even after trimming so you often have to make sure to hold down on the throttle after landing to prevent unintended takeoffs or finger-slashing (actually, the props aren't that dangerous). 

Even so, I got the Crazyflie to fly without crashing (too hard) and it’s a blast. Here’s what an expert can do:

I tried to get the VM running on a laptop with Windows 7 but VirtualBox 4.3.14 displayed error messages that many people believe are endemic to that VirtualBox release under Windows. I downgraded to VirtualBox 4.3.12 but that didn’t help so, for now, the Crazyflie will be careening around my office which, given its size, will either sharpen my flying skills or destroy the Crazyflie.

What’s really cool is the hackability of the entire Crazyflie system. You’ll find lots of discussion in the Crazyflie wiki about both hardware and software modifications (adding cameras and LEDs as well as redesigning the client software) and improving the firmware (to make hovering and flipping possible).

Assembling a Crazyflie Nano Quadcopter Bitcraze SE

Assembling a Crazyflie Nano Quadcopter

The Crazyflie is, as I wrote above, amazing not just in its design, specification, and performance but for being completely open and inviting improvement and enhancement. Priced at $179 for the 10-DOF version with a Crazyradio as a kit (note that this kit requires good soldering skills and is not for beginners)

The Crazyflie is simply excellent and if I could, I’d give it a Gearhead rating of 10 out of 5 … so, the Crazyflie Nano Quadcopter gets a Gearhead rating of 5 out of 5 and a gold star.

Crazyfire Nano Quadcopter: 2 for $225 on Amazon

To comment on this article and other Network World content, visit our Facebook page or our Twitter stream.
Must read: Hidden Cause of Slow Internet and how to fix it
Notice to our Readers
We're now using social media to take your comments and feedback. Learn more about this here.