Skip to the content
PCBKitNew board
2 layers45 × 100 mmRemote, 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
45 × 100 mm
Copper layers
2
Thickness
1.6 mm
Parts
49
Nets
47
Pads
192
Tracks, vias
311, 44
Pours
3
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
18 Mar 2026
Updated
12 May 2026

Overview

Remote is an open-source printed circuit board by zeodotdev, from the zeodotdev/zeo-boards repository on GitHub. It is a 2-layer board of 45 × 100 mm with 49 parts on 47 nets, routed with 311 tracks and 44 vias.

It is built around the ATMEGA32U4-AU, E6QYDD1204-IRA940NM and IRM-H638T/TR2, with the BAT54 among its other parts. Its parts include 15 switches, 11 capacitors, 9 resistors, 4 ICs and 4 diodes. It belongs with the AVR (ATmega, ATtiny) boards of this library.

Main components

4

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

49
QtyValueFootprintReferences
5100nFCapacitor_SMD:C_0402_1005MetricC1, C2, C7, C8, C9
31uFCapacitor_SMD:C_0402_1005MetricC3, C5, C6
3BAT54Diode_SMD:D_SOD-323D3, D4, D5
210kResistor_SMD:R_0402_1005MetricR2, R9
222pFCapacitor_SMD:C_0402_1005MetricC10, C11
25.1kResistor_SMD:R_0402_1005MetricR7, R8
110Resistor_SMD:R_0805_2012MetricR5
1100Resistor_SMD:R_0402_1005MetricR1
116MHzCrystal:Crystal_SMD_HC49-SDY1
11F/5.5VCapacitor_SMD:C_1210_3225MetricC4
11kResistor_SMD:R_0402_1005MetricR4
122Resistor_SMD:R_0402_1005MetricR6
1330Resistor_SMD:R_0402_1005MetricR3
1ATmega32U4-APackage_QFP:TQFP-44_10x10mm_P0.8mmU2
1BackButton_Switch_SMD:SW_SPST_B3SL-1002PSW10
1C1Button_Switch_SMD:SW_SPST_B3SL-1002PSW13
1C2Button_Switch_SMD:SW_SPST_B3SL-1002PSW14
1DownButton_Switch_SMD:SW_SPST_B3SL-1002PSW8
1E6QYDD1204-IRA940NME6QYDD1204-IRA940nm:LED-SMD_L3.2-W2.1-R-FDU4
1GreenLED_SMD:LED_0603_1608MetricD1
1HomeButton_Switch_SMD:SW_SPST_B3SL-1002PSW11
1IRM-H638TOptoDevice:Everlight_IRM-H6xxTU1
1LOGOLOGOG***
1LearnButton_Switch_SMD:SW_SPST_B3SL-1002PSW15
1LeftButton_Switch_SMD:SW_SPST_B3SL-1002PSW4
1MCP1700-3.3VPackage_TO_SOT_SMD:SOT-23U3
1MuteButton_Switch_SMD:SW_SPST_B3SL-1002PSW3
1PowerButton_Switch_SMD:SW_SPST_B3SL-1002PSW1
1Q_NPNPackage_TO_SOT_SMD:SOT-23Q1
1RightButton_Switch_SMD:SW_SPST_B3SL-1002PSW6
1SelectButton_Switch_SMD:SW_SPST_B3SL-1002PSW5
1Solar_PanelConnector_Wire:SolderWire-0.5sqmm_1x02_P4.6mm_D0.9mm_OD2.1mmJ1
1Solar_Panel_BackConnector_Wire:SolderWire-0.5sqmm_1x02_P4.6mm_D0.9mm_OD2.1mmJ3
1SourceButton_Switch_SMD:SW_SPST_B3SL-1002PSW12
1USB_C_Receptacle_USB2.0_14PConnector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12J2
1UpButton_Switch_SMD:SW_SPST_B3SL-1002PSW2
1Vol+Button_Switch_SMD:SW_SPST_B3SL-1002PSW9
1Vol-Button_Switch_SMD:SW_SPST_B3SL-1002PSW7

Questions

How big is the Remote PCB?

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

What parts does the Remote use?

49 parts, built around the ATMEGA32U4-AU, E6QYDD1204-IRA940NM, IRM-H638T/TR2 and BAT54. 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 Remote KiCad files?

From the zeodotdev/zeo-boards repository on GitHub, at the commit this page was made from: the board is jared_tv_remote/remote.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 Remote design in my own project?

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

More from zeodotdev/zeo-boards

7
  • 6 layers158 × 158 mmFpv drone, the printed circuit board in 3D

    Fpv drone

    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.

    158 parts3
  • 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 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 layers82 × 134 mmPcb badge, the printed circuit board in 3D

    Pcb badge

    john0312/hitcon-pcb-badge

    execute fw/merge.py to merge STM32CubeIDE generated main.c with user code in main.cc into main.cc.

    258 parts47BSD-3-Clause
  • 4 layers48 × 35.1 mmMicro esp32-s3, the printed circuit board in 3D

    Micro esp32-s3

    atomic14/esp32-tv-hardware

    This is Work In Progress - I'm still working on this.

    81 parts29
  • 2 layers99.5 × 124.8 mmB Sides 2024, the printed circuit board in 3D

    B Sides 2024

    OklahomaOpenSourceHardware/OKC-OSH-2024-Badge

    2024 badge for Oklahoma PCB Tech Conferences

    151 parts3
  • 4 layers59.4 × 51.7 mmJlc katzen, the printed circuit board in 3D

    Jlc katzen

    ArcaneNibble/jlc-katzen

    cat ear blinky toy (JLCPCB turn-key assembly process capabilities test)

    62 parts1
  • 2 layers50 × 70 mmProjet, the printed circuit board in 3D

    Projet

    Barberousse-le-bon/conception_pcb

    28 parts
  • 2 layers20 × 20 mmB IrDA Transceiver BRK R1.0, the printed circuit board in 3D

    B IrDA Transceiver BRK R1.0

    Boardoza/Boardoza_IrDA_Transceiver_Infrared_Wireless_Communication_Breakout_Board

    Compact infrared transceiver breakout board for short-range asynchronous wireless serial communication.

    18 partsCC-BY-SA-4.0
  • 4 layers64.6 × 55.2 mmWhisker, the printed circuit board in 3D

    Whisker

    HeyPCB/whisker

    Drop-in controller for Petoi's Nybble robot cat running the stock OpenCat firmware: ATmega328P, PCA9685, MPU-6050, USB-C, 3 A buck, protected battery input. 4-layer KiCad 10 board plus printed cradle.

    118 partsCERN-OHL-S-2.0