Project quad
An open-source autonomous quadcopter built from cheap off-the-shelf components, using control theory and state estimation, with Rust-based flight firmware.
- Drone
- Open source
Suggested by Robotheca, created by @peterkrull (opens in a new tab), from github.com/peterkrull/quad (opens in a new tab). Pinned to commit c23fa9a (opens in a new tab).
- Hardware license
- GPL-3.0-only (opens in a new tab)
- Software license
- GPL-3.0-only (opens in a new tab)
- Commercial use
- Allowed
Photo and 3D model

3D preview converted from github.com/peterkrull/quad at c23fa9a, under GPL-3.0-only. View the original files from GitHub (14.5 MB) (opens in a new tab)
What it can do
Written by Robotheca from the project's documents.
- The firmware in this repository is outdated; the maintained flight control firmware now lives in the separate Holsatus Flight repository.
- Aims to be an open-source autonomous quadcopter built from cheap off-the-shelf components, using control theory and state estimation.
- Firmware is written in Rust rather than C or C++, with an Embassy-based asynchronous design.
- Has not yet been proven airworthy, since some modules were written from scratch due to embedded Rust still being immature.
Bill of materials
This repository has no parts list Robotheca can read yet.
Build guide
The guide appears here as you scroll.
Guide by @peterkrull (README.md), under GPL-3.0-only.
More guides
Wiring and electronics
Notes written by Robotheca from the project's documents.
Main parts
- Raspberry Pi Pico (RP2040) as the main microcontroller, replacing an earlier ESP32 platform.
- Custom flight controller main PCB design (KiCad files and Gerber production files).
- ICM-20948 inertial sensor, supported by a separate async no-std driver crate.
- SBUS radio receiver input, supported by a no-std SBUS parser crate.
- Dshot motor signalling via RP2040 PIO, supported by a separate driver crate.
Connections
- The flight controller is a single integrated PCB intended to replace a perfboard-based design.
- Detailed pin-level connections are only available in the KiCad schematic files, which the documents do not describe.
Schematics, boards and diagrams
- hardware/flight_controller_v1/main_pcb/main_pcb_v1.kicad_pcbKiCad
- hardware/flight_controller_v1/main_pcbGerber (PCB manufacturing)
- hardware/flight_controller_v1/main_pcb/main_pcb.kicad_pcbKiCad
- hardware/flight_controller_v1/main_pcb/main_pcb.kicad_schKiCad
- hardware/flight_controller_v1/production_filesGerber (PCB manufacturing)