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 across to without requiring user calibration.
With a resolution of ( per LSB), 100% factory calibration traceable to NIST standards, ultra-low power consumption ( at 1 Hz active duty cycle), and 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 |
| Interface | / SMBus (up to 400 kHz) |
| Default address | 0x48 (ADD0 pin to GND) |
| Configurable addresses | 4 addresses (0x48 GND, 0x49 VCC, 0x4A SDA, 0x4B SCL) |
| Accuracy ( to ) | max |
| Accuracy ( to ) | max |
| Resolution | 16-bit ( per LSB) |
| Medical Standards | Meets ASTM E1112 & ISO 80601-2-56 clinical specifications |
| Operating current | at 1 Hz duty cycle / shutdown |
Pinout
Breakout module header & STEMMA QT connector:
| Pin | Name | Type | Description |
|---|---|---|---|
| 1 | VCC | Power | Supply voltage (+1.8 V to +5.5 V DC) |
| 2 | GND | Power | Ground reference (0 V) |
| 3 | SCL | Digital Input | Serial Clock |
| 4 | SDA | Digital Input / Output | Serial Data |
| 5 | ADD0 | Digital Input | Address select pin |
| 6 | ALERT | Digital Output | Programmable active-high/low temperature alert output |
Specifications
| Parameter | Symbol | Min | Typ | Max | Unit | Conditions |
|---|---|---|---|---|---|---|
| Supply Voltage | 1.8 | 3.3 / 5.0 | 5.5 | V | DC | |
| Temperature Accuracy (Medical) | -0.1 | +0.1 | °C | |||
| Temperature Accuracy (Full) | -0.3 | +0.3 | °C | |||
| Temperature Resolution | — | 0.0078125 | — | °C/LSB | 16-bit 2's complement | |
| Conversion Time (Default 8x) | — | 15.5 | 17.5 | ms | Built-in 8-sample averaging | |
| Supply Current (Active) | — | 135 | 175 | µA | Continuous conversion state | |
| Supply Current (1 Hz Duty) | — | 3.5 | 6.0 | µA | 1 Hz conversion with sleep |
Data Format & Math
The temperature register (0x00) returns a 16-bit 2's complement signed integer:
Wiring
| TMP117 Pin | → | Arduino / MCU | ESP32 | Notes |
|---|---|---|---|---|
VCC | 5V / 3.3V | 3.3V | Power rail | |
GND | GND | GND | System ground | |
SCL | A5 | GPIO 22 | Clock | |
SDA | A4 | GPIO 21 | 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 to . Use PCB thermal isolation cutouts (air slots) around the sensor package.
- Reading raw integer without division: The LSB resolution is (). Divide raw 16-bit signed integers by
128.0to calculate Celsius.
Notes
- TMP117 vs DS18B20 vs BME280: TMP117 offers medical-grade accuracy (vs DS18B20's and BME280's ).
Assets & downloads
- datasheetdatasheet
- product-pagereference