Skip to the content
4 layers30 × 73 mmESP32-S3 Module, the printed circuit board in 3D

This is a small, self-contained development board built around the ESP32-S3-WROOM-1U. The idea is a go-to prototyping board: drop in a LiPo, plug in USB-C, and you have a programmable ESP32-S3 with WiFi/BLE/Zigbee, a…

Size
30 × 73 mm
Copper layers
4
Thickness
1.6 mm
Parts
53
Nets
62
Pads
241
Tracks, vias
490, 94
Pours
2
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
13 Sep 2026
Updated
23 Oct 2026

Overview

ESP32-S3 Module is an open-source printed circuit board by sneakylizard123-4, from the sneakylizard123-4/ESP32-S3_Module repository on GitHub, published under the CERN-OHL-P-2.0 licence. It is a 4-layer board of 30 × 73 mm with 53 parts on 62 nets, routed with 490 tracks and 94 vias.

It is built around the ESP32-S3-WROOM-1-N8, IP5306 and TLV75733PDBV, with the USBLC6-2SC6 and WS2812B among its other parts. Its parts include 17 capacitors, 11 resistors, 8 diodes, 4 ICs and 4 connectors. It belongs with the radio and wireless boards and the ESP32 boards of this library.

Main components

5

README

README.md

ESP32-S3 Module

A Feather-like ESP32-S3 dev board with USB-C, IP5306 battery charging, an onboard NeoPixel, and status LEDs.

This is a small, self-contained development board built around the ESP32-S3-WROOM-1U. The idea is a go-to prototyping board: drop in a LiPo, plug in USB-C, and you have a programmable ESP32-S3 with WiFi/BLE/Zigbee, a NeoPixel for quick visual feedback, and a full set of 2.54mm breakouts. I made it because my other ESP32 boards were either not ESP32-S3, had no USB, or needed an external FTDI adapter just to flash.

Build status: assembled and working. USB, charging, the NeoPixel, and the user LED have all been verified on the physical board. See proof/V1 for build photos and test results.

Assembled ESP32-S3 Module charging over USB-C

ESP32-S3 Module PCB render

Custom Features

  • ESP32-S3-WROOM-1U (N8, 8 MB flash) with WiFi/BLE/Zigbee and a U.FL connector for an external antenna
  • IP5306 power path: USB-C charging plus a 5V boost from a single-cell LiPo, with an LED battery gauge
  • TLV75733 3.3V LDO for the MCU and logic
  • USB-C receptacle with USBLC6-2SC6 ESD protection and 5.1k CC resistors
  • Onboard WS2812B NeoPixel and 7 orange status LEDs
  • RESET and BOOT buttons, plus an IP5306 power key
  • Flashing over the ESP32-S3 native USB or over UART/FTDI through the headers
  • 2.54mm header breakouts and a JST-PH battery connector

How It Works

The board is four functional blocks plus a breakout. USB-C feeds the IP5306, which charges the LiPo and boosts it to a 5V rail. That rail powers the NeoPixel and feeds a TLV75733 LDO, which makes the 3.3V rail for the ESP32-S3. The MCU drives the NeoPixel on GPIO47 and the user LED on GPIO48, and breaks out its remaining IO on the two headers.

BlockKey partsWhat it does
USB inputJ1, U1, R1, R2USB-C receptacle, ESD protection, and 5.1k CC resistors
Charging / boostU2 (IP5306), L1, R7, C4, C6Charges the LiPo and boosts it to +5V, with a LED gauge
3.3V supplyU3 (TLV75733), C3, C5, C7, C10LDO that turns +5V into +3.3V for the MCU and logic
MCUU4 (ESP32-S3-WROOM-1U)WiFi/BLE/Zigbee, native USB, U.FL antenna
IndicatorsD1-D8, R6, R10, R11Power, charge gauge, power key, user LED, NeoPixel
ControlsSW1, SW2, SW3IP5306 power key, BOOT0, RESET
BreakoutJ3, J4, J21x22 and 1x21 headers and a battery connector

Power Tree

mermaid
flowchart LR
  USB["USB-C VBUS"] --> IP5306["IP5306 (U2)"]
  BATT["LiPo JST-PH (J2)"] <--> IP5306
  IP5306 -->|+5V| NEO["WS2812B NeoPixel (D8)"]
  IP5306 -->|+5V| LDO["TLV75733 LDO (U3)"]
  LDO -->|+3.3V| ESP["ESP32-S3-WROOM-1U (U4)"]
  ESP -->|GPIO47| NEO
  ESP -->|GPIO48| LED["User LED (D7)"]

PCB Design

The board is a 4-layer PCB measuring 35.70 x 79.00 mm, with 1.6mm thickness and a dedicated ground inner layer. Power traces are widened and the edges are rounded for handling. Routing is done by hand in KiCad.

PCB layout in the KiCad editor

Schematic and PCB sources live in kicad/. Fabrication outputs (Gerbers, drill, BOM, pick-and-place) are in kicad/production/, and the STEP model is in cad/.

Build

The board was assembled by hand: parts laid out and checked, the USB-C and power sections soldered first, then the headers and the JST-PH battery connector. After that came the power-on checks over USB-C and a power bank.

Parts laid out before assemblyJST-PH connector soldered to the board
Battery connector crimpedBoard running from a power bank

NeoPixel and status LEDs lit in torch mode

The NeoPixel and status LEDs running the self-test: video/neopixel.mp4.

More build and test detail: proof/V1/PROOF.md.

Firmware

The firmware in firmware/ is an interactive self-test over USB CDC. It reports system info and power status, drives the NeoPixel and user LED, reads the BOOT button, runs a GPIO loopback check, and scans for WiFi and BLE networks. It is a PlatformIO project using the Arduino framework, the Adafruit NeoPixel library, and NimBLE-Arduino.

bash
cd firmware
pio run                 # build
pio run --target upload # flash over USB

To enter the bootloader manually:

  1. Hold BOOT (SW2 / IO0)
  2. Tap RESET (SW3 / EN)
  3. Release BOOT
  4. Start the upload

See firmware/README.md for the pin map and library details.

Usage

Power

  • Charging: plug a USB-C cable into J1. The IP5306 charges the LiPo through J2 and lights the charge gauge.
  • Battery: connect a single-cell LiPo to the JST-PH connector (J2).
  • The IP5306 power key (SW1) turns the 5V/3.3V rails on and off.

Programming

  • Native USB: connect USB-C and flash the ESP32-S3 directly (GPIO19/GPIO20).
  • UART/FTDI: use TXD0 (J4 pin 18) and RXD0 (J4 pin 17) with GND, then trigger BOOT/RESET.

Pinout

J3 - 1x22 header:

PinNetPinNet
1GND12IO8
2+3.3V13USB_D-
3EN14USB_D+
4IO415IO3
5IO516IO46
6IO617IO9
7IO718IO10
8IO1519IO11
9IO1620IO12
10IO1721+5V
11IO1822VBUS

J4 - 1x21 header:

PinNetPinNet
1+BATT12IO38
2IO1313IO39
3IO1414IO40
4IO2115IO41
5IO47 (NeoPixel)16IO42
6IO48 (User LED)17RXD0
7IO4518TXD0
8IO0 (BOOT)19IO2
9IO3520IO1
10IO3621GND
11IO37

Note: IO0, IO3, IO45, IO46 are ESP32-S3 strapping pins. Pull them the wrong way at boot and the chip enters a different mode.

BOM

RefValueQtyUnit $Ext $
C1, C2, C4, C6, C9, C11, C15, C1710uF 25V X5R 080580.08710.6968
C8, C10, C12, C13, C14, C16100nF 50V X7R 080560.02660.1596
C3, C5, C722uF 25V X5R 080530.06980.2094
D1-D7Orange LED 080570.00960.0672
D8WS2812B NeoPixel10.09400.0940
J1USB-C receptacle 16P10.17240.1724
J2JST-PH 2P 2mm10.03560.0356
J3Pin header 1x22 2.54mm10.12000.1200
J4Pin header 1x21 2.54mm10.10000.1000
L11uH shielded inductor12.51342.5134
R1, R25.1k 1% 080520.00650.0130
R3, R5, R6, R8, R9, R1010k 1% 080560.00350.0210
R11330 1% 080510.00500.0050
R4, R72R 1% 080520.02610.0522
SW1Tactile switch EVQPUD10.22990.2299
SW2, SW3Tactile switch KMR220.65151.3030
U1USBLC6-2SC610.08960.0896
U2IP530610.29890.2989
U3TLV75733PDBV10.18190.1819
U4ESP32-S3-WROOM-1U (N8)13.13003.1300
PCBBare PCB (4-layer)11.50001.5000
Total4910.9929

Full BOM with LCSC part numbers, manufacturers, and supplier links: BOM.csv. KiCad-generated BOM and pick-and-place: kicad/production/bom.csv, kicad/production/positions.csv.

Production

The board is designed for JLCPCB's standard 4-layer process:

Repository Structure

