Skip to main content
Skip table of contents

Using a Thermocouple with the T7


T7 with a Thermocouple Connected


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.


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:


Noise Free (°C)

Effective (°C)


0.2 °C

0.04 °C


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.


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-100k 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.

AIN_EF Method
  1. Navigate to the Analog Inputs tab in Kipling.

  2. Press the + button for AIN0, underneath the Options header on the right to expose additional configuration settings for the AIN0 analog input channel.

  3. Change the Negative Channel to AIN1 (unless a single-ended wiring configuration is being used). For programmatic setup, this corresponds to setting the register AIN0_NEGATIVE_CH to 1.

  4. Configure the T7's AIN_EF system (Extended Feature (EF) drop down) for AIN0 for a type J thermocouple. For programmatic setup, this corresponds to setting the register AIN0_EF_INDEX to 21.

  5. [Optional] If an LM34 is being utilized as a CJC source, change the CJC Modbus Address from TEMPERATURE_DEVICE_K to AINx (replacing `x` with the appropriate AIN number). For programmatic setup, this corresponds to setting the register AIN0_EF_CONFIG_B to the desired AIN Modbus address. Change the Slope to 55.56 and the Offset to 255.37. For programmatic setup, this corresponds to setting the register AIN0_EF_CONFIG_D to 55.56 and the AIN0_EF_CONFIG_E to 255.37.

  6. The thermocouple temperature reading should now be displayed near the AIN0 value. For programmatic control, reading AIN0_EF_READ_A would return the thermocouple temperature.

  7. To save these settings so that when the device is powered-on the AIN0 and AIN1 lines are configured as thermocouple input channels, go to the Power-Up Defaults tab in Kipling and follow the steps to save Current Device Settings as it's power-up defaults.

Traditional/Manual Method
  1. Navigate to the Analog Inputs tab.

  2. Press the + button underneath the Options header to expose additional configuration settings for the AIN0 analog input channel.

  3. Change the Negative Channel to AIN1 (unless a single-ended wiring configuration is being used). For programmatic setup, this corresponds to setting the register AIN0_NEGATIVE_CH to 1.

  4. Change the Range to -0.1 V to 0.1 V. If you know that your thermocouple output will not exceed the range of ±0.01 V output, you should instead set Range to -0.01 V to 0.01 V. For programmatic setup, this corresponds to setting the register AIN0_RANGE to 0.1 or 0.01.

  5. To save these settings so that when the device is powered-on, go to the Power-Up Defaults tab of Kipling and follow the steps to save Current Device Settings as it's power-up defaults.

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 K
y=TCVoltsToTemp[K:a:b]-273.15                 // degrees C
y=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 K
y=TCVoltsToTemp[K:a:b+3]-273.15                 // degrees C
y=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.

JavaScript errors detected

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

If this problem persists, please contact our support.