GitHub
Crazyflie 2.1 (official image)
Photo: Bitcraze — the Crazyflie 2.1+ on the official product site (the current revision of the 2.1 platform)
#006

Crazyflie 2.1

Aerial · Quadcopter
Aerial quadcopter
Not gatedHarness checks: 0 clean · 0 warn · 0 err · 8 not checked

A quadcopter the size of your palm — 29 grams — where one circuit board is the frame, the flight controller and the power system at once. Bitcraze built it as a development platform you can fly indoors, and published everything about it.

Spec

Battery250 mAh LiPo (1S, 3.7 V)
Motors4× 7 mm coreless DC motors
Propellers47 mm (datasheet propeller 47-17)
SensorsBMI088 IMU, BMP388 barometer (datasheet)
Size92 × 92 × 29 mm — the datasheet measures this motor-to-motor, including the motor mount feet
Takeoff weight29 g (datasheet)
Source: Bitcraze — Crazyflie 2.1 datasheet, Rev 3 (official PDF) · linkLicense: Open-source hardware (design files and schematics published by Bitcraze)Spec file: examples/crazyflie-2-1.jsonEvery value is from the official Crazyflie 2.1 datasheet (Rev 3): takeoff weight 29 g, size 92 × 92 × 29 mm measured motor-to-motor including motor mount feet, 250 mAh LiPo, 7 mm coreless motors, 47-17 propellers, BMI088 + BMP388. The photo shows the 2.1+, the current revision of the 2.1 platform, and is credited as such.

Imported specimen

Imported specimen — source: robot_descriptions (upstream: utiasDSL/gym-pybullet-drones), license: MIT, imported 2026-10-29.

Links6 (6 with inertial data)
Joints5 (5 fixed)
Total mass (description inertials)0.027 kg
Base link mass0.027 kg
Rotors4

Parsed from the URDF at the pinned upstream commit: link/joint elements and inertial masses. Every joint in the file is fixed and the propeller links carry zero mass — a rigid-body model with no spinning-rotor dynamics. Full record: catalog/specimens/crazyflie-2-1.json (upstream URDF gym_pybullet_drones/assets/cf2p.urdf at commit 2c2470c2, via robot_descriptions 3.3.0 (Python package), module robot_descriptions.cf2_description).

An import is provenance, not a verdict: this entry stays Not gated, and no parts kit is defined for it.

GateA pass/fail test in the Gazebo simulator: the twin drives 1 m, turns 90° and stops, and the result is measured against where it really went. runs

The motion gate covers ground robots today. This class has no gate yet, so there is no verdict to show — the note below says why, in the entry's own words.

No recorded gate runs yet. This robot has no verdict until one is measured.

Not gated. The motion gate drives ground robots through a drive-and-turn maneuver in Gazebo and grades motion against ground truth; a flight gate does not exist yet, so this entry carries no verdict — its spec is validated, and that is all that is claimed.

HarnessThe robot’s wiring. The harness check adds up current on each power rail and flags wires that are too thin or rails that are overloaded. checks

Electrical checks over this robot's documented wiring. Not a simulation; the headline is counts, never a blanket pass.

Harness checks: 0 clean · 0 warn · 0 err · 8 not checked

0 checked clean · 0 with warnings · 0 with errors · 0 partial · 8 not checked · missing data: current_a for motors ×5, cable.gauge_awg ×4, cable.length_mm ×2

Check-by-check counts and missing data
CheckCheckedPartialNot checked
voltage drop002
ampacity002
logic levels000
rail budget002
connector match002

Findings: none — the inputs that could be checked raised nothing. That is not the same as everything being checked; the counts above say how much was.

Missing data — the datasheets still to hunt. A check that could not run says what it needs:

Missing inputBlocksNeeded by
current_a for motors5battery -> board, board -> motors, board rail
cable.gauge_awg4battery -> board, board -> motors
cable.length_mm2battery -> board, board -> motors
connector at both ends (connector_from / connector_to)2battery -> board, board -> motors
connection voltage (volts)1board -> motors
current_a for board1battery rail
rated output current for battery1battery rail
rated output current for board1board rail

Report: catalog/harness-reports/crazyflie-2-1.json · checked 2026-10-26 · reproduce with robotforge harness examples/crazyflie-2-1.json

Take it apart

This viewer derives a schematic take-apart straight from the spec's numbers — the same one-derivation rule as the ground kits — flat views, or in 3D with the toggle. It is a schematic of the real robot's layout, not a printable kit: robotforge cad kits cover ground robots only today. Click any part.

Loading examples/crazyflie-2-1.json…

Parts kit

The take-apart kit robotforge cad generates from this robot's spec: every part the generator defines, what it does, and the parameters worth tweaking with the values this robot's kit ships with. Each parameter carries the generator's own source label — from spec numbers come out of the spec, derived numbers are computed from them, and assumption numbers are typical values the spec does not carry.

No take-apart kit is defined for this robot yet — the kit generator builds kits for wheeled ground robots from the spec's wheel block, and this spec has no wheels.

Reproduce it

Run these from a clone of the repository. The twin, CAD kit and motion gate (urdf / cad / run-gate) cover ground robots today, so they are not listed here.

robotforge validate examples/crazyflie-2-1.json
robotforge catalog robot 6
robotforge harness examples/crazyflie-2-1.json