Electronic – arduino – What causes, and can you fix “stuck” gpio pin

arduinogpio

On my LoLin "V3" NodeMCU the GPIO pin 5 is stuck on high. It was working before, but have been doing a lot of prototying.

It can be either in INPUT mode, or OUTPUT mode set to HIGH. Do not know electrically how to tell the difference. All I know is that it drives an LED no matter how it is set.

Is this like a bad pixel on those older LCD screen where you just have to live with it, or is there something I might be able to do to salvage the pin.

All other pins alive and well.

Best Answer

What causes [a] “stuck” gpio pin?

One possibility is ESD damage. As an example, around 25 years ago, in an environment with lots of static electricity, I ended up with an MCU input pin which was also "stuck high". That pin of the MCU was reading part of a keyboard matrix input, and I had touched the keyboard while still charged with static. :-( There were no resistors or other protection between the keyboard and the MCU pins.

With the power off, I could actually measure the internal ESD damage on the MCU, as there was a low resistance between that pin and the 5V power supply. Of course that stopped the pin detecting keypresses which should change the state of that pin - it was stuck high.

However the rest of the MCU continued to work, which suggests that the ESD damage was local to that pin e.g. perhaps the ESD protection structures on the silicon, which are close to each pin, are what I had damaged for that pin only.

Since you mentioned that you have been doing lots of prototyping with that board, then ESD damage sounds like a definite possibility. If the damage is like my example, then it is possible the other pins and the rest of the MCU are not damaged, as you found too. However the MCU might now have a higher power consumption (due to excess current leakage through the area of the ESD damage), it may not behave completely normally (depending on what damage has been done) and it might have a much higher (perhaps fatally higher) power consumption, if you try to set that pin "low" (which may cause excess current to flow in the low-side N-channel output MOSFETs on that pin).

If this hypothesis is true, then to answer your question, no, there is nothing you can do to fix it.

Related Topic