ESP32 Custom PCB Programming Issue
Posted: Sat Nov 20, 2021 11:01 pm
Hello everyone,
This is my first time making a PCB for an esp32-c3 module and I have experience making PCBs with atmega chips. I had a very basic pcb made recently to test the most basic version of the board I could. I attached the schematic to this post. I soldered the board to headers and placed it onto a breadboard. I am using an external usb to serial converter to communicate with the board.
I hook up the RX, TX, GND, 5V, and EN pins to the respective pins on the usb to serial chip (EN to RST). I am able to receive serial messages from the esp32 board at 115200 baud rate. The board constantly says "invalid header: 0xffffffff" which from what I have researched is normal for a new chip. This lets me know that the communication to the board is correct.
I am using the Arduino IDE with the expressif esp32 board modules. I left the settings at default and have tried each of the esp32 boards.
How I am attempting to program the board I push boot and en so that the board says over serial:
"Build:Feb 7 2021
rst:0x1 (POWERON),boot:0x0 (USB_BOOT)
wait usb download"
Then I upload a blank sketch to the board. The terminal shows:
"esptool.py v3.1
Serial port COM4
Connecting........_____....._____....._____....._____....._____....._____....._____
A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header"
From what I have read online this seems to be an issue with the chip receiving the reset pulse to start programming.
I have looked into adding another capacitor from EN to gnd but I am not able to identify what is wrong with the boards I have made. One thing that I did not copy from the standard esp32 dev boards is the auto program as I do not need it for my application. Is that section of the schematic required for programming the board even with the use of buttons?
Let me know if anyone has advice on how to proceed to get my boards to work.
Thanks,
This is my first time making a PCB for an esp32-c3 module and I have experience making PCBs with atmega chips. I had a very basic pcb made recently to test the most basic version of the board I could. I attached the schematic to this post. I soldered the board to headers and placed it onto a breadboard. I am using an external usb to serial converter to communicate with the board.
I hook up the RX, TX, GND, 5V, and EN pins to the respective pins on the usb to serial chip (EN to RST). I am able to receive serial messages from the esp32 board at 115200 baud rate. The board constantly says "invalid header: 0xffffffff" which from what I have researched is normal for a new chip. This lets me know that the communication to the board is correct.
I am using the Arduino IDE with the expressif esp32 board modules. I left the settings at default and have tried each of the esp32 boards.
How I am attempting to program the board I push boot and en so that the board says over serial:
"Build:Feb 7 2021
rst:0x1 (POWERON),boot:0x0 (USB_BOOT)
wait usb download"
Then I upload a blank sketch to the board. The terminal shows:
"esptool.py v3.1
Serial port COM4
Connecting........_____....._____....._____....._____....._____....._____....._____
A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header"
From what I have read online this seems to be an issue with the chip receiving the reset pulse to start programming.
I have looked into adding another capacitor from EN to gnd but I am not able to identify what is wrong with the boards I have made. One thing that I did not copy from the standard esp32 dev boards is the auto program as I do not need it for my application. Is that section of the schematic required for programming the board even with the use of buttons?
Let me know if anyone has advice on how to proceed to get my boards to work.
Thanks,