I am using an Arduino Uno, with an Adafruit MAX-31855 breakout board and library, with a 12" long type-K thermocouple (home-made, using commercial type-K thermocouple wire with a (hard) silver-soldered junction, dc resistance is 0.3 ohms measured at the open end) connected directly to the screw-connectors on the breakout board. I am running the Arduino board with a 9 volt battery (no AC noise). The MAX-31855 is connected to GND, 3.3v, with CLK, CS, DATA jumpered to Arduino pins: D6, D7 and D12, respectively, and I have installed a 0.1uF ceramic cap between Vcc & GND on the breakout board, as suggested in the MAX-31855 data sheet. The 2 x 20 LCD display is connected to an Adafruit "backpack", connected to the Arduino DAT->D9, CLK->D9, LAT->D10.
This all seems to work as expected, except that the temperatures read from the termocouple seem seriously off at temperatures lower and mich higher than room temperature.
Specifically, the sketch reads the MAX-31855 once per second using the Adafruit library's "readFahrenheit()" function and gives me perfect readings around room temperature when compared to a mercury-in-glas lab thermometer. However, at lower temperatures (e.g. an ice cube in near-freezing water), the lab thermometer reads 32F, and the thermocouple reads 20F (actual temp * 0.625) With water at a full, rolling boil over a gas flame, the lab thermometer reads 208F (we are about 2000 feet above sea level), and the thermocouple reading settles at 240F (actual temp * 1.15). A pot of molten metal at 750F (according to a Lyman lead melting thermometer), also heated with gas, the thermocouple reads 840F (actual temp * 1.12).
This seems to deny the accuracy claims for the MAX-31855 & type-K thermocouples. I have tried two different type-K junctions (e.g. silver-soldered, fused) with the same results.
Given that the temperature range I am currently concerned with is from 600F to 800F, and the "correction factor" in that range seems to be about thermocouple.readFahrenheit() / 1.13 and fairly linear, I can live with that, but I expected better after reading the 31855 data sheet.
Any suggestions to get better accuracy, or at least a linear response over the range 32F to 800F?