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

> Fix an ESP8266 analog input that saturates: the bare chip accepts 0 to 1 V, so divide the signal down, or use the board divider if it has one.

Canonical: https://roboticsengineering.in/fix/nodemcu-a0-analog-input-maximum-1v/ | Published: 2026-11-03 | Updated: 2026-11-03

**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 see | Do this |
| --- | --- |
| Reads 1023 with a light sensor | Input range exceeded. |
| Reads wrong values with Wi-Fi on | Noise. Average and filter. |

## Related

[ADC noise](https://roboticsengineering.in/fix/esp32-adc-readings-noisy-or-nonlinear/), [voltage divider basics](https://roboticsengineering.in/fix/ldr-analog-readings-voltage-divider/).

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.
