Skip to main content
Skip table of contents

Thermocouples with the U3/T4 & LJTIA (App Note)

This application note describes the steps necessary to take thermocouple measurements using a LabJack T4 or U3.

U3 with an LJTick-InAmp and Thermocouple

  • The U3 and T4 devices have a best case resolution of ~600 μV for low-voltage analog inputs.  That equates to a resolution of roughly 15 degrees C for a Type K thermocouple, so pre-amplification is required for most applications.

  • The LJTick-InAmp is a great option for this amplification.  Each LJTick-InAmp can handle 2 thermocouple signals.

  • Note that if you buy a U3 or T4 and 3x LJTick-InAmp devices you are approaching the cost of a U6. The U3 or T4 and LJTick-InAmp solution typically only makes sense for a minimum cost application with 4 or less thermocouples.

  • A U3 or T4 and LJTick-InAmp works well for thermocouple measurements, but does not have the accuracy or resolution of a U6/T7. Some sort of calibration will be required due to the large offset voltage on the LJTick-InAmp.

  • The internal temperature sensor on the U3 is not as good as the U6/T7, so for the best accuracy most applications will need to add an external cold junction temperature sensor (e.g. LM34).

Accuracy Considerations

Assuming the user takes care of the LJTick-InAmp output offset voltage as demonstrated in the tutorial below and uses a cold junction sensor with negligible error, we can estimate accuracy based on gain accuracy of the LJTick-InAmp and absolute accuracy of the U3/T4 low voltage analog inputs. The accuracy calculation in terms of voltage is defined as follows where ainAccuracyVolts is the absolute accuracy of the analog inputs,gainErr is the error in the InAmp gain, and gain is the gain setting on the InAmp:

accuracyVolts = ainAccuracyVolts / (gainErr + gain)

The typical gain of the LJTick-InAmp with thermocouples is x51, the InAmp gain accuracy spec is ±0.35%, so gainErr can be found to be ±0.1785. The gain error will be the most impactful on the accuracy if the gain is lower than expected (-0.1785). The typical accuracy of the T4/U3 analog inputs is around ±3.2 mV, so we can find an accuracy estimation:

accuracyVolts = ±3.2 mV / (51 - 0.1785) = ±62.96 µV

±62.96 µV error corresponds to roughly ±1.54 °C for a K-type thermocouple (type K thermocouples output roughly 41 µV/°C). This is in the realm of the accuracy of the thermocouple itself, but does require that the user has done a good job of accounting for the 2 other error sources mentioned earlier.

See the information on the main page of the Thermocouple App Note.  In particular, read through the complications 1-5, decide what you will use for CJC, and avoid complication #5 (ground loops) if at all possible.

Also see the LJTick-InAmp Datasheet - Appendix C- Thermocouples.

Tutorial - Type K with U3/T4 & LJTick-InAmp

Set the LJTick-InAmp gain to x51 and offset to 0.4, providing a range of -270 to +578 degrees K with Type K thermocouples.  That means DIP switches 3/5/9 on, and all others off.  Connect the LJTick-InAmp to the FIO6/7 block of the LabJack.

1. Initial Testing

Start with a quick test to confirm the expected noise and offset.  Use wires on the LJTick-InAmp to jumper INA+ to INA- to INB+ to INB- to GND.

U3:
Run LJControlPanel, find and select the U3, and open the test panel.  Click the radio buttons to set FIO6-FIO7 to AIN, and their name will change to AIN6-AIN7 and you will start to see voltage readings.  They should both read near 0.4 volts.  Also check that the reading from the internal temperature sensor, towards the bottom-right of the window, is reasonable.

T4:
Run Kipling, find and select the T4, then navigate to the Dashboard tab. Click the drop-down buttons near FIO6 and FIO7 and change them to Analog. You should now see voltage readings near the drop-down button. Both channels should read near 0.4 volts. Also check that the reading from the internal temperature sensor is reasonable. To do this, navigate to the Register Matrix tab in Kipling, search for TEMPERATURE_DEVICE_K, select the register of the same name that comes up and you should see temperature readings in units Kelvin.

2. Logger Setup

The easiest way to begin logging thermocouple temperature is with our free Windows logging software LJLogUD or LJLogM.

U3:
Close LJControlPanel and open LJLogUD.  By default it will read values in the first 4 rows. +Ch is set to 0-15 in each row, -Ch is set to 199 in all rows, and Resolution and SettlingFactor are both 0Range will be LJ_rgBIP10V in all rows, but this configuration does not apply to the U3. Set +Ch in row 1 (the second row) to 6. Set +Ch in row 2 (the third row) to 7. You should now see the ~0.4V reading from AIN6 and AIN7.  Watch the readings from each channel to get a feel for the noise level, and confirm that it matches the information from Appendix B of the LJTick-InAmp datasheet, which shows ~0.0012 volts noise-free and ~0.0003 volts effective/RMS.

