Open Vincent-Dalstra opened 4 months ago
Real easy to miss that GPIO39 has that pull-up, because it's not on the Consoloidated Pin Overview except as a tiny asterisk next to IE*, which leads (with the benefit of hindsight) to p.12. It's also described on p.489 of the Technical Reference Manual, which is where I first found it.
I learned the hard way that GPIO39 has pull-up enabled at boot. Luckily, it can be disabled by burning an eFuse. However, the eFuse has a different name in espefuse.py than in the technical reference manual (https://esp32.com/viewtopic.php?t=32425) so I've included both names.
To be clear, I have used this fix (espefuse.py -p /dev/ttyACM0 burn_efuse HARD_DIS_JTAG) on one of my boards, and verified that GPIO39 would no longer pull-up (and turn on a connected mosfet) at boot.
From the same hardware testing, I can say that both GPIO39 & GPIO40 are pulled-up during download-boot mode, and this continued to happen after burning the eFuse.
As an afterthought, the UART0 pins both start with pull-up enabled. This is easy to overlook, but can important when using them for other functions.