Overview
The MLX90614 is a non-contact infrared thermometer IC manufactured by Melexis. It integrates an IR thermopile detector chip, a custom signal-conditioning ASSP with a 17-bit ADC, and a powerful DSP unit inside a TO-39 metal can package.
It measures two distinct temperatures simultaneously: Ambient temperature () of the package die, and Object surface temperature () of a target body placed in its field of view without making physical contact (from up to ).
Quick reference
Operating Voltage (VCC) | 3.0 V to 3.6 V DC (3 V variant MLX90614ESF-Bxx) / 4.5 V to 5.5 V DC (5 V variant MLX90614ESF-Axx) |
| Object Temp Range | to |
| Ambient Temp Range | to |
| Accuracy | around room/body temp () |
| Resolution | output step resolution |
| Field of View (FOV) | standard (AAA variant) / narrow angle (DCC medical variant) |
| Communication protocol | 2-wire SMBus (I2C compatible, fixed default slave address 0x5A) |
Pinout
Standard 4-Pin TO-39 Package & GY-906 Breakout Board
text
┌──────────┐
│ MLX90614 │
└──────────┘
│ │ │ │
1 2 3 4
| Pin | Name | Type | Description |
|---|---|---|---|
| 1 | SCL / VNK | Digital Input | SMBus Clock line (or PWM output line) |
| 2 | SDA / PWM | Digital I/O | SMBus Data line (open-drain, requires pull-up resistor) |
| 3 | VDD / VCC | Power | Supply voltage (+3.3 V or +5.0 V depending on chip suffix) |
| 4 | VSS / GND | Power | Ground (0 V) |
Specifications
| Parameter | Symbol | Min | Typ | Max | Unit | Conditions |
|---|---|---|---|---|---|---|
| Supply Voltage (5V variant) | 4.5 | 5.0 | 5.5 | V | MLX90614ESF-AAA | |
| Supply Voltage (3V variant) | 3.0 | 3.3 | 3.6 | V | MLX90614ESF-BAA | |
| Operating Supply Current | — | 1.5 | 2.5 | mA | Active SMBus mode | |
| Medical Accuracy (Body temp) | -0.2 | +0.2 | °C | (DCC variant) | ||
| Output Resolution | — | 0.02 | — | °C | 17-bit ADC output | |
| Refresh Rate | 0.01 | 0.5 | 512 | Hz | EEPROM programmable |
SMBus Temperature Read Register & Math
Temperature data is stored as a 16-bit raw integer () in RAM registers:
0x06: Read Ambient Temperature ().0x07: Read Object 1 Temperature ().
Conversion Formula to Kelvin and Celsius
For example, a raw reading of 0x3AF2 ( decimal):
Wiring
| GY-906 (MLX90614) Pin | → | Microcontroller (Arduino Uno / ESP32) | Notes |
|---|---|---|---|
VIN / VCC | 3.3V or 5V (Check breakout LDO) | Check if breakout features LDO regulator | |
GND | GND | Ground | |
SCL | SCL (A5 on Uno, GPIO22 on ESP32) | pull-up resistor to VCC recommended | |
SDA | SDA (A4 on Uno, GPIO21 on ESP32) | pull-up resistor to VCC recommended |
Common mistakes
- Mixing 3V and 5V part numbers: The
MLX90614ESF-AAAis a 5V-only part, whereas theMLX90614ESF-BAAis a 3.3V-only part. Feeding 5V to a 3.3V chip without a breakout board LDO will destroy it. - SMBus repeated start requirement: The MLX90614 requires I2C Repeated Start (
Wire.endTransmission(false)) between writing the register address and reading the 2-byte word + PEC byte response. Standard I2C stop conditions cause SMBus NACK errors. - Field of View (FOV) distance errors: The standard FOV sees a wide cone. Measuring a small object (e.g. human forehead) from away averages the object's temperature with the surrounding wall/background temperature. Place the sensor from the target.
Notes
- Includes an 8-bit Packet Error Code (PEC) CRC byte at the end of SMBus readings for high-reliability industrial sensing.
Assets & downloads
- datasheetdatasheet
- product-pagereference