text
.
|-- BOM.csv                 # Full bill of materials with supplier links
|-- README.md
|-- JOURNAL.md              # Build journal
|-- TIMELINE.md
|-- TODO.md                 # Ideas for v2
|-- cad/                    # STEP model
|-- firmware/               # PlatformIO firmware (Arduino)
|-- images/                 # Schematic, PCB, and render images
|-- kicad/                  # KiCad sources and production outputs
|-- proof/                  # Build and test proof
|-- LICENSE                 # CERN-OHL-P-2.0 (hardware)
`-- LICENSE-MIT             # MIT (firmware)

Known Issues

  • WiFi, Bluetooth, and Zigbee have not been exercised yet. The self-test includes WiFi and BLE scan menus, but the radio results have not been confirmed on this board.
  • The module uses a U.FL connector instead of an onboard antenna, so an external 2.4 GHz antenna is required for radio range.
  • The current layout has DRC issues that should be cleaned up in v2: 2 shorting-item errors and 6 clearance errors around the ESP32 module footprint, plus 3 library footprint mismatch warnings. These are flagged in the committed PCB and did not stop the board from working, but they are not intentional.
  • USB-C CC lines are 5.1k sink resistors, so the board draws power but does not negotiate anything above the default USB current.

Credits & Inspiration

  • Form factor inspired by the Adafruit Feather line.
  • The IP5306 power section was adapted from my own earlier IP5306-based projects.
  • Built with KiCad and PlatformIO.
  • Firmware uses the Adafruit NeoPixel library.
  • Espressif ESP32-S3 datasheets and the ESP32-S3 Hardware Design Guidelines.

License

  • Hardware (schematics, PCB, and CAD): CERN Open Hardware Licence Version 2 - Permissive. SPDX: CERN-OHL-P-2.0. See LICENSE.
  • Firmware (firmware/): MIT License. SPDX: MIT. See LICENSE-MIT.

Parts

53
QtyValueFootprintReferences
810uFCapacitor_SMD_AKL:C_0805_2012MetricC1, C2, C4, C6, C9, C11, C15, C17
7LEDLED_SMD_AKL:LED_0805_2012MetricD1, D2, D3, D4, D5, D6, D7
6100nFCapacitor_SMD_AKL:C_0805_2012MetricC8, C10, C12, C13, C14, C16
610kResistor_SMD_AKL:R_0805_2012MetricR3, R5, R6, R8, R9, R10
322uFCapacitor_SMD_AKL:C_0805_2012MetricC3, C5, C7
22Resistor_SMD_AKL:R_0805_2012MetricR4, R7
25.1kResistor_SMD_AKL:R_0805_2012MetricR1, R2
2SW_PushButton_Switch_SMD:SW_Push_1P1T_NO_CK_KMR2SW2, SW3
11uH XFL4020-102MECInductor_SMD:L_Coilcraft_XxL4020L1
1330Resistor_SMD_AKL:R_0805_2012MetricR11
1Conn_01x02Connector_JST_SM4:JST_PH_S2B-PH-SM4-TB_1x02-1MP_P2.00mm_HorizontalJ2
1Conn_01x21Connector_PinHeader_2.54mm:PinHeader_1x21_P2.54mm_VerticalJ4
1Conn_01x22Connector_PinHeader_2.54mm:PinHeader_1x22_P2.54mm_VerticalJ3
1ESP32-S3-WROOM-1RF_Module:ESP32-S3-WROOM-1UU4
1IP5306IP5306:SOP127P600X165-9NU2
1LOGOcustomimages:linuxpenguin_cuG***
1LOGOcustomimages:empire_cuG***
1LOGOcustomimages:empire_maskG***
1LOGOcustomimages:linuxpenguin-maskG***
1SW_PushButton_Switch_SMD:Panasonic_EVQPUM_EVQPUDSW1
1TLV75733PDBVPackage_TO_SOT_SMD:SOT-23-5U3
1USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6U1
1USB_C_Receptacle_USB2.0_16PConnector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12J1
1WS2812BLED_SMD:LED_WS2812B-Mini_PLCC4_3.5x3.5mmD8

The 52 most common of 53 parts.

Similar boards

  • 4 layers38.5 × 19.5 mmCameraPosition, the printed circuit board in 3D

    CameraPosition

    Andy-Cheng1017/LEDCeliling

    NTUT IXD Graduate Exhibition

    75 parts
  • 2 layers70 × 70 mmTannenbasisV4, the printed circuit board in 3D

    TannenbasisV4

    broedschroed/NeoChristmasTreeV2

    ESP32-powered Christmas tree ornament: 66x WS2812 LEDs on a 4-wing dual-PCB tree, IR remote with learnable sleep timer, browser-based pattern editor, LDR auto-brightness

    69 partsMIT
  • 4 layers103 × 56 mmEsp32-alarm clock, the printed circuit board in 3D

    Esp32-alarm clock

    jeremy341/esp32-alarm-clock

    ESP32 based radio-controlled alarm clock with TFT display and custom UI using a Customade software

    34 partsMIT
  • 4 layers90 × 50 mmCapstone, the printed circuit board in 3D

    Capstone

    jjhcwoo/Acculux-device

    The objective of this project is to add functionality to the existing NIR Imaging Inc. device in the way of: - Orientation tracking - Positional tracking - Force sensing

    94 parts
  • 2 layers65 × 45 mmJanusR3, the printed circuit board in 3D

    JanusR3

    Snathan03-max/SWAMINATHAN_VIVEKANAND_2026A3PS1043H_JANUS_FINAL_SUBMISSION

    Submission for JANUS round 3 Hackathon

    25 parts
  • 2 layers228.6 × 129.5 mmCore, the printed circuit board in 3D

    Core

    EMajesty/midilord

    A MIDI foot controller project

    103 parts1
  • 4 layers100 × 70.8 mmKia Arm Ctrl, the printed circuit board in 3D

    Kia Arm Ctrl

    OLYPTEA/Kia

    Bras Robotique Open Source

    137 parts1MIT
  • 4 layers149.9 × 74.2 mmBCD-0o27, the printed circuit board in 3D

    BCD-0o27

    petnica-rac-seminari/BCD-0o27-Tetris

    The BalcCon Cyberdeck 0o27 (BCD-0o27) comes with a development framework that makes it easier to add functionality to the cyberdeck.

    142 parts1

Questions

How big is the ESP32-S3 Module PCB?

It measures 30 × 73 mm and has 4 copper layers, 1.6 mm thick.

What parts does the ESP32-S3 Module use?

53 parts, built around the ESP32-S3-WROOM-1-N8, IP5306, TLV75733PDBV and USBLC6-2SC6. 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 ESP32-S3 Module KiCad files?

From the sneakylizard123-4/ESP32-S3_Module repository on GitHub, at the commit this page was made from: the board is kicad/ESP32-S3_Module.kicad_pcb and its schematic kicad/ESP32-S3_Module.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the ESP32-S3 Module design in my own project?

Its repository publishes it under the CERN-OHL-P-2.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).