User:Jayneesh/sandbox

The Crazyflie is a series of unmanned aerial vehicles (UAVs) developed by the company Bitcraze. It is the most widely used and known product Bitcraze has released currently.

The Crazyflie 2.0 is an open source project, with source code and hardware design both documented and available

Features

 * Mechanical Specs:
 * Weight: 27g


 * Size (WxHxD): 92x92x29mm (motor-to-motor and including motor mount feet)


 * Radio specs:
 * 20 dBm radio amplifier tested to > 1 km range LOS with Crazyradio PA
 * Bluetooth Low Energy support with iOS and Android clients available (tested on iOS 7.1+ and Android 4.4+)
 * Radio backwards compatible with original Crazyflie Nano and Crazyradio


 * 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)
 * uUSB 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)


 * IMU:
 * 3 axis gyro (MPU-9250)
 * 3 axis accelerometer (MPU-9250)
 * 3 axis magnetometer (MPU-9250)
 * high precision pressure sensor (LPS25H)


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


 * Supported clients/controllers:


 * Win/Linux/OSX python client
 * The gamepads used by the Xbox 360 and the Playstation 3 are used as reference controllers
 * Any gamepad/controller with at least 4 analog axes
 * Android mobile device
 * iOS mobile device


 * Expansion connector:


 * 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
 * 8KB EEPROM

History
Bitcraze AB is the company that designed the Crazyflie 2.0 and its predecessor, Crazyflie 1.0. The company was founded in 2011 by the designers of the Quadcopter. The purpose of the company was to finance the development and manufacturing of a Crazyflie kit and to make it available as an open source development platform.

The work on the Crazyflie quadcopter started in late 2009 as a competence development project called Daedalus in the Swedish consulting company Epsilon AB, where all three founders where employed at the time. The work was done during their free time with component costs paid by Epsilon. The founders were three embedded engineers from Sweden and wanted to make a small flying machine that could be used indoors, since it is often very cold in Sweden. In 2010 they finally decided to send a video of the Crazyflie to Hackaday.com.

More development was done and it was decided to make a Crazyflie kit that could be manufactured and sold as an open source development platform. To finance the development and manufacturing of the kit the founders then created Bitcraze AB. At a later point the website - Bitcraze.io - was released. At that point it was the smallest quadcopter in the world.

The current team consist of Arnaud Taffanel, Björn Mauritz, Kristoffer Richardsson, Marcus Eliasson and Tobias Antonsson

Components
Sensor fusion: The outputs from all the sensors are fused together to create the best possible measurement of the platform orientation.
 * Sensors: The platform consists of a number of different sensors. All of these need signal processing and tuning to optimize performance.
 * Control theory: The platform consists of a number of different control-loops. Both for controlling roll/pitch/yaw onboard the Crazyflie, but also for controlling the platform if you use external equipment like a Kinect to fly see our blog.
 * Radio protocols: The Crazyflie communicates via radio with the host. The protocol is very basic but has the potential to be expanded with more features.
 * USB: The Crazyradio uses USB device to communication with the host real-time systems: The Crazyflie firmware is very time critical.
 * Image processing: When using for instance the Kinect to fly you need image processing to detect and calculate where the Crazyflie is.
 * Android: Using your USB OTH/HOST enabled Android device you can use the Crazyradio to fly your Crazyflie.

Languages used

 * C for the Crazyradio and Crazyflie firmware
 * Python for the Crazyflie PC API and client (they also have Ruby and C/C++ APIs maintained by the community)
 * Java for the Crazyflie Android Client

Tools
The virtual machine of the Crazyflie platform can be used as a tool to perform the following:
 * View, build and debug the Crazyflie firmware
 * View and build the Crazyradio firmware
 * View the EDA projects for the Crazyflie and the Crazyradio
 * Develop the PC host applications

Additional Features

 * Bootload firmware via the radio
 * Parameter framework for editing and reading data via the radio
 * Logging framework for logging data via the radio
 * Additional CPU cycles left over as well as flash and RAM free to use
 * JTAG interface
 * Expansion interface to attach new hardware

Applications
Besides its use by amateurs and drone enthusiasts, the Crazyflie series have been used by many research and educational institutions for research and development. The official website mentions the following organizations have used their products :
 * National Aeronautics and Space Administration (NASA)
 * Stanford University
 * Microsoft Corporation
 * Chalmers University of Technology
 * Lund University
 * IBM
 * University of Bologna
 * University of Southern California
 * Massachusetts Institute of Technology (MIT)
 * Bell Labs
 * AdaCore
 * ETH Zurich
 * Ericsson
 * University of Illinois at Urbana–Champaign
 * Polytechnique Montréal
 * McGill

Issues
Considering that the company is still in its youth and has limited staffing and resources, there have been numerous occasions where the Crazyflie has run out of stock and the developers have been unable to keep up with the rising demands of the consumer. Since it is a minor drone made for easy use, some of its parts are not very durable and hence can be easily damaged. Once that happens, the spare parts have to be re-ordered from the company, which in turn can be delayed due to multiple requests.
 * Out of stock:
 * Durability: