MLX90614
Changing emissivity
How to … (example included)
Including unlocking cell 0x0F
1 Scope
The MLX90614 sensors have a build in emissivity compensation function which allows the customer to
change the emissivity coefficient without the need of recalibration. The aim of this document is to describe
the procedure for determining the new Emissivity (E) coefficient and the necessary calculation in order to
upload this newly calculated coefficient into the device EEPROM.
2 Glossary of terms
- To – Object Temperature
- Ta – Ambient Temperature
- BB – Black Body
- TBB – Temperature of BB
- SA – SMBus Slave Address
- PEC – SMBus Packet Error Check
3 When the emissivity needs to be changed
The emissivity is the coefficient which shows how well the object emits IR radiation compared to a theoretical
perfect black body emitter. This radiation is used by MLX90614 in order to calculate the temperature of the
object. During manufacturing, the MLX90614 is calibrated in front of a black body with an emissivity= 99,9%
which we consider as E=1.
Different materials have different emissivity, so in order to measure temperature correctly this should be
taken into account by uploading new emissivity coefficient into MLX90614 EEPROM.
So as general rule of thumb compensation is only necessary when the IR radiation from the object is reduced
in some of way such as:
- either due to a low emissivity of the object
- either because some IR transparent material (the transparency is always less than 1) is put in
front of the MLX90614
4 Determination of the new E
In order to determine what emissivity coefficient we should uploaded into the EEPROM of the MLX90614, the
following measurement should be done (for both cases when transparent material and different emissivity
surface is used). Please make sure that before starting the procedure the emissivity inside the device is E=1.
4.1 In case a transparent material is put in front of the MLX90614
This is somewhat the easiest case because we can use MLX90614 in order to determine the original
temperature of the object (assuming that E=1) before a transparent sheet of material is put between the
object and the MLX90614.
The procedure is as follows:
1. Heat up the object to some temperature different from the room temperature. Let us assume
TO = 60°C (please note that this temperature must be kept stable). The temperature difference
between the object and the sensor should be at least 30ºC.
2. Run a measurement with MLX90614 and write down the readings as TREAL = 60°C and
TA _ REAL = 25°C (those temperatures are just for example)
3. Place the transparent material in front of the MLX90614 (NOTE: in order to have correct
measurements, the temperature of the transparent sheet MUST be the same as the
390119061405 Page 1 of 5 July 2013
Rev 002
MLX90614
Changing emissivity
How to … (example included)
Including unlocking cell 0x0F
ambient temperature of the MLX90614. Otherwise the MLX90614 will “see” the
temperature of the sheet as well and this will introduce an error)
4. Run the measurement with MLX90614 and write down the readings as TNEW = 50°C and
TA _ NEW = 25°C (in general ambient temperature should be the same)
5. Calculate the new emissivity coefficient using the formulae:
TO4_ NEW − TA4_ NEW
E= , please note that the temperatures are in Kelvin
TO4_ REAL − TA4_ REAL
4 4
E=
(50 + 273,15) − (25 + 273,15)
=
10,9047.10 9 − 7,9020.10 9
= 0,6799
(60 + 273,15)4 − (25 + 273,15)4 12,3185.10 9 − 7,9020.10 9
4.2 In case the object has an emissivity different from 1
We need to know the real temperature of the object in order to calculate the new value of the emissivity.
Basically there are two methods to determine the real temperature:
1. Using precise contact thermometer to measure the temperature
2. Paint part of the object (the E of the paint should be 1), so you can measure this painted spot
with the MLX90614 (please note that the spot must be bigger than the FOV spot of the
MLX90614)
Then the procedure is as follows:
1. Heat up the object to some temperature different from the room temperature. Let us assume
TO = 60°C (please note that this temperature must be kept stable)
2. Check the actual temperature using one of the above methods, Let us assume TREAL = 60°C
and record the ambient temperature measured by the MLX90614: TA _ REAL = 25°C (these
temperatures are just for example)
3. Measure the temperature of the object with the intended surface with the MLX90614 and write
down the readings as TNEW = 40°C and T A _ NEW = 25°C (in general the ambient temperature
should be the same)
4. Calculate the new emissivity coefficient:
TO4_ NEW − TA4_ NEW
E= , please note that the temperatures are in Kelvin (add 273,15 to ˚C)
TO4_ REAL − TA4_ REAL
E=
(40 + 273,15)4 − (25 + 273,15)4 =
9,6163.10 9 − 7,9020.10 9
= 0,3882
(60 + 273,15)4 − (25 + 273,15)4 12,3185.10 9 − 7,9020.10 9
390119061405 Page 2 of 5 July 2013
Rev 002
MLX90614
Changing emissivity
How to … (example included)
Including unlocking cell 0x0F
5 Calculation of the value to be uploaded in MLX90614 EEPROM
Once we calculated the new E, the new values to be loaded in the MLX90614 EEPROM must be calculated.
Please note that the procedure for changing the emissivity setting depends on the device type
5.1 Procedure for MLX90614xAx and MLX90614xBx type devices
This is the simplest procedure as only the cell containing the emissivity information in EEPROM must be
changed: this is address 0x04.
We already calculated the new emissivity to be E= 0.6799 or E= 0.3882 (in our examples)
E=1 corresponds to EEPROM content = 0xFFFF. The new values to be stored into EEPROM must be
calculated using the expression:
0 x04d = 216.E NEW − 1 = 65536 X 0,6799 − 1 = 44556,926 , which is rounded to 44557
0 x04d = 216.E NEW − 1 = 65536 X 0,3882 − 1 = 25440,075 , which is rounded to 25440
This value must be converted from decimal to hexadecimal to get the value to upload in the EEPROM:
0 x04 = DEC 2 HEX (44557) = 0 xAE 0 D
0 x04 = DEC 2 HEX (25440) = 0 x6360
5.2 Procedure for MLX90614xCx type devices
In this case 2 EEPROM cell values have to be changed: 0x04 and 0x0F.
The calculation of the new content of memory cell 0x04 is exactly as in case 5.1, i.e.:
0 x04 = DEC 2 HEX (44557) = 0 xAE 0 D
0 x04 = DEC 2 HEX (25440) = 0 x6360
To calculate the new value for cell 0x0F the method is:
As a first step, it is necessary to read the old content of the EEPROM addresses 0x04 and 0x0F and make
the following calculation:
HEX 2 DEC (0 x04 OLD )
0 x0 FNEW = DEC 2 HEX HEX 2 DEC (0 x0 FOLD )
E NEW
If for example 0x04=0xFFFF and 0x0F=0x099A we get:
HEX 2 DEC (FFFF )
0 x0 FNEW = DEC 2 HEX HEX 2 DEC (099 A)
44557
or:
65535
0 x0 FNEW = DEC 2 HEX .2458 = DEC 2 HEX (3615,257 ) = 0 x0 E1F
44557
Now both cell 0x04 and cell 0x0F must be changed:
1. Cell 0x04 to be changed from 0xFFFF (old value) to 0xAE0D (new value)
2. Cell 0x0F to be changed from 0x099A (old value) to 0x0E1F (new value)
390119061405 Page 3 of 5 July 2013
Rev 002
MLX90614
Changing emissivity
How to … (example included)
Including unlocking cell 0x0F
6 Uploading the new values in the MLX90614 EEPROM
For more detail regarding the SMBus communication refer to SMBus communication with MLX90614
6.1 Procedure for MLX90614xAx and MLX90614xBx type devices
6.1.1 Write 0x0000 to address 0x04 (erase the EEPROM cell)
Opcode Command Number of bytes Layout
(bits)*
0010 0100 EEPROM Access 5 bytes (47 bits) SA + Command +
0x0000 + PEC
Note*: The number of bits includes all bits (e.g. start, repeated start, stop and acknowledge bits)
6.1.2 Write the new value to address 0x04
Opcode Command Number of bytes Layout
(bits)*
0010 0100 EEPROM Access 5 bytes (47 bits) SA + Command + 2
bytes of data + PEC
Note*: The number of bits includes all bits (e.g. start, repeated start, stop and acknowledge bits)
6.1.3 Read the value in address 0x04 in order to check that the correct value is stored
Opcode Command Number of bytes Layout
(bits)**
0010 0100 EEPROM Access 6 bytes (57 bits) SA + Command + SA
+ 2 bytes of data +
PEC
Note*: The number of bits includes all bits (e.g. start, repeated start, stop and acknowledge bits)
6.1.4 Restart the module
6.2 Procedure for MLX90614xCx type devices
6.2.1 Enter EEPROM address 0x0F unlock key
Opcode Command Number of bytes Layout
(bits)*
0110 0000 Enter EEPROM address 0x0F 3 bytes (29 bits) SA + Command +
unlock key PEC
Note*: The number of bits includes all bits (e.g. start, repeated start, stop and acknowledge bits)
6.2.2 Write 0x0000 to address 0x04 (erase the EEPROM cell)
Opcode Command Number of bytes Layout
(bits)*
0010 0100 EEPROM Access 5 bytes (47 bits) SA + Command +
0x0000 + PEC
Note*: The number of bits includes all bits (e.g. start, repeated start, stop and acknowledge bits)
390119061405 Page 4 of 5 July 2013
Rev 002
MLX90614
Changing emissivity
How to … (example included)
Including unlocking cell 0x0F
6.2.3 Write the new value to address 0x04
Opcode Command Number of bytes Layout
(bits)*
0010 0100 EEPROM Access 5 bytes (47 bits) SA + Command + 2
bytes of data + PEC
Note*: The number of bits includes all bits (e.g. start, repeated start, stop and acknowledge bits)
6.2.4 Read the value in address 0x04 in order to check that the correct value is stored
Opcode Command Number of bytes Layout
(bits)**
0010 0100 EEPROM Access 6 bytes (57 bits) SA + Command + SA
+ 2 bytes of data +
PEC
Note*: The number of bits includes all bits (e.g. start, repeated start, stop and acknowledge bits)
6.2.5 Write 0x0000 to address 0x0F (erase the EEPROM cell)
Opcode Command Number of bytes Layout
(bits)*
0010 1111 EEPROM Access 5 bytes (47 bits) SA + Command +
0x0000 + PEC
Note*: The number of bits includes all bits (e.g. start, repeated start, stop and acknowledge bits)
6.2.6 Write the new value to address 0x0F
Opcode Command Number of bytes Layout
(bits)*
0010 1111 EEPROM Access 5 bytes (47 bits) SA + Command + 2
bytes of data + PEC
Note*: The number of bits includes all bits (e.g. start, repeated start, stop and acknowledge bits)
6.2.7 Read the value in address 0x0F in order to check that the correct value is stored
Opcode Command Number of bytes Layout
(bits)**
0010 1111 EEPROM Access 6 bytes (57 bits) SA + Command + SA
+ 2 bytes of data +
PEC
Note*: The number of bits includes all bits (e.g. start, repeated start, stop and acknowledge bits)
6.2.8 Restart the module
390119061405 Page 5 of 5 July 2013
Rev 002