- Designed to break cheapest parts first
- Arms break first on impact, only $5 for a set of 4.
- Motors cost $3.50 each and are unlikely to break.
- Replacement batteries are $5.50
- No soldering necessary
- Firmware can be flashed
- Debuggable! (with $30 expansion board)
- Fully controllable over bluetooth using simple protocol
- Expansion boards available
- Full sourcecode available at: https://github.com/bitcraze
- No soldering required, pieces snap together.
- Self-tests run at boot with indicator light for status.
- Instructions: http://wiki.bitcraze.se/projects:crazyflie2:userguide:assembly
Several expansion boards are available for purchase
- LED-ring expansion board
- Qi expansion board (conductive charging)
- Prototype expansion board
- Breakout expansion board
There is also a template for creating your own expansion boards (created with KiCad)
The breakout expansion board is the most interesting, it allows you to attach a breadboard to the crazyflie so that we can play around with adapters w/o soldering. It costs $4 (http://www.seeedstudio.com/depot/Crazyflie-20-Breakout-expansion-board-p-2108.html)
Once we get everything figured out with the breakout expansion board, we can us the prototype expansion board to solder our final product to. The prototype expansion board gives us a surface matrix to solder to and costs $4 (http://www.seeedstudio.com/depot/Crazyflie-20-Prototyping-expansion-board-p-2111.html)
There is a risk though, weiging in at 27g, our hacks could easily double the weight of the device. It's max recommended payload is 15g. In addition, it is delicately balanced for flight, any modifications we make would have to keep that balance.
The first order of business is: how do we get insight into what is going on in the drone?
The answer is, there is a debug adapter for $30 (http://www.seeedstudio.com/depot/Crazyflie-20-debug-adapter-kit-p-2114.html)
It speaks JTAG and Cortex (not sure what either of those are)
The firmware can be upgraded across the bluetooth connection. The bootloader can't be ereased remotely which (theoretically) prevents you from leaving your crazyflie in an unusable state.
Documentation on the firmware is really sparse, probably best not to touch this.
Crazyflies speak CRTP (Crazy RealTime Protocol).
Each packet has a 1byte header and can carry 29 bytes of data.
The Python API was implemented to speak this, which means it is an excellent example implementation!
All code can be found here: https://github.com/bitcraze
Disclaimer: I only know what some of this means
- Bluetooth Information
- Power: 20 dBm
- Distance: > 1km with Line of Sight
- Onboard Memory
- 8KB EEPROM
- STM32F405 (MCU: Cortex-M4)
- Used to run the main application
- 192kb SRAM
- 1Mb flash
- 169 Mhz
- nRF51822 (MCU: Cortex-M0)
- Used to control the radio and manage power
- 16kb SRAM
- 128 kb flash
- 32 Mhz
- Sensors
- 3 axis gyroscope
- 3 axis accelerometer
- 3 axis magnetometer
- Pressure Sensor (why? not sure.)
- Flight
- 7 minute flight time
- 40 minute charging time