OLIMEX / ESP32-POE

ESP32 IoT development board with 100Mb Ethernet and 802.3 Power Over Ethernet (POE)
Apache License 2.0
292 stars 110 forks source link

Problems with certain GPIOs #29

Closed bmangodt closed 2 years ago

bmangodt commented 2 years ago

I have designed a Raspberry Pi hat at work that has Wiegand, 4 external inputs and 3 relays with the function of it being used as an access control hat. Now, I want the ESP32-POE to function with this instead of designing something from scratch, so I designed a simple adapter pcb for this. Everything works fine except 3 GPIOs. GPI 0, 1, 2 and 3 are connected to inputs 1, 2, 3 and 4 respectively. Only GPIO 0 and 3 are reading correctly, the other ones are floating. Relay 3 is connected to GPI36. This GPIO stays in a high state even though it is configured as output and set low.

All other GPIOS are configured in the exact same way and are behaving as they should. Also, according to the ESP32-POE pinout, all my chosen pins are available to use. I cannot upload any schematic of the hat I designed as this is company property and is under NDA. I can however tell you all ports work on a Raspberry Pi.

Also, steps to recreate aren't included because standard Arduino GPIO setup is straight forward and I'm only looking for why these specific GPIOs aren't behaving like they should. Are they used for something that is not mentioned? If so, then why are they available externally? Thanks in advance.

bmangodt commented 2 years ago

Okay, I studied the schematic of the board and I now understand GPI36 has an external pullup to 3.3V namely R37. That's not a big deal and that one can be removed. This still doesn't explain why GPIO1 and 2 are not usable even though all the documentation/schematics point to them being so.

DanKoloff commented 2 years ago

GPI36 is not GPIO. It is only input for the board... There is a reason it is named "GPI36" and NOT "GPIO36". It is only input as per ESP32 specification.