T4:
Close Kipling and open LJLogM.  By default it will read values in the first 4 rows. Change the Name column of row 1 (the second row) from AIN1 to AIN6. This will begin measuring the signal on FIO6. Do the same with row 2 (the third row) changing AIN2 to AIN7 to measure the signal on FIO7. You should now see a ~0.4 volt reading on both AIN6 and AIN7.  Watch the readings from each channel to get a feel for the noise level, and confirm that it matches the information from Appendix B of the LJTick-InAmp datasheet, which shows ~0.0012 volts noise-free and ~0.0003 volts effective/RMS.

3. Thermocouple Setup

Remove the jumper wires and connect one thermocouple with the positive to INA+ and the negative to INA-.  Also connect a 10k resistor from INA- to GND and pull on both wires going into INA- to make sure both are clamped securely.  If you do not have complication #5 from our Thermocouple App Note, you can just use a jumper wire from INA- to GND rather than a resistor.  You do need some sort of ground reference, though, as discussed in the Differential Analog Inputs App Note.

Now some basic tests to see if your thermocouple is working right.  If the remote end of the thermocouple is at the same temperature as the InAmp/LabJack, the thermocouple will not generate any voltage and AIN6 should see a voltage close to 0.4.  Note this voltage as the offset for this row, and put it in a temporary scaling equation.  Say the offset you see is 0.412 volts, then the scaling equation would be:

y=b-0.412

Now the scaled reading should be very close to 0.0.  Put your fingers on the remote end of the thermocouple to warm it up.  You should see the voltage increase by roughly 2 mV per degree C (51 * 40 μV/degC) that the remote end is warmer than the LJTick-InAmp end.

4. Internal Temperature Sensor Measurement

Before you can convert the thermocouple voltage to temperature, you must set up the cold junction reading. 

U3:
In row 0 (the first row) of LJLogUD, set +Ch to 30 which is the internal temperature sensor and returns degrees Kelvin on the U3.  If the U3 is at room temperature, you should see ~298 in the Voltage column for row 0. 

T4:
In row 0 (the first row) of LJLogM, set Name to TEMPERATURE_DEVICE_K which will return the temperature in Kelvin from the internal temperature sensor. If the T4 is at room temperature, you should see ~298 in the Value column for row 0.

5. Scaling Equation Setup

To see the internal temperature sensor readings in degrees C or F change the Scaling Equation column of row 0 as follows:

y=a                            // degrees K
y=a-273.15                 // degrees C
y=(1.8*a)-459.67       // degrees F

Now lets change the scaling equation for row 1 (AIN6), so that instead of showing the raw thermocouple voltage it converts it to temperature.  See the Scaling Equations description in the LJLogUD/LJLogM documentation.  The equation you want in this case is:

y=TCVoltsToTemp[K:(b-0.412)/51:a]                             // degrees K
y=TCVoltsToTemp[K:(b-0.412)/51:a]-273.15                 // degrees C
y=1.8*(TCVoltsToTemp[K:(b-0.412)/51:a])-459.67       // degrees F

... where K means Type K thermocouple, (b-0.412)/51 means the thermocouple voltage is the raw voltage from the 2nd row minus the ~0.4 offset divided by the LJTick-InAmp gain of x51, and a means the raw value from the 1st row is CJ temp in degrees K.  The TCVoltsToTemp function supports B, E, J, K, N, R, S and T type thermocouples.

Connect a thermocouple to the other LJTick-InAmp channel in a similar manner, with a resistor or wire to GND. This should be FIO7/AIN7 and set up in row 2. The scaling equation has the same form as previously described. Note that the variable for raw voltage from row 2 is c rather than b:

y=TCVoltsToTemp[K:(c-0.412)/51:a]

6. LM34 Setup

Now lets use an LJM34CAZ for cold junction temperature rather than the internal sensor.  Bend the leads as needed and connect the LM34CAZ directly to FIO4/VS/GND.  Watch for correct polarity, as the diagram of the TO-92 package on the LM34 datasheet is showing the bottom view. The image below shows the

Typical LM34 Connections

U3:
In row 0 (the first row) of LJLogUD, set +Ch to 4. You should now see a voltage of around 0.7 if the LM34 is at room temperature.

T4:
In row 0 (the first row) of LJLogM, set the Name column to AIN4. You should now see a voltage of around 0.7 if the LM34 is at room temperature. 

7. LM34 Scaling Equations

With the LM34 set up, you must now convert the raw voltage reading to temperature. Use the following in the Scaling Equations column of row 0 where the LM34 was set up:

y=100*a                     // EI-1034/LM34 voltage to deg F
y=55.56*a - 17.78       // EI-1034/LM34 voltage to deg C
y=55.56*a + 255.37    // EI-1034/LM34 voltage to deg K

Next, you need to change all the scaling equations for the thermocouple rows.  The last parameter in the TCVoltsToTemp function is cold junction temperature in Kelvin.  Since the raw value from the internal temp sensor was in K you could simply use a in all the scaling equations, but now the raw value from row 0 is in volts. As such, you need to add scaling for the last (CJCTemp) parameter.  The equations should look like:

y=TCVoltsToTemp[K:(b-0.412)/51:(55.56*a)+255.37]    // t/c voltage from 2nd row, CJ temp from LM34 in 1st row
y=TCVoltsToTemp[K:(c-0.412)/51:(55.56*a)+255.37]    // t/c voltage from 3rd row, CJ temp from LM34 in 1st row

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.