NodeMCU A0 reads 1023 too early: the analog input only accepts up to 1 V

The ESP8266 ADC accepts only about 0 to 1 V on the bare chip. Many boards add a divider for 3.3 V, but check yours.

What the message means

A signal above the input range reads the maximum. A voltage far above the limit can damage the chip.

Fix it in this order

  1. Check the schematic of your board for a divider on A0.
  2. If there is none, use a divider so the sensor output stays below 1 V.
  3. If there is one, the input range is about 0 to 3.2 V and you must not exceed 3.3 V.
  4. Never connect 5 V directly to A0.
  5. Average several readings, since the ADC is noisy.
  6. Use an external ADC module if you need more channels or accuracy.

Why it happens

The bare ESP8266 chip reads only 0 to about 1 V on its analog pin. Many NodeMCU boards add a voltage divider so that 3.3 V can be read, but not all do.

Check your board. If it has no divider, add one so the input never exceeds 1 V, and never feed 5 V into A0.

If you see this, do this

You seeDo this
Reads 1023 with a light sensorInput range exceeded.
Reads wrong values with Wi-Fi onNoise. Average and filter.

ADC noise, voltage divider basics.

Last reviewed: November 2026. These are the usual causes and the order that finds them fastest. Test on your own board; clones and cables differ.