The ESP32-C3 Dev Board is a PCB I designed, had manufactured, and soldered, and will be the heart of many projects I develop going forward. With easy programming via USB-C in the Arduino IDE, it's perfect for prototyping any project that is planned to use an ESP chip. I designed it to fit right into a breadboard and it has headers for both IO and UART.
The video below shows the board in action, doing a simple LED blinking demonstration. It also shows how it easily snaps into a breadboard, and shows the power LEDs for both the 5V and 3V3 voltage levels.
Below are photos showcasing the final schematic sections and printed circuit board design for the project.
Below is a table containing all of the parts as well as a link to the Digikey parts list.
Part Name | Count | Cost Per Part |
---|---|---|
0.1µF 1206 Capacitor | 1 | $0.09 |
10µF 1206 Capacitor | 1 | $0.15 |
1µF 1206 Capacitor | 3 | $0.12 |
Red 1206 LED | 1 | $0.20 |
Green 1206 LED | 2 | $0.20 |
USB-C Female Connector (16 + 8 Dummy) | 1 | $0.78 |
1x4 Male 2.54 Pin Header | 1 | $0.10 |
1x12 Male 2.54 Pin Header | 1 | $0.16 |
5.1kΩ 1206 Resistor | 2 | $0.10 |
10kΩ 1206 Resistor | 2 | $0.10 |
220Ω 1206 Resistor | 2 | $0.10 |
330Ω 1206 Resistor | 1 | $0.10 |
ESP32-C3 PCB Antenna | 1 | $3.28 |
5V to 3V3 LDO | 1 | $0.22 |
Using the Device such as Pinouts or Setup is detailed below.
Below is information and necessary tables of pinouts for the device.
Pin Technical Name | Pin Name | Pin Info |
---|---|---|
J1 | USB-C Port | General Power, Programming, or UART Port |
I01 | 1 | I/O Pin |
IO2 | SDA | I/O Pin or SDA Pin |
IO3 | SCL | I/O Pin or SCL Pin |
IO4 | 4 | I/O Pin |
IO5 | 5 | I/O Pin |
IO6 | 6 | I/O Pin |
IO7 | 7 | I/O Pin |
IO9 | 9 | I/O Pin |
IO10 | 10 | I/O Pin |
3V3 | 3.3V | Voltage Pin |
5V0 | 5V | Voltage Pin |
GND | GND | Ground Pin |
P1 - 1 | 3V3 | UART Voltage Pin |
P1 - 2 | TXD | Microcontroller TX Pin |
P1 - 3 | RXD | Microcontroller RX Pin |
P1 - 4 | GND | Ground Pin |
When it comes to using the device or soldering one for yourself, there are a few things to note. After finishing soldering, when first plugging the device in, you should hear (if on Windows) a consistent USB disconnect sound effect. This tells you you did it correctly. In the "Arduino IDE, go to File > Preferences > Additional Board URLs". Once done, add the following two links into the additional board URLs list, and save:
https://dl.espressif.com/dl/package_esp32_index.json
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Once done, set the target board to the ESP32 C3 Dev Board option. Also note, when programming the device, to set "USB CDC On Boot" to ENABLED. You can follow the settings shown below:
Now, once selecting the COM port that the device is connected to via USB-C, you can program as you'd like! Some sample code to test the board, which will blink the onboard LED (as well as pin 6 if you hook that up to a breadboard and LED) periodically to show that it is programmed correctly. The console should also confirm that the device has been programmed. Additionally, the device should be setup for serial if all the steps were followed correctly, so initializing serial and printing as needed should work like any other board, and information should appear in the serial monitor if done right. One thing to note is, if a program you upload makes the device appear bricked (stuck boot looping, can't upload a program, etc.) you must unplug the device, wire pin 9 on the board to ground, and plug it back in shorted and reprogram it with a new program. This will bypass any program currently on it that may be breaking it. Handy to know!
Challenges, What I Learned, and More.
The biggest challenge of this project was getting the peripheral passive components correct so that the device could be easily programmed via USB-C, as there a lot of nuances that could have ruined my design had I done it wrong. Beyond that, designing a tight and compact yet usable board was difficult, but it ultimately came out great.
From this project I learned how to design boards that utilize Espressif chips, as most other Espressif follow a similar peripheral layout, meaning going forward I can look into other chips they offer beyond the C3 for boards that may need a more specialized chip.
This board was inspired by a friend of mine's work, Noah Smith, who also worked with an ESP32 C3 chip for a Dev Board of his own. I had originally run into challenges with another ESP chip trying to make a Dev Board (though not the C3), but was inspired to pick up that failed previous work after seeing his functional C3 Dev Board.