Page 1 of 1

ESP32-WROOM-32E: Strapping Pins During Reset?

Posted: Thu Jun 12, 2025 4:23 am
by pilkyton
I use a ESP32-WROOM-32E:

https://www.espressif.com/sites/default ... eet_en.pdf

The datasheet says:
All strapping pins have latches. At system reset, the latches sample the bit values of their respective strapping
pins and store them until the chip is powered down or shut down. The states of latches cannot be changed in any other way. It makes the strapping pin values available during the entire chip operation, and the pins are
freed up to be used as regular IO pins after reset.
But the datasheet doesn't explain when the strapping pin values are read.

It's very important to know when the strapping pins are read, because I am receiving a 50 MHz clock signal on GPIO 0 (which I am starting 200ms after the ESP32 EN pin has received power, and that clock then stays "on" until the ESP32 EN pin is pulled low to reset the ESP32 externally), so I really need to know when the strapping values are being read.

If the settings pins are also read during soft resets, while my crystal is still running, then there's a 50% chance the ESP32 will boot into firmware flashing mode, which would be terrible.

  • Are the strapping pins read when executing esp_restart()?
  • Are the strapping pins read during RTC Watchdog Reset?
  • Any other situations where they are read?
In some ESP32s, they are read during soft resets. And on others, it seems like they are only read again after doing a full, external power cycling of the ESP32 EN pin.

Huge thanks to anyone who can help with this important question.

Re: ESP32-WROOM-32E: Strapping Pins During Reset?

Posted: Thu Jun 12, 2025 9:12 am
by Sprite
Table 3-2 in the datasheet actually specifies this: the strapping pins should be at the correct level when the EN voltage reaches the threshold where the chip is taken out of reset and should stay there for at least 1ms. (Ignore Th in the graph underneath; that is wrong and I've filed an internal issue to correct that.)

Re: ESP32-WROOM-32E: Strapping Pins During Reset?

Posted: Thu Jun 12, 2025 1:40 pm
by pilkyton
Thank you, Sprite. I saw that table but the paragraph above it confuses me.

I think this paragraph should be rewritten to be clearer:

"At system reset, the latches sample the bit values of their respective strapping pins"

It makes it sound like all soft resets (like OTA Updates, "esp_restart()" function calls, watchdog resets etc) all trigger the ESP32 to read the strapping pins again.

---

But okay it seems like that paragraph was just misleading, so... is the following the correct understanding?
  • The ESP32 *only* checks the strapping pin values during EXTERNAL POWER (EN) cycling? So ESP32 *only* checks the settings-pins again if the EN power to the ESP32 chip is *externally* removed/lost?
  • It does NOT check the strapping pins during soft resets/soft reboots (OTA updates and "esp_restart()" API calls in particular)? This assumes that those calls don't trigger any external power (EN) cycling...
  • But it DOES check strapping pins during watchdog reset? That's what this 2017 post claims: viewtopic.php?t=1404
I need to know the exact moments/situations where the ESP32 reads the strapping pins, for peace of mind, to know if my design will be safe or not. :)

Re: ESP32-WROOM-32E: Strapping Pins During Reset?

Posted: Sat Jun 14, 2025 12:57 pm
by Sprite
They're re-read on power-on-reset, RTC watchdog reset and brownout reset. That info is from the ESP32-Wroom module datasheet; not sure why it's not in the ESP32 datasheet itself.