Page 1 of 1

ESP-IDFV5.5.2 + ESP32S3 : GPIO USB dosn't work [EEFUSE]

Posted: Thu Mar 19, 2026 3:14 pm
by mattpatt
Hello ,

I have one board with some relay , and 2 of them are connected in USB+ and USB - (GPIO19 - GPIO20)

At the beginning i had some issue GPIO20 are on during 800 ms when I program or after reset. I think it's for the bootloader.

That is why try to desactivate usb by sdkconfig

Code: Select all

CONFIG_USJ_ENABLE_USB_SERIAL_JTAG=n
CONFIG_ESP_CONSOLE_SECONDARY_NONE=y
CONFIG_TINYUSB=n
CONFIG_ESP_CONSOLE_UART_DEFAULT=y
CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG=n
CONFIG_USB_CDC_ENABLED=n
That is doesn't work , and I try this command:

espefuse.py --port /dev/ttyUSB0 burn_efuse USB_PHY_SEL

Since that during the startup the relay are off and now the relay are off all time. Sadly the efuse can be burn only one time. That is why I think It's my problem and i need to change my device.

For validate my hypothesis i chose to do a blank project. I have 5 relays total. (GPIO17 to GPIO21) In my blank project, I set all 5 HIGH — 3 work correctly, but GPIO19 & GPIO20 stay LOW.

Code: Select all

#include "driver/gpio.h"

#define PIN_MIN 17
#define PIN_MAX 21

void app_main(void)
{
    for (int pin = PIN_MIN; pin <= PIN_MAX; pin++) {
        gpio_config_t io_conf = {
            .pin_bit_mask = (1ULL << pin),
            .mode         = GPIO_MODE_OUTPUT,
            .pull_up_en   = GPIO_PULLUP_DISABLE,
            .pull_down_en = GPIO_PULLDOWN_DISABLE,
            .intr_type    = GPIO_INTR_DISABLE,
        };
        gpio_config(&io_conf);
        gpio_set_level(pin, 1);
    }

    while (1) {

    }
}

And I attach sdkconfig.

Could you tell me:

- If it's possible to use again these pins or these pins are dead ?

- If I need to change this device, can I desactivate usb during the bootloader?

- Or the solution is to change the GPIO pin. For all future project I prefer to reserve usb pin as usb pin ( or Led )

Thanks,
Mattpatt