This page has deprecated and moved to the new documentation framework of the main Bitcraze website. Please go to [[https://www.bitcraze.io/documentation/system/]] or [[https://www.bitcraze.io/documentation/repository/]] ====== Crazyflie ====== The documentation found here is generic and valid for all Crazyflie/Crazyradio versions. If you are looking for details on a specific product then have a look at the [[projects:index|projects]] page for links. ====== Clients ====== For piloting and using the Crazyflie there's a number of clients available. * [[doc:crazyflie:client:pycfclient:index|Crazyflie python client]]: The main graphical client used for flying, logging, bootloading and various other tasks * [[doc:crazyflie:client:cfloader:index|Crazyflie command-line bootloader]]: Used to bootload the Crazyflie from the command line * [[doc:crazyflie:client:cfheadless:index|Crazyflie headless client]]: A command line client used for flying. The client doesn't have a UI and is used for the Raspberry Pi image * [[doc:crazyflie:client:cfios:index|Crazyflie iOS client]]: The iOS client used to pilot the Crazyflie via Bluetooth LE * [[doc:crazyflie:client:cfandroid:index|Crazyflie Android client]]: The Android client used to pilot the Crazyflie via Bluetooth LE * [[doc:crazyflie:client:cfzmq:index|Crazyflie ZMQ server]]: Server which gives access to the Crazyflie though ZMQ ====== Client frameworks ====== Aside from stand-alone clients there's also sets of applications and scripts that works together for using the Crazyflie. * [[doc:crazyflie:vision:index|Vision and control]]: Collection of scripts and applications for using the Crazyflie with camera/Kinect for host ====== Development ====== ===== Getting started ===== For getting started with development and setting up the environment have a look at the following topics: * [[doc:crazyflie:dev:env:python|Python client/API development environment]]: How to set up the Python client/API development environment * [[doc:crazyflie:dev:starting|Getting started]]: A quick overview of how to use the logging/parameter frameworks and building/flashing from the VM * [[doc:crazyflie:dev:env:android|Android development environment]]: How to set up the Android development environment development environment * [[doc:crazyflie:dev:env:matlab|Using Matlab with the Crazyflie API]]: How to use Matlab from python together with the Crazyflie API * [[doc:crazyflie:dev:env:windows|Windows development environment]]: How to set up a development environment on Windows (no VM) ===== Architecture ===== The architecture part of the documentation details things that are not User guide or API. It's information that's useful to have to understand how the system and it's parts fit together. ==== System ==== Some parts of the design span multiple firmwares and doesn't below to any one part of the system. Here's a more generic overview of these designs and below there's more detailed information about the specific parts that build them up. * [[doc:crazyflie:dev:arch:logparam|Logging and parameters]]: The design of the logging and parameter framework * [[doc:crazyflie:dev:arch:communication|Communication]]: Generic information about how communication works on a higher level ==== Host side ==== * [[doc:crazyflie:dev:host:client:index|Crazyflie Python client]]: Notes on the design, config files etc. * [[doc:crazyflie:dev:host:android:index|Android client]]: Notes on the design ==== Crazyflie side ==== * [[doc:crazyflie:dev:fimware:index|Highlevel architecture]]: The highlevel architecture of the firmware * [[doc:crazyflie:dev:fimware:communication|Radio communication and ports]]: How communication is structured and how ports are used * [[doc:crazyflie:dev:fimware:sensor_to_control|From sensors to PWM]]: Highlevel details on how the sensors are acquired, the sensor fusion, PID and PWM output * [[doc:crazyflie:dev:firmware:deck_memory_format|Deck memory format]]: Deck 1-wire memory format documentation * [[doc:crazyflie:api:firmware:deck|Deck API]]: API to develop Deck drivers ===== APIs ===== For communicating with the Crazyflie there's a number of APIs available, here's a list: * [[doc:crazyflie:api:python:index|Crazyflie Python API]]: The Bitcraze API for communicating with the Crazyflie using USB or the Crazyradio * [[doc:crazyflie:api:community|Community supported APIs]]: Thanks to our great community there's a number of other APIs created for the Crazyflie * [[doc:crazyradio:api:python:index|Crazyradio Python API]]: The Bitcraze API for communicating with the Crazyradio * [[doc:crazyflie:api:fimware:logparam|Firmware logging and param]]: How to use the logging and parameter macros ===== Protocols ===== * [[doc:crazyflie:crtp:index|CRTP]]: The communication protocol used for communicating with the Crazyflie * [[doc:crazyflie:bootloader:index|Bootloader]]: Protocol for bootloading the Crazyflie * [[doc:crazyradio:usb:index|Crazyradio USB]]: The communication protocol used to communicate with the Crazyradio via USB * [[doc:crazyflie:syslink:index|Syslink]]: The communication protocol used in Crazyflie 2.0 between the two MCUs * [[doc:crazyflie:client:pycfclient:zmq|Client ZMQ back-ends]]: The Crazyflie Python client supports a number of ZMQ back-ends for controlling it from other applications ===== Analysis ===== * [[misc:investigations:thrust|PWM to thrust]]: Thrust and RPM measurements.