The Crazyflie 2.0 is a second generation nano quadcopter created by Bitcraze as part of their open-source flying development platform. Available for $180 from Seeed Studio, this developer-friendly kit seemed like the perfect way to dip my toes into the increasingly popular world of hobbyist drones. I went for the developer combo package, which included the Crazyflie kit, Crazyradio, JTAG debugger, and a couple breakout/prototyping boards for $215. I also purchased a few spare batteries to extend my flight time, a decision I definitely haven’t regretted.
When I received my Crazyflie 2.0, I was greatly impressed by the packaging. I guess I should have expected something nice given the amount I paid for it, but anything coming from China automatically starts with low expectations in my book. The pcb and parts were all organized and bagged separately and appeared to be of decent quality. Assembly was a breeze, with plenty of instructions and tips to be found on their web page, although no printed material was included in the box. After I assembled the copter, I noticed that the motor mounts (which also function as legs) felt a bit flimsy, and I was concerned that they would not withstand the abuse to which they could soon be subjected.
Getting the Crazyflie out of the box and into the air using the Android app over Bluetooth was a piece of cake. Keeping it in the air, however, wasn’t quite so easy. It took me a while to get used to the controls, and using touchscreen joysticks certainly didn’t help. Fortunately, hooking up a PS4 controller significantly improved the experience. The Android app has a number of limitations, and needs some more development work, so I quickly switched over to the PC client using the Crazyradio and PS4 controller. The PC client is more complete, and includes features such as sensor feedback, data logging, and hover mode. When placed in hover mode, the Crazyflie attempts to maintain a constant altitude using its built-in altimeter and IMU. This feature is still under development according to the Crazyflie wiki, and it shows, but it is usually better than trying to hold altitude manually. With an ever-expanding feature set, I’m sure the PC client will only get better with time.
I was very impressed with the durability of the Crazyflie, especially considering my initial misgivings. I suppose the feather-light weight of the quadcopter helps to minimize damage, but I certainly did a good number of terrible things that could have easily destroyed it. I ended up breaking off several of the legs over the course of a few days, but since each mount has two legs, it can carry on just fine without a few of them. Thankfully, a few extra motor mount/legs are included in the kit.
Because the Crazyflie was designed with developers in mind, the creators have gone to great lengths to ensure that development is accessible to everyone. They have detailed instructions on the Crazyflie wiki page on how to set up development environments for each of the components, and have even created a virtual machine image with all of the development tools pre-loaded. Better yet, they added wireless flashing on the quadcopter, so new firmware can be uploaded on the fly. These features, paired with their development “decks” (add-on breakout/prototyping expansion boards), open up endless development possibilities. Anyone who has dabbled in coding should be able to dive in and add something new.
All-in-all, the Crazyflie is an entertaining toy to play with. It may not be capable of any real work, such as carrying a camera, but it is very fun to fly around and its small size makes it possible to fly indoors. Probably the most attractive aspect of this quadcopter, however, is the development opportunities it opens up. For example, it would be an ideal platform for a flying robot swarm. Or it could be programmed to autonomously navigate using distance sensors. Plus, if you add some cool features, I’m sure the community would appreciate contributions to the source code.