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 power banks 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.

If you need further details on how to install these drivers, you can follow these guides:

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.



Learn how to build a home automation system and we’ll cover the following main subjects: Node-RED, Node-RED Dashboard, Raspberry Pi, ESP32, ESP8266, MQTT, and InfluxDB database DOWNLOAD »
Learn how to build a home automation system and we’ll cover the following main subjects: Node-RED, Node-RED Dashboard, Raspberry Pi, ESP32, ESP8266, MQTT, and InfluxDB database DOWNLOAD »

Enjoyed this project? Stay updated by subscribing our newsletter!

175 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
      • Can someone help me i have error while running the esp32 cam module. Face detection and face recognition is not working

        Item psram alloc failed. Size: 126720 x 1
        matrix3du item alloc failed.
        dl_matrix3du_alloc failed

        Reply
      • Hii I have a esp32 module which used to work fine but now it just wont connect to my computer i dont know whats wrong but i have connected it through a proper cable and installed the drivers but i wont just show in the device manager(Windows 10)

        Reply
          • I have a same problem like Harshal Gunwani. It through a proper cable and installed the drivers but it don’t show in the device manager. I try to connect other labtop then it cans show in the device manager. So I think my board isn’t broken. How can i do anything to make it work?

          • Hello i have a problem im my board

            (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:1216
            ho 0 tail 12 room 4
            load:0x40078000,len:10944
            load:0x40080400,len:6388
            entry 0x400806b4

            ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………….ets Jun 8 2016 00:22:57
            )
            It’s always like this and it doesn’t give me a link to open the camera
            thenks

          • Double-check your network credentials and ensure that the camera is relatively close to your router.
            Regards,
            Sara

          • to Harshal Gunwani
            add a big problem to ESP32 , when both buttons are pressed, in order to entry reset or program mode , the diode SL placed in left corner of the usb connector blows, I have checked with to different models .The result is that you can not program or detect the ESP32, be careful, it make me foolish for days till i saw with a lens
            Espresiff ESP32 = bad design ( been so kind!)

            here you have the links to see and repair this failure
            checkhttps://forum.arduino.cc/t/esp32-failure-and-repair/655168

            https://www.instructables.com/How-to-Repair-Burned-Arduino-or-ESP32/

            Best Regards from Spain
            Luis

      • Hi,
        My esp 32 keeps on restarting when connected to computer… I have to keep on pressing the EN button to flash my esp32 but after flashing boot button don’t works
        Please advise

        Reply
    • Hi all,

      I had the following issue :
      Error opening serial port COM8. (Port busy), same with other ports…. strange because i was able to use other devices with CH340.

      Closing Cura (3D model slicer software) made it work instantly.

      Hope it helps
      /Adrien

      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

    • I was having the same problem. I tried so many things like you. Finally, I installed version 1.0.2 of ESP32 from Board Manager. My problem is solved.

      Reply
  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
  54. Hi Rui and Sara,
    Occaisionally I get difficulties with ESP32 boards in that after uploading, they continually repeat

    “rst:0x10 (RTCWDT_RTC_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:0x7fff555d,len:1431655765
    etc etc
    and I can no longer get any sense out of them. In the past I’ve just thrown the boards away and used a new one – is there some way to recover these “broken” boards?
    Thank you
    David

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

    This seems to be dependend to a special PC – board condition.

    I have this problem with a DevKit C v4 board wit my MACBook. The same board works fine with my Windows Laptop. But I have other ESP32 DevKit boards they are working fine with my MACBook, too.

    Reply
  56. Hi,
    A very helpful article but I have what I think is a different problem with a specific ‘clone’ ESP32 card.

    I can compile and flash a known good ESP32 sketch (it works on a firebeetle card), the flash write is successful but the board then refuses to boot and run the sketch. Do you have any ideas?
    Thanks
    Paul

    Reply
  57. Is there an issue with the esp library maybe ? I didn’t tinker for a few months after my computer died. After getting my new one installed arduino and the esp32 libraries and now I’m having issues with my c3 board and my wrover-E. For some reason after most “successful” flashes I bootloop as soon as setup completes. Other times it loops before setup is called, when that happens I completely lose access to the flash even with the if console. Sometimes it will upload and work then on the next flash the issue starts again all my board settings are the exact same between flashes. Sometimes erasing flash with the if console helps sometimes it doesn’t. Sometimes reducing the flash frequency can help. Turning on verbose doesn’t show anything. It’s really annoying lol, it will work fine for several flashes then stop working. Today I am going to try going back a version with the ide I’ve read that that can help. If not I have no idea anymore, maybe test my usb ports ?

    Reply
  58. Hi
    I am generating PPM pulsestream with control of the output with an oscilloscope.
    Uploading to the device with the ground of the oscilloscope leads to the error
    “Failed to connect to ESP32: Timed out waiting for packet header”
    Inserting a 100-Ohm resistor in the groud connection solved the problem (old trick from audio problems with ground loops long ago)

    Reply
  59. hello everybody ….when i have including library’s ssd1306 Oled 0.96″ and library’s GFX i have an error :

    exec: “cmd”: executable file not found in %PATH%
    Error compiling for board ESP32 Dev Module

    Reply
  60. Hi Random Nerd Tutorials,

    I love your site, and have been following you for some time now. I have a question regarding the ESP32 DevKit V1 module. Do you know of any way, programmatically, to turn the built-in Red LED OFF? I can easily control the built-in Blue LED, but do not see any specs regarding the built-in Red LED. Any info you can provide is extremely helpful. Keep up the good work guys!

    Reply
  61. #include <LXESP32DMX.h>
    #include “esp_task_wdt.h”

    #define DMX_DIRECTION_PIN (EXAMPLE_CIRCUIT_DIRECTION_PIN)
    #define DMX_SERIAL_INPUT_PIN (EXAMPLE_CIRCUIT_INPUT_PIN)

    (…)

    C:\Users\andreas\Documents\Arduino\libraries\LXESP32DMX-main\src\LXHardwareSerial.cpp:21:24: fatal error: uart_types.h: No such file or directory
    compilation terminated.
    exit status 1
    Error compiling for board ESP32 Dev Module.

    HOW TO SOLVE THIS PLEASE
    RECARDS
    ANDREAS

    Reply
  62. Hi, I’m recently faced with the same issue. Just try copy cmd.exe file from windows/system32 to your arduino ide root directory (for example C/Program Files (x86)/Arduino.
    It helped me, I hope you too.

    Reply
  63. Hello,

    I’m having a problem that I can’t solve.

    I am setting up my ESP32 with code using wifi.

    I make sure that it goes to ask for a connection on a wifi router, in order to be accessible from my lan.

    For my tests, I use 3 wifi points:

    my android smartphone
    My freebox
    My Sophos XG86w firewall

    All 3 are configured as a DHCP server on separate IP adresses.

    I manage to connect perfectly on my smartphone and on my freebox. I therefore deduce that everything works well at the level of the ESP code.

    But I can’t establish a connection on my firewall.
    I tried also with a code as simple as possible,see below with same issue.
    I also tried an ESP code that scans Wi-Fi surroundings router and i can detect active ones, the strength is very good.
    I was not able to to transcribe the code here, but it is the code found on upesy site:

    upesy.com/blogs/tutorials/how-to-connect-wifi-acces-point-with-esp32
    I am able to connect all other devices via wifi

    on my firewall, so I deduce that the AP is working well.

    And a priori it is not a question of configuration of the firewall, since it is the connection which never seems to be made, I do not see any trace of connection (of assigned IP).
    I also tried with a fixed IP address, but same result, no connection is established.

    So I don’t understand where the problem could come from.
    If anyone has an idea…
    Freebox and smartphone => default configuration Sophos XG86w => 2.4Ghz Band, Auto Channel, WPA2 Personal, AES Encryption
    Thanks for your help

    Reply
  64. Hey, I have a sports linear encoder that I broke accidentally.

    I burned the ESP32 chip. I bought a new chip and I tried to install the firmware in a BIN format, the firmware is offered by the manufacturer on their website.

    However, I can’t make the chip run the program. It connects but the program just doesn’t run. I’m not sure what I’m missing

    Reply
    • How are you uploading the firmware?
      I recommend using a tool like esptool for example to upload a new bin file.
      Regards,
      Sara

      Reply
    • Dear Massimo:
      First check the diode located on top of left button, this (fi .de put..)fails like the guns of the clowns ,normally it burns , and you will get out of communications, just change the smd diode for a 1n4007 and you will recover the module.
      The other thing you have to do is do add an electrolitic capacitor betwen pin En (+) and negative 1uF 10v is enough, this will solve the reset problem of the start.
      These are the problems I have suffered since i started to work with module ESP32 (38 PINS) this module is it not recommended for new designs (EXPRESIFF NOTES), but its cheap
      Good luck ( bouna fortuna)

      Reply
      • Thank you very much for the prompt response. I was almost at the end of the project. I will try your suggestions and let you know.
        Regards.
        Massimo
        P.S : “fails like the guns of the clowns” very funny !

        Reply
        • And another
          https://forum.arduino.cc/t/esp32-failure-and-repair/655168

          I hadn’t used my ESP32 board for a while and it has been sat on the desk for a few days. Today I plugged it in to USB only to find that the power LED didn’t come on and the serial port was not detected on the PC. I swapped USB cables, but the board still seemed dead. The board is an ESP32-DEVKIT V1 with an ESP32-WROOM module onboard.
          Further investigation showed that it was possible to power the board via its VIN (5V) pin, although when plugged into USB there was still no detection of the serial port. Probing with a DMM and a set of SMD probes I found that there is a small diode (marked SL) in series with the V+ pin of the USB connector and the rest of the board including the VIN pin and the input to the 3.3V regulator. On the cathode side (input from USB supply) I was reading 4.99V, but on the anode (output to regulator) I was reading only around 1.0 volt instead of the expected 4.3V. This seems a peculiar failure mode as diodes usually fail short.
          As I didn’t have an SMD part to replace it with, I used what I had to hand, in this case a 1N4001 which I had in my spare bits box. While the result is not exactly pretty, after replacement the board seemed to be back in working order. The serial port is now being detected by the PC and I can upload sketches. I am still troubled by the fact that, at around 80mA, the board does seem to be drawing more current than the LoLin ESP8266 which draws around 60mA. I’m not sure whether this sounds right?

          Reply
          • Hi Luis,
            Thank you very much for your interest. Maybe it was a false problem, as you can read from the message I sent to Sara…damn USB ports!!.

            Regards
            Massimo

      • Hi Sara, thank you for your response. You’re right! It seems like the firmware was uploaded correctly. The problem arose because after the upload, the monitor didn’t show anything and I thought it was necessary to reset the board. After your message, I tried changing the USB port on my PC and now the monitor shows something. However, I have another problem now!
        “15:40:02.839 -> ……..
        15:40:06.341 -> Connected to WiFi network with IP Address: 192.168.195.34
        15:40:06.341 -> Could not find a valid BME280 sensor, check wiring or change I2C address!”
        What does it mean? Is the sensor broken or something else? I’ve already changed the cables…
        Best Regards

        Massimo

        Reply
        • Caro amico Massimo:
          Prima tutto:
          check SDA and SCL connections with ESP32
          second check what address is your sensor , there are several I2C scan programs
          Third add some pull-up (10k is enough) resistors in SDA an SCL in order to have a good level.
          Four Patience and do it again this is the life in electronics
          Luis ( Luigi in Italian)

          I2C scanner
          #include <Wire.h>

          void setup()
          {
          Wire.begin();

          Serial.begin(9600);
          Serial.println(“\nI2C Scanner”);
          }

          void loop()
          {
          byte error, address;
          int nDevices;

          Serial.println(“Scanning…”);

          nDevices = 0;
          for(address = 1; address < 127; address++ )
          {
          // The i2c_scanner uses the return value of
          // the Write.endTransmisstion to see if
          // a device did acknowledge to the address.
          Wire.beginTransmission(address);
          error = Wire.endTransmission();

          if (error == 0)
          {
          Serial.print("I2C device found at address 0x");
          if (address<16)
          Serial.print("0");
          Serial.print(address,HEX);
          Serial.println(" !");

          nDevices++;
          }
          else if (error==4)
          {
          Serial.print("Unknow error at address 0x");
          if (address<16)
          Serial.print("0");
          Serial.println(address,HEX);
          }

          }
          if (nDevices == 0)
          Serial.println(“No I2C devices found\n”);
          else
          Serial.println(“done\n”);

          delay(5000); // wait 5 seconds for next scan
          }

          Reply
  65. Hi Sara.
    The ESP32 sketch got a lot of compiling errors after updated to V2.0.6 from a lower version, how to fix it?
    Thanks,
    Summer

    Reply
  66. Traceback (most recent call last):
    File “esptool.py”, line 3682, in
    File “esptool.py”, line 3675, in _main
    File “esptool.py”, line 3329, in main
    File “esptool.py”, line 263, in init
    File “site-packages\serial__init__.py”, line 88, in serial_for_url
    File “site-packages\serial\serialwin32.py”, line 62, in open
    serial.serialutil.SerialException: could not open port ‘COM7’: WindowsError(121, ‘The semaphore timeout period has expired.’)
    Failed to execute script esptool
    Failed uploading: uploading error: exit status 0xffffffff

    Earlier i was getting this error the entire time and now im getting the following error :

    A fatal error occurred: Could not open COM7, the port doesn’t exist
    Failed uploading: uploading error: exit status 2

    please help me resolve them and each time i connect my ide with the esp32 i get a usb device not recognised popup

    Reply
  67. Hi,
    I’m getting a persistent error while trying to use the following for the first time:

    SparkFun IoT Redboard ESP32 Development Board (ESP32-WROOM-32E)
    Arduino IDE (both 1.8.19 and 2.1.0)
    MacOS Mojave (10.14.4)

    I followed the steps to setup the hardware and software, deleted the everything as suggested (the Arduino15 folder, etc.) and re-installed, but I still get the following when I attempt to upload the Sketch:

    Arduino: 1.8.19 (Mac OS X), Board: “SparkFun ESP32 IoT RedBoard, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 921600, Core 1, Core 1, None, Disabled”

    /Applications/Arduino.app/Contents/Java/arduino-builder -dump-prefs -logger=machine -hardware /Applications/Arduino.app/Contents/Java/hardware -hardware /Users/MrTrvr/Library/Arduino15/packages -tools /(…)
    [17749] Error loading Python lib ‘/var/folders/_m/gjl69s7x4p17d9fqcyhdcljh0000gn/T/_MEIrjb3f1/libpython3.8.dylib’: dlopen: dlopen(/var/folders/_m/gjl69s7x4p17d9fqcyhdcljh0000gn/T/_MEIrjb3f1/libpython3.8.dylib, 10): Library not loaded: @loader_path/libintl.8.dylib
    Referenced from: /var/folders/_m/gjl69s7x4p17d9fqcyhdcljh0000gn/T/_MEIrjb3f1/libpython3.8.dylib
    Reason: no suitable image found. Did find:
    /var/folders/_m/gjl69s7x4p17d9fqcyhdcljh0000gn/T/_MEIrjb3f1/libintl.8.dylib: cannot load ‘libintl.8.dylib’ (load command 0x80000034 is unknown)
    /private/var/folders/_m/gjl69s7x4p17d9fqcyhdcljh0000gn/T/_MEIrjb3f1/libintl.8.dylib: cannot load ‘libintl.8.dylib’ (load command 0x80000034 is unknown)
    exit status 255
    /Applications/Arduino.app/Contents/Java/arduino-builder returned 255

    Error compiling for board SparkFun ESP32 IoT RedBoard.

    The problem seems to be with an “Error loading Python lib […] libpython3.8.dylib” and I’m not sure how to go about fixing it.

    Thank you in advance for any suggestions.

    Reply
    • Dear Friend:
      this kind of problems arise when you have any new version of the programs included in Arduino IDE .Two days ago I made an update of the version of ESP32 in Arduino ide to work with the ESP32CAM, normally I am using version 1.8.15 , i know it is old, but my sketches also, what I got was a terrible mess ,all the sketches i have done and tested were no possible to compile or to upload,(imagine my frustation ,everything to the dustbin), but always i have a copy of Arduino that works ok but without the last update of all ; OK ,back reinstall and everything, start again. This is why I am thinking to change to Platformio or other compiler in order to stay ok and not get mad with the different versions of Arduino, remember, retrocompatibily it is no guaranteed.This will be an interesting thing to add to Random Nerd Tutorials.

      Reply
  68. Hi Can you please help with this error message?

    C:\Electronics\Smart Home Kit\3. Arduino Tutorials\arduino C\pj1_2_breath_led\pj1_2_breath_led.ino:18:1: error: expected declaration before ‘}’ token
    }
    ^

    exit status 1

    Compilation error: expected declaration before ‘}’ token

    ////////////////////////////////////////////////////////////////////////////////////////
    when running this code
    #include <analogWrite.h> //Import PWM output library files
    #define led_y 12 //Define LED pins

    void setup(){
    pinMode(led_y, OUTPUT); //Set pin to output mode
    }

    void loop(){
    for(int i=0; i<255; i++) //The for loop statement increments the value of variable i until it exits the loop at 255
    {
    analogWrite(led_y, i); //PWM output, control LED brightness
    delay(3);
    }
    for(int i=255; i>0; i–) //The for loop statement continues to decrease the value of variable i until it exits the loop at 0
    analogWrite(led_y, i);
    delay(3);
    }
    }

    Reply
  69. I have programmed ESP32 with Arduino IDE for so long time with no problem, until yesterday when I program one of my ESP32 mini. The last program was successfully uploaded, and work fine, can print through serial port, but the blue led is always on regardless there is serial data on the TX line or not.
    After this, I couldn’t upload any other program to the board.

    Please help.
    Thanks
    Benawi Santosa

    Reply
  70. MyESP32_wifi_kit_V3 seems like the bluetooth device is not enable or it is missing. When I run examples on bluetooth it always comes ” Compilation error: #error Serial Bluetooth not available or not enabled. It is only available for the ESP32 chip. How to enable the device?

    Reply
  71. Hi.
    I use the Heltec Esp32_WiFi_V3 kit, and the Bluetooth doesn’t work at all. I’ve tried different test programs and the answer is always the same: “O Bluetooth or not available or not enabled. It is only available for the ESP32 chip”. According to instructions the module Heltec Esp32_WiFi_V3 kit module has built-in bluetooth.
    With another test program I used I can see the MAC-address, but it replies that Bluetooth is not enabled.How is it possible to enable this device? or does Heltec sell devices that don’t work?
    Sincerely
    A.brito

    Reply
  72. Hello there, I’m a newbie in this ESP32 and I really need help. I keep getting this error messages:

    Sketch uses 214857 bytes (16%) of program storage space. Maximum is 1310720 bytes.
    Global variables use 15396 bytes (5%) of dynamic memory, leaving 279516 bytes for local variables. Maximum is 294912 bytes.
    esptool.py v2.6
    Serial port COM6
    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
    Failed uploading: uploading error: exit status 0xffffffff

    Any Ideas on how to resolve this problem?

    Thank you.

    Reply
  73. I can’t help but to write this comment to express my gratitude towards you. I was getting frustrated because my computer was not detecting my ESP 32 CAM. I tried downloading drivers, I watched Youtube videos on people setting up their ESP 32 and nothing worked.
    I was starting to think that maybe there was a problem with my brand new ESP 32 CAM module.
    I decided to give it one more try and to look online for what was going on.
    The first google result was this article with the line “Make sure you USB wire has a data wire” highlighted.
    I have tried 3 different USB wires before seeing your article and I look around for the last USB wire I had, hoping a lack of one was the issue all along and that this one has a data wire; and it finally worked.

    HUUUUUUUUUUUGE THANK YOUUUUUUUUU!!!

    Reply
  74. Hey all,

    Having trouble switching from ESP8266 to ESP32! I’m running into a roadblock compiling code and getting this error message:

    “exec: “{runtime.tools.esptool_py.path}/esptool.exe”: file does not exist”

    Basically, it seems like the system can’t find the esptool.exe file needed to compile for the ESP32 Dev Module. I’ve tried some solutions I found online but nothing’s working yet.

    Anyone else face this issue before? Everything runs smoothly with ESP8266 boards, so it’s gotta be something specific to ESP32. Help a newbie out!

    Reply

Leave a Comment

Download Our Free eBooks and Resources

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