NTC Thermistor Not Working
Your NTC thermistor is not detected or shows no temperature reading. The dashboard shows "-" or "ERROR" for temperature. This guide covers voltage divider wiring, ADC pin configuration, connection issues, and troubleshooting for ESP32, ESP8266, and Pico W.
Last updated: April 22, 2026 | 10 min read
Symptoms
- Dashboard shows no temperature or "-" for NTC sensor
- Serial Monitor shows "NTC: Open circuit" or "NTC: Short circuit"
- Temperature reading stuck at -999C
- ADC reading always 0 or always 4095
- NTC connected but no change in temperature when heating/cooling
- ADC value fluctuates wildly with no input
- NTC works on one board but not another
Common Causes
- Incorrect Voltage Divider Wiring Most common issue. NTC and fixed resistor not connected correctly to form voltage divider
- Missing Pull-down Resistor No fixed resistor between ADC pin and GND; ADC pin floating
- Wrong ADC Pin Used Using non-ADC GPIO pin
- Open Circuit Connection NTC not connected, broken wire, or loose connection
- Short Circuit NTC wires touching, causing zero resistance reading
- ADC Not Initialized analogReadResolution() not set, or ADC not enabled
- Wrong Voltage Reference Using 5V reference on 3.3V ADC
Correct NTC Voltage Divider Wiring
Configuration 1: NTC to 3.3V, Resistor to GND
3.3V
NTC NTC Thermistor
ADC Pin
R_fixed Fixed 10k resistor
GND
// ESP32: ADC1 pins are best for analog
// ESP8266: Only A0 is analog input
// Pico W: GPIO26, GPIO27, GPIO28 are ADC pins
Configuration 2: Resistor to 3.3V, NTC to GND
3.3V
R_fixed Fixed 10k resistor
ADC Pin
NTC NTC Thermistor
GND
// This configuration gives inverted output
// OceanRemote supports both configurations
ADC Pin Reference by Board
| Board | ADC Pins | Resolution | Notes |
|---|---|---|---|
| ESP32 | GPIO32-39 , GPIO0,2,4,12-15,25-27 | 12-bit | Recommended: GPIO34, 35, 36, 39 |
| ESP8266 | A0 only | 10-bit | Only one analog input () |
| Pico W | GPIO26 , GPIO27 , GPIO28 | 12-bit | GPIO29 is VSYS sense |
| ESP32-S3 | GPIO0-20 | 12-bit | Different pin mapping () |
ESP32 ADC2 pins conflict with WiFi. Use ADC1 pins for reliable readings.
Step-by-Step Fixes
1. Verify Voltage Divider Wiring
Most common fix check your wiring:
- Disconnect power and use multimeter in continuity mode
- Verify NTC is connected between 3.3V and ADC pin
- Verify fixed resistor is connected between ADC pin and GND
- Check for cold solder joints or loose jumper wires
- Ensure no wires are touching or shorted
- For ESP8266: NTC must use A0 pin only
- For Pico W: Use GPIO26, GPIO27, or GPIO28
2. Measure Voltage at ADC Pin
Use multimeter to verify voltage divider is working:
// With multimeter :
// 1. Place black probe on GND
// 2. Place red probe on ADC pin
//
// Expected readings:
// - Open circuit : 3.3V
// - Short circuit : 0V
// - Normal operation: 1.0V to 2.5V
//
// If voltage is 0V: Check GND connection, fixed resistor may be shorted
// If voltage is 3.3V: Check NTC connection, may be open circuit
// If voltage fluctuates wildly: Add 0.1F capacitor to ADC pin
3. Test NTC Resistance with Multimeter
Verify NTC is functioning:
- Set multimeter to resistance () mode
- Disconnect NTC from circuit
- Measure resistance across NTC leads
- At room temperature : should read ~10k
- Hold NTC between fingers to warm it: resistance should decrease
- If resistance is infinite : NTC is open circuit
- If resistance is 0: NTC is shorted
- If resistance doesn't change with temperature: NTC is faulty
4. Check Fixed Resistor Value
Verify series resistor is correct:
- Disconnect resistor from circuit
- Set multimeter to resistance () mode
- Measure resistor value: should be 10k 1% or 5%
- Color code: Brown-Black-Orange-Gold
- If reading is incorrect, replace resistor
- Using wrong value will cause incorrect readings
5. Verify ADC Pin is Correct
Using wrong pin (digital only) will not work:
// WRONG - Digital-only pins
// ESP32: GPIO1, GPIO3, GPIO21, GPIO22 (digital only)
// ESP8266: D1-D8 are digital only
// Pico W: GPIO0-22 are digital only
// CORRECT - ADC pins
// ESP32: Use GPIO34, GPIO35, GPIO36, GPIO39
const int NTC_PIN = 34;
// ESP8266: Use A0 only
const int NTC_PIN = A0;
// Pico W: Use GPIO26, GPIO27, GPIO28
const int NTC_PIN = 26;
void setup() {
Serial.begin;
analogReadResolution; // ESP32/Pico W: 12-bit
// ESP8266: 10-bit automatically
}
6. Add Capacitor for Noise Filtering
Stabilize ADC readings:
- Add 0.1F ceramic capacitor between ADC pin and GND
- Place capacitor as close as possible to the ADC pin
- This filters high-frequency noise from readings
- For very noisy environments, add 1F-10F electrolytic capacitor in parallel
7. Check OceanRemote Firmware Configuration
Verify sensor is enabled in firmware:
- In OceanRemote dashboard, go to "Your Device" page
- When generating firmware, ensure sensor type is set to "NTC 10k"
- Verify ADC pin is correct for your board
- Check Beta value matches your NTC
- Regenerate firmware after making changes
- Flash new firmware to device
Troubleshooting Flowchart
NTC Not Working
Check ADC pin voltage
0V Check GND connection
Check fixed resistor
Check wiring
3.3V Check NTC connection
Measure NTC resistance
Replace NTC if open
1.0-2.5V NTC wiring OK
Check ADC pin is correct for board
Wrong pin Move to correct ADC pin
Correct pin Check firmware sensor type
Not NTC Regenerate firmware with NTC
NTC selected Check Beta value
Adjust if needed
Prevention Tips
- Always use voltage divider: NTC + fixed 10k resistor
- Use 1% tolerance resistors for accurate readings
- Add 0.1F capacitor between ADC pin and GND
- Use ADC1 pins on ESP32 to avoid WiFi interference
- Test NTC resistance with multimeter before soldering
- Keep NTC wires short to reduce noise pickup
- Use shielded cable for long NTC runs
Related Issues
Frequently Asked Questions
Q: Can I use any GPIO pin for NTC on ESP32?
A: No. Only GPIO32-39 and some ADC2 pins. ADC2 pins conflict with WiFi. Use GPIO34, 35, 36, or 39 for reliable readings.
Q: My NTC reading is stuck at -999C. What does this mean?
A: -999C is OceanRemote's error code for sensor failure. Check: NTC connected correctly? ADC pin correct? Fixed resistor present? Firmware configured for NTC?
Q: Can I use 5V for NTC voltage divider?
A: Not directly. ESP32/Pico W ADC input maximum is 3.3V. Using 5V requires a voltage divider to reduce output below 3.3V, or use 3.3V for both reference and ADC. 3.3V is recommended.
Still having NTC issues? Contact Support or return to the Troubleshooting Hub.