KTA-259 Thermocouple Multiplexer Shield Frequently Asked Questions.

The KTA-259 Thermocouple multiplexer shield allows you to connect 8 thermocouples to your Arduino. It comes in versions for a range of different thermocouples. See also the product page with details and the manual.

Stock and Versions

Can you tell me when you will have the ?-Type thermocouple multiplexer shield (KTA-259?) for the Arduino back in stock, please?

We normally keep a lot of K-Type units on hand, but if they are out it can be 3-4 weeks.
We try to keep a few J-Type and T-Type available but they can normally be made up in 1-2 days provided we have K-Type units available as they are converted.
For N-Type, S-Type, E-Type and R-Type we generally do not keep readily available as their use is quite rare, but can normally be supplied in 1-2 weeks.

What are the versions that have shipped?

V1 used the MAX6674 and MAX6675 ICs, V2 changed to the MAX31855 ICs
For V3, the only difference is the table printed on the PCB underneath, in V3 the table reflects the range the MAX31855 ICs can digitise, not the full thermocouple range as in V2.
V4 made changes to the SDA and SCL lines for compatibility with more Arduino controllers. V3 connected A4 to SDA and A5 to SCL on the prototyping area. While not a problem for the Uno, the Mega uses different pins for SDA and SCL. These connections were removed on V4.

How can I make sure the version I get is the latest?

We've been shipping V4 since 2013. Any unit shipped from Ocean Controls will be the latest version and it's unlikely that any distributor still has older versions in their inventory.


Which Arduino Controllers does the shield work with?

  • Arduino Uno: Yes
  • Arduino Pro: Yes
  • Arduino Micro: It should, though we haven't tested it. The Micro doesn't have a standard shield-compatible physical format, so some wiring would be needed
  • Arduino Pro Mini: It should, though we haven't tested it. The Pro Mini doesn't have a standard shield-compatible physical format, so some wiring would be needed
  • Arduino Nano: It should, though we haven't tested it. The Nano doesn't have a standard shield-compatible physical format, so some wiring would be needed
  • Arduino Mega 2560: Yes
  • Arduino Zero: It should, though we haven't tested it because we haven't got our hands on the Zero yet
  • Arduino Due: It should, though we haven't tested it
  • Arduino Yún: It should, though we haven't tested it. The Yún has Ethernet and USB host jacks that come significantly higher than the Arduino shield headers, making it a little tricky to attach any shield, including the Thermocouple Multiplexer shield. The best solution is probably to get two sets of the stackable headers and use them to make sure you’ve got the clearance height above the jacks.
  • Lilypad Arduino: It should, though we haven't tested it. The Lilypad doesn't have a standard shield-compatible physical format, so some wiring would be needed
  • Arduino Leonardo: Yes

Can the multiplexer shield be stacked to add 16 or more thermocouples?

Yes you can use more that one KTA-259 on a single Arduino. You would need to modify the firmware and make sure the CS selection jumpers on each shield are different.
The KTA-259 allows you to easily select one of 3 pins for the CS pin.
Just be careful with the screw terminals, some types are long enough to make contact with the shield below, this can be avoided by adding a spacer.

Which pins does the shield use?

D4, D5 and D6 are used as address pins for the multiplexer, and select the thermocouple.
D7 is connected to the multiplexer enable pin
One of D8, D9 or D10 (by default, D9) is used as the chip select line for the MAX31855's SPI interface
D12 is used as the SPI data out of the MAX31855 and into the Arduino
D13 is used as the SPI clock out of the Arduino and into the MAX31855
The shield also uses the 3.3V and GND pins to power the chips on the board
5V, A0, A1, A2, A3, A4, A5, SDA and SCL are routed through to the prototyping area but are not connected to circuitry on the shield.

Can the KTA-259 thermocouple shield be used at the same time as another shield?

