I'm working with a ESP32 NodeMCU32 dev board.
When I set INPUT_PULLUP
on pin 23, and measure its voltage, I get 1.57V. If I do the same for pin 22, I get 3.23V. Both pins are open (not connected to anything) and I've done these measurements on a "pure" platformio build, code below.
As far as I know, pin 23 used to work as I expected (i.e. like pin 22). Is this board faulty or damaged, or could I be setting something up wrongly?
Could be a red herring, but I'm suspicious that 1.57 * 2 is very close to 3.23.
EDIT: Datasheet (section 5.3) says minimum high DC output is 0.8×VDD, which would be about 2.6V (far higher than the 1.57V I'm getting). I assume this is what the pull up is connected to, so perhaps this indicates the chip is not in spec (faulty).
Here's the code I used for the tests.
#include <Arduino.h>
void setup() {
Serial.begin(115200);
pinMode(22, INPUT_PULLUP);
pinMode(23, INPUT_PULLUP);
}
uint8_t counter;
void loop() {
Serial.print("Test! ");
Serial.println(counter++);
delay(1000);
}
Best Answer
I had in the past a similar problem.
In an NXP LPC2388 powered at 3.3 Volt, a couple of input pins programmed as pull-up pins with nothing externally attached, showed 2.4 Volt instead of 3.3 Volt.
I read carefully the datasheet of the microcontroller and realized that the minimum output voltage of input pins programmed as pull-up was 2.4 Volt.
I suggest you to read the datasheet of the ESP32.