Page 1 of 1

Firmware Bootloader can't start

Posted: Wed Aug 29, 2018 1:12 pm
by jjakubowski
Hello everybody

I've encountered problem with ESP-WROOM-32U and ESP-WROOM-32 modules I've bought recently. I have a self designed board mounted with previously mentioned modules. The bootloader tries to start in a loop and prints

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0x00
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0008,len:8
load:0xffffffff,len:-1

I've tried erasing the flash memory and reflashing it with new bootloader from esp-idf v 3.0.3. No success. I have also mounted one of the boards with an ESP-WROOM-32 module I bought over a year ago and there is no problem with booting.

So far the only difference between these modules I've found is the difference in CHIP_VERSION.
ESP-WROOM32U - ESP32D0WDQ5 (revision 1)
new ESP-WROOM32 - ESP32D0WDQ6 (revision (unknown 0xa))
old ESP-WROOM32 - ESP32D0WDQ6 (revision 0)

Any idea what might be the reason?

Re: Firmware Bootloader can't start

Posted: Thu Aug 30, 2018 3:25 am
by ESP_Angus
Hi jjakubowski,

Thanks for the detailed report.
jjakubowski wrote: rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0x00
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0008,len:8
load:0xffffffff,len:-1
The output "load:0xffffffff,len:-1" suggests to me that the flash chip in the WROOM is either failing to go into DIO mode, or failing to work at the assigned clock rate. The line above("load:0x3fff0008,len:8") is read at a low clock rate in single IO mode, but then the chip reconfigures itself based on the bootloader flash configuration - and it seems to get junk (all 0xFFs) after this.

This may be because of shorts or unexpected connections on the WROOM module pads which are shared internally with the flash chip, or it could be a power problem of some kind. Check anything that may be connected to or shorted to GPIOs 6-11 (see WROOM datasheet section 4).

(It's also possible - but unlikely- that flashing was interrupted and those bytes are really 0xFFs in the flash. But if you don't see any errors while building & flashing the project then this is probably not the issue.)

You could also try reducing the SPI flash clock speed to 20MHz in IDF then building and flashing a new bootloader, although I don't think this is likely to be the issue.
jjakubowski wrote: So far the only difference between these modules I've found is the difference in CHIP_VERSION.
ESP-WROOM32U - ESP32D0WDQ5 (revision 1)
new ESP-WROOM32 - ESP32D0WDQ6 (revision (unknown 0xa))
old ESP-WROOM32 - ESP32D0WDQ6 (revision 0)
Newer version of ESP32 changed the usage of one of the chip version bits in the efuse to indicate if the maximum CPU frequency was also encoded in the efuse. This means older versions of esptool (pre v2.4.0) report revision "unknown 0xa" for newer ESP32s when it should be "revision 1".

So the the ESP-WROOM32U and the "new" ESP-WROOM32 don't work, but the "old" ESP-WROOM32 does work? How many modules of each kind have you tried with?

Re: Firmware Bootloader can't start

Posted: Tue Sep 04, 2018 1:20 pm
by jjakubowski
Problem solved. There was a LL mosfet gate connected to GPIO11 shortening the CS signal through it's capacitance. Thank you for assistance.