ESP32 Troubleshooting Guide

The ESP32 has a few common problems, specially when you are trying to upload new sketches or install the ESP32 add-on on the Arduino IDE. This guide is dedicated to the ESP32 when programmed with Arduino IDE. Here, we provide a compilation with some of the most common problems with the ESP32 and how to fix them.

Important: make sure you have the latest Arduino IDE installed. Using a different Arduino IDE version might cause other unexpected problems and errors.

Note: Espressif found some silicon design errors in the ESP32 which might be responsible for some unexplained errors/behavior. The errors are detailed in the following document:

Of particular note are 3.1 (relating to power up and deep sleep wake-up) and 3.4 (relating to not restarting on brownout). The old v0 and v1 chips were used in modules labelled ESP32-WROOM-32. The errors are fixed in modules ESP32-WROOM-32E and any other ESP32 designations ending in E.
See https://www.espressif.com/en/products/modules for full details. So, to avoid getting issues with your ESP32, we recommend searching for the ones labeled ESP32-WROOM-32E.

1. How do I install the ESP32 add-on for the Arduino IDE?

There’s an add-on for the Arduino IDE that allows you to program the ESP32 using the Arduino IDE and its programming language. Follow one of the next Units to prepare your Arduino IDE to work with the ESP32 in your operating system:

2. I can’t see the ESP32 boards in the Arduino IDE Tools menu (Windows PC)

If you still don’t see the boards in the Arduino IDE, make sure you click on the small arrow (highlighted in the figure below) to scroll all the way down through the boards:

If at this moment you can’t find your ESP32 board name, we recommend repeating the installation process from scratch.

3. C:\\Users\\ User\\Documents \\Arduino\\ hardware\\ espressif\\ esp32/tools /xtensa-esp32-elf /bin/ xtensa-esp32- elf-g++”: file does not exist

After installing the ESP32 add-on, if you open the Arduino IDE and it fails to compile code to your ESP32 board, we recommend re-running the Arduino IDE ESP32 add-on intallation.

Note: Windows PCs often have multiple Arduino IDE versions installed (portable and local installations). Make sure you are running the Arduino IDE where you installed the ESP32 add-on.

4. A fatal error occurred: “Failed to connect to ESP32: Timed out… Connecting…”

When you try to upload a new sketch to your ESP32 and it fails to connect to your board, it means that your ESP32 is not in flashing/uploading mode.

Having the right board name and COM por selected, follow these steps:

  • Hold-down the “BOOT” button in your ESP32 board
  • Press the “Upload” button in the Arduino IDE to upload a new sketch:
  • After you see the  “Connecting….” message in your Arduino IDE, release the finger from the “BOOT” button:
  • After that, you should see the “Done uploading” message

That’s it. Your ESP32 should have the new sketch running. With those boards/with that setup, after uploading a new sketch, press the “ENABLE” button to restart the ESP32 and run the new uploaded sketch.

You’ll also have to repeat that button sequence every time you want to upload a new sketch. But if you want to solve this issue once for all without the need to press the BOOT button, follow the suggestions in the next guide:

To be honest we’re not sure why that happens with the newer boards. We don’t have any ESP32 board with that behavior. We think there might be something different with your specific board or the Arduino IDE fails to send the right command sequence to put the ESP32 automatically in flashing/uploading mode.

5. Error compiling WiFiScan sketch

If you try to upload the ESP32 WiFiScan.ino sketch provided in the ESP32 Getting Started guide:

And it fails to compile with a similar error message:

In function ‘void setup()’:
ScanNetworks:52: error: ‘class WiFiClass’ has no member named ‘firmwareVersion’
String fv = WiFi.firmwareVersion();

It looks like your Arduino IDE is compiling the WiFi library for the Arduino board (instead of using the ESP32 WiFi library).

Note: you’ll probably never use any WiFi shield with your Arduino board, right? If you don’t use it, you need to remove that folder/those folders from your Arduino IDE (move it to your desktop, for example).

The WiFi library is located, in a similar path:

C:\Users\ruisantos\Downloads\arduino-1.8.7-windows\arduino-1.8.7\libraries\WiFi

And/or at:

C:\Users\ruisantos\Documents\Arduino\libraries\libraries\WiFi

After removing the entire WiFi library folder from one location or both locations, restart your Arduino IDE and try to compile the code again.

6. COM Port not found/not available

If you plug your ESP32 board to your computer, but you can’t find the ESP32 Port available in your Arduino IDE (it’s grayed out):


It might be one of these two problems: 1. USB drivers missing or 2. USB cable without data wires.

1. If you don’t see your ESP’s COM port available, this often means you don’t have the USB drivers installed. Take a closer look at the chip next to the voltage regulator on board and check its name.

The ESP32 DEVKIT V1 DOIT board uses the CP2102 chip.

Go to Google and search for your particular chip to find the drivers and install them in your operating system.

You can download the CP2102 drivers on the Silicon Labs website.

After they are installed, restart the Arduino IDE and you should see the COM port in the Tools menu.

2. If you have the drivers installed, but you can’t see your device, double-check that you’re using a USB cable with data wires.

USB cables from powerbanks often don’t have data wires (they are charge only). So, your computer will never establish a serial communication with your ESP32. Using a a proper USB cable should solve your problem.

7. Arduino IDE Serial Monitor “doesn’t work”

If the ESP32 is only printing weird text or gibberish messages in your Arduino IDE Serial Monitor, make sure you have the right COM port selected and set the right baud rate as shown below. In most examples, we’re using 115200 baud rate.

8. Error: “Brownout detector was triggered”

When you open your Arduino IDE Serial monitor and the error message “Brownout detector was triggered” is constantly being printed over and over again. It means that there’s some sort of hardware problem.

