Appendix C - Thermocouples | LabJack
« Close

Datasheets and User Guides

App Notes

Software & Driver


Appendix C - Thermocouples

Appendix C - Thermocouples

Thermocouples are not particularly accurate or easy to use, but they are a very common way to measure temperature. Some applications with extreme temperatures or specific mechanical requirements might require thermocouples, but whenever possible consider instead using a silicon type temperature sensor such as the EI-1022 (-40 to +100 degrees C) or the very accurate and waterproof EI-1034 (-17 to +150 degrees C). Both of those probes are available from LabJack, and provide a high-level linear voltage output that connects directly to analog inputs.

There are three main issues when making measurements with a thermocouple:

  1. Cold Junction Effects: The voltage generated at the LJTIA by the thermocouple is related to the difference in temperature of the end of the thermocouple and the LJTIA. In order to know the temperature at the end of the thermocouple, the temperature of the LJTIA must also be known. Most LabJacks have an internal temperature sensor, but even then for improved performance an external sensor (e.g. EI-1034 or LM34CAZ) might be needed. Once the cold junction temperature is known, it is easily handled in software.
  2. Non-Linear Output: The output of a thermocouple is non-linear. NIST ( provides tables and equations to convert a thermocouple voltage to a temperature. The LabJack UD driver provides a convenient function that uses the NIST equation to handle the conversion, and DAQFactory has built-in conversion functions of its own.
  3. Small Output Voltage: The small output voltage of a thermocouple makes it difficult to get good temperature resolution. The LJTIA is used to amplify the thermocouple voltage before it is sent to an analog input.

The following diagram shows the typical connection of a thermocouple to the LJTIA:

The thermocouple is connected to IN+ (positive lead) and IN- (negative lead), and IN- is also connected to GND through a 10 kΩ resistor (meaning that Vcm=Vin/2).

Care must be taken when placing the negative thermocouple lead and resistor lead into the same screw-terminal, to make sure that both are solidly contacted. Sometimes the thermocouple wire is thicker than the resistor wire, making it easy for the resistor to lose contact. In such a case the LJTIA output will likely be stuck near 0 volts, Voffset, or 5 volts.

In most situations, a short can simply be used for the GND connection instead of a 10 kΩ resistor, but note that if a short is used the negative lead of the thermocouple is grounded at the LJTIA. This is not recommended when using multiple probes and when the probes could be contacting grounded metal somewhere in the system. The 10 kΩ resistor maintains some isolation between the negative thermocouple lead and ground, and yet provides a path for the LJTIA bias currents.

It is possible to install the 10 kΩ resistors (Digikey #P10KGCT) on the LJTIA PCB. For channel A, install the resistor on R8. For channel B, install the resistor on R23. Obviously this reduces the input impedance of the negative input of the LJTIA to 10 kΩ, which might not be desirable for some signals besides thermocouples.

The output offset of the LJTIA can be set to 0.4 volts or 1.25 volts. For the best accuracy, the actual system offset should be measured. If the end of the thermocouple is at the same temperature as the cold junction, the thermocouple voltage should be zero, so place the end of the thermocouple near the LJTIA and note the voltage measured by the analog input (should be near 0.4 volts or 1.25 volts). This is the actual system offset, and should be subtracted from further analog input readings before dividing by the gain to get the thermocouple voltage.

The UD driver for Windows has a convenient function that takes in thermocouple type, thermocouple voltage, and cold junction temperature, and returns the thermocouple temperature. The following pseudocode demonstrates a measurement:

//Read the amplified and offset thermocouple voltage from an analog input. 
eGet (lngHandle, LJ_ioGET_AIN, tcChannel, &valueAIN, 0); 
//Get the internal temperature reading (channel 133 on the UE9 or channel 30 on the U3). 
eGet (lngHandle, LJ_ioGET_AIN, internalTempChannel, &cjTempK, 0); 
//To get the thermocouple voltage we subtract the offset from the AIN voltage 
//and divide by the LJTIA gain. 
tcVolts = (valueAIN - offsetVoltage)/51; 
//Convert TC voltage to temperature. 
TCVoltsToTemp (LJ_ttK, tcVolts, cjTempK, &TCTempK); 

Go to for thermocouple examples in C, VB, LabVIEW, and more. For DAQFactory examples go to


The following table shows the minimum and maximum allowable temperatures (from NIST) for some common thermocouple types. The table also shows the thermocouple voltages generated at those limits. Note that these extremes might not be allowed continuously, and thermocouple manufacturers will often provide a reduced range that is recommended for continuous use.

Table C1. Minimum and maximum temperature and voltage ranges

Type Min Max
Temp (°C) Voltage (mV) Temp (°C) Voltage (mV)
B 0 0 1820 13.82
E -270 -9.835 1000 76.373
J -210 -8.095 1200 69.553
K -270 -6.458 1372 54.886
N -27- -4.345 1300 47.513
R -50 -0.226 1768 21.101
S -50 -0.236 1768 18.693
T -270 -6.258 400 20.872


The following tables show the measurement range for different thermocouple types with different gain and offset settings for the LJTick-InAmp. Also shown is the resulting temperature resolution.

For example, from the LJTIA Signal Range Tables the max input voltage (for an output of 2.5 volts or less) is about 5.9 mV with a gain of 201, an offset of 0.4 volts, and a common mode voltage of Vin/2. From the NIST K-type thermocouple table the temperature corresponding to 5.9 mV is about 144 degrees C. The basic resolution of a K-type thermocouple is roughly 37 uV/degC, so since this example has a gain of 201 the resulting resolution is about 7.5 mV/degC. From the Resolution Tables in Appendix B, the U3 has a noise-free single-ended resolution of about 1.2 mV, so the noise-free temperature resolution would be about 0.16 degrees C. The UE9 has a noise-free resolution of about 94 uV (0-2.5 volts, 17-bit), so the noise-free temperature resolution would be about 0.013 degrees C. The UE9-Pro has a noise-free resolution of about 29 uV (0-5 volts, 18-bit), so the noise-free temperature resolution would be about 0.004 degrees C. These calculations assume no noise from the thermocouple signal itself.

Table C2. Temperature measurement ranges and resolution for LJTIA Gain 1-201, Voffset 0.4-1.25

Type LJTIA Gain = 1, Voffset = 0.4   Type LJTIA Gain = 11, Voffset = 0.4
Min (°C) Max (°C) Resolution (μV/°C)   Min (°C) Max (°C) Resolution (~μV/°C)
B 0 1820 8   B 0 1820 84
E -270 1000 68   E -270 1000 747
J -210 1200 55   J -210 1200 606
K -270 1372 37   K -270 1372 411
N -270 1300 33   N -270 1200 363
R -50 1768 12   R -50 1768 129
S -50 1768 10   S -50 1768 115
T -270 400 40   T -270 400 445
Type LJTIA Gain = 51, Voffset = 0.4   Type LJTIA Gain = 201, Voffset = 0.4
Min (°C) Max (°C) Resolution (μV/°C)   Min (°C) Max (°C) Resolution (μV/°C)
B 0 1820 387   B 0 1112 1526
E -160 337 3462   E -34 93 13644
J -189 438 2809   J -39 111 11069
K -270 578 1905   K -51 144 7509
N -270 686 1685   N -78 199 6639
R -50 1768 598   R -50 627 2358
S -50 1768 531   S -50 664 2093
T -270 400 2065   T -53 133 8139
Type LJTIA Gain = 201, Voffset = 1.25          
Min (°C) Max (°C) Resolution (μV/°C)          
B 0 1112 1526          
E -113 93 13644          
J -131 111 11069          
K -196 144 7509          
N -270 199 6639          
R -50 627 2358          
S -50 664 2093          
T -216 133 8139          


Regarding Cold Junction Effects you state that " The U3 and UE9 have an internal temperature sensor". Is that really the U3 or do you refer to the U6?

I am considering purchasing the U3 but need to know if I would have to count one of the SE inputs for an extra silicon type sensor or not.


Yes, the U3 has an internal temp sensor. All devices except the U12 have an internal temp sensor.  The internal temp sensor on the U3 would be fine for CJC if the U3 is not subject to rapid temperature changes and if only a few degrees of accuracy is required.  Beyond that an LM34CAZ is recommended.

Also see the thermocouple app note.