I recently bought this MAX6675 sensor with a K-type thermocouple, and I'm wondering what's wrong with it. I'm been testing it against a DS18B20 based sensor (metallic tip), and MAX6675 is giving me readings way off the mark.

Chinese sensor

I tested it putting both sensors together against a hot plate and taking readings every 15 seconds. Plate start from room temperature. Previously, sensors were bring to start temp by immersing it in ice water.




- Signal to Arduino Pin 8.
- Ground to Ground.
- Vcc to Vcc (plus a 4.7K resistor between Vcc and Ground).


- SCK to Arduino Pin 4.
- CS to Arduino Pin 5.
- SO to Arduino Pin 6.
- Vcc to Arduino Pin 3 (HIGH).
- Gnd to Arduino Pin 2 (LOW).

This is the result from a run test (temps in °C):

Test results

Basically, the greater the temp, the greater the difference between MAX6675 reading and "true" temp (as defined by DS18B20). In previous tests, when real temp reach 100°C, MAX6675 was giving ~150°C readings. This is not a offset or noise, but something else, almost exponential.

What is wrong here? Bad thermocouple? Throw it away and buy something else?

  • \$\begingroup\$ Maybe both sensors are not equally in contact with the hot plate; would be better to immerse them in a liquid bath. \$\endgroup\$
    – BobU
    Oct 14, 2016 at 16:55
  • 1
    \$\begingroup\$ I also tested it in a oven and hot water. Same thing. \$\endgroup\$
    – user83628
    Oct 14, 2016 at 19:15
  • 2
    \$\begingroup\$ Did you test it with the temperature stable, such as an ice-water slurry (reliable) and boiling water (less so)? A thermocouple will respond much more quickly than a sluggish packaged semiconductor sensor. \$\endgroup\$ Oct 14, 2016 at 22:15
  • 2
    \$\begingroup\$ I bought the same 'kit' and have the same problems. I own a fluke that is capable of temperature measuring using a K-type thermocouple, so I connected that thermocouple to the max6675 module and the reading was right. That discarded the max6675 ic's as the faulty. I though that the thermocouples are not K-type and search through google. Based on this graph from wikipedia I'm thinking that the thermocouple in reality are type J or M and as the responses are almost linear, I'm evaluating doing a single or two point calibration. PD: I sent a message about th \$\endgroup\$
    – Totoxa
    Oct 16, 2016 at 9:57
  • 1
    \$\begingroup\$ Have you ruled out EMI in the Thermocouple probes with AC common mode noise pickup causing DC offsets affecting the calibration. \$\endgroup\$ Oct 16, 2016 at 10:19

2 Answers 2


As user Totoxa wrote, the problem is that the original thermocouple wasn't a K-type one. I bought a new thermocouple, from another on-line store and voila!, it gives the correct reading from ice to boiling water. I only replace the thermocouple; chip, connections and sketch are the same.


What is wrong here?

tough to tell and possibly nothing.

1) you have to establish that there is something wrong. maybe the 18b20 wasn't giving the right readings. you should pick an easily established point - boiling water for example - to establish which of the two sensors are wrong.

2) if the maxim sensor is indeed giving the wrong readings, you have to establish that the fault is with the sensor, not your software. providing the direct readings from the sensor would be step #1 in that direction.

3) if the sensor hardware is faulty, you have to figure out whether it is the chip or the probe. if you have a different chip, it would be helpful.

Some temp sensors are known to be wrong. so swapping out the chip, if possible, would be helpful as well.