Yes, though you always have to be careful combining shields to make sure they don't conflict electrically or physically. Some known issues are:
  • Arduino Ethernet Shield 1 or 2: D4 is used by the thermocouple shield as one of the MUX select pins, and by the Ethernet shield as the MicroSD card slot chip select line. You might be able to get around this with some clever programming, but more likely you'd need to not use the MicroSD card or modify one of the boards to use a different pin.
    The Ethernet Shield uses D10, so you'd need to make sure the KTA-259 uses D8 or D9 as the chip select for the MAX31855.
    The other thing to note is the example code bit bangs the MAX31855. You cannot use the standard Ethernet library and bit bang on the SPI pins at the same time, you would need to either rewrite the code to communicate with the MAX31855 using the SPI library, or modify the SPI library to use bit banging for the Ethernet communications.
  • SparkFun CC3000 WiFi Shield: D7 is used by both the WiFi shield and KTA-259 as an enable pin. You may have to be little careful in your code, but this will probably be okay.
    D8 and D10 are used by the WiFi Shield, so the KTA-259 CS line will have to be set to D9.
    Your main problem would be that the KTA-259 uses bit-banged SPI and the CC3000 library expects hardware SPI. You'll likely have a lot of trouble trying to do both at the same time. You'll probably need to rewrite the KTA-259 code to use hardware SPI.
    Note that there are a few CC3000 WiFi shields out there, and some use different pins.
  • Micro SD / SD card Shields: The KTA-259 uses bit-banged SPI and SD card shields almost always use hardware SPI. Bit-banged and hardware SPI can conflict and prevent each other from working, especially on the ATMega328-based Arduinos (including the Uno). Adafruit has an SD card library that supports soft (bit-banged) SPI and this will likely be more compatible. Alternatively, you could re-write the KTA-259 code to use hardware SPI.

What is the current consumption / power draw of the KTA-259?

The KTA-259 runs from the 3.3V pin provided by the host Arduino and draws <1.5 mA from this point. The 5V pin is connected through to the prototyping area, but no circuity is connected to this line.

Measurement Accuracy

How accurate is the temperature measurement? My readings are off!

It's important to understand that sources of error add up. Sources of error include:
  • The accuracy of the thermocouple itself. A medium-quality K-type thermocouple has an accuracy of ±2.2 °C or ±0.75%, whichever is greater.
  • The accuracy of the measurement of the thermocouple voltage. The MAX31855 datasheet specifies ±2.0 °C within the range -20 to 85 °C.
  • The accuracy of the cold-junction measurement. Again, the MAX31855 datasheet specifies ±2.0 °C within the range -20 to 85 °C
  • Any inaccuracy caused by the mechanical or electrical layout or circuitry, including the shield screw terminals, the multiplexer and any temperature variation across the PCB.
  • Any inaccuracy caused by the conversion from thermocouple voltage to reported temperature. The MAX31855 uses a linear approximation of the thermocouple voltage-temperature relationship, and this model becomes increasingly inaccurate at extreme temperatures.
Each source of error is explained in more detail below. Ignoring the MAX31855 linear approximation model, your base error range is likely to be ±6.2 °C.

How accurate is my thermocouple?

A thermocouple is a pair of wires made from different metal alloys and joined at the "sensing end". Thermocouples are made to different quality standards. A medium-quality thermocouple is accurate to about ±2.2 °C or ±0.75%, whichever is greater. Cheap thermocouples are worse. High accuracy thermocouples can be about twice as good (i.e. have half the error range), but may cost hundreds of dollars.

How accurate is the MAX31855 thermocouple measurement?

The MAX31855 datasheet has a gain and offset error listed for each thermocouple type over different temperature ranges. At very low and very high temperatures it has more error, but for most cases the error is ±2 °C.

How accurate is the MAX31855 cold-junction measurement?

The MAX31855 datasheet specifies ±2.0 °C within the range -20 to 85 °C.
The cold-junction temperature can be read out of the MAX31855 seperately from the thermocouple temperature measurement. This would allow you to use a different cold junction sensor (say, a DS18S20, which is more like ±0.5 °C) and do your own cold-junction compenstation.
If you trust the repeatability of the MAX31855 CJC sensor, you could build a calibration table using a reference sensor and load that into your firmware.

How do the mechanics and layout affect the measurement accuracy?

The terminal blocks are not the same metals as thermocouple wires. Once the thermocouple signal has reached the terminals, no further thermocouple action takes place, so any temperature difference between the terminals and the the measurement IC is not reflected in the temperature measurement. You can minimise this effect by avoiding having a temperature difference across the thermocouple shield.
  • Don't make/use a case where the terminals are outside and the chip is inside.
  • Make sure there is no hot component directly under or near the thermocouple IC, if you are using other shields or non standard Arduino boards.

