ESP32 CH340C: constant SW_RESET when flashing ESPHome — hardware issue?

Hello,

I recently bought a new ESP32 CH340C dev board.

Last week I successfully installed ESPHome on it and everything was working fine with Home Assistant.
Today I uploaded a simple program from the Arduino IDE, and it worked perfectly.
Now I want to reinstall ESPHome on the board, but when I click “Prepare for first use”, after the installation I get the following error:

“An error occurred. Improv Wi-Fi Serial not detected.”

I then opened the serial console, and here are the logs:


e[0;35m[C][wifi:060]: Starting
  Local MAC: 20:E7:C8:70:85:8Ce[0m
ets Jul 29 2019 12:21:46

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:2
load:0x3fff0030,len:6276
load:0x40078000,len:15736
load:0x40080400,len:4
load:0x40080404,len:3860
entry 0x40080634
I (57) boot: ESP-IDF 5.4.2 2nd stage bootloader
I (57) boot: compile time Sep 18 2025 00:28:51
I (57) boot: Multicore bootloader
I (59) boot: chip revision: v3.1
I (61) boot.esp32: SPI Speed      : 40MHz
I (65) boot.esp32: SPI Mode       : DIO
I (69) boot.esp32: SPI Flash Size : 4MB
I (72) boot: Enabling RNG early entropy source...
I (77) boot: Partition Table:
I (79) boot: ## Label            Usage          Type ST Offset   Length
I (86) boot:  0 otadata          OTA data         01 00 00009000 00002000
I (92) boot:  1 phy_init         RF data          01 01 0000b000 00001000
I (99) boot:  2 app0             OTA app          00 10 00010000 001c0000
I (105) boot:  3 app1             OTA app          00 11 001d0000 001c0000
I (112) boot:  4 nvs              WiFi data        01 02 00390000 0006d000
I (119) boot: End of partition table
I (122) esp_image: segment 0: paddr=00010020 vaddr=3f400020 size=28f28h (167720) map
I (187) esp_image: segment 1: paddr=00038f50 vaddr=3ff80000 size=0001ch (    28) load
I (187) esp_image: segment 2: paddr=00038f74 vaddr=3ffbdb60 size=05760h ( 22368) load
I (199) esp_image: segment 3: paddr=0003e6dc vaddr=40080000 size=0193ch (  6460) load
I (202) esp_image: segment 4: paddr=00040020 vaddr=400d0020 size=e311ch (930076) map
I (523) esp_image: segment 5: paddr=00123144 vaddr=4008193c size=1c384h (115588) load
I (583) boot: Loaded app from partition at offset 0x10000
I (583) boot: Disabling RNG early entropy source...
e[0;32m[I][logger:165]: Log initializede[0m
e[0;35m[C][safe_mode:084]: Unsuccessful boot attempts: 7e[0m
e[0;36m[D][esp32.preferences:143]: Writing 1 items: 0 cached, 1 written, 0 failede[0m
[0;32m[I][logger:165]: Log initializede[0m
e[0;35m[C][safe_mode:084]: Unsuccessful boot attempts: 7e[0m
e[0;36m[D][esp32.preferences:143]: Writing 1 items: 0 cached, 1 written, 0 failede[0m
e[0;32m[I][app:073]: Running through setup()e[0m
e[0;35m[C][component:163]: Setup preferences took 0mse[0m
e[0;35m[C][component:163]: Setup esp32_ble took 0mse[0m
e[0;35m[C][component:163]: Setup esp32_ble_server took 0mse[0m
e[0;35m[C][component:163]: Setup esp32_improv took 0mse[0m
e[0;35m[C][component:163]: Setup web_server_base took 0mse[0m
e[0;35m[C][component:163]: Setup captive_portal took 0mse[0m
e[0;35m[C][wifi:060]: Starting


 Local MAC: 20:E7:C8:70:85:8Ce[0m
ets Jul 29 2019 12:21:46

rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee

My first thought was that the Wi-Fi component was damaged, but I tested a simple Arduino sketch connecting to Wi-Fi and it worked — but only if I disable brownout detection using this command:
WRITE_PERi_REG(RTC_CNTL_BROWN_OUT_REG, 0);

I also tried plugging the board into a dev kit with a strong power supply, but the behavior is still the same.

At this point I suspect a hardware issue, but I’m not sure where to look next.
Does anyone have an idea or has seen similar behavior?

Any help is welcome.

It still sounds like bad power supply.

It also looked like a power issue to me at first, but here are the checks I’ve already done:

  1. It was working perfectly last week with the exact same setup, so the issue appeared suddenly.
  2. I plugged the ESP32 CH340C board into an ESP32-DevKit to use its stronger 5V/3.3V regulator together with a high-power USB charger — the behavior is identical.
  3. The board works perfectly when I upload a sketch using the Arduino API (as long as I disable brownout detection), so it doesn’t crash under all conditions.

So at this point, I’m not convinced it’s just a power supply issue.

Just looking at your logs I’m not either. But the arduino behavior strongly points there.
How do you exactly power your board? What is this “strong” power supply? Do you have something connected /powered through your board?

I encountered similar error messages while experimenting with the PSRAM configuration. Incorrect PSRAM or flash memory settings might be causing this issue. What do the board settings / platformio_options / PSRAM settings look like in the YAML file?