
Main pcb v1
peterkrull/quad
Firmware, hardware and documentation for my autonomous quad copter project

Firmware, hardware and documentation for my autonomous quad copter project
Main pcb is an open-source printed circuit board by peterkrull, from the peterkrull/quad repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 63.5 × 63.5 mm with 45 parts on 82 nets, routed with 615 tracks and 141 vias.
It is built around the ESP32-WROOM-32U, LM2904 and LSM6DS3, with the 24LC32A/P and NEO-M8N among its other parts. Its parts include 12 capacitors, 7 resistors, 5 ICs, 4 connectors and 1 switch. It belongs with the robots and motor control boards and the ESP32 boards of this library.
[!TIP] The Rust-based flight control firmware is maintained in its own repository - Holsatus Flight
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.

During this project, some additional tools were developed, that reside in their own repositories.
This work is licensed under GPLv3.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 7 | 0.1uF | Capacitor_SMD:C_0805_2012Metric | C1, C4, C5, C7, C9, C10, C12 |
| 4 | , , , | ||
| 4 | Conn_01x03 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | M1, M2, M3, M4 |
| 3 | 10k | Resistor_SMD:R_0805_2012Metric | R3, R4, R5 |
| 2 | 4.7uF | Capacitor_SMD:C_0805_2012Metric | C3, C8 |
| 2 | L78L33_SOT89 | Package_TO_SOT_SMD:SOT-89-3 | U1, U5 |
| 1 | 10uF | Capacitor_SMD:CP_Elec_5x4.5 | C2 |
| 1 | 10uF | Capacitor_SMD:C_0805_2012Metric | C11 |
| 1 | 1M | Resistor_SMD:R_0805_2012Metric | R7 |
| 1 | 1uF | Capacitor_SMD:C_0805_2012Metric | C6 |
| 1 | 22.1k | Resistor_SMD:R_0805_2012Metric | R1 |
| 1 | 24LC32 | Package_SO:TSSOP-8_4.4x3mm_P0.65mm | EEPROM1 |
| 1 | 3M | Resistor_SMD:R_0805_2012Metric | R6 |
| 1 | 47.5k | Resistor_SMD:R_0805_2012Metric | R2 |
| 1 | CP2102N-Axx-xQFN20 | Package_DFN_QFN:MLF-20-1EP_4x4mm_P0.5mm_EP2.6x2.6mm | U6 |
| 1 | Conn_01x02 | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | BAT1 |
| 1 | Conn_01x04_Female | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J2 |
| 1 | Conn_01x06 | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | J1 |
| 1 | Conn_02x03_Odd_Even | Connector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_Vertical | J4 |
| 1 | Conn_02x06_Counter_Clockwise | Connector_PinHeader_2.54mm:PinHeader_2x06_P2.54mm_Vertical | J3 |
| 1 | ESP32-WROOM-32U | RF_Module:ESP32-WROOM-32U | ESP32-WROOM-32U1 |
| 1 | LM2904 | Package_SO:Diodes_PSOP-8 | U2 |
| 1 | LSM6DS3 | Package_LGA:LGA-14_3x2.5mm_P0.5mm_LayoutBorder3x4y | U9 |
| 1 | NEO-M8N | RF_GPS:ublox_NEO | GPS1 |
| 1 | SW_Push | Button_Switch_SMD:SW_SPST_B3U-1000P-B | SW1 |
| 1 | U.FL | Connector_Coaxial:U.FL_Molex_MCRF_73412-0110_Vertical | Antenna |
| 1 | USB_C_Receptacle_XKB_U262-16XN-4BVC11 | Connector_USB:USB_C_Receptacle_XKB_U262-16XN-4BVC11 | USB-C |
The 43 most common of 45 parts.
It measures 63.5 × 63.5 mm and has 2 copper layers, 1.6 mm thick.
45 parts, built around the ESP32-WROOM-32U, LM2904, LSM6DS3 and 24LC32A/P. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the peterkrull/quad repository on GitHub, at the commit this page was made from: the board is hardware/flight_controller_v1/main_pcb/main_pcb.kicad_pcb and its schematic hardware/flight_controller_v1/main_pcb/main_pcb.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

peterkrull/quad
Firmware, hardware and documentation for my autonomous quad copter project


zenitheesc/Alcantara
Mobile Ground Station for stratospheric probe monitoring and rescue. Goes well with the Zenith Monitor app.

Glutte/glutt-o-matique
La logique de la Glutte ! C'est glutt-o-matique ! 145.725 MHz en JN36BK

rland93/ollyfc
A small rust-embedded flight computer. RTIC, FrSky protocols, and STM32F4 hardware.


uzzambutt/ESP32_Offline_GPS_MAPS
just adding it here temporarily to sync hackatime with it!

alienware-sa/harness_tester_challenge
Harness Tester Challenge Leaderboard · comma.ai/jobs · Discord · X
