Figuring out which pins are available

So I wasted half a day on a ESP32 project I’m tinkering with because I moved from a Node32S to a Heltec WiFi unit. They’re both ESP32-WROOM chips but I think the Heltec’s built-in OLED must have been competing with the pins I was trying to use.

But on the Node32S version? Works great, which is maddening, because it’s not documented anywhere that I can find.

When dealing with a chip board or even an Arduino that has a shield, how do you go about determining which pins are free for use? I mean I can look at the datasheet, and it shows pin 18 as a GPIO. That means I should be able to use it… but no.

the oled is i2C.

Hope for some documentation. In a perfect world there would be a clear table of the pins used. Failing that, often a schematic is provided. Failing that, you need to try to figure it out from the hardware. It can be helpful to understand the communication protocol. For example, if you have an Ethernet shield and you know the Ethernet controller chip uses SPI then you can be sure it’s connected to the SPI pins on the Arduino board. Then you only need to figure out which CS pin it uses. The software needs to know this so you could figure it out by looking at the code.

Someone posted on the forum a while back about how it was outdated and abandoned and how they were planning to start a new project and wanted volunteers and input. I responded with some ideas and an offer to help and they never even responded. I guess with that sort of follow through it was best to not have wasted any time trying to work with them anyway.

I noticed is that hasn’t been updated for 5 years now, has a backlog of 531 submissions