Skip to content

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).

Photo and 3D model

Project quad, photo from its repository
Photo:@peterkrull (opens in a new tab)GPL-3.0-onlysource file (opens in a new tab)

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.