quad

Public

@peterkrull

Share quad

Check access before sharing the link.

Who can open this board

Anyone can open this board. No sign-in is required.

This link opens the latest version. Copying it does not grant additional access.

Loading…

README

[!TIP] The Rust-based flight control firmware is maintained in its own repository - Holsatus Flight


Project quad

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.

Getting Rusty

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.

YouTube : Demo of wireless data plotting and responsive controls


Directory contents

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

Rust crates


License

This work is licensed under GPLv3.

Comments (1)
@bvcircuits · Jul 10, 2026

Nice project. A few issues with the schematic that you can improve: The I2C buses (SDA/SCL and SDA_eeprom/SCL_eeprom) have incorrect termination. SDA and SCL nets are connected to pull-down resistors (R4, R5), while SDA_eeprom and SCL_eeprom lack pull-ups entirely. I2C requires pull-up resistors to function; pull-downs will prevent the bus from operating. This is not recommended to leave unused opamp pins floating (U2A): this can lead to increased power consumption and noise. The same is true for digital ICs inputs (such as the CS pin on U9), in this case it is even more critical. Several ICs, including EEPROM1, U2, and U9, appear to be missing local decoupling capacitors on their power supply pins. The +3V3 power rail is supplied by two parallel regulator outputs (U1 and U5), which will cause a short if both are assembled. Use a power OR-ing solution to isolate the outputs of different power sources. In addition, L78L33 is not ideal for this application, since it has ~2V dropout voltage, so if the input is 5V and the output is 3.3V, it might be not work as intended. Hope this helps. Note: I found the issues using an automated AI schematic review tool we developed at bvcircuits.com .

Ask about this board

Sign in to BoardRepo

New here? Signing in creates your account; there is no separate sign-up.