It’s often related to one of the following issues:

  • Poor quality USB cable;
  • USB cable is too long;
  • Board with some defect (bad solder joints);
  • Bad computer USB port;
  • Or not enough power provided by the computer USB port.

Solution: try a different shorter USB cable (with data wires), try a different computer USB port or use a USB hub with an external power supply.

9. I can’t make the ESP32 add-on work with Arduino IDE

If you’ve followed all the troubleshooting tips and the ESP32 add-on doesn’t work with the Arduino IDE, we recommend experimenting programming the ESP32 with Atom text editor and PlatformIO IDE. Follow this post: Atom text editor with PlatformIO IDE to program the ESP32.

Wrapping Up

We hope you’ve found this guide useful. If you encounter any other issues, please post them in comments below and we’ll try to help you solve your problem.

We have other tutorials with ESP32 that you might like:

We hope you’ve found this tutorial useful. If you like ESP32 and you want to learn more, we recommend enrolling in Learn ESP32 with Arduino IDE course.

Thanks for reading.



Build Web Server projects with the ESP32 and ESP8266 boards to control outputs and monitor sensors remotely. Learn HTML, CSS, JavaScript and client-server communication protocols DOWNLOAD »

Build Web Server projects with the ESP32 and ESP8266 boards to control outputs and monitor sensors remotely. Learn HTML, CSS, JavaScript and client-server communication protocols DOWNLOAD »

Recommended Resources

Build a Home Automation System from Scratch » With Raspberry Pi, ESP8266, Arduino, and Node-RED.

Home Automation using ESP8266 eBook and video course » Build IoT and home automation projects.

Arduino Step-by-Step Projects » Build 25 Arduino projects with our course, even with no prior experience!

What to Read Next…


Enjoyed this project? Stay updated by subscribing our newsletter!

