This git repository is a personal project of mine to develop an open-source autonomous quad copter using cheap off-the-shelf components in conjunction with control theory and state estimation. As much as possible, any auxiliary tools and documentation I produce, will also be a part of the repository.
The firmware is written in the Rust programming language. This is in contrast to most flight controllers (and embedded devices in general) which use C or C++. The reason for choosing Rust is quite simple: it is a modern language. It can guarantee many things about the validity of memory at compile time, allows for writing high-level code, that runs at low-level speeds, and feels good to write; once you become friendly with the borrow checker.
- 3dparts - 3D models used in the project as STEP and .obj files.
- docs - Documentation and learning material used in the project.
- hardware - Schematics, and PCB layouts as well as finished gerber files.
- images - Photos used in readme and some documentation.
- software - Software related to the project, including simulations, firmware, etc.
- tests - Results from test conducted during this project
During this project, some additional tools were developed, that reside in their own repositories.
- Async no-std ICM-20948 driver
- Dshot driver for RP2040 PIO
- Magnetometer calibration algorithm
- Linear multi-sensor Kalman filter
- (Forked) no-std SBUS-parser
This work is licensed under GPLv3.