Skip to the content
6 layers158 × 158 mmFpv drone, the printed circuit board in 3D

ESP32-S3 development board with onboard BME280 (temperature, humidity, pressure) and LSM6DS3 (6-axis IMU) sensors. This repo contains the designs, ESP-IDF firmware, and a Python plotter for visualization.

Size
158 × 158 mm
Copper layers
6
Thickness
1.6 mm
Parts
158
Nets
286
Pads
874
Tracks, vias
962, 227
Pours
42
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
18 Mar 2026
Updated
12 May 2026

Overview

Fpv drone is an open-source printed circuit board by zeodotdev, from the zeodotdev/zeo-boards repository on GitHub. It is a 6-layer board of 158 × 158 mm with 158 parts on 286 nets, routed with 962 tracks and 227 vias.

It is built around the AT7456E, ESP8266EX and BMP280, with the W25Q128JVSIQ, AMS1117-3.3 and BMI088 among its other parts. Its parts include 60 capacitors, 25 transistors, 17 ICs, 15 resistors and 10 connectors. It belongs with the robots and motor control boards and the ESP8266 and STM32 boards of this library.

Main components

10

README

demo_board/README.md

Zeo Demo Board

ZeoDevBoard

ESP32-S3 development board with onboard BME280 (temperature, humidity, pressure) and LSM6DS3 (6-axis IMU) sensors. This repo contains the designs, ESP-IDF firmware, and a Python plotter for visualization.

Hardware

  • MCU: ESP32-S3-WROOM-1 (Wi-Fi + BLE)
  • Sensors: BME280 (I2C 0x76), LSM6DS3 (I2C 0x6A) on shared bus (GPIO8 SDA, GPIO9 SCL)
  • Power: USB-C with MCP73871 LiPo charger + AP2112K 3.3V LDO — runs from USB or battery
  • Interface: USB-C for flashing/debug, BOOT + RESET buttons

Firmware

Streams sensor data over Wi-Fi as UDP broadcast JSON packets on port 12345.

  • IMU: 100 Hz — accelerometer (m/s²) + gyroscope (deg/s)
  • BME280: 1 Hz — temperature (°C), humidity (%RH), pressure (hPa)

Prerequisites

Build and Flash

bash
# Source ESP-IDF environment
source ~/esp/esp-idf/export.sh

# Enter firmware directory
cd firmware

# Set target and configure Wi-Fi credentials
idf.py set-target esp32s3
idf.py menuconfig  # Navigate to "ZeoDevBoard Configuration" → set SSID and password

# Build
idf.py build

# Flash (use esptool.py directly if idf.py has port permission issues)
esptool.py --chip esp32s3 -p /dev/ttyACM0 -b 460800 \
  --before default_reset --after hard_reset write_flash \
  --flash_mode dio --flash_size 2MB --flash_freq 80m \
  0x0 build/bootloader/bootloader.bin \
  0x8000 build/partition_table/partition-table.bin \
  0x10000 build/zeodevboard.bin

# Monitor serial output (optional)
idf.py -p /dev/ttyACM0 monitor

Wireless Operation

Once flahsed, the board can run on battery power.

Plotter

Displays 6 live panels: Accelerometer XYZ, Gyroscope XYZ, Temperature, Humidity, Pressure, and a status panel with packet counts.

Run

bash
cd plotter
python3 -m venv venv
./venv/bin/pip install -r requirements.txt
./venv/bin/python plotter.py

The plotter listens on UDP port 12345. Make sure your machine is on the same network as the board.

UDP Packet Format

IMU (100 Hz):

json
{"type":"imu","ts":1234,"ax":0.12,"ay":-0.05,"az":-9.81,"gx":1.2,"gy":-0.3,"gz":0.1}

Environment (1 Hz):

json
{"type":"env","ts":1234,"temp":25.3,"hum":45.2,"press":1013.4}

ts is milliseconds since boot.

Project Structure

text
demo_board/
├── firmware/
│   ├── CMakeLists.txt
│   ├── sdkconfig.defaults
│   └── main/
│       ├── CMakeLists.txt
│       ├── Kconfig.projbuild      # Wi-Fi SSID/password config
│       ├── main.c                 # App entry, FreeRTOS tasks
│       ├── wifi.c / wifi.h        # Wi-Fi STA connection
│       ├── sensors.c / sensors.h  # BME280 + LSM6DS3 I2C drivers
│       └── udp_sender.c / udp_sender.h  # UDP broadcast
├── plotter/
│   ├── plotter.py
│   └── requirements.txt
├── ZeoDevBoard.kicad_sch          # Root schematic
├── mcu.kicad_sch                  # MCU sheet
├── power_supply.kicad_sch         # Power supply sheet
├── sensors.kicad_sch              # Sensors sheet
├── ZeoDevBoard.kicad_pcb          # PCB layout
└── README.md

Parts

