← All parts
TMP117 Precision Temp Sensor
TMP117
Texas Instrumentssensor environment
The TMP117 is a high-accuracy, low-power digital temperature sensor with an I2C-compatible interface.
In stock
Specifications
7- Operating Voltage
- 1.7 V to 5.5 V (TA = -55 °C to 70 °C), 1.8 V to 5.5 V (TA = -55 °C to 150 °C)
- Supply Current
- 3.5 μA (active conversion, serial bus inactive at TA = 25 °C), 150 nA (shutdown)
- Interface
- I2C
- Resolution
- 7.8125 m°C
- Accuracy
- -0.3 °C to 0.3 °C (TA = -55 °C to 150 °C)
- Temperature Range
- -55 °C to 150 °C
- Package
- WSON (6), DSBGA (6)
Pinout
6| Pin | Name | Functions | Notes |
|---|---|---|---|
| V+ | Supply voltage | POWER | |
| GND | Ground | GND | |
| SCL | Serial clock | I2C | |
| SDA | Serial data input and open-drain output | I2C | |
| ADD0 | Address select | GPIO | Connect to GND, V+, SDA, or SCL. |
| ALERT | Over temperature alert or data-ready signal | GPIO | Open-drain output requires a pullup resistor. |
Interactive pinout
Highlight:
TMP117
Click a pin to copy its name · tap a tag above to spotlight a bus.
Starter code
Community starter examples — minimal, unofficial, and provided to get you wiring fast. Verify against the manufacturer datasheet before relying on them.
Arduino (C++)
arduino
// TMP117 high-accuracy I2C temperature — community starter example
// No library needed: read the 16-bit temperature register (0x00).
#include <Wire.h>
const byte ADDR = 0x48; // ADD0 -> GND
float readTempC() {
Wire.beginTransmission(ADDR);
Wire.write(0x00);
Wire.endTransmission();
Wire.requestFrom(ADDR, (byte)2);
int16_t raw = (Wire.read() << 8) | Wire.read();
return raw * 0.0078125; // 7.8125 m C/LSB
}
void setup() {
Serial.begin(115200);
Wire.begin();
}
void loop() {
Serial.print(readTempC(), 3); Serial.println(" C");
delay(1000);
}MicroPython
python
# TMP117 (ESP32) — community starter example
from machine import Pin, I2C
import time, struct
i2c = I2C(0, scl=Pin(22), sda=Pin(21))
ADDR = 0x48
while True:
d = i2c.readfrom_mem(ADDR, 0x00, 2)
raw = struct.unpack(">h", d)[0]
print(raw * 0.0078125, "C")
time.sleep(1)Wiring
| Pin | Arduino Uno R3 | ESP32 DevKitC (WROOM-32) | Notes |
|---|---|---|---|
| V+ | +3V3 | 3V3 | 1.8-5.5 V (use 3.3 V for the bare chip's 3.3 V I2C) |
| GND | GND | GND | |
| SCL | A5/SCL | GPIO22 | I2C clock |
| SDA | A4/SDA | GPIO21 | I2C data |
| ADD0 | GND | GND | Address select -> 0x48 |
Typical uses
- High-accuracy (+/-0.1 C) temperature
- Reference / medical / calibration sensing