OC
OceanRemote
Low-code IoT platform
Back to Troubleshooting Hub

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

  1. Incorrect Voltage Divider Wiring Most common issue. NTC and fixed resistor not connected correctly to form voltage divider
  2. Missing Pull-down Resistor No fixed resistor between ADC pin and GND; ADC pin floating
  3. Wrong ADC Pin Used Using non-ADC GPIO pin
  4. Open Circuit Connection NTC not connected, broken wire, or loose connection
  5. Short Circuit NTC wires touching, causing zero resistance reading
  6. ADC Not Initialized analogReadResolution() not set, or ADC not enabled
  7. 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.