Skip to the content
PCBKitNew board
2 layers63.5 × 63.5 mmMain pcb, the printed circuit board in 3D

Firmware, hardware and documentation for my autonomous quad copter project

Size
63.5 × 63.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
45
Nets
82
Pads
242
Tracks, vias
615, 141
Pours
2
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
21 Dec 2021
Updated
17 Mar 2026

Overview

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.

Main components

5

README

README.md

[!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

Related repositories

During this project, some additional tools were developed, that reside in their own repositories.

Rust crates


License

This work is licensed under GPLv3.

Parts

45
QtyValueFootprintReferences
70.1uFCapacitor_SMD:C_0805_2012MetricC1, C4, C5, C7, C9, C10, C12
4, , ,
4Conn_01x03Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalM1, M2, M3, M4
310kResistor_SMD:R_0805_2012MetricR3, R4, R5
24.7uFCapacitor_SMD:C_0805_2012MetricC3, C8
2L78L33_SOT89Package_TO_SOT_SMD:SOT-89-3U1, U5
110uFCapacitor_SMD:CP_Elec_5x4.5C2
110uFCapacitor_SMD:C_0805_2012MetricC11
11MResistor_SMD:R_0805_2012MetricR7
11uFCapacitor_SMD:C_0805_2012MetricC6
122.1kResistor_SMD:R_0805_2012MetricR1
124LC32Package_SO:TSSOP-8_4.4x3mm_P0.65mmEEPROM1
13MResistor_SMD:R_0805_2012MetricR6
147.5kResistor_SMD:R_0805_2012MetricR2
1CP2102N-Axx-xQFN20Package_DFN_QFN:MLF-20-1EP_4x4mm_P0.5mm_EP2.6x2.6mmU6
1Conn_01x02Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalBAT1
1Conn_01x04_FemaleConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ2
1Conn_01x06Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ1
1Conn_02x03_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_VerticalJ4
1Conn_02x06_Counter_ClockwiseConnector_PinHeader_2.54mm:PinHeader_2x06_P2.54mm_VerticalJ3
1ESP32-WROOM-32URF_Module:ESP32-WROOM-32UESP32-WROOM-32U1
1LM2904Package_SO:Diodes_PSOP-8U2
1LSM6DS3Package_LGA:LGA-14_3x2.5mm_P0.5mm_LayoutBorder3x4yU9
1NEO-M8NRF_GPS:ublox_NEOGPS1
1SW_PushButton_Switch_SMD:SW_SPST_B3U-1000P-BSW1
1U.FLConnector_Coaxial:U.FL_Molex_MCRF_73412-0110_VerticalAntenna
1USB_C_Receptacle_XKB_U262-16XN-4BVC11Connector_USB:USB_C_Receptacle_XKB_U262-16XN-4BVC11USB-C

The 43 most common of 45 parts.

Questions

How big is the Main pcb PCB?

It measures 63.5 × 63.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Main pcb use?

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.

Where can I download the Main pcb KiCad files?

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.

Can I use the Main pcb design in my own project?

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

More from peterkrull/quad

1
  • 2 layers50.8 × 50.8 mmMain pcb v1, the printed circuit board in 3D

    Main pcb v1

    peterkrull/quad

    Firmware, hardware and documentation for my autonomous quad copter project

    37 parts210GPL-3.0

Similar boards

  • 2 layers65.4 × 41.9 mmCompact design neo, the printed circuit board in 3D

    Compact design neo

    lpechacek/u-blox-gnss-receiver

    Document about design of a GNSS receiver

    41 parts14
  • 4 layers101.5 × 43.6 mmAlcantara v.1.0, the printed circuit board in 3D

    Alcantara v.1.0

    zenitheesc/Alcantara

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

    90 parts5
  • 2 layers30 × 20 mmGps, the printed circuit board in 3D

    Gps

    Glutte/glutt-o-matique

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

    19 parts4
  • 4 layers45 × 98 mmOfc v3, the printed circuit board in 3D

    Ofc v3

    rland93/ollyfc

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

    151 parts3MPL-2.0
  • 2 layers100 × 50 mmKiwiigo, the printed circuit board in 3D

    Kiwiigo

    spdidle/kiwiigo

    kiwi on the go

    27 parts2
  • 4 layers75 × 130 mmESP32GPSPCB, the printed circuit board in 3D

    ESP32GPSPCB

    uzzambutt/ESP32_Offline_GPS_MAPS

    just adding it here temporarily to sync hackatime with it!

    67 parts1
  • 4 layers61 × 71 mmHardware challenge, the printed circuit board in 3D

    Hardware challenge

    alienware-sa/harness_tester_challenge

    Harness Tester Challenge Leaderboard · comma.ai/jobs · Discord · X

    25 partsMIT
  • 4 layersMetuorbit, the printed circuit board in 3D

    Metuorbit

    ataberkaslan/metuorbit-pcb

    38 partsApache-2.0