GPIO43 current sink capacity?

FrankJensen
Posts: 72
Joined: Sun Mar 10, 2024 9:34 pm

GPIO43 current sink capacity?

Postby FrankJensen » Fri Oct 31, 2025 8:05 am

Hi forum.

Own hardware, using ESP32-S3-N16R8V

I have a problem using GPIO43. I am aware of all the tweeks using GPIO43+44. I have the correct output on the pins, but there is a problem with the current sinking capacity of GPIO43 (GPIO44 is fine).

I wanted to use these pins as second I2C. And its the last avaiable pins in my design. I use a costum board, and in this test nothing is connected to the outputs, other than a pull-up resistor. So nothing other than my scope connected.

At first I had a 1.8kohm resistor as pullup, thats the standard I normally use. And the I2C perifials did not respond to anything. I disconnected them, and put on my scope. SDA on GPIO44 is fine, but CLK on GPIO43 only sinks to around 1V.

I tried a higher pullup, but ended up removing them completely, and only use the internal pullup resistors. That lowered the clock low to around 0.4-0.5V with nothing connected. Connecting the perifials, they only partly work, and causes reboot. Probably cause clocks are missed. Moving the perifials on my first I2C bus (GPIO 14 & 21) the work just fine.

I made this test, and it perfectly replicates the problem.

Code: Select all

io_conf = {};
        io_conf.intr_type = GPIO_INTR_DISABLE; //  GPIO_INTR_POSEDGE;  // or GPIO_INTR_ANYEDGE
        io_conf.mode = GPIO_MODE_OUTPUT;
        io_conf.pull_up_en = GPIO_PULLUP_ENABLE;
        io_conf.pull_down_en = GPIO_PULLDOWN_DISABLE;

        // Combine all pins with bitwise OR
        io_conf.pin_bit_mask =
            (1ULL << GPIO_NUM_43) |
            (1ULL << GPIO_NUM_44);

        gpio_config(&io_conf);

        gpio_set_level(GPIO_NUM_43, 0);
        gpio_set_level(GPIO_NUM_44, 0);

        gpio_set_drive_capability(GPIO_NUM_43, GPIO_DRIVE_CAP_3);
        gpio_set_drive_capability(GPIO_NUM_44, GPIO_DRIVE_CAP_3);
GPIO44 goes perfectly to really clost to 0
GPIO43 ony goes down to around 0.4-0.5V.
Only scope and internal pullup

I also took a brand new board, with an unprogrammed ESP32-S3, and the standard output have samt symptoms, wher TxD dont go all the way to 0, but low values are 0.4-0.5V.

Is this a known hardware issue? Is there a fix? Or do I need to redesign my hardware (hope not), and swop some pins, using GPIO43 where this will not cause a problem.

Happy programming :-)

Attached output. I2C. Only pullup is internally, no external. Note CLK (0V is lowest grid line).
Attachments
IMG_20251031_093301688_HDR.jpg
IMG_20251031_093301688_HDR.jpg (3.18 MiB) Viewed 3186 times

username
Posts: 593
Joined: Thu May 03, 2018 1:18 pm

Re: GPIO43 current sink capacity?

Postby username » Sat Nov 01, 2025 8:47 pm

According to the data sheet the default setting for GPIO43 is U0TXD pin, which is Output only.
Might want to have a look at table 2-4, and see the restrictions for that pin.
https://documentation.espressif.com/esp ... eet_en.pdf

FrankJensen
Posts: 72
Joined: Sun Mar 10, 2024 9:34 pm

Re: GPIO43 current sink capacity?

Postby FrankJensen » Sun Nov 02, 2025 6:33 am

Hi there. Yes, that the default. Thats just a routing in the matrix. But if you free the pin, it have exactly same specs as all the other pins, and should be usable for standard IO. I dont find anywhere in the datasheet, that this pin is different or have different specs, nor different sink capabilities.

username
Posts: 593
Joined: Thu May 03, 2018 1:18 pm

Re: GPIO43 current sink capacity?

Postby username » Sun Nov 02, 2025 2:43 pm

But if you free the pin, it have exactly same specs as all the other pins
Just making sure. and you made sure to disable no second serial port in menuconfig, and are only useing USB for the monitor ?

FrankJensen
Posts: 72
Joined: Sun Mar 10, 2024 9:34 pm

Re: GPIO43 current sink capacity?

Postby FrankJensen » Sun Nov 02, 2025 7:34 pm

Yes, all of these known things, has been taken care of. I also do have the correct output.

Code: Select all

gpio_dump_io_configuration(stdout, (1ULL << GPIO_NUM_43) | (1ULL << GPIO_NUM_44))
also shows, that nothing is routed to these pins, before I activate I2C.

FrankJensen
Posts: 72
Joined: Sun Mar 10, 2024 9:34 pm

Re: GPIO43 current sink capacity?

Postby FrankJensen » Tue Nov 04, 2025 7:45 pm

I wropped some pins, and it works.

But for future projects and others, is there a hidden restriction on GPIO43 when it comes to current sink capacity?
To me it seems, that there is. Or its a hardware bug.

Who is online

Users browsing this forum: Bytespider, trendictionbot and 3 guests