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
- Check the schematic of your board for a divider on A0.
- If there is none, use a divider so the sensor output stays below 1 V.
- If there is one, the input range is about 0 to 3.2 V and you must not exceed 3.3 V.
- Never connect 5 V directly to A0.
- Average several readings, since the ADC is noisy.
- 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, 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.