Brownout detector was triggered

I am experiencing a problem when performing a Wi-Fi scan on my ESP32 DevKit V1 (38-pin) board. There is a brownout message on the output. However, when I first purchased it, I performed a Wi-Fi scan with the same USB cable and the Wi-Fi in the vicinity was detected. I performed the Wi-Fi scan with the ESP32 board not connected to any components. Thank you.

It is one of the most current demanding processes. The 38-pin versions, although there are many variants, can be problematic. (please post a link to where you got it from)

Most likely cause is that the 3.3v regulator on the board does not have enough heatsink or the output capacitor for it, is not properly connected anymore. It may of course just have overheated. You can consider to provide regulated 3.3v to the processor yourself.

Answer these questions

To fully understand your problem with the ESP32 DevKit V1 (38-pin) brownout message during Wi-Fi scanning, I need to ask a series of questions to clarify all relevant details:

What is the exact brownout message or output you see on the serial monitor? Please provide the full text if possible.

Are you using any specific code or example sketch to perform the Wi-Fi scan? If so, can you share the code you are running?

What is the power source for your ESP32 when you encounter the brownout? Is it powered only through the USB cable from your PC or through an external power supply as well?

Has anything changed in your setup since it last worked correctly (e.g., different USB cable, different computer USB port, added peripheral devices, etc.)?

What is your development environment? For example, are you using Arduino IDE, ESP-IDF, or another environment? What version?

Are you using any external components connected to the ESP32 now or was it completely standalone as you mentioned?

Can you describe the USB cable and connection quality? For example, newer or older cable, data vs. power-only cable, USB port type (USB 2.0, 3.0), etc.?

Have you measured the 3.3V power rail voltage on the ESP32 when the brownout happens or seen any voltage dips?

Are you aware of any recent updates or changes to your ESP32 board firmware, bootloader, or libraries that might coincide with this issue?

Do you see the brownout only during Wi-Fi scanning or also under other higher power load conditions (e.g., during Wi-Fi connection, using Bluetooth, or heavy processing)?

Please provide as much detail as you can on these points. Once I have a complete picture of your current setup, environment, and behavior, I will summarize the main details and then provide a tailored recommendation to resolve the brownout during Wi-Fi scanning.

What details can you provide first?

I used the sketch example available on Arduino IDE, and the output can be seen in the image I uploaded. I am only using power from the laptop. Since my last purchase, I have been using this ESP 32 for my projects involving several sensors and modules, such as the DHT 22 sensor (connected to GPIO pin 4 and 5V power source), MLX sensor, and I2C LCD (connected to GPIO pins 23, 22, 3.3V for MLX, and 5V for LCD), the SCT-013 sensor module (connected to GPIO pin 33 with a 3.3V power source), and an AC dimmer (ZC pin connected to GPIO 12 and DIM to GPIO 13, 3.3V), with all grounds connected to the same pin. There is indeed a port change, but when I performed the scan, I used a USB 3.2 Gen 2 port with power-off USB charging, adhering to the 5V voltage standard. I also used the Arduino IDE, and I conducted testing both when the ESP was not connected to the components and when the ESP 32 was connected to the components mentioned above.
This is an example of a wifi.scan sketch.

/*
 *  This sketch demonstrates how to scan WiFi networks.
 *  The API is based on the Arduino WiFi Shield library, but has significant changes as newer WiFi functions are supported.
 *  E.g. the return value of `encryptionType()` different because more modern encryption is supported.
 */
#include "WiFi.h"

void setup()
{
    Serial.begin(115200);

    // Set WiFi to station mode and disconnect from an AP if it was previously connected.
    WiFi.mode(WIFI_STA);
    WiFi.disconnect();
    delay(100);

    Serial.println("Setup done");
}

void loop()
{
    Serial.println("Scan start");

    // WiFi.scanNetworks will return the number of networks found.
    int n = WiFi.scanNetworks();
    Serial.println("Scan done");
    if (n == 0) {
        Serial.println("no networks found");
    } else {
        Serial.print(n);
        Serial.println(" networks found");
        Serial.println("Nr | SSID                             | RSSI | CH | Encryption");
        for (int i = 0; i < n; ++i) {
            // Print SSID and RSSI for each network found
            Serial.printf("%2d",i + 1);
            Serial.print(" | ");
            Serial.printf("%-32.32s", WiFi.SSID(i).c_str());
            Serial.print(" | ");
            Serial.printf("%4d", WiFi.RSSI(i));
            Serial.print(" | ");
            Serial.printf("%2d", WiFi.channel(i));
            Serial.print(" | ");
            switch (WiFi.encryptionType(i))
            {
            case WIFI_AUTH_OPEN:
                Serial.print("open");
                break;
            case WIFI_AUTH_WEP:
                Serial.print("WEP");
                break;
            case WIFI_AUTH_WPA_PSK:
                Serial.print("WPA");
                break;
            case WIFI_AUTH_WPA2_PSK:
                Serial.print("WPA2");
                break;
            case WIFI_AUTH_WPA_WPA2_PSK:
                Serial.print("WPA+WPA2");
                break;
            case WIFI_AUTH_WPA2_ENTERPRISE:
                Serial.print("WPA2-EAP");
                break;
            case WIFI_AUTH_WPA3_PSK:
                Serial.print("WPA3");
                break;
            case WIFI_AUTH_WPA2_WPA3_PSK:
                Serial.print("WPA2+WPA3");
                break;
            case WIFI_AUTH_WAPI_PSK:
                Serial.print("WAPI");
                break;
            default:
                Serial.print("unknown");
            }
            Serial.println();
            delay(10);
        }
    }
    Serial.println("");

    // Delete the scan result to free memory for code below.
    WiFi.scanDelete();

    // Wait a bit before scanning again.
    delay(5000);
}

modern USB-C PD ports always start at 5V. There is a spial chip inside the interface that exchanges data with the connected device to adjust to eventually higher voltage and hher currents. You can switch on this USB port.
Another thing that might help is to add a 1000µF capacitor as near as possible to the 3.3V and a GND pin. If there occures a sudden and fast current-spike the capacitor will provide current. The wires shall be as short as possible to make the voltagedrop caused by the current as small as possible

Well that could explain the problem.
Maybe that port is damaged.
Try a different port or different computer.

I have tried all the ports available on my laptop, and none of them work.

Hi, @rac22

Do you have a DMM? Digital MultiMeter?

Tom.... :smiley: :+1: :coffee: :australia:

Just to be clear, if you run a sketch that does not use WiFi then you don't get the brownout error, correct?

exactly right

It may well be damaged.
I don't have any further debugging suggestions.

yup, you're right, after I replaced the esp32 board with a new one, everything worked fine. Should I mark this as a solution?

Up to you. It certainly fixed your problem but you still don't know why the original board developed the problem.