[Solved] ESP32 header packet timeout issue

While programming ESP32, you may have definitely encountered the header packet timeout issue. here is how you can fix this.

Hey guys, I'm krypton, in this article, i will tell you how you an fix the ESP32 program uploading issue.

So basically, while programming ESP32, you may have encountered this error:

esptool.py v2.6
Serial port /dev/ttyUSB0
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Warning: Could not auto-detect Flash size (FlashID=0x0, SizeID=0x0), defaulting to 4MB
Compressed 8192 bytes to 47...
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 7370.2 kbit/s)...

A fatal error occurred: Timed out waiting for packet header
A fatal error occurred: Timed out waiting for packet header
ESP32: Timed out waiting for packet header
ESP32: Timed out waiting for packet header

The problem

First of all there is no proper documentation available for this error, so rectifying it becomes tough, but this is definitely not the programming or compilation error even with blank sketch, you may encounter this error. there are some issues on github which says that by pressing the reset button while holding the boot button solves this, but probably that's not the solution, i have tried on 2 of my boards but doing so boots my device into download mode and this is what i get on the serial monitor rst:0x1 (POWERON_RESET),boot:0x3 DOWNLOAD_BOOT(UART0/UART1/SDIO_REI_REO_V2)) waiting for download i'm not sure about this one probably it is something related to boot-loader but this is definitely what we want.


So before moving towards the solution:

  • first of all clear all the connections of ESP32
  • Make sure that there are no connections at least to the RX0, TX0.
  • Hit the upload button on Arduino IDE or platformIO
  • when you see the Connecting.................._____... message just hold the BOOT button and that's it
  • it will automatically detect the ESP32 hardware and start flashing it, you'll be displayed messages like Writing at 0x00008000... (100 %) this on your screen
  • Once you see that screen you can release the BOOT button.
ESP32: Code flashed successfully
ESP32: Code flashed successfully

Note: This will fix the issue but even if you are not able to flash the code then there is something wrong with your configuration, check your board, there are several ESP32 variants available in Arduino so chances are that you might have selected the wrong board than your hardware


From my observation, i guess this error is caused due to the usage of UART pins while flashing, i was able to successfully flash the code when i remove the connections of RX & TX . that's all! thank you for visiting my site, keep visiting for latest posts!!!