Reading the Cold Junction Compensation Value Directly

Updated May 9, 2024



  • SCB-68
  • SCB-68A
  • SCB-100


  • NI-DAQmx

I have a SCB-68, SCB-68A or SCB-100 and I would like to measure the ambient temperature of the room. How can I read the value of the built-in cold junction compensation (CJC) sensor?

  1. Right-click Data Neighborhood in MAX and select Create New. Choose NI-DAQmx Task and click Next.
  2. Choose Analog Input as the Measurement Type.
  3. Select Voltage as the Measurement Type under Analog Input.
  4. Select Create New Local Channels.
  5. Select ai0 under the DAQ card that is connected to the SCB-68, then click Next.
  6. Type a name for the NI-DAQmx Task and click Finish.
  7. Under Custom Scaling, select Create New Scale.
  8. Select Linear Scale.
  9. Define a scale name and click Finish.
  10. Set the same corresponding m and b values as defined in Step 7 above (where slope refers to m, and Y-Intercept refers to b). Change the Scaled Units to deg F, deg C, or Kelvin, depending on which units you want. Then click OK
  11. Set the input range to your desired values, keeping in mind that it is already scaled for you (for example, a good range for Celsius would be 0—100 degrees).
  12. Make sure that the terminal configuration corresponds to the dip switch settings on the SCB-68.
  13. Click Save Task and verify that the task appears under Data Neighborhood » NI-DAQmx Tasks. Click the task to highlight it. In the middle section, above the task description, choose Test to test the task.
  14. Click Start to start the acquisition. You see the ambient temperature the CJC is reading in the specified units.

Traditional NI-DAQ (Legacy)
  1. Right-click Data Neighborhood in MAX and select Create New. Select Virtual Channel and click Finish.
  2. Select Analog Input as the Virtual Channel type and click Next.
  3. Type a name and description for the Virtual Channel and click Next.
  4. Select Voltage as the type of sensor or measurement and click Next.
  5. Define the units as C, F, or K and enter a temperature range – one that will include ambient temperature if that is what you intend to measure – and click Next.
  6. Select New Custom Scale and define a scale name and description. Set the scale type to Linear Scale and click Next.
  7. Type in the following m and b values based on the units you chose in step 5 and click Next.
 Celsius: m=100, b=0
 Kelvin: m=100, b=273.15
 Fahrenheit: m=180, b=32
  1. View the scale to confirm it is correct and click Finish. Confirm that the scale name is selected and click Next
  2. Select the DAQ Hardware connected to the SCB, select channel 0, and set the analog input mode based on the switch settings on the SCB.
  3. Click Finish. Now the virtual channel appears under Data Neighborhood. When you right-click the virtual channel and select Test, you will see the ambient temperature of the CJC in the units specified.

Additional Information

The transducer used for cold junction compensation is a thermistor. It is calibrated to match the following equation: 

TC = 100 * Vt
TK = TC + 273.15
TF = (9/5 * TC) + 32
where Vt is the temperature sensor output voltage. TC, TF, and TK are the temperature readings in degrees Celsius, Fahrenheit, and Kelvin, respectively.

These connection blocks have DIP-switches that will enable the CJC. Refer to your User Manual or User Guide DIP-switch settings. After setting the switches, the CJC transducer is connected to Channel 0 of your data acquisition (DAQ) card. If you are using Traditional NI-DAQ (Legacy), create a virtual channel in Measurement & Automation Explorer (MAX) that reads Channel 0 to see the temperature the CJC is reading. If you are using NI-DAQmx, you create an NI-DAQmx Task instead of a virtual channel.