Open Source ESP32-C3-WROOM Core Board Design

Designed an ESP32-C3-WROOM core board and made it open source.
Open Source ESP32-C3-WROOM Core Board Design
The schematic, PCB, and manual have been packaged and are open sourced at the Lichuang Open Source Square. You can copy the link below to access it directly or reply with “ESP32C3” via private message to download for free.
https://oshwhub.com/zctnb/esp32c3wroom
Honestly, if you just want to play with the ESP32C3, I recommend buying one directly; you can get an ESP32C3 core board for less than ten yuan on Taobao (for the chip). However, we need to pay around ten yuan for an ESP32-C3-WROOM (module).
However, designing our own board has its benefits. The first is to learn how to draw the peripheral circuit of the ESP32. The second is that we can design it freely. For example, most core boards for microcontrollers are dual-row pin headers, while my design uses a single-row pin header.
The reason is simple: it’s more convenient to build circuits on a breadboard, saving some space.
Open Source ESP32-C3-WROOM Core Board Design
If it’s a dual-row pin header, we need to use all the pins, which requires inserting the board in the middle of the breadboard, wasting many breadboard holes (blocked by the board). Also, since the module is relatively wide, making a dual-row pin core board will be quite wide, potentially blocking the entire middle section of the breadboard.
Next, let’s look at the schematic.
Open Source ESP32-C3-WROOM Core Board Design
The schematic is quite simple, retaining only the most basic peripheral circuits.
Since we need 3.3V power supply, we must convert the USB’s 5V to 3.3V. The LDO I used is ME6211 (since I have many on hand). Regarding LDO selection and peripheral circuit design, feel free to replace it with your preferred LDO; you can refer to my previous article.
Introducing several LDO low-dropout linear regulators (ME6206, RT9013, XC6206)
The selection of USB can also be changed; it just needs to have DP (D+) and DN (D-).
For USB to serial, I used CH340K, and for the automatic download circuit and CH340 selection, refer to my previous article.
Analyzing how the automatic download circuit works and the selection of CH340
The peripheral circuit is roughly like that. Next, let’s take a look at ESP32C3WROOM.
Open Source ESP32-C3-WROOM Core Board Design
The first step is to choose the model.
The name starts with ESP32-C3-WROOM, and then it can be divided into 02 and 02U. The 02 has a built-in antenna (on-board antenna), while the 02U does not, but has a connector where we need to connect the antenna.
You can refer to my GPS positioning module for the appearance of the connector.
Open Source ESP32-C3-WROOM Core Board Design
I used the 02 with the built-in on-board antenna.
The name then has a letter followed by a number.
H indicates high temperature, with the module’s maximum operating temperature reaching 105°C, while N indicates low temperature, with the module’s maximum operating temperature reaching 85°C. We can choose N, as it generally won’t operate in high-temperature environments.
The last number indicates the Flash size; 4 means 4MB, and 8 means 8MB.
It doesn’t matter which model specifically to choose; the peripheral circuit will not differ due to that. Choose according to your needs.
Next are the pins. If our module (or chip) is used in practical applications, we need to consider the functions of the pins when drawing the board, for example, ADC can only be used on specific pins.
However, for our core board, it doesn’t have to be so strict; just connect all the pins to the pin header.
Still, there are a few places to pay attention to.
The first is the EN pin.
Open Source ESP32-C3-WROOM Core Board Design
High level enables the chip, while low level disables it.
So we need to give the EN pin a pull-up resistor and can add a button for resetting (RESET).
The second place is TXD and RXD, as well as D+ and D-.
Open Source ESP32-C3-WROOM Core Board Design
Here the pins must correspond; RXD should connect to CH340’s TXD, and TXD should connect to CH340’s RXD.
If we need the ESP32C3WROOM to support USB downloading, we also need to connect USB’s D+ and D- to the module’s D+ and D-. This core board has been connected, so theoretically it can be used for USB downloading, but I haven’t tried it, as the VSCode I use does not support USB downloading for ESP32.
Finally, we have the minimum system’s peripheral circuit.
Open Source ESP32-C3-WROOM Core Board Design
We can just copy what’s on the manual, and the parts outlined in red can be omitted.
Then the routing is quite easy.
Open Source ESP32-C3-WROOM Core Board Design
I used a four-layer board inside, but it can also be changed to a two-layer board directly since I have two inner layers for VCC and GND; removing them won’t affect anything.
Use my final version in the project files as the standard; I have also kept several previous versions for reference.

Leave a Comment

×