
Esp32FC
fxrnando/esp32FC-PCB
This project is about creating a PCB board for the rtlopez esp-fc project

This project is about creating a PCB board for the rtlopez esp-fc project
Esp32FC is an open-source printed circuit board by fxrnando, from the fxrnando/esp32FC-PCB repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 105 × 86.5 mm with 27 parts on 47 nets, routed with 296 tracks and 8 vias.
Its parts include 11 connectors, 7 capacitors, 4 ICs, 3 resistors and 1 transistor. It belongs with the ESP32 boards of this library.
This repository contains the PCB designs and hardware documentation for a flight controller extension board based on the esp-fc project. The board is designed to connect an ESP32 microcontroller to a set of peripherals commonly used in unmanned aerial vehicles (UAVs) and robotics.
The project is intended to be developed using modular components commonly found in Arduino projects. This makes it easier for hobbyists to source and manipulate the parts, facilitating both assembly and PCB construction.
The project contains two PCB versions:
v1-single-sided: A one-layer PCB version, considered functional and stable, but not actively maintained. Note: This version has not yet been built or tested, as its dimensions are too large to fit inside the intended drone frame.
v2-double-sided: A two-layer PCB version, under active development, with continuous improvements and upgrades.
Microcontroller: ESP-WROOM-32 - ESP32 D1 Mini DevKit
IMU & Barometer: SPI connection to MPU9250 and BMP250 (separated modules)
Motor Outputs: 4 motor outputs, supporting PWM, Oneshot and DShot protocols
Serial Interfaces:
Serial1: USB-to-serial for configuration (through Betaflight Configurator)Serial2: Connection to ELRS receiver (CRSF protocol)Serial3: Optional GPS or other peripheral like vtx smart audio (still not implemented in version 0.2.1)Battery Monitoring: Voltage divider for battery voltage measurement
Status Indication: Piezo buzzer
Power Inputs: LiPo battery connector
Power Outputs:
The board is designed to be installed in a standard F450 X-frame drone, but may also be adapted to fit other drone models with minor modifications.
Below is a visual representation of the wiring and placement of components for the quadcopter configuration using the ESP32FC board:
Legend:
All motor ESC signal wires are routed to the motor control pins on the PCB, while power and telemetry signals are handled via separate connections to the battery and optional modules.
hardware/ PCB designs
└── v1-single-sided/ Single-layer version
└── v2-double-sided/ Dual-layer version
└── exports/ 3d images, BOM, gerber files, gcode files
└── kicad_pcb/
└── library/ Custom symbols & footprints
firmware/ Optional test or support code
└── ...
docs/ Diagrams and usage docs and files
tools/ Scripts for BOM or Gerber generationAll initial configuration for the ESP32 module should be done following the instructions provided by @rtlopez in his esp-fc repository. This includes flashing the firmware, setting up the environment, and configuring the board.
Pin remapping specific to this board design (e.g., motor outputs, SPI, UARTs, battery monitor, buzzer) should be defined according to the layout described in the firmware/ section of this repository. Additional notes and configuration tips will be included there as development progresses.
All PCB schematics and layouts are designed using KiCad 9. Gerber files are exported using the Gerber2Order plugin for optimal manufacturing compatibility. CNC toolpaths (G-code) for PCB isolation routing are generated using FlatCAM Beta 8.994. Exports include Gerbers, BOMs, and 3D renders. Contributions are welcome, especially to the v2-double-sided version.
This project is licensed under the GPLv3, following the upstream esp-fc licensing terms.
Developed and maintained by fxrnando. Based on the work of @rtlopez.
Feel free to fork, modify, or contribute improvements to the hardware. If you build one, let us know!
| Qty | Value | Footprint | References |
|---|---|---|---|
| 6 | 100n | Capacitor_THT:C_Axial_L3.8mm_D2.6mm_P7.50mm_Horizontal | C1, C2, C3, C4, C6, C7 |
| 5 | Screw_Terminal_01x02 | Connector_Wire:SolderWire-2.5sqmm_1x02_P8.8mm_D2.4mm_OD4.4mm | J7, J8, J9, J10, J11 |
| 4 | Conn_01x03_Pin | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J3, J4, J5, J6 |
| 1 | 1k | Resistor_THT:R_Axial_DIN0309_L9.0mm_D3.2mm_P2.54mm_Vertical | R1 |
| 1 | 22k | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R3 |
| 1 | 2N3904 | Package_TO_SOT_THT:TO-92_Inline_Wide | Q1 |
| 1 | 3.3k | Resistor_THT:R_Axial_DIN0309_L9.0mm_D3.2mm_P2.54mm_Vertical | R4 |
| 1 | 47u | Capacitor_THT:CP_Radial_Tantal_D7.0mm_P5.00mm | C5 |
| 1 | Buzzer | Buzzer_Beeper:Buzzer_12x9.5RM7.6 | BZ1 |
| 1 | Conn_01x04_Pin | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J2 |
| 1 | Conn_01x05_Pin | Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_Vertical | J1 |
| 1 | esp32-wemos-d1-mini | esp32-wemos-d1-mini:esp32-wemos-d1-mini | U1 |
| 1 | ~ | esp32-wemos-d1-mini:mpu9250 | U2 |
| 1 | ~ | esp32-wemos-d1-mini:bmp280 | U3 |
| 1 | ~ | esp32-wemos-d1-mini:xl4005 DC-DC stepdown module | U4 |
It measures 105 × 86.5 mm and has 2 copper layers, 1.6 mm thick.
27 parts. 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 fxrnando/esp32FC-PCB repository on GitHub, at the commit this page was made from: the board is hardware/v1-single-sided/kicad_pcb/esp32FC.kicad_pcb and its schematic hardware/v1-single-sided/kicad_pcb/esp32FC.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).

fxrnando/esp32FC-PCB
This project is about creating a PCB board for the rtlopez esp-fc project


hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!



CRImier/MyKiCad
My KiCad boards. Can't be bothered uploading individually anymore, so here you go.

pjgpetecodes/pico-streamdeck
This project is an OBS Controller using a Raspberry Pi Pico and CircuitPython.

freeDSP/freeDSP-aurora
freeDSP ADAU1452 with 8 analog input, 8 analog outputs, S/P-DIF I/O, ADAT I/O, USB Audio Class2, WiFi, Bluetooth

ugcs/ddc
Drone Show Software is software designed for drone shows, allowing flight path planning as well as control of dozens of drones simultaneously in a synchronized manner.