
Introduction
Welcome to the ultimate tutorial: Build Custom ESP32 Boards From Scratch! This guide walks you through designing and building your own ESP32-S3 and ESP32-C3 boards step by step. Whether you’re a hobbyist or a professional, this full tutorial empowers you to confidently create custom microcontroller boards tailored for your projects.
Why Build Your Own ESP32 Boards?
Building custom ESP32 boards allows for precise control over components, size, and performance. Unlike buying DevKits, custom boards are optimized for specific applications, saving space and improving functionality.
Why ESP32-S3 and C3?
The ESP32-S3 and C3 offer better performance and features than the original ESP32 (which is now NRND). They support advanced protocols and are ideal for various applications.
- ESP32-C3: Compact, cost-effective, great for WiFi/Bluetooth projects.
- ESP32-C6: Enhanced wireless capabilities, supports WiFi 6 and Bluetooth 5.3.
- ESP32-S3: Dual-core, high processing power, flexible memory options.
- ESP32-S2: Economical but less powerful; suitable for cost-sensitive designs.

Getting Started: Module vs SoC Method
- Module Method: Use pre-assembled modules like WROOM or MINI. Easier, less risk, ideal for beginners.
- SoC Method: Design with bare ICs. More control but requires advanced skills.
We’ll use the Module Method for simplicity and reliability.
Step 1: Schematic Design
Use KiCad (free, powerful software) for schematic design. Reference the DevKit datasheet for your module and copy necessary components. Simplify the design by utilizing the USB interface built into the ESP32-S3/C3.
Key Components:
- USB-C Connector: Add 5.1k pull-down resistors for proper power negotiation.
- Voltage Regulator: Use AMS1117-3.3 or an LDO for battery-powered projects.
- Protection Diodes: Optional but recommended for USB protection.
- Decoupling Capacitors: 10uF + 0.1uF near power lines.
- Pull-up Resistors: 10K on BOOT/RST to resolve boot issues.

Step 2: PCB Layout
Design your PCB in KiCad:
- Assign footprints using SnapEDA.
- Define board shape (rectangular, circular, custom).
- Arrange components logically, close to their connections.
- Route USB D+/D- first as differential pairs.
- Route remaining traces with minimal vias.
- Add ground vias and fill with ground plane for EMI reduction.
- Run DRC to check errors and fix as needed.
Extra Tips:
- Mouse Bites: Use for panelizing and breaking apart PCBs.
- Gerber Files: Export for manufacturing. Compress into a zip.
Step 3: Manufacturing
Use PCBWay or similar services. For KiCad users, PCBWay plug-in simplifies uploads. Select options like stencil at checkout for ease of assembly. Boards typically arrive in a few days.
Step 4: Assembly
Reference BOM and placement sheet to solder SMD components. Use solder paste, stencil, and reflow method or hand soldering.
Required Tools:
- Soldering iron (Pinecil recommended)
- Solder paste
- Solder
After assembly, break PCBs apart, clean up edges, and you’re ready to test!
Step 5: Programming
Setup Arduino IDE:
- File > Preferences > Add URL:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json - Install ESP32 board package.
- Select the correct Dev Module (ESP32C3/ESP32S3).
- Choose correct COM port.

Display Demo:
Use a Waveshare 2-inch IPS LCD Module. Solder female headers to board for easy connection.
Edit User_Setup.h (in TFT_eSPI library) to match display and pin configuration. Use provided config files for C3/S3.
Upload demo code and watch your display light up using your custom board!
Conclusion
Congratulations on building your own ESP32 microcontroller board! This guide provided a comprehensive walkthrough, from schematic to programming. Dive deeper, explore new applications, and take your hardware design skills to the next level.
Happy building!