Max6675 + Thermocouple Accuracy

I am running my wood stove draft control via a servo. I am using a thermocouple connected to a MAX6675 ADC. I have a fluke meter taking temp reading next to the thermocouple installed in the supply duct. The project works ok except that when I compare temp output reading from the thermocouple on the serial monitor, there is quite a large difference between the actual temp (Fluke reading), and the serial monitor output value. The temperature ranges I'm working with are between120F and 135 Deg F. At 120 Deg F the difference is around 9 Deg, and at 135 the diff is around 3 Deg. Is there a way to minimize the gap ? Or, What is the best Thermocouple to use in these temperature ranges using the Max6675.

Thanks,
TT

The MAX6675 with a K-type thermocouple, correctly connected, should be accurate to better than +/-1 degree F in that range.

It is possible that there are problems with either your connections, the choice of thermocouple, or the Fluke instrument.

I checked the fluke against another temp meter, and they were .5 Deg difference between them.

I did some research on K type Thermocouples and the graph showed large differences at the lower temp end, and smaller at the higher end.

This is the Thermocouple:
Twidec/2Pcs 1/4" Screw Probe Temperature Sensor K Type Thermocouple 2 Meters Cable Temperature Range: 0-600°C LT-104
Thermocouple

What graph? Differences in what quantities?

The temperature-sensitive junction in all K-type thermocouples is the same, and the temperature/voltage characteristics are so well known that you can look them up in standard tables, e.g. Type K Thermocouple - Type K Thermocouples - K Type Thermocouples - K Type Thermocouple

But with such small voltages, the connections to the measurement module are critical, and need to be made properly, with the correct metals.

You have not posted any useful details of the setup.

+1

TT:
Thermocouple wire is very pure, the junction (bead) is the hot-end and often in a protective tube.

The wires from the hot-end can go 2 ways .. quality and cheap:

Compensating cable is made from cheaper alloys than extension cable. Where extension cables contain thermocouple elements, and can be used to manufacture thermocouples, compensating cables contain alloys that only have a similar temperature vs EMF relationship to its extension cable counterpart over a limited range.

Everything in the circuit from the hot end to the cold-junction (terminal block) is just physics. But, the terminal block, mounting, and thermocouple amplifier are critical. With excellent sensor and professional construction, the manufacture's specs can be realized:

The MAX6675 performs cold-junction compensation and digitizes the signal from a type-K thermocouple. The data is output in a 12-bit resolution, SPI™-compatible, read-only format.
This converter resolves temperatures to 0.25°C, allows readings as high as +1024°C, and exhibits thermocouple accuracy of 8 LSBs for temperatures ranging from 0°C to +700°C.

Review the app notes and best practices here:
https://www.maximintegrated.com/en/products/interface/signal-integrity/MAX6675.html

My workshop experience with the older 31855 is +/- 1C at ambient.
Completed unit, Mega-based, is in a Rotax for EGT.

Ray

From the picture, I can see terminals on the wire that are NOT proper for thermocouple wire. Is this your wire, or do you have the proper connector on your wire?
Paul

Consider the Adafruit MAX31855 offering, an upgrade from the discontinued MAX6675, and includes proper connectors and matching K-type thermocouple.

Screw-down Spade connectors are permitted as are screw-down. The best practice for thermocouples even has a "Law"
https://instrumentbasics.com/2021/12/26/thermocouples-law-of-intermediate-metals/

Crazy case is still OK:

Yes that is the actual wire I purchased. The terminals are connected to the MAX6675 screw clamps. I assume that it is sufficient. I have the Max powered by the 3.3V on the NANO, and the servo is powered by the 5V. Maybe I need to set one of the pins HIGH and provide 5V to the MAX6675.
image

If that photo represents the actual module you have, it looks like the cheap modules one buys on eBay or Alibaba.

You can never trust those, and probably have a counterfeit, poor imitation or factory reject chip.

If you want to make reliable measurements, buy your parts from a reputable supplier. The one I linked from Adafruit is supported and guaranteed to be genuine.

Yes, I bought it on Aliexpress. I will purchase the one you mentioned, and give it a try.

Thanks for the info, much appreciated
TT

TBH, if you're running at temperatures around 135F, I'd use a semiconductor sensor instead. Cheap and accurate. A DS1820 or an LM34, etc., would work fine.

K Thanks, I'll look into that as well

i use one of them in my wood heater damper control and its easily accurate enough.
absolute temp is not all that important its the delta t {temp change} value that regulates the algorithm, if the room is too hot drop the set point a little or vice versa
no need at all to work in absolutes
i might add they may not be accurate but they are precise

Would you be willing to share your code. I would like to try it on my setup and see how it works.

Cheers
TT

My damper control is a simple crank shaft operation where from 0 deg home posn the damper is closed at 180 deg its fully open , it rotates in one direction only , the only feedback on damper posn is a home switch at 0 deg, the 180 deg point is a timed move.
The control method is bang bang on heatbox temperature, the damper control esp8266 measures this temp and also and runs as a simple web server providing a control point for node-red.
A node-red box takes in room temp, outside temp and firebox temp to decide
bang bang setpoint and damper position. it can also run with a manually set setpoint.
mode of operation and or setpoint are set via Alexa or a node-red dashboard.
i have found pid control of wood fires to be ineffective, wood and fire behaviors are too inconsistent, this bang bang method has worked brilliantly over the last two winters and is so much simpler than pid, the added bonus is it keeps the flue cleaner also

@racpi makes a good point. Absolute accuracy is not important if the sensor makes repeatable, stable measurements, in which case you always figure out a calibration curve, if desired.

Wow, that sounds very complex, but it is probably pretty simple if you know that stuff. I am just getting into Ardunio, and working with simple code using delays if and else and stuff like that. Maybe someday with a lot of research I will be able to develop something similar.

Cheers,
TT

the first step is getting the mechanics simple and reliable
imho servos and heat and safety don't mix , i started with a servo it did not last long before trouble set in. a 12v turbo 10 rpm worm gear (ar-la ebay) motor draws 20mA @3v and has heaps of torque, stalls @80mA approx, no heat no danger no prgm crash on shared supply , a typical 5v servo 2A when stalled. i would not trust a servo for unattended operation esp on a shared supply

Agreed, hobby servos are out of the question for something like controlling a wood stove damper.

Linear actuators are MUCH sturdier and more reliable, and come in many sizes. Example of a very small one: https://www.amazon.com/Electric-High-Speed-sec-Weight-Intelligent-Automation/dp/B07ZJ4B3WW/

Look for ones that have potentiometer feedback, so you always know the current shaft extension, even after a power outage.