117 thoughts on “ESP32 Troubleshooting Guide”

  1. Thanks! It took me a lot of time some weeks ago to make my ESP32 work, and this Tutorial seems to be a very good resume of all required steps. I fully recommend it to every one!
    Well done!

    Reply
  2. When Verifying a sketch with the Asyncmqttclient.h include I get this error:

    C:\Users\wbunker\Documents\Random Nerd\ESP32\ESP32-Course-master\code\MQTT\ESP32_Client_1_LED_DS18B20\ESP32_Client_1_LED_DS18B20.ino:11:29: fatal error: AsyncMqttClient.h: No such file or directory

    compilation terminated.

    Which add-on lib do I need to install?

    Reply
  3. Hi! Thanks for the full page of info. I ordered 5 ESP32 DevKitC’s and four of them work just fine, but the fifth one simply disagrees with me. It appears as COM8 just like all the others, but it doesn’t respond to the button dance like the others. I have tried info found on other pages, such as grounding GPIO15 at upload, but to no avail.

    Is there a way to get this connected, or, is it bricked for good?

    Reply
    • Hi.
      If the ESP32 is similar to the others and you’re doing the exact same procedure, I have no idea why it is not working 😐
      Unfortunately, I don’t have any other procedure to get it working.
      Regards,
      Sara

      Reply
  4. Hi there:
    Could you help me find a sulution on “A fatal error occurred: MD5 of file does not match data in flash!”
    MD5 is same in every attempt.
    Thanks
    Regards

    Reply
    • Hi Tim.
      I’ve never encountered that error.
      But after searching about that, I’ve found that many users resolve that situations by disconnecting all wires connected to pins before uploading the code.
      Take a look at this thread:
      github.com/espressif/esp-idf/issues/50
      Or it can be a power issue:
      github.com/espressif/esptool/issues/220
      I hope this helps,
      Regards,
      Sara 🙂

      Reply
  5. Bonjour. par 2 fois je vous ai adressé un message,concernant la lenteur de la compilation d’un esp32 par rapport a l’esp8266 .pourquoi?. si vous voulez que j’achète votre cours ,il faudrait déja répondre à mes qestions!.Salutations

    Reply
    • Hi Robert.
      I don’t understand French (I used Google translator).
      Where did you send the message to?
      We receive a lot of comments everyday and sometimes it is difficult to get track and answer all of them, I’m sorry for the trouble.
      ESP32 should upload code much faster than the ESP8266.
      Sometimes you get a message with a lot of dots and it never uploads the code. You should press the BOOT button when uploading the code.
      After you see the “Connecting….” message in your Arduino IDE, release the finger from the “BOOT” button.
      I’m not sure if this is what you were asking for.
      Regards,
      Sara 🙂

      Reply
  6. I have been using the ESP32 since it came out. I originally use Arduino IDE without a board support package. When the board support package became available I used it but need to hold down the boot button to start the connection. I am using the esp32 Thing from sparkfun. Never needed to do this before. It a pain when the board boot button is not readily accessible. I hope this gets fixed. I looked at the board support file and it looks like the old one for RTS and RESET.

    Reply
  7. I have tried multiple ways of installing but I keep getting …/BLEServer.cpp:21:22: fatal error: gatt_api.h: No such file or directory

    gatt_api.h dose exist it is in this directory :-
    C:\Users\MyUserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0\tools\sdk\include\bluedroid\stack

    Any ideas?

    Thakns

    Reply
    • Hi.
      I’ve never faced that error before. I’m not sure why it happens.
      But it seems that you’re missing the gatt_api.h file.
      Do you see that file in that directory path? C:\Users\MyUserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0\tools\sdk\include\bluedroid\stack

      Reply
  8. Thanks for the great tutorial.

    I have 2 Heltec ESP32 LoRa modules connected (no version is shown), so one is a node with one temperature sensor and the other is a gateway connected to the TTN. The problem is that it’s only working for spreading factor 7!!!
    Any other SF that I configure, the Heltec display only shows “READY” and IP (which I am also not able to access as webserver). Weird…

    I’m using the matthijskooijman library for 915 MHz.
    If I open the serial monitor and reset the gateway, it seems that the settings I make are not having any effect.
    Even confirming that it is “#define _SPREADING SF8”, the serial monitor shows “Listening at SF7”. Are there any other parameters that I need to configure for SF? I’m also not able to access through IP, it does not load the page.

    Reply
  9. I get the error ” Error downloading downloads.arduino.cc/packages/package_index.json” each time at the bopard manager menu and the ESP32 system doent come up with a search. Kindly help with your thoughts on this problem.

    Reply
    • Hello, it looks like you have a wrong URL in the boards manager field. Please copy the exact URLs that I mention in that project. Make sure you are also running the latest version of the Arduino IDE.
      Thanks!

      Reply
  10. COM Port not found/not available, I have two esp32 working in my table, but one dont conect to pc anymore. They both are equals, one conect with no problem but the other don’t conect anymore. I think I have burn but how?

    Reply
    • Hi Igor.
      With that information it is difficult to understand what is going on with your ESP32.
      The ESP32 will “burn” if you connect its GPIOs to a voltage higher than 3.3V (I don’t know if it is the case).
      If both of your ESP32 boards are brand new, maybe one of them is faulty.
      Regards,
      Sara

      Reply
  11. Sara, thanks for the great article, the bit about holding down the reset was very helpful.

    I have been developing on the ESP32 for a while (after learning about the reset button) but after the latest IDE update, it will not compile.

    The initial error was that it could not find an include file (I forget which one now). I started looking through the log and ended up copying the libraries over almost everywhere (i.e. downloaded libs from github, copied to \users\xxx\Documents\Arduino, \users\xxx\appdata\local\Ardiono15\packages, and \Program Files (x86)\Arduino\hardware).

    That fixed most of the include errors, but I still have problems. The latest:
    ——————————
    C:\Users\xxx\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0\libraries\WiFi\src\WiFiAP.cpp:40:43: fatal error: dhcpserver/dhcpserver_options.h: No such file or directory

    Multiple libraries were found for “WiFi.h”
    compilation terminated.
    ——————————

    This all seems very wrong to me. At first, I even deleted all the libraries and re-installed. It seems to me that someone screwed up somewhere. I’m just surprised I don’t see more complaints. (I can’t be the only one).

    Reply
  12. Hi Sara,
    I am having a repetitive issue with the ESP32 Dev Board and help you may be able to help. I am using the ESP8266 on 3 similar applications and now the ESP32 on 2 but lately it seems the newer boards are giving this same issue repeatedly. The board is ESP32S with chip ESPRESSIF ESP32-WROOM-32, looks the same as the one at the top of this post even with the green dot.
    I am measuring 8 thermistors through a multiplexer and then into one pin, adc0. This is done because I require the temperature difference to be accurate and so they all use the same resistor, eliminating one variable in the circuit. The results are then sent to IoT platforms via wifi.
    The issue is that it all works great for a few hours (anywhere from 8 to 24) but then the results get extremely noisy for no reason. The noise can be fixed by a software reset. But why is this happening and is there a way to get control of it?

    Reply
  13. Hi Sara,

    For me, the problem is that after disconnecting my ESP32 with a LoRa chip, the uploaded can be finished. Then I connect them with UART RX and UART TX. But no text or results show in the Serial Monitor even I use some commond like AT.
    I am sure the connection program is well. So could you please give some advice?

    Thank you

    Reply
  14. Hi, Thanks for very amazing tutorial

    could you help me find a solution for this problem

    ets Jun 8 2016 00:22:57

    rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    configsip: 0, SPIWP:0xee
    clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
    mode:DIO, clock div:1
    load:0x3fff0018,len:4
    load:0x3fff001c,len:1100
    load:0x40078000,len:10088
    load:0x40080400,len:6380
    entry 0x400806a4
    ets Jun 8 2016 00:22:57

    rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    configsip: 0, SPIWP:0xee
    clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
    mode:DIO, clock div:1
    load:0x3fff0018,len:4
    load:0x3fff001c,len:1100
    load:0x40078000,len:10088
    load:0x40080400,len:6380
    entry 0x400806a4
    ets Jun 8 2016 00:22:57

    rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    configsip: 0, SPIWP:0xee
    clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
    mode:DIO, clock div:1
    load:0x3fff0018,len:4
    load:0x3fff001c,len:1100
    load:0x40078000,len:10088
    load:0x40080400,len:6380
    entry 0x400806a4
    ets Jun 8 2016 00:22:57

    rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    configsip: 0, SPIWP:0xee
    clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
    mode:DIO, clock div:1
    load:0x3fff0018,len:4
    load:0x3fff001c,len:1100
    load:0x40078000,len:10088
    load:0x40080400,len:6380
    entry 0x400806a4

    Reply
    • Hi Dany.
      Your ESP32 is rebooting continuously. This means that you probably have something wrong in your code that crashes the ESP32.
      Regards,
      Sara

      Reply
    • Hi Danny, I have had this problem before. I found on another forum a solution by adding a capacitor on a specific pin. I cannot remember what type of ESP32 it was… , this device was a clone and had other problems. I thrown it out… Do not look in your software, I had lost hours and hours with this pseudo Lilygo TTGO appliance before buying a genuine product. Regards, Pierre.

      Reply
  15. Hi.
    I uploaded my first code to my esp32 devkit v1 board and I worked perfectly and trying to upload the second code, I keep getting this error message

    *A fatal error occurred: Timed out waiting for packet content*

    And when I open the serial monitor, this message keeps coming up

    rst: 0x10 (RTCWDT_RTC_RESET), boot:0x33 (SPI_FAST_FLASH_BOOT)
    flash read err, 1000
    ets_main.c 371
    ets Jun 8 2016 00:22:57

    Reply
  16. Hi I am having trouble programming an ESP32 using arduino 1.8.9 I get a virus alert and the message Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.4/tools/gen_esp32part.exe I suspect my virus detector has eliminated this “package” It was installed using the https://dl.espressif.com/dl/package_esp32_index.json,http://arduino.esp8266.com/stable/package_esp8266com_index.json,https://dl.espressif.com/dl/package_esp32_index.jsonin preferrences.

    An suggestions would be appreciated as I have spent a lot of time trying to resolve this issue. I am also having problems installing arduino !.8.12. it seems to require all the libraries of the existing 1.8.9 and does not automatically install them. Again any help will be appreciated

    Reply
  17. Hi Sara,
    I submit to you a problem with a secure router link to the ESP32 shield

    the Esp32 does not worked on a secure router (name broadcastOn)
    IT WORK fine on an open router (factory set )

    the declaration are in according with Arduino web site concerning both routers

    // begin with secure router
    status = WiFi.begin(ssid,password);

    // begin with unsecure router
    status = WiFi.begin(ssid);

    HERE are the output of two consoles

    =====abort with the secured router=====
    Console outpup
    16:03:50.630 -> Connecting to broadcastOn
    16:03:50.715 -> …………………… and so on permanently!
    CAUSE infinte loop on (WiFi.status() != WL_CONNECTED)

    =========work fine with an “open” router (factory set)======
    Console outpup
    16:08:40.215 -> Connecting to linksys
    16:08:40.362 -> ..
    16:08:44.369 -> WiFi connected.
    16:08:44.369 -> IP address:
    16:08:44.369 -> 192.168.1.101

    only one loop at the test (WiFi.status() != WL_CONNECTED)
    ————–
    HERE is the setup
    =====Software======
    Arduino IDE version 1.8.12
    WiFi.h, version 2.1
    WiFi.cpp, version 2.1
    the wifi librairy is

    C:\Users\usager\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\WiFi
    (dated on 2016)

    ======Hardware
    model cart: DOITESP32 DEVKIT V1
    ESPDUINO-32 chip esp32-wroon-32
    Chip is ESP32D0WDQ5 (revision 1)

    setup of the secured router
    SSID: broadcastOn
    securty: WPA2 Personal with AES chiffrement

    setup of the NO secured router
    SSID: linksys
    securty: “nothing”

    You ask… Do I have check the right password variable. Yes I made double check ( Hi)

    Have you a solution?
    thk for help

    Reply
      • Hi Sara,
        first, thk for fast reply. I appreciate.
        second, I will follow your suggestion conceerning Enterprise security link.
        I can you back new if you want.
        third, I am supprised that anybody give an answer on a web blog or community help about my issue. Anyway..
        fourth, thk for the ESP32 librairy. Can I share it with my students or they need to creater their own account. For your information, the college where I work agree to respect the “droits d’auteurs”.

        I hope wy english writing is not too bad 🙂
        Alain

        Reply
        • Hi again.
          If you find something, please share, it can be helpful for others.

          Anyone can consult/use our tutorials on the RNT blog. When using our projects, please make a reference to our blog.

          When it comes to our premium courses (accessed through the RNTLAB.com website), they need to create their own account. If you need further help about access to courses, you can submit a question here: https://randomnerdtutorials.com/support/
          Regards,
          Sara

          Reply
  18. Howdy,

    A small suggestion to complete this guide: you could mention the malfunction that occurs when using WiFi and reading the ADC2 analog pins simultaneously .

    A small table of contents in the preamble would also help orient the reader to the problem he may encounter.

    Thank you again for the valuable information in this guide.

    Best wishes,
    Steph

    Reply
  19. I have been struggling with: “SPIFFS Upload failed!” when using “ESP32 Sketch Data Upload”.

    It turns out that I still had the “Serial Monitor” open from a previous experiment; closing the “Serial Monitor” solved the problem

    Reply
    • Great!
      Thanks for sharing that. You need to close the Serial Monitor so that it can establish a proper serial connection with your ESP32.
      Regards,
      Sara

      Reply
  20. I have implemented several ESP32 and ESP8266 projects with the Arduino IDE that work fine…once the IP address shows up on the list of ports (Tools | Port: | Serial Ports). The problem is, it will often take hours or days for the IP address to show up. In the meantime I can upload new sketches via the COM port, but cannot access the WiFi web page until the IP address shows up on the list.

    In most cases I KNOW what the IP address is, as the Serial Monitor will show the IP address that has been assigned. I enter the IP address into the Chrome Address bar, wait a few seconds, and get a “This site can’t be reached” error.

    The IP address is shown on my router’s admin page and is identified as “expressif”, so the router “sees” the ESP.

    Any ideas what I need to do to stimulate a response – from the router, ESP, IDE or…???

    Reply
  21. Greetings,

    Thank you for this post. I have a problem I hope you can help with. I have my code running fine with information being displayed on the serial monitor and posting data on a node-Red UI page. All good.

    If I press the ESP32 rest button, the serial monitor dumps some jiberish and then stops. It does not go “grey” as it does when I am compiling and reloading, it stays “white” but nothing prints. As well, the node-Red dashboard is no longer being updated. I have tried closing and re-opening the serial monitor with no luck and have varified the com port and buad rates are correct.

    I have to reload the code to get things running again.

    Am I missing a sequence when hitting the reset button? I would expect the program to just restart but that does not seem to be happening.

    Reply
    • Hello Tim, to be honest I’m not sure what’s going on based on just that information (I would need to personally test your project to see what’s missing). A code that is flashed in your ESP it will always run after a restart (press the RESET button)…

      Note: you can ignore that jiberish

      Reply
  22. Hi everyone. After starting in 8266 i wanna try the ESP32. Problem is that i cant compile anything due to this error.

    exec: “{runtime.tools.esptool_py.path}/esptool.exe”: file does not exist
    Error compiling for board ESP32 Dev Module.

    I tried some “solutions” that i found over the internet, but no luck yet.
    Does anyone experienced this? With ESP8266 everything is ok.

    Reply
  23. Hello Rui and Sara,
    I am fairly new to Random Nerd Tutorials, having purchased a package just a few days ago.
    I have been working to put together a weather station and have successfully got code running on a Raspberry Pi4b and also using an Adafruit anemometer, a wind speed and air temperature sensor (DS18B20) using an Arduino Mega2560. All working ok.
    I am now trying to get working, an ESP32 with bme680 sensor. I can achieve results with the esp32 and bme680 test code. All works well and displays results on the serial monitor. I did have to input the 0x76 address to get the code working. I have now moved to the ESP32 bme680 web server tutorial and I can’t get the code to configure.
    The ESP32 board is the ESP32-DevkitC-V4. It worked with the DOIT ESP32 DEV KIT V1 for just the bme680. I have tried several of the boards listed in the Arduino IDE and have tried to find the particular board I have. No success.
    This is the error I get for any board I try: “Error compiling for board DOIT ESP32 DEVKIT V1”.
    I have downloaded the CP210x driver, all to no avail.
    Could you put me in the right direction to solve the problem.
    Best Regards,
    John Beaty.

    Reply
  24. Another question! I have a LOLIN32 V1.0.0
    This board does not have a boot-knob. I remember that you had a solution for that bij placing an outside capacitor between ground and ‘zero’ . If I am right can you give me a ling to more explanation?

    Reply
  25. A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
    please send me solution for this, also tell me how to check whether the Chip ESP 32 wrover – b is damaged or not using multimeter

    Reply
  26. Hi Sara,

    Thank you, and your friends for this mega helpful website, it is brilliant.

    Re the ‘failed to connect’ timeout when uploading new code to ESP32, and noticing a comment saying not sure why this happens you might find my experience interesting. I have set-up the identical sketch on two computers and identical Arduino IDE as I am trying to resolve a different problem with a temperature sensor, and trying to rule out USB voltage/power being the issue. I purchased my ESP32 DevKit DOIT board two weeks ago, delivered 05/12/2020. When uploading new sketch via powerful desktop computer I don’t get any error and don’t need to press the Boot button. When I upload same code with my laptop which is about a third to a quarter the speed of desktop it fails with the ‘failed to connect’ message every time and I have to press the Boot button to get it to connect and upload. As I say again I have tried to make everything the same, the only difference is the Windows computer hardware. I hope this helps someone.

    Keep up the great work Sara.

    Reply
  27. I uploaded your “slider bar on a web server” onto my ESP 32 but it doesn’t work. Serial output is :

    Watchdog triggered. The following task did not reset the watchdog in time:

    task_wdt: – IDLE0 (CPU0)
    task_wdt: task currently running
    task_wdt: CPU 0 WIFI
    task_wdt: CPU1 idle
    task_wdt: Aborting

    I also tried a simpler program that utilizes the WIFI function with the same result.

    What are actually all the settings when I choose the ESP32 board in the TOOLS menu like PSRAM or Flash mode. Where can I see on how to set it up properly.

    Any advice will be helpful.

    Regards
    Andreas Rothe

    Reply
  28. Hi Sara,
    I did not read all the above comments so I apologize in advance if his has already been stated.
    I have one of the ESP Cam boards and wired it exactly according to the sketch at randomnertutorials. After testing to make sure all the intermediate components (computer, USB cable, FTDI board, jumper wires, …etc.) were all functional, I was still getting the “Failed to connect waiting for packet header” error. There was one YouTube video where he set the FTDI to 3.3 volts and wired the Vcc of the FTDI to the Vcc of the ESP Cam board. So, I tried that and, with no other changes, it worked!
    A little more research revealed that there seems to be some discrepancies in how the FLASH voltage is set up on the specific ESP board. Some use 5 volts and others use 3.3 volts. There is a way to change or override this using esptool but then things get far more complicated than they need to be for my students whom are middle school kids trying to learn this stuff.
    Anyway, just some more info to add to your knowledgebase. Merry Xmas BTW!😎

    Reply
  29. i had terrible brownout issues. struggled for days – tried everything on the forums.

    Solution – just connect the desktop power to the esp32-cam and all my troubles disapeared.

    seems the esp32-cam runs so close to the 5v power limit, that 5v from a desktop power supply is required when connected to the computer’s usb port. not quite enough power and that makes all the difference.

    Reply
  30. Buongiorno Sara, ho seguito tutti i passi indicati dalla vostra guida ma continuo ad avere sempre lo stesso errore.

    Arduino:1.8.13 (Windows Store 1.8.42.0) (Windows 10), Scheda:”ESP32 Dev Module, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 921600, None”

    Lo sketch usa 623662 byte (47%) dello spazio disponibile per i programmi. Il massimo è 1310720 byte.

    Le variabili globali usano 38744 byte (11%) di memoria dinamica, lasciando altri 288936 byte liberi per le variabili locali. Il massimo è 327680 byte.

    esptool.py v2.6

    Serial port COM5

    Connecting…

    Traceback (most recent call last):

    File “esptool.py”, line 2959, in

    File “esptool.py”, line 2952, in _main

    File “esptool.py”, line 2653, in main

    File “esptool.py”, line 460, in connect

    File “esptool.py”, line 440, in _connect_attempt

    File “esptool.py”, line 379, in sync

    File “esptool.py”, line 322, in command

    File “esptool.py”, line 285, in write

    File “site-packages\serial\serialwin32.py”, line 323, in write

    serial.serialutil.SerialTimeoutException: Write timeout

    Failed to execute script esptool

    Errore durante il caricamento dello sketch

    Una cosa di cui non sono certo è il nome della scheda, ho acquistato queste qui
    https://www.amazon.it/gp/product/B08CCYWZN3/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1.

    Potete aiutarmi a risolvere questo problema?

    Reply
    • Hi.
      Update the ESP32 Boards- Go to Tools > Board > Boards Manager. Search for ESP32 and see if there is a newer version available and install it.
      Regards,
      Sara

      Reply
      • Buongiorno Sara, attualmente ho la versione più recente (1.0.4).
        Mi chiedevo se avessi sbagliato il nome della scheda, non so se è la stessa che avete utilizzato voi.
        Quando vado su Strumenti> Scheda>Acquisisci informazioni scheda
        ottengo sempre come risposta
        “Porta seriale nativa, non posso ottenere informazioni”.
        Ti ho linkato le schede che ho acquistato perché non capisco quale è il loro nome, potresti dirmi da dove si legge ?

        Reply
  31. Hello,

    Trying to run the samples from https://randomnerdtutorials.com/esp-now … duino-ide/ Getting Started with ESP-NOW (ESP32 with Arduino IDE), but keep running into compile error. The board I am using is the ESP-WROON-32 dev board.

    If I run the sketches with
    CODE: [SELECT ALL] [EXPAND/COLLAPSE]
    // REPLACE WITH YOUR RECEIVER MAC Address
    uint8_t broadcastAddress[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
    GeSHi © Codebox Plus Extension
    , everything runs as expected.

    However, if I replace the broadcast address with the Mac Address of the receiver
    CODE: [SELECT ALL] [EXPAND/COLLAPSE]
    // REPLACE WITH YOUR RECEIVER MAC Address
    uint8_t broadcastAddress[] = {AC:67:B2:26:5D:78};
    GeSHi © Codebox Plus Extension
    , I get the following error message.

    CODE: [SELECT ALL] [EXPAND/COLLAPSE]
    Arduino: 1.8.13 (Windows 10),
    Board: “ESP32 Dev Module,
    Disabled,
    Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS),
    240MHz (WiFi/BT),
    QIO, 80MHz,
    4MB (32Mb),
    921600,
    None”

    sketch_feb14a:16:36: error: expected ‘}’ before ‘:’ token

    uint8_t broadcastAddress[] = {AC:67:B2:26:5D:78}; ^

    sketch_feb14a:16:36: error: name ‘AC’ used in a GNU-style designated initializer for an array

    sketch_feb14a:16:36: error: expected ‘,’ or ‘;’ before ‘:’ token

    sketch_feb14a:16:48: error: expected declaration before ‘}’ token

    uint8_t broadcastAddress[] = {AC:67:B2:26:5D:78}; ^

    Multiple libraries were found for “WiFi.h”

    Used: C:\Users\name\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\WiFi

    Not used: C:\Program Files (x86)\Arduino\libraries\WiFi

    exit status 1

    expected ‘}’ before ‘:’ token
    GeSHi © Codebox Plus Extension
    I have read some posts that suggest removing one of the instances of “WiFI.h”, but that doesn’t fix the issue.

    Any suggestions?

    Thanks

    Reply
    • Hi.
      This line
      uint8_t broadcastAddress[] = {AC:67:B2:26:5D:78};
      Should be like this:
      uint8_t broadcastAddress[] = {0xAC:0x67:0xB2:0x26:0x5D:0x78};
      I hope this helps.
      Regards,
      Sara

      Reply
      • Hi Sara,

        Thank you for the reply. I already figured out I am an idiot 🙂

        All the tutorials were telling me to get AC:67:B2:26:5D:78 from the Mac Address scripts and it only occurred to me late last night that it should be hex because of unit8_t.

        Regards

        Reply
  32. Thanks, I have the WiFiScan example uploaded in a ESP32-CAM and it showed the message “Brownout detector was triggered” in this case to solve it, I needed to do:
    1. Change the USB computer port
    2. disable the Brownout with:
    #include “soc/soc.h” //disable brownour problems
    #include “soc/rtc_cntl_reg.h” //disable brownour problems
    and
    WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); //disable brownout detector in the setup.

    Reply
    • Thanks !
      That is a useful suggestion, though one may want to protect against legit brownouts, so use with some caution with critical projects.
      Also, I had to place the #include arguments within carets (<>) so the compiler looks for them in the standard search paths and not in the project directory.

      Reply
  33. In my opinion the error can be traced back to a 3.3 Volt regulator. The power it supplies is too small. An electrolytic capacitor between 3.3 Volt and the ground can help.
    i have used a 2200 microFarad. However, this one is a bit big. But the problem was over.

    Reply
  34. I am new to the ESP32 and having a problem uploading code for the CameraWebServer

    Failed to connect to ESP32: Timed out waiting for packet header

    I have read the article in the troubleshooting guide regarding this problem. However, I just bought an AI Thinker ESP32 Cam and it has no Boot button nor does it show an EN pin. What would you suggest?

    Thanks, Nick

    Reply
      • I did check that guide this morning and have rechecked everything mentioned several times. 5v =5.09v. As I’ll be using the FTDI several times and to eliminate any loose connection there, I solder leads to its outputs to connect to the ESP32. The green light on the FTDI is flashing when the dots start, both before and after I press and release the reset button, so I’m pretty sure the com port is correct. The board is AI Thinker. I/O0 is grounded. I’m only putting 5v from the FTDI to 5v on the ESP32; did you also want me to put 5v on VCC at the ESP32 also?

        As I have two EP32 Cam boards, tried second board with the same result. Still getting the fatal error.

        I’ve copied compiler and load verbose output. I can send it if that would help.

        Thanks for helping, Nick

        Reply
        • Your ESP32 board should have a pin labeled 5V.
          Connect 5V to that pin (don’t connect the 3V3 pin)
          But the fatal error is related to the fact that the ESP32-CAM is not in flashing mode or that the computer cannot establish a serial connection.
          Regards,
          Sara

          Reply
          • I found the problem: TX to TX, RX to RX! I must have looked at your diagram 10-20 times.

            But then I got this error:

            A fatal error occurred: Invalid head of packet (0x78)

            I solved this problem by not connecting 5v to the ESP32 until after the dots start. Evidently the reset button didn’t work. See comment on Oct 26, 2020 at

            https://github.com/espressif/arduino-esp32/issues/1253

            I really like your tutorials. Easy to understand and very complete. Especially good for beginners like me.

            Regards, Nick

  35. RE: Brownouts:
    I just got a development board where the onboard LDO voltage regulator isn’t capable of supplying enough current. LDO Max was < Power used by WIFI.

    Reply
  36. A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header

    can someone help me. i got this problem eventhough im already follow the step of rebooting the esp32.

    Reply
  37. Thank you very much!
    I lost many time trying to connect and I was using a only-for-charge wire (issue 6.2).

    Muito obrigado!

    Reply
  38. Hi, I installed arduino new version and I followed the esp32 installing instructions but I have an error. This is error.
    exec: “cmd”: executable file not found in %PATH%
    Error compiling for board DOIT ESP32 DEVKIT V1.
    Please help me to solve it.
    Thank you.

    Reply
  39. Boa noite Sara ,
    tenho um esp32 oled e depois que compilei um codigo nao consigo mais compilar outro
    o erro é A fatal error occurred: MD5 of file does not match data in flash!
    Uso o esp na IDE do arduino
    Por favor consegue me ajudar ?

    Reply
  40. Thanks for the great tutorial. I’m having problems getting a Nano sketch to work on my (Heltec) ESP32. Seem the ESP32 doesn’t have a PORTB or PORTD so I’m getting the following errors:

    DAC_MCP4X.cpp:179:3: error: ‘PORTB’ was not declared in this scope
    PORTB &= 0xfb; // Clear PORTB pin 2 = arduino pin 10
    ^

    DAC_MCP4X.cpp:217:3: error: ‘PORTD’ was not declared in this scope
    PORTD &= ~(1 << 7); // Uno: digital pin 7; Mega: digital pin 38
    ^

    How can I tell which pins on the ESP32 are the correct equivalents for PORTB and PORTD on the Nano and how do I remap the code accordingly?

    Reply
  41. I had the exact same problem “Brownout detector was triggered” when enabling bluetooth, I found out it was a junk usb cable, chipsce brand, I used a usb cable from my smartphone and everything runs perfectly.
    I tested it on 4 ESP32 and 4 junk cables, I was sure it’s the brand of the cable. 🙂

    Reply
  42. Hi, I have a probelm in Tx and Rx of data in ble mode, but it shows ble is connected. I tested not only my UI , with nrfConnect app also its not working. Can you please help me how to trouble shoot.
    I have another device, in this i am unable to upload the code , it entered in to write protected mode, how to trouble shootthis , Plesae help me .

    Thanks.

    Reply
  43. Hi,.. i only wanted to make a BT pageturner. ( !! ) soldering was not theproblem,…. but the programming and installing. Hope you can helpme. I have problems with

    A fatal error occurred: MD5 of file does not match data in flash!I’ve tried it severaltimes while pressing the BOOT-switch.

    can you helpme ?

    Dit rapport zou meer informatie bevatten met
    “Uitgebreide uitvoer weergeven tijden compilatie”
    optie aan in Bestand -> Voorkeuren.

    Reply
  44. I’m hoping you can help me. I just received 2 ESP-Wroom-32 boards from aliexpress. I don’t if anything is wrong with them – I believe there is something wrong in my Arduino IDE. Whenever I try to compile any kind of ESP32 board I get this error:

    exec: “cmd”: executable file not found in %PATH%. Error compiling for board FireBeetle-ESP32.

    It doesn’t matter if there is anything plugged into the usb port or not. I have just updated to 1.8.19, removed ESP from the boards manager and reinstalled. I get the same error. I hope you can help. Thank you

    Reply
    • Hi.
      I’m sorry but I’m not sure what that error means.
      Did you instal the ESP32 boards in the Arduino IDE? What’s the version? And your Arduino IDE version?
      Regards,
      Sara

      Reply
      • Hi Sara,
        Thanks for responding. Yes I installed the ESP32 boards in the Arduino IDE. The error comes up when I try to compile any sketch on any ESP32 boards. I tried uninstalling and installing the ESP boards at least twice. I installed the latest version of the Arduino IDE – 1.8.19. Nothing has worked. I have been scouting around for answers to my problem and found an Arduino forum thread that I think may apply to my problem. However, instructions include wiping all of the arduino15 (whatever that is) files off and then reinstalling the ESP32 boards. I’m not that confident about deleting stuff I don’t understand. Here’s the link: https://forum.arduino.cc/t/esp32-error-when-compiling/886030.

        Thanks again Sara.

        Reply
          • Hi Sara,
            Thanks for sticking with me. I followed the instructions for the tutorial link you sent me. I deleted all the files in arduino15 and pasted the ESP32 and ESP8266 json files in preferences. Then I went into the boards manager and reinstalled ESP32 and ESP8266. I went to the wifi example sketch and same thing – it gives the same error whenever I try to compile. It doesn’t matter what board I put in for the sketch. It won’t even compile a bare minimum sketch. I have a windows 7 machine. Do you think that’s a problem?

            Thanks again for all your help

          • I don’t know…
            I recommend uninstalling Arduino IDE and deleting all related files and starting again.
            Regards,
            Sara

          • Well, I’ve uninstalled the IDE before and it didn’t make any difference. I don’t see any purpose on doing the same thing that doesn’t work. By the way, today I tried installing on a different machine. I had to start from scratch – it didn’t even have the Arduino IDE yet. The programs would compile ESP32 boards so at least I know it’s not something I’m doing wrong. Couldn’t get a program to upload but that’s a whole different problem. Had I known that these boards were going to be such a hassle I would have never bought them.

            Thanks again for trying to get me going. I think I’ll just throw these guys away and go back to something that just works.

          • Hi.
            I’m sorry for the issues.
            Usually, this works first time without any problems.
            I don’t know if there is any setting on your computer that is causing the problem…

            I don’t know what kind of errors you’re facing to upload. If you share them, maybe I can help.
            Regards,
            Sara

  45. Solution: Error 4 I could only solve by updating using another USB Cable and Updating the driver.

    Not all USB-Cables can transfer data. If it’s the right kind of cabel, you should receive a notification by your computer, when connecting the ESP32.
    After plugging the ESP32 the first time into your computer, a driver will install.
    In my case the driver didn’t work.
    You can tell by going into the device manager. The driver will not work, if there is a yellow triangle next to your new installed driver.
    Find a another version of the driver by googeing it’s name. Also google how to install a driver.

    Hope that helps.

    Reply
  46. Hello. my esp32 cam in serialprint always dl_matrix3du_alloc failed when i turn on face detection and face recognition. may you help me plis? thank you

    Reply
  47. I uploades the code in my esp32 cam module when i open my serial monitor i remove gi0 and gnd pin and press reset button, instead of showing ip address the serial montior is showing infinite dots ….pls help

    Reply
    • Hi.
      That usually means that the board is not able to connect to your network.
      Double-check that you’ve inserted the right network credentials.
      Additionally, make sure your board is relatively close to your router.
      Regards,
      Sara

      Reply
  48. Arduino: 1.8.19 (Windows 10), Board: “NodeMCU-32S, 80MHz, 921600”

    Sketch uses 636002 bytes (48%) of program storage space. Maximum is 1310720 bytes.

    Global variables use 37900 bytes (11%) of dynamic memory, leaving 289780 bytes for local variables. Maximum is 327680 bytes.

    esptool.py v3.0-dev

    Serial port COM4

    Connecting…

    Traceback (most recent call last):

    File “esptool.py”, line 3682, in

    File “esptool.py”, line 3675, in _main

    File “esptool.py”, line 3330, in main

    File “esptool.py”, line 512, in connect

    File “esptool.py”, line 492, in _connect_attempt

    File “esptool.py”, line 431, in sync

    File “esptool.py”, line 369, in command

    File “esptool.py”, line 332, in write

    File “site-packages\serial\serialwin32.py”, line 323, in write

    serial.serialutil.SerialTimeoutException: Write timeout

    Failed to execute script esptool

    An error occurred while uploading the sketch

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

    Reply
  49. Hi Sara,
    can you help me regarding the following compilation error ?
    I use it normally since 2 years but now…………….

    ————/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: cannot find crt1-sim.o: No such file or directory
    ————/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: cannot find _vectors.o: No such file or directory
    collect2.exe: error: ld returned 1 exit status
    exit status 1
    Errore durante la compilazione per la scheda LOLIN D32.

    Reply
  50. I’m interested in more detailed trouble shooting. My program is getting very large and is causing PANIC. I suspect it is stack issues but would like to know more:
    How big is the stack?
    Can I allocate more (malloc style)?
    Can I see a memory allocation map?
    Will addr2line work with the Ard IDE?
    Any other suggested tools?

    Thanks
    Barry

    Reply
  51. Hi! Thanks for all the great tutorials posted.
    I am having some troubles flashing an ESP32 board with my pc.
    The problem is, unless I press the “boot” button I can’t upload my code, this happens both with linux and windows (I have partitioned my pc).
    I thought it was the cable, but using the pc of one of my friends (which has an older version of arduino ide) I was able to load the code to my ESP32 board directly from Arduino IDE just pressing the upload button.
    Did it happen to someone else?
    Thanks a lot in advance!

    Reply
  52. Hi Sara,
    I recently discovered that Espressif found some silicon design errors in the ESP32 which might be responsible for some of the unexplained errors here.

    The errors are detailed here: https://espressif.com/sites/default/files/documentation/eco_and_workarounds_for_bugs_in_esp32_en.pdf Of particular note are 3.1 (relating to power up and deep sleep wake up) and 3.4 (relating to not restarting on brownout). The old v0 and v1 chips were used in modules labelled ESP32-WROOM-32 (so all of mine). The errors are fixed in modules ESP32-WROOM-32E and any other ESP32 designations ending in E.
    See https://www.espressif.com/en/products/modules for full details and note that they say ESP32-WROOM-32 is not recommended for new designs.

    It would be useful to mention this on your page on ESP32 development boards so people can steer away from the older ESP32-WROOM-32 based boards where they have a choice.

    Reply
  53. I am using the Cam module ESP 32 Cam with the main board that connects underneath it. I’m able to do just about everything except for when I run it with this sketch web server for the camera. It seems to work I get no errors but the serial output is just a string of dots. I found in the code that when it’s trying to initialize the wifi server it is a piece of code that print dots to the serial monitor it I guess until it’s initialized? The problem is it never finishes it just keeps printing dots forever.

    Here is the section of code:
    WiFi.begin(ssid, password);

    while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(“.”); // it never gets past this point
    }
    Serial.println(“”);
    Serial.println(“WiFi connected”);

    startCameraServer();

    Serial.print(“Camera Ready! Use ‘http://”);
    Serial.print(WiFi.localIP());
    Serial.println(“‘ to connect”);
    }

    void loop() {
    // put your main code here, to run repeatedly:
    delay(10000);
    }

    Reply

Leave a Reply to Stephen McG Cancel reply

Download our Free eBooks and Resources

Get instant access to our FREE eBooks, Resources, and Exclusive Electronics Projects by entering your email address below.