Using a Thermocouple with the T7
Overview
The T7 family of devices has the resolution and amplification necessary to directly measure thermocouples. By itself, a T7 can measure up to 4 thermocouples in a single-ended configuration. To handle more signals, LabJack has created the CB37 breakout board, which exposes more pins on the T7 and can measure up to 13 inputs in a single-ended configuration. However, this setup commonly leads to ground loops and is susceptible to noise. To fix this, we use a differential configuration. Using differential wiring, the T7 can measure 2 thermocouples, and with the CB37 breakout terminals, can support up to 6 thermocouples.
Please note that for accurate thermocouple measurements, you will need an external cold junction compensation (CJC) on one of the pins of the CB37.
If you would like to measure more than 7 thermocouples, we recommend upgrading to the T8.
Resolution
A type K thermocouple provides roughly 40 μV/°C. Output is -10.8 mV at -270 °C to +54.89 mV at 1372 °C.
As for the LabJack T7, here are the input resolutions for type K thermocouples:
ResolutionIndex | Noise Free (°C) | Effective (°C) |
---|---|---|
8 | 0.2 °C | 0.04 °C |
12 | 0.03 °C | 0.005 °C |
In-depth breakdown: The maximum ResolutionIndex for a T7 is 8, and for a T7-Pro is 12, and the typical range used with thermocouples is ±100 mV. From Appendix A-3-1 of the T7 User's Guide, looking at the ±0.1 range, the typical device resolution at ResolutionIndex=8 is about 6.3 μV noise-free and 1.3 μV effective (0.2 and 0.04 °C for a type K). At ResolutionIndex=12 it is about 1.2 μV noise-free and 0.2 μV effective (0.03 and 0.005 °C for a type K). The effective numbers mean that most samples (1 standard deviation) will fall in that range.
Note that the actual signal from a thermocouple will likely have real noise with it, beyond the internal noise of the device itself noted above. The 24-bit low-speed sigma-delta converter on the T7-Pro has excellent noise rejection, and in particular rejects 50/60 Hz noise when set to ResolutionIndex=12.
Also note that temperature in air tends to have many small fluctuations. What looks like noise on a thermocouple signal might be real temperature changes.
Accuracy
What's the difference between resolution and accuracy? See the Resolution and Accuracy app note.
From Appendix A-3 of the T7 User's Guide, the device is calibrated to an absolute accuracy of ±0.01% full-span on the ±0.1 V range. Full-span is 0.2 V so that equates to an accuracy of ±20 μV, which corresponds to an accuracy of about ±0.5 °C for a type K thermocouple, which is more accurate than the thermocouple itself.
There are other sources of error in a thermocouple system, and in particular, any error in cold junction temperature measurement is reflected as error in the thermocouple temperature. Expect about ±2.0 °C with the Internal Temperature Sensor, or about ±0.5 °C with the LM34CAZ temperature sensor.
When you are using multiple probes, if all thermocouple cold junctions are at the same temperature, errors in cold junction compensation will be uniform, not affecting the relative accuracy between the thermocouples.
Tutorial: T7 and Type K Thermocouples
The following instructions will help you connect a Type K thermocouple to a LabJack T7 in a differential input configuration using Kipling. After that has been done, there are instructions for how to read the value of a Type K thermocouple and save the data to a .csv file using LJLogM.
1. Go through the T7 Quickstart Guide.
2. Wire your Thermocouple to the T7.
For this tutorial, we recommend configuring a differential connection between AIN0 and AIN1 on the T7.
You will need a 10-100 kΩ resistor, and a Type K Thermocouple. Connect as shown below:
Thermocouple + to AIN0
Thermocouple - to AIN1
100kΩ Resistor: AIN1 to GND
3. Run our Kipling software and Connect to the T7.
Plug the device in over USB, and then click Refresh Devices in Kipling. Click the Green USB button to open the T7.
4. Configure the Analog Input Channels in Kipling.
The thermocouple measurements can be configured using either the thermocouple AIN extended feature, or by individually setting the AIN to appropriate settings for thermocouple and CJC measurements. The latter option also requires you to handle the voltage to temperature conversion math in software. We recommend using the AIN_EF method when possible.
5. Log Data with LJLogM
Close Kipling and then open the device in LJLogM.
6. Configure a Thermocouple Measurement.
Thermocouple measurements can be set up to return temperature readings using the thermocouple AIN_EF, or converted from a plain voltage measurement on the AIN from within LJLogM.
AIN_EF Method:
Ensure that AIN0_EF_READ_A
is in the Names
column for row0. This will configure LJLogM to measure the AIN0 thermocouple temperature in row0, reported in the Value
column. From here, skip to step 9.
Traditional/Manual Method:
Ensure that AIN0
is in the Names
column for row0. This will have LJLogM measure AIN0 in row 0, which is configured to measure the thermocouple voltage as described in the previous steps. Continue to step 7.
7. Configure a CJC Measurement (Applies Only to the Traditional/Manual Method).
The temperature at the AIN0 terminal should be the thermocouple cold junction temperature, and should be found to do cold junction compensation. Replace the register name in the Names
column of row1 with the appropriate register for your CJC measurement. If you are using the internal temperature sensor for CJC, the Names
column of row1 should be set to TEMPERATURE_DEVICE_K
. See the Internal Temp Sensor section of the T-series datasheet for more information about the device temperature registers.
8. Apply Scaling Equations (Applies Only to the Traditional/Manual Method).
The scaling equation column of LJLogM can be used to convert a thermocouple voltage to temperature. See the Scaling Equations description in the LJLogUD/LJLogM documentation. The equation you want for the AIN0 measurement in row0 is:y=TCVoltsToTemp[K:a:b]
// degrees Ky=TCVoltsToTemp[K:a:b]-273.15
// degrees Cy=1.8*(TCVoltsToTemp[K:a:b])-459.67
// degrees F
... where K
means Type K thermocouple, a
is the raw value measured in row0 (the raw thermocouple voltage), and b
is the the raw value measured in row1 (cold junction temperature in Kelvin). The TCVoltsToTemp
function supports B, E, J, K, N, R, S and T type thermocouples. With that, the Scaled
column in row0 should report the thermocouple temperature.
Note: The scaling equation variables are a
- p
corresponding to row0 - row15. For example, row4 corresponds to scaling variable e
. The scaling equation described above should be adjusted accordingly if you are applying it to channels beyond row0 and row1.
At this point you might notice that the thermocouple reading is low by a few degrees C. That is because the equation above is specifying b
(raw value from row 1) as the cold junction temperature. That is the internal temp sensor, which is calibrated to report ambient temp, but the built-in screw-terminals on the T7 are typically a few degrees warmer than ambient. To account for this add a few degrees to the cold junction temp in the scaling equation:
y=TCVoltsToTemp[K:a:b+3]
// degrees Ky=TCVoltsToTemp[K:a:b+3]-273.15
// degrees Cy=1.8*(TCVoltsToTemp[K:a:b+3])-459.67
// degrees F
9. Check the Thermocouple Temperature and Troubleshoot if necessary.
After finishing the steps above, you should see a good thermocouple temperature reported in the values returned from row0. If you do not see good measurements, see our thermocouple application note Troubleshooting Tips section.
10. [Optional] Configure Additional Thermocouples
Repeat steps 2-9 for any additional thermocouples you want to configure on other AIN channels. For example, set the LJLogM row2 Names
column to AIN2
to get the raw thermocouple voltage of a thermocouple on AIN2
. Also be sure to change # Channels
in LJLogM to reflect the number of rows you want to take measurements from.
11. Save Data to File
Once you are getting all thermocouple readings that you want in LJLogM, you can start logging data to file by clicking the small Write to File
radio button near the Exit
button in LJLogM. This will save data as a tab delimited ASCII file with a timestamp in the first column. See the LJLogUD & LJLogM Timestamps page for additional information.
Going Further
The T7 is compatible with multiple thermocouple types including B, C, E, J, K, N, R, T, and S. For an up-to-date list, look at section 14.1.1 Thermocouple which is in the AIN/AIN_EF section of the T-Series Datasheet. If another thermocouple type is required for your application let us know.
Multiple Thermocouples (2 to 42)
The T7 is capable of measuring up to 42 thermocouples using differential measurement techniques when combined with a Mux80 and any necessary CB37 expansion boards. When connecting more than one thermocouple at a time it is recommended that customers connect them so that differential input analog measurements can be made. For example, connect the positive lead of the thermocouple to a positive analog input channel and then the negative lead of the thermocouple to a negative analog input channel. Then connect a resistor (somewhere between a 10KΩ and 1MΩ in value) between the negative lead and an available GND terminal. Collecting data from multiple thermocouples using the differential input mode helps address several of the common thermocouple complications, for more details see the "Thermocouple Complications" section in the general thermocouples app-note, specifically ground loops.
For more information about which channels are positive and negative, look at the "Single-ended or Differential" section of the T-Series Analog Inputs datasheet page. Also look at Table 2 in the Mux80 datasheet for channel-mapping/wiring details regarding positive and negative channels as well as the extended channels section in the T-Series devices datasheet.
Additional Notes
To configure analog inputs beyond AIN0-AIN13, you can use the Register Matrix in Kipling, do it programmatically using one of our LJM wrappers, or on Windows you can use "AINEFConfigTool.exe" from the Additional Utility Applications page. This tool is useful any time you want to configure the same AIN_EF settings for many channels.
The AIN_EF are incompatible with stream mode acquisition, so the manual/traditional measurement method mentioned in the tutorial above would be required when using stream mode.
If you intend to do programmatic control, note that we have examples in various languages such as C, Python, and LabVIEW.
If you intend to do programmatic control and if you are using the traditional/manual thermocouple measurement method mentioned in the tutorial above, note that our TCVoltsToTemp function can be used to handle the voltage to temperature conversion.