Phipps Electronics

Order within the next 

FREE SHIPPING OVER $199

50,000+ ORDERS

WORLDWIDE SHIPPING

SSL SECURED

ESP32 PCB Design – Introduction and Guidelines

Contents

Read through this article if you’re interested in making your own PCB design for your ESP32 modules.

Introduction

Creating a PCB for a wireless module, such as an ESP32, can present significant challenges. There are several design rules you should follow. These rules pertain to the device’s power, functionality for wireless, start-up, and programming operations. This article will help you get used to ESP32 PCB design.

Note: If you want to know more about the internal structure of an ESP-32-S3-WROOM, you can read ESP32 WROOM Series – Getting Started.

Note: To understand KiCAD PCB design, it’s recommended to go through the KiCAD PCB Design series.

 

Some Guidelines When Making your Board

Rules for Wireless

First, there are rules you should follow for wireless. The Espressif website explicitly states these rules.

ESP32 PCB Design - EP32 WROOM board placement 1
ESP32 PCB Design - ESP32 WROOM board placement

Above, you’ll see the ideal placement of the ESP32 WROOM module. It should be close to the board edge, and the antenna part should have clearance below. The “Feed Point” is closest to the board edges. If you can’t avoid doing this, you should prepare a clearance of at least 15 mm in all directions.

ESP32 PCB Design - ESP32 WROOM board placement 3

Power Supply

Usually, you’ll just need a small off-the-shelf LDO (AMS1117) to supply the needed 3.3V of the ESP32-S3 coming from the 5V USB source. You’ll need some bypass capacitors for this LDO (usually in the range of 10uF to 22uF). You may use this power source for other low-power devices/sensors on this board provided it can handle all the current requirements.

Insert a bulk capacitor (10uF) and then a filter capacitor (100nF) before the 3.3V source reaches the power pin of your ESP32-S3. The 10uF cap is in charge of low frequency while the 100nF for higher ripples.

Startup Enable or Reset Pin

An ESP32 has an EN (Enable pin) that acts as a reset. This pin is useful during power-up to ensure the power line is good before enabling the device. With this, add an RC filter to this pin (10k and 1uF, respectively). This pin is also useful (when resetting) together with the BOOT pin when selecting the boot mode of the device. With this, insert a switch to this EN or RESET pin.

Above, you’ll see the typical circuit layout for the EN pin.

Bootstrapping Pins

Bootstrapping pins determine the boot mode of the ESP32 during startup. With this, it’s important to know what mode you want to be in at that moment. Below, you’ll see the important bootstrapping pins to consider on your ESP32-S3 module. In bootloader mode, the device is ready for programming. In normal mode, the device is ready to run.

PinFunctionStateComment
GPIO0Bootloader or Normal ModeLow during reset (Bootloader Mode)Has internal pull-up during reset
GPIO46Low to enter bootloader modeLow or NC (Bootloader Mode)Has internal pull-down during reset
GPIO3SPI Flash voltage (1.8V or 3.3V)High for 3.3V, Low for 1.8VFloating
GPIO45ROM serial debug outputHigh to enable serial outputHas internal pull-up during reset

Notice the BOOT pin has a switch and should be used together with the RESET pin to determine what BOOT mode the user wants. Also, since some pins have an internal pull-up/down, external resistors are omitted. If there is no pull-up/down resistor, you should populate one (such as in GPIO3).

Programming Pins

The ESP32-S3 can be physically programmed through JTAG, UART, or the native USB pins. This means you have to ready some of these ports so you can successfully program your ESP32 device. If you want to program with USB-C, you’ll have to learn some basic USB-C concepts. Additionally, you can ready an ESD protection component (such as the USBLC6-2SC6 from ST Microelectronics) to protect the USB port of the ESP32-S3.

USB-C w/o ESD protection
USB-C w/ ESD protection

For your info, the CC1 and CC2 pins of the USB-C are pulled to ground via 5.1k resistors. This indicates that the USB device is a downstream port. Additionally, you’ll see there are two D- and D+ ports. These are meant to be because USB-C is reversible. You can connect USB-C either way. With this, connect the two D- together as well as the D+.

That being said, you can still program your ESP32-S3 the traditional way using UART. Note that to enter bootloader mode, you’ll need to hold the BOOT pin while pressing and releasing the RESET button. However, by using a connector like the one below, you should be able to connect the BOOT and RESET pin through the DTR and RTS pins of the UART connector, respectively. In this way, you’ll be able to automate programming.

Now that you’ve learned the basic rules of the ESP32 PCB design, you can now create a full schematic together with a PCB layout. This will be discussed in the next blogs.

SUBSCRIBE FOR NEW POST ALERTS

Subscribe to be the first to know when we publish a new article!
List Subscriptions(Required)

POPULAR POSTS

Scroll to Top