Can it measure below room temperature / 0 °C?

The KTA-259 is not specified to measure temperatures below the cold junction temperature (i.e. below room-temperature) but most of the shipped boards have no problem doing so.
The analog multiplexer used is the ADG608. This is run from GND and 3.3V rails. A thermocouple with its sensing end colder than the terminal end will produce a negative voltage. This negative voltage will be outside the rails of the multiplexer and so is outside the specified operating range for the chip.
The multiplexer isn't rated to pass negative voltages but in testing we found that almost all the KTA-259 boards work without issue. (It appears to depend on the batch of multiplexers.) The thermocouple voltage is very small (less than 100 mV), so it generally passes through the multiplexer unaffected.
The amount the multiplexer affects the measurement will probably be proportional to the magnitude of the negative voltage.
Note also that the MAX31855 ICs use a linear approximation of the relationship between thermocouple voltage and temperature. This linear relationship works for a decent range of positive temperatures but becomes increasingly inaccurate at negative temperatures. -100 ºC on a KTA-259K will typically be reported as -85 ºC. This linearisation error is the main source of measurement error for the KTA-259.

How does the MAX31855 conversion model affect accuracy?

The MAX31855 ICs use a linear approximation of the relationship between thermocouple voltage and temperature. This linear relationship works for a decent range of positive temperatures but is poor for negative temperatures and is increasingly poor as temperature rises.
You could compensate in your firmware by applying a correction that uses piecewise linear segments or a full look-up table to correct for this error.

What about thermocouple lead lengths and/or wire gauge - any effects to compensate there? Can one K type thermocouple have 1m wire length and another have 3m length?

Generally you want to make sure the cold junctions are all at the same location/temperature, therefore, don't extend a 1m thermocouple with regular wire, otherwise the cold junction will be where the wires join, not at the terminals.
You generally want to keep the wire gauge small, as a thick wire will wick heat away from where you are measuring.
Some notes from the MAX31855 data sheet which may be of use:
The thermocouple system's accuracy can also be improved by following these precautions:
  • Use the largest wire possible that does not shunt heat away from the measurement area.
  • If a small wire is required, use it only in the region of the measurement, and use extension wire for the region with no temperature gradient.
  • Avoid mechanical stress and vibration, which could strain the wires.
  • When using long thermocouple wires, use a twisted pair extension wire.
  • Avoid steep temperature gradients.
  • Try to use the thermocouple wire well within its temperature rating.
  • Use the proper sheathing material in hostile environments to protect the thermocouple wire.
  • Use extension wire only at low temperatures and only in regions of small gradients.
  • Keep an event log and a continuous record of thermocouple resistance.
Another thing to note is the biggest source of error is the thermocouple non-linearity.

I have multiple thermocouples connected and they differ by about ±5 °C (10 °F). Do you have any tips on improving the accuracy of the measured results?

To get higher accuracy you should do some calibration, I would suggest testing each probe against a higher accuracy sensor or taking one of the probes as accurate and calibrating the rest against that.
The easiest way to calibrate them would be to take a measurement at two different temperatures and create a 2 point calibration formula.
This www.omega.com/manuals/manualpdf/M4347.pdf may be helpful.

I have a K-Type shield but I have a mixture of K and J Thermocouples can I use different types on the one shield?

You can, but it's not designed for the purpose and requires a good understanding of how the system works.
It may be simpler to replace the mixture of thermocouples so they are all the same type, or alternatively purchase a second thermocouple shield and use the correct types in their respective shields.
If neither of those options work, it can be done in software.
The shield will return a temperature which is the linear conversion of the millivolts reading at the MAX31855 IC input. The linear conversion can be reversed by looking at the MAX31855 datasheet to see what conversion is used for that particular IC and then you will know what the millivolts reading of the thermocouple is.
This reading in mV can then be cross checked against a NIST table or you can apply a linear conversion for the correct thermocouple type, bearing in mind that the cold junction temperature needs to be accounted for as well.