Page 1 of 1

GPIO Driven High While Flashing

Posted: Tue Aug 19, 2025 5:52 pm
by therrma2
We are using a ESP32-S3-WROOM module. When flashing the chip over USB, GPIO48 is being driven high for the duration of the flashing procedure. We have this pin connected to an external pull down and the pin is controlling a mosfet that controls a motor brake. Driving the pin high during flashing causes that brake to release for several seconds, which is a problem for us.

I've been unable to find any documentation around this.

Re: GPIO Driven High While Flashing

Posted: Wed Aug 20, 2025 1:35 pm
by AloePacci
Cheers.

This is something not too well mentioned, but i have suffered it in some development boards.

At powerup, if GPIOs have not been initializated they can assume any value (i always assume they are weak pull up (a pulldown will leave then down)).

Reading datasheet (https://www.espressif.com/sites/default ... f#bootctrl) at page 494. the pin should be in input mode with a low drive after reset (not your problem, as i suppose your device works great while in download mode and starts misbehaving during flash) which makes at development think GPIO48 should stay low with the pulldown.

However GPIO48 is named "SPICLK", so programming the MCU may leave it high during boot due to things i am not familiar with.

Here you have got 2 choices i can see (prob more).
- Remap PCB, so that pins needed at boot are named by their name (GPIOXX) and not a different name like (MTDO, MTMS, SPICLK)...

- Program the bootloader, so that the MCU when it flashes keeps that pin low, as you will never use SPI for programming. That way after first flash device will always work as intended (i have never done this myself).

Good luck!!