GPIO Driven High While Flashing

therrma2
Posts: 1
Joined: Tue Aug 19, 2025 5:46 pm

GPIO Driven High While Flashing

Postby therrma2 » Tue Aug 19, 2025 5:52 pm

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.

AloePacci
Posts: 11
Joined: Thu Aug 07, 2025 10:24 am

Re: GPIO Driven High While Flashing

Postby AloePacci » Wed Aug 20, 2025 1:35 pm

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!!

Who is online

Users browsing this forum: No registered users and 1 guest