LM75A Temperature Sensor
LM75A digital temperature sensor specifications, I2C interface, register map, and testing procedures for cryptocurrency mining hash board repair.
Overview
The LM75A is the most common temperature sensor found in Antminer hash boards. It is a digital temperature sensor with an I2C interface, capable of measuring temperatures from -55°C to +125°C with ±2°C accuracy. Multiple manufacturers produce LM75A-compatible parts (NXP, TI, ON Semiconductor, STMicroelectronics), all following the same register map and protocol.
On Antminer hash boards, LM75A sensors are placed at several positions along the chip array to monitor ASIC die temperatures. The readings are used by firmware to control fan speed, adjust chip frequency, and trigger thermal protection shutdowns.
Specifications
| Parameter | Value |
|---|---|
| Manufacturer | NXP, TI, ON Semi, ST (multiple sources) |
| Sensing Type | Local (on-die) |
| Temperature Range | -55°C to +125°C |
| Accuracy | ±2°C (-25°C to +100°C) |
| Resolution | 0.5°C (9-bit) |
| Interface | I2C / SMBus |
| Supply Voltage | 2.8V to 5.5V |
| Supply Current | 1mA typical |
| Conversion Time | 100ms per reading |
| Package | SOIC-8, SOT-23-5 |
| I2C Speed | Up to 400kHz (Fast mode) |
| Alert Output | OS pin (open-drain, active low) |
I2C Address Configuration
The LM75A I2C address is configurable via three address pins (A0, A1, A2), allowing up to 8 sensors on a single I2C bus:
| A2 | A1 | A0 | I2C Address |
|---|---|---|---|
| GND | GND | GND | 0x48 |
| GND | GND | VCC | 0x49 |
| GND | VCC | GND | 0x4A |
| GND | VCC | VCC | 0x4B |
| VCC | GND | GND | 0x4C |
| VCC | GND | VCC | 0x4D |
| VCC | VCC | GND | 0x4E |
| VCC | VCC | VCC | 0x4F |
In Antminer hash boards, the most common configuration uses addresses 0x48 through 0x4B (4 sensors per board, with A2 tied to GND).
On Antminer hash boards, the LM75A sensors are connected behind the PIC16F1704 I2C bridge, not directly on the main I2C bus. To read a sensor, the control board sends CMD 0x3C to the PIC with the target sensor address. Direct I2C access to the LM75A is only possible when probing the hash board's internal I2C bus directly.
Register Map
The LM75A has four accessible registers:
| Register | Address | Size | Default | Description |
|---|---|---|---|---|
| Temperature | 0x00 | 2 bytes | — | Current temperature reading (read-only) |
| Configuration | 0x01 | 1 byte | 0x00 | Operating mode and alert settings |
| T_hyst | 0x02 | 2 bytes | 0x4B00 (75°C) | Hysteresis threshold for alert recovery |
| T_os | 0x03 | 2 bytes | 0x5000 (80°C) | Over-temperature shutdown threshold |
Temperature Register (0x00)
The temperature register contains a 9-bit two's complement value in the upper 9 bits of the 16-bit register:
Byte 0 (MSB): [D8] [D7] [D6] [D5] [D4] [D3] [D2] [D1]
Byte 1 (LSB): [D0] [x] [x] [x] [x] [x] [x] [x]
Temperature = (Byte0 << 1 | Byte1 >> 7) × 0.5°CExample readings:
| Raw Bytes | Temperature |
|---|---|
| 0x19 0x00 | +25.0°C |
| 0x19 0x80 | +25.5°C |
| 0x00 0x00 | 0.0°C |
| 0xE7 0x00 | -25.0°C |
| 0x50 0x00 | +80.0°C |
Configuration Register (0x01)
| Bit | Name | Description |
|---|---|---|
| 7:5 | Reserved | Always 0 |
| 4:3 | OS Fault Queue | Number of faults before OS triggers (00=1, 01=2, 10=4, 11=6) |
| 2 | OS Polarity | 0 = active low, 1 = active high |
| 1 | OS Mode | 0 = comparator, 1 = interrupt |
| 0 | Shutdown | 0 = normal, 1 = shutdown mode |
Reading Temperature via PIC Bridge (Antminer)
On Antminer hash boards, temperature sensors are accessed through the PIC16F1704 I2C bridge. The reading sequence is:
Send Sensor Read Command to PIC
Send CMD 0x3C to the PIC at its current I2C address (0x20-0x27):
TX: [55 AA] [05] [3C] [sensor_addr] [02] [00] [checksum]Where sensor_addr is the LM75A address (e.g., 0x48), 02 is the number of bytes to read, and 00 is the register address (temperature register).
Wait for Conversion
Wait approximately 50ms for the PIC to perform the I2C transaction with the sensor.
Read Response from PIC
Read the response from the PIC (byte-by-byte — the PIC requires individual byte reads):
RX: [06] [3C] [01] [MSB] [LSB] [checksum]The MSB and LSB bytes contain the raw temperature value.
Convert to Temperature
raw = (msb << 8) | lsb
if raw & 0x8000: # Negative temperature
raw = raw - 65536
temp_celsius = (raw >> 7) * 0.5Critical: The PIC16F1704 requires byte-by-byte I2C reads. Attempting to read multiple bytes in a single I2C transaction causes shift register underrun, resulting in bit-shifted garbage data. See the PIC16F1704 reference for details.
Common Failure Modes
1. Sensor Not Responding
Symptoms: Miner reports "temp sensor error", temperature shows as 0°C or -1°C.
Causes:
- Failed LM75A IC (internal failure)
- Broken I2C trace (SDA or SCL) between the sensor and the PIC bridge
- Missing 3.3V supply to the sensor
- PIC bridge failure (appears as sensor failure but affects all sensors)
Diagnosis: Check 3.3V at the sensor VCC pin. If power is present, check I2C continuity. If multiple sensors fail simultaneously, suspect the PIC bridge rather than individual sensors.
2. Inaccurate Reading
Symptoms: Temperature reading is significantly higher or lower than actual board temperature.
Causes:
- Sensor not in good thermal contact with the monitoring area
- Sensor operating at incorrect supply voltage
- Environmental interference (nearby hot component affecting the reading)
3. Stuck at Power-On Value
Symptoms: Temperature reads a constant value that never changes.
Causes:
- Sensor in shutdown mode (configuration register bit 0 set)
- I2C bus partially broken (reading cached data)
- Clock line (SCL) stuck, preventing new conversions
Testing Procedures
Check Power Supply
Measure voltage between the LM75A VCC pin and GND:
- Expected: 3.0V to 3.6V
- If 0V: Trace the 3.3V rail back to the LDO regulator
Check I2C Pull-ups
Measure voltage on SDA and SCL lines with the board powered but idle:
- Expected: Both lines should be HIGH (near 3.3V) when idle
- If SDA or SCL is stuck LOW: A device on the bus has failed — disconnect sensors one at a time to identify the culprit
Component-Level Check (Unpowered)
With the board unpowered, use diode mode to check the LM75A:
- Probe from VCC to GND: should read 0.5V to 0.7V (internal protection diode)
- Probe from GND to VCC: should read OL (open)
- A reading of 0V in both directions suggests a shorted IC
Scan the Bus
Connect an I2C scanner (Bus Pirate, Saleae logic analyzer, or ESP32 with scanner firmware) to the hash board's internal I2C bus.
Scan for devices at addresses 0x48 through 0x4F.
Read Temperature Register
For each detected sensor, read register 0x00 (2 bytes):
- Values should correspond to ambient or board temperature
- Compare readings across all sensors — they should be within 5°C of each other at room temperature
Thermal Response Test
Apply gentle heat (warm air) to one sensor while reading its temperature:
- Reading should increase within 1-2 seconds
- If reading does not change, the sensor conversion is not functioning
Replacement Notes
- The LM75A is available in SOIC-8 and SOT-23-5 packages — verify the package type before ordering replacements
- Match the address pin configuration (A0, A1, A2) to the original sensor — incorrect addressing means the firmware cannot find the sensor
- LM75A parts from different manufacturers (NXP, TI, ST) are interchangeable
- Use a soldering iron for SOIC-8 or fine-tip for SOT-23-5
- After replacement, verify the sensor responds at the correct I2C address and reads a reasonable temperature
Found In These Miners
- Antminer S19 — 4 sensors per board (0x48-0x4B)
- Antminer S19 Pro — 4 sensors per board
- Antminer S19 XP — 4 sensors per board
- Antminer S19j Pro — 4 sensors per board
- Antminer S9 — 2-4 sensors per board (older LM75 variant)
Related Pages
Temperature Sensors — Overview
Comparison of temperature sensor ICs used in cryptocurrency mining hardware — LM75A, TMP451, and NCT218 specifications, I2C addresses, and roles in thermal management.
TMP451 Remote Temperature Sensor
TMP451 remote/local temperature sensor specifications, I2C interface, and testing procedures for Whatsminer and other mining hardware.