Allow use of GPIO12 on ESP32 boards

Issue #218 resolved
Philip Tallents created an issue

Hi, I just tested all the pins and it seems GPIO12 is not working on the ESP32. I’ve tried two separate ESP32 and the exact same problem. Why has GPIO12 been reserved?

Comments (6)

  1. Philip Tallents reporter

    I’ve used GPIO12 as an output using micropython and it works perfectly fine, but MicroBlocks has GPIO12 reserved and can’t change state at all.

  2. John Maloney repo owner

    We’re being conservative about pin 12. If you connect something to that pin that pulls it high at boot time then it won’t boot:

    https://randomnerdtutorials.com/esp32-pinout-reference-gpios/

    As you say, it could be used as an output as long as the pin reads as “low” at boot time but it isn’t always easy to tell. For example, some output devices have pull-up resistors on their inputs.

  3. John Maloney repo owner

    I’ve decided to make pin 12 available. People will need to be careful not to pull it high during boot or things may fail. But there are other boot mode “strapping pins” that we are allowing people to use such as pins 2 and 15 (see https://docs.espressif.com/projects/esptool/en/latest/esp32/advanced-topics/boot-mode-selection.html) so we might as well make pin 12 available, too. Most people who use bare ESP32 boards are pretty tech savvy and will the documentation to find out which pins need special care.

    This change will be in the next Pilot release (firmware v137 and later).

  4. Log in to comment