This is a practical troubleshooting guide and as an example the Ultimaker 3D printer is used. See: www.Ultimaker.com. For detailed theoretical thermocouple information and sources there is always Google. Very Simplified Theory:
A thermocouple (TC) is formed when two different metals are joined. A very small voltage is generated that depends on the temperature of the joint, typically 40 microVolt/degree Celsius so at 200°C the voltage will be approximately 8mV.
Note, an important point is that a single thermocouple cannot be measured! Since where the test leads are connected at least one more thermocouple is formed that tend to cancel out the first one. If both formed thermocouples are at the same temperature the net output voltage will be zero.
Here is a simple example using constantan and copper: Start with a copper wire and join an constantan wire to create a first junction then join a second copper wire at the other end of the constantan wire and the second junction is formed. Now the two wires at the ends are both copper and copper test leads can be connected without forming extra junctions.
The standard procedure is to keep one of the junctions at a known temperature, for example immersed in water with melting ice to get a zero Celsius reference. By measuring the output voltage and looking up a conversion table, or using a mathematical formula, the temperature of the other “hot” junction can be found. It is always the difference between the “Cold” junction and the “Hot” junction that is the net voltage measured
Since the output voltage is very low and not linear often an integrated circuit is used that amplifies the signal and linearizes it. A common one is AD597 by Analog Devices which is used with “K” type thermocouples.
As mentioned, we cannot have a single junction, so an extra junction is formed where the measuring TC is connected to the conversion IC. If the temperature of that extra junction(s) is known, that voltage can be compensated for and the temperature of the measuring TC can be found.
Often a separate temperature sensor is used to find that interface temperature. Obviously a TC cannot be used for that so either a thermistor, semiconductor, or other temperature sensor type is used to find the “Cold” end temperature. In the case of the AD597 there is an internal temperature sensor.
The output voltage from the conversion IC is a linearized function vs. the “hot” TC junction temperature. That voltage is usually measured by an analog to digital converter (A-D) that can be integral to the micro controller (Arduino in this case).
In the case of the Ultimaker there is a thermocouple attached to the heater block at the extruder. The two TC leads are attached to a very small printed circuit board on top of the extruder. That is where the extra junctions are formed. Those junctions at the terminal strip will closely be at the same temperature as the interface IC and therefore compensated. The linearized output signal is connected to the Ultimaker PCB which in turn feeds the signal to the Arduino Mega 2560 controller board which has an internal A-D converter.
AD597 Conversion PCB
Note: Input pin #8 and the TC – are directly connected to ground.
TC+ is connected to input pin #1
It is easy to measure the temperature of a liquid. Just insert a glass thermometer to the correct depth and stir the liquid or use other types of probes remembering to stir. It is very difficult to accurately measure the temperature of a small object for two reasons: The measuring probe often changes the temperature of the small object by conducting away heat and even when that is not the case, the probe is heated by the object but at the same time it is cooled by the ambient temperature so it seldom measures the correct temperature. Poor thermal contact further aggravates this problem.
Infrared thermometers meters depends on emission constants and the radiating surface condition and therefore have limited accuracy.
Using meat thermometers or other probes with long metal sleeves is bad since they make poor contact and there is a lot of ambient cooling of the probe. I saw one clever suggestion: Remove the extruder nozzle and insert the probe into the extruder barrel for good thermal contact.
To verify the temperature, the test instrument should be accurate, which is obvious, but often forgotten. Check all the detailed specifications at the actual usage temperature.
The sensor should be as small as possible to avoid the ambient cooling effect and if possible the sensor lead wires should be wrapped around the object to prevent them from cooling off the measurement sensor. Often “thermal grease” is used to get better contact.
To check a sensor there are a few calibration options that are more or less convenient: An ice bath for 0 °C and boiling water for 100 °C. Use Google to learn how to accurately create the two baths. 63/37% solder melts at 183 °C so that is another reference point and finally pure tin melts at 231.9 °C
There has been a lot, way too many, comments about temperature errors with the Ultimaker extruder. I think many of the temperature error reports seen are caused by:
- Intermittent opens and/or shorts in the wiring.
- I also suspect that many of the reported temperature errors often are measurement errors. It is very difficult to accurately measure the temperature since IR is not accurate and temperature probes often do not make proper contact and there is conduction of heat through the measurement leads that will affect the reading.
- I have also seen many complaints about the Ultimaker temperature measurement design but I think it is good and that there are no inherent problems.
One strange issue with my system:
TC input connections normally either use an isolated TC that is grounded internally on the interface PCB or use an externally grounded TC with “floating” inputs on the PCB. All TC vendors supply both types. My TC is partially grounded and Ultimaker tech support claims that is normal. I do not think so. I have never seen a partially grounded TC and would not be able to buy one from any of the sources I have previously used. Since the input is grounded on the interface PCB the TC should be floating.
Regardless, it happens to work fine in most cases since the heater block is electrically floating (insulated) but if there are any problems with the heater ground or supply voltage touching the heater cartridge, it would either give big temperature errors or destroy the interface IC.
As a proof that the design works, I carefully measured the head temperature of my Ultimaker using two different K type thermocouples of good quality and two different meters. All readings were taken at the set temperature of 210C with a stable settled down temperature. Both TCs were properly bolted to the heater aluminum block and wrapped around the heater block to reduce lead conduction errors.
Meter #1: Fluke 52 TC #1 209.4C TC #2 209.1C
Meter #2: Extech 42525 TC #1 210 C TC #2 209 C
The Fluke max error @ 210C is +/-0.4C and the TC max error is +/- 1.1C so the measurement accuracy in worse case is +/-1.5 °C and typically +/-1 °C.
So it appears that my Ultimaker works as expected and all four measurements are within 1 degree C of the set value. I have no idea how other UM performs since this is a single sample measurement. As I have mentioned before, a properly designed TC measurement setup should be very good.
As a note, the specification of the AD597 is +/- 4 °C but normally today’s ICs are much better than the worst case specification. The TC also is typically better than +/- 1 °C so I expect the final temperature to typically be within +/- 3 degrees or so assuming the internal voltage measurement in the Arduino is good but I do not have any information about its accuracy.
Trouble Shooting = Divide & Conquer
Some errors can be found without any equipment but I recommend that a DVM is obtained (actually a multi-meter to also allow resistance and current measurements). Sooner or later it will be needed for some troubleshooting. Digital meters today are typically very accurate, even a low-cost one, so there is no need to spend a lot of money.
The Ultimaker temperature measurement system is well-defined so to solve problems we need to systematically isolate each section and verify if it is OK or it is causing the problem. There is no need to initially make high temperature measurements. As a starter, with everything at room temperature, it should display room temperature within a few degrees.
As usual, the first step should be to check that the supply voltage is normal (close to 5V for the conversion IC. Measure on the three pin connector: Black is ground, Red is +5V) and to check the wiring that all connections are good and correctly plugged in. Wiggle and move things around to see if there are intermittent errors.
Thermocouples are very rugged and seldom fail. Before buying a new one make sure everything else is OK. The initial step is to disconnect the TC and replace it with a very short jumper wire instead. “Shorting the inputs together”. The temperature display should indicate room temperature. (Actually the temperature of the interface IC on top of the extruder.)
If it is still showing the wrong temperature, then it is not a thermocouple problem. See below for the next step.
If it reads good there are basically three options:
- The thermocouple wires are open (broken). In that case the output voltage will be very large, over 3 Volt on the interface PCB connector. Black is ground, red is +5V, and yellow is the output wire. If needed, use straight pins or sewing needles to make contact for measurements. Also depending on the controller software it might indicate over temperature or MaxTemp triggered. Open TC wires can be joined but they should be welded and it is not an easy procedure. There is always Google..…
- The TC wires are shorted at some additional point. In that case additional junctions are formed so there will be very large errors.
- Another possibility is that the TC wires are not insulated from the metal sleeve (like mine) and that the problem is indirectly caused by a heater cartridge that has an unwanted short to the case. The case will then either be grounded or at supply voltage. Isolate the problem by measuring the heater block voltage to ground when the heater is turned on and resistance to ground when the power is off. There should be no voltage and it ought to be floating with the TC disconnected. The TC also ought to be floating but see my note above.
Here is a link to many TC suppliers in the USA: http://www.temperatures.com/tcvendors.html
If the temperature is still wrong with the input shorted, we need to isolate if the problem is on the interface PCB or some other place.
The conversion IC output voltage can be measured between the black wire and the yellow wire. There is info in the AD597 data sheet on the voltage vs. corresponding temperature. If the Arduino voltage measurement is correct it ought to display the same value. For example, if the IC temperature is 30 °C the output should read 0.295V. The output voltage of the temperature interface IC is directly related to the thermocouple temperature.
On the datasheet page 3 is a list of the output voltage vs. temperature. You can find the data sheet here: http://www.analog.com/static/imported-files/data_sheets/AD594_595.pdf
If Bad, there is one more step to isolate the problem:
It is possible something is shorting or loading the wires or on the Ultimaker big PCB or on the Arduino and that is affecting the AD 597 output voltage. We need to disconnect the three wire cable from the PCB and independently apply ground and 5V. Basically either an external power supply or little jumper wires for ground and 5V. Afterwards recheck the output voltage to determine if it is still bad.
If the output is good (correct voltage for the IC’s temperature) , we then know that the problem is either in the wiring between the interface PCB to the big Ultimaker PCB or on the Arduino.
An alternative way to isolate the problem is to disconnect the cable going to the temperature conversion PCB from the Ultimaker big PCB and input a known voltage between ground and the signal input pin #3 on the big PCB. If an adjustable power supply is available it can be used. A regular single cell alkaline or other type of battery can be used, or a resistive divider formed by two similar valued resistors, at least 1000 ohm, connected in series between ground and +5V and the center point connected to the temperature input pin (Temp-1 pin#3). By measuring the actual input voltage and then looking up the voltage in the AD597 data sheet, it will be known what temperature should be displayed.
If good, the problem is in the TC, or interface IC, or cabling section.
If bad it is either the Ultimaker PCB or the Arduino.
By removing the Arduino and repeating the above procedure by feeding the voltage directly into the Arduino it can also be tested and again the problem will be divided into smaller pieces to troubleshoot.
Alternative Troubleshooting Method:
There are many ways to trouble shoot a temperature measurement system like this. Alternatively by just start measuring section by section the problem can also be found. Basically knowing what the voltages should be and then start measuring on the conversion PCB and following the wiring to the big Ultimaker PCB to finally the Arduino input pin the problem typically also can be found. This approach requires a little more understanding about the electronics so the previous mentioned Divide and Conquer method might be easier.
Detailed schematics and PCB layout are available at: http://reprap.org/wiki/Ultimaker%27s_v1.5.6_PCB
Good luck troubleshooting!