Overview

The TMP117 is a 16-bit high-precision digital temperature sensor manufactured by Texas Instruments. Designed to meet ASTM E1112 and ISO 80601 medical thermometer standards, it delivers an unprecedented accuracy of ±0.1C\pm 0.1^\circ\text{C} across 20C-20^\circ\text{C} to +50C+50^\circ\text{C} without requiring user calibration.

With a resolution of 0.0078125C0.0078125^\circ\text{C} (1/128C1/128^\circ\text{C} per LSB), 100% factory calibration traceable to NIST standards, ultra-low power consumption (3.5 μA3.5\ \mu\text{A} at 1 Hz active duty cycle), and I2CI^2C communication, the TMP117 is used in clinical fever thermometers, precision environmental monitoring, cold-chain logistics, and ESPHome environmental nodes.

Quick reference

Operating voltage (VCC)1.8 V to 5.5 V DC
InterfaceI2CI^2C / SMBus (up to 400 kHz)
Default I2CI^2C address0x48 (ADD0 pin to GND)
Configurable addresses4 addresses (0x48 GND, 0x49 VCC, 0x4A SDA, 0x4B SCL)
Accuracy (20C-20^\circ\text{C} to +50C+50^\circ\text{C})±0.1C\pm 0.1^\circ\text{C} max
Accuracy (40C-40^\circ\text{C} to +100C+100^\circ\text{C})±0.2C\pm 0.2^\circ\text{C} max
Resolution16-bit (0.0078125C0.0078125^\circ\text{C} per LSB)
Medical StandardsMeets ASTM E1112 & ISO 80601-2-56 clinical specifications
Operating current3.5 μA3.5\ \mu\text{A} at 1 Hz duty cycle / 150 nA150\text{ nA} shutdown

Pinout

Breakout module header & STEMMA QT connector:

PinNameTypeDescription
1VCCPowerSupply voltage (+1.8 V to +5.5 V DC)
2GNDPowerGround reference (0 V)
3SCLDigital InputI2CI^2C Serial Clock
4SDADigital Input / OutputI2CI^2C Serial Data
5ADD0Digital InputI2CI^2C Address select pin
6ALERTDigital OutputProgrammable active-high/low temperature alert output

Specifications

ParameterSymbolMinTypMaxUnitConditions
Supply VoltageVCCV_{CC}1.83.3 / 5.05.5VDC
Temperature Accuracy (Medical)Tacc1T_{acc1}-0.1±0.05\pm 0.05+0.1°C20CT+50C-20^\circ\text{C} \le T \le +50^\circ\text{C}
Temperature Accuracy (Full)Tacc2T_{acc2}-0.3±0.15\pm 0.15+0.3°C55CT+150C-55^\circ\text{C} \le T \le +150^\circ\text{C}
Temperature ResolutionTresT_{res}0.0078125°C/LSB16-bit 2's complement
Conversion Time (Default 8x)tconvt_{conv}15.517.5msBuilt-in 8-sample averaging
Supply Current (Active)IactiveI_{active}135175µAContinuous conversion state
Supply Current (1 Hz Duty)IavgI_{avg}3.56.0µA1 Hz conversion with sleep

Data Format & Math

The temperature register (0x00) returns a 16-bit 2's complement signed integer:

Temperature (C)=Raw 16-bit Signed Integer×0.0078125C\text{Temperature } (^\circ\text{C}) = \text{Raw 16-bit Signed Integer} \times 0.0078125^\circ\text{C}

Temperature (C)=Raw 16-bit Signed Integer128\text{Temperature } (^\circ\text{C}) = \frac{\text{Raw 16-bit Signed Integer}}{128}

Wiring

TMP117 PinArduino / MCUESP32Notes
VCC5V / 3.3V3.3VPower rail
GNDGNDGNDSystem ground
SCLA5GPIO 22I2CI^2C Clock
SDAA4GPIO 21I2CI^2C Data

Example (Adafruit_TMP117 Library)

cpp
#include <Wire.h>
#include <Adafruit_TMP117.h>
#include <Adafruit_Sensor.h>

Adafruit_TMP117 tmp117;

void setup() {
  Serial.begin(115200);
  while (!Serial) delay(10);

  Serial.println("Adafruit TMP117 High-Precision Temp Sensor Test");

  if (!tmp117.begin(0x48)) { // Default address 0x48
    Serial.println("Failed to find TMP117 chip! Check wiring.");
    while (1);
  }

  Serial.println("TMP117 found!");
}

void loop() {
  sensors_event_t temp;
  tmp117.getEvent(&temp);

  Serial.print("High-Precision Temperature: ");
  Serial.print(temp.temperature, 4); // Print 4 decimal places
  Serial.println(" °C");

  delay(1000);
}

Common mistakes

  • Thermal conduction from host PCB / MCU: Placing the TMP117 close to heat-generating components (microcontrollers, linear voltage regulators, power LEDs) causes heat to conduct through copper ground planes, distorting ambient temperature readings by +1C+1^\circ\text{C} to +3C+3^\circ\text{C}. Use PCB thermal isolation cutouts (air slots) around the sensor package.
  • Reading raw integer without division: The LSB resolution is 0.0078125C0.0078125^\circ\text{C} (1/1281/128). Divide raw 16-bit signed integers by 128.0 to calculate Celsius.

Notes

  • TMP117 vs DS18B20 vs BME280: TMP117 offers medical-grade ±0.1C\pm 0.1^\circ\text{C} accuracy (vs DS18B20's ±0.5C\pm 0.5^\circ\text{C} and BME280's ±0.5C\pm 0.5^\circ\text{C}).

Assets & downloads