158
QtyValueFootprintReferences
32100nFCapacitor_SMD:C_0402_1005MetricC13, C14, C15, C19, C20, C21, C22, C23, C24, C25, C28, C31, C32, C33, C34, C38 +16
24AON7418AON7418:PDFN-8_L3.3-W3.3-P0.65-BLQ1, Q2, Q10, Q11, Q12, Q13, Q14, Q15, Q16, Q17, Q18, Q19, Q20, Q21, Q22, Q23 +8
12100nFCapacitor_SMD:C_0603_1608MetricC35, C36, C37, C40, C41, C42, C45, C46, C47, C50, C51, C52
6, , , , ,
510kResistor_SMD:R_0402_1005MetricR3, R7, R8, R9, R10
310µFCapacitor_SMD:C_0805_2012MetricC3, C11, C58
3MOT3Connector_Wire:SolderWire-0.75sqmm_1x03_P7mm_D1.25mm_OD3.5mmJ8, J9, J10
2100kResistor_SMD:R_0402_1005MetricR15, R16
210pFCapacitor_SMD:C_0402_1005MetricC16, C17
21µFCapacitor_SMD:C_0402_1005MetricC10, C18
22.2µFCapacitor_SMD:C_0603_1608MetricC29, C30
220pFCapacitor_SMD:C_0402_1005MetricC26, C27
222Resistor_SMD:R_0402_1005MetricR13, R14
222µFCapacitor_SMD:C_0805_2012MetricC9, C12
24.7kResistor_SMD:R_0402_1005MetricR17, R18
25.1kResistor_SMD:R_0402_1005MetricR11, R12
2DNPCapacitor_SMD:C_0402_1005MetricC1, C60
11.5nHInductor_SMD:L_0402_1005MetricL1
112kResistor_SMD:R_0402_1005MetricR6
126MHzCrystal:Crystal_SMD_2012-2Pin_2.0x1.2mmY2
127MHzCrystal:Crystal_SMD_3215-2Pin_3.2x1.5mmY3
14.7µHInductor_SMD:L_6.3x6.3_H3L2
1470µF/25VCapacitor_SMD:C_Elec_6.3x5.8C2
173.2kResistor_SMD:R_0402_1005MetricR2
18MHzCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY4
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U4
1AT7456EAT7456E:TSSOP-28_L9.7-W4.4-P0.65-LS6.4-BL-EP-2U7
1BATTConnector_AMASS:AMASS_XT30UPB-M_1x02_P5.0mm_VerticalJ2
1BMI088Package_LGA:Bosch_LGA-16_4.5x3mm_P0.5mm_LayoutBorder7x1y_ClockwisePinNumberingU17
1BMP280Package_LGA:Bosch_LGA-8_2x2.5mm_P0.65mm_ClockwisePinNumberingU18
1BSS138Package_TO_SOT_SMD:SOT-23Q26
1BUZZERBuzzer_Beeper:MagneticBuzzer_Kobitone_254-EMB84Q-ROJ11
1CAMConnector_JST:JST_SH_SM03B-SRSS-TB_1x03-1MP_P1.00mm_HorizontalJ4
1ESP8266EXPackage_DFN_QFN:QFN-32-1EP_5x5mm_P0.5mm_EP3.45x3.45mmU6
1FD6288_ESC1FD6288T:TSSOP-20_L6.5-W4.4-P0.65-LS6.4-BLU10
1FD6288_ESC2FD6288T:TSSOP-20_L6.5-W4.4-P0.65-LS6.4-BLU14
1FD6288_ESC3FD6288T:TSSOP-20_L6.5-W4.4-P0.65-LS6.4-BLU12
1FD6288_ESC4FD6288T:TSSOP-20_L6.5-W4.4-P0.65-LS6.4-BLU16
1LOGOLOGOG***
1MOT1Connector_Wire:SolderWire-0.75sqmm_1x03_P7mm_D1.25mm_OD3.5mmJ7
1SMBJ20ADiode_SMD:D_SMAD2
1STM32F405RGTxPackage_QFP:LQFP-64_10x10mm_P0.5mmU8
1STM32G071K_ESC1Package_QFP:LQFP-32_7x7mm_P0.8mmU9
1STM32G071K_ESC2Package_QFP:LQFP-32_7x7mm_P0.8mmU13
1STM32G071K_ESC3Package_QFP:LQFP-32_7x7mm_P0.8mmU11
1STM32G071K_ESC4Package_QFP:LQFP-32_7x7mm_P0.8mmU15
1SWD_DEBUGConnector_PinHeader_1.27mm:PinHeader_1x04_P1.27mm_VerticalJ12
1SX1280SX1280IMLTRT:QFN-24_L4.0-W4.0-P0.50-BL-EP2.6U5
1TPS54302_5VPackage_TO_SOT_SMD:SOT-23-6U2
1USB-CConnector_USB:USB_C_Receptacle_GCT_USB4085J6
1VTX_MODULEConnector_JST:JST_SH_SM06B-SRSS-TB_1x06-1MP_P1.00mm_HorizontalJ5
1W25Q128JVSPackage_SO:SOIC-8_5.3x5.3mm_P1.27mmU19
1WS2812BLED_SMD:LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mmD3

The 141 most common of 158 parts.

More from zeodotdev/zeo-boards

7
  • 4 layers25.4 × 25.4 mmZeo1.2 devboard, the printed circuit board in 3D

    Zeo1.2 devboard

    zeodotdev/zeo-boards

    ESP32-S3 development board with onboard BME280 (temperature, humidity, pressure) and LSM6DS3 (6-axis IMU) sensors. This repo contains the designs, ESP-IDF firmware, and a Python plotter for visualization.

    92 parts3
  • 4 layers25.4 × 25.4 mmZeo1 devboard, the printed circuit board in 3D

    Zeo1 devboard

    zeodotdev/zeo-boards

    ESP32-S3 development board with onboard BME280 (temperature, humidity, pressure) and LSM6DS3 (6-axis IMU) sensors. This repo contains the designs, ESP-IDF firmware, and a Python plotter for visualization.

    90 parts3
  • 2 layers45 × 100 mmRemote, the printed circuit board in 3D

    Remote

    zeodotdev/zeo-boards

    ESP32-S3 development board with onboard BME280 (temperature, humidity, pressure) and LSM6DS3 (6-axis IMU) sensors. This repo contains the designs, ESP-IDF firmware, and a Python plotter for visualization.

    49 parts3
  • 2 layers20.1 × 31 mmZeoDevBoard, the printed circuit board in 3D

    ZeoDevBoard

    zeodotdev/zeo-boards

    ESP32-S3 development board with onboard BME280 (temperature, humidity, pressure) and LSM6DS3 (6-axis IMU) sensors. This repo contains the designs, ESP-IDF firmware, and a Python plotter for visualization.

    36 parts3
  • 2 layers55 × 40 mmEsp cm, the printed circuit board in 3D

    Esp cm

    zeodotdev/zeo-boards

    ESP32-S3 development board with onboard BME280 (temperature, humidity, pressure) and LSM6DS3 (6-axis IMU) sensors. This repo contains the designs, ESP-IDF firmware, and a Python plotter for visualization.

    33 parts3
  • 2 layers51 × 20 mmJtag to usb, the printed circuit board in 3D

    Jtag to usb

    zeodotdev/zeo-boards

    ESP32-S3 development board with onboard BME280 (temperature, humidity, pressure) and LSM6DS3 (6-axis IMU) sensors. This repo contains the designs, ESP-IDF firmware, and a Python plotter for visualization.

    27 parts3
  • 2 layers79.5 × 57.9 mmEsp cm breakout, the printed circuit board in 3D

    Esp cm breakout

    zeodotdev/zeo-boards

    ESP32-S3 development board with onboard BME280 (temperature, humidity, pressure) and LSM6DS3 (6-axis IMU) sensors. This repo contains the designs, ESP-IDF firmware, and a Python plotter for visualization.

    25 parts3

Similar boards

  • 2 layers76 × 95.8 mmSupervisor, the printed circuit board in 3D

    Supervisor

    kaminaris/GigaESC

    97 parts47
  • 4 layers85 × 56 mmSAFMC FC, the printed circuit board in 3D

    SAFMC FC

    radityankn/SAFMC_FC

    125 parts
  • 4 layers64.6 × 57.3 mmDragonfly, the printed circuit board in 3D

    Dragonfly

    Broccoliux/dragonfly

    A very cool, drone that can perform maneuvers.

    246 parts2MIT
  • 4 layers95.6 × 59.9 mmFlight computer rocketry, the printed circuit board in 3D

    Flight computer rocketry

    Himanshukohale22/Flight_control_controller_V1.2

    Hardware files for universal flight controller for small UAV's.

    145 parts1MIT
  • 6 layers71.3 × 19.2 mmBattery, the printed circuit board in 3D

    Battery

    the-electron-vault/Apple

    171 parts12
  • 2 layersOneAvionics, the printed circuit board in 3D

    OneAvionics

    DjinoV/One

    A model rocket flight computer

    72 parts
  • 4 layers90 × 67 mmRBoard, the printed circuit board in 3D

    RBoard

    tatakimon/STM32F405-general-purpose

    This is an optimized, general-purpose development board powered by the STM32F405RGT6 microcontroller. It is designed for easy, low-cost manufacturing through the JLCPCB SMT Assembly service, while adding fun interactive…

    103 parts

Questions

How big is the Fpv drone PCB?

It measures 158 × 158 mm and has 6 copper layers, 1.6 mm thick.

What parts does the Fpv drone use?

158 parts, built around the AT7456E, ESP8266EX, BMP280 and W25Q128JVSIQ. 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 Fpv drone KiCad files?

From the zeodotdev/zeo-boards repository on GitHub, at the commit this page was made from: the board is fpv_drone/fpv_drone.kicad_pcb and its schematic demo_board/ZeoDevBoard.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Fpv drone design in my own project?

Its repository states no licence, so its author keeps all rights: ask zeodotdev before reusing the design.