3D Printers, Makers, DIY hacks, solutions and post printing tools

Created by Emil Pop on 13 April, 2018

Temperature readings, nope, not the Corona Virus thermomether, but close enough.

After a while using the hot ends with temperatures up and down, the thermoresistor in there goes bust and reads wrong values, usually tells the machine the hot end is far hot than in reality, hence while the reading tells you 260 Celsius (good for Nylon and PETG) if you point a laser thermometer at the heating element you get 180 Celsius and obviously a bit less on the actual nozzle. That results in cold extrusion, poor layer adhesion if at all, nozzle clogging and in the end if the difference is too big, no extrusion.

As opposite can happen too, while you have a reading of 220 Celsius on the Arduino, a laser thermometer pointed at the nozzle might read you some 260 Celsius, the result is pissing down liquid filament, or if the difference is too big, baked filament, again with poor surface quality if only liquefied, but hey, great adhesion by the way, and if baked, well, no adhesion at all.

So each time we intend to print for good, we might want to compare what Arduino is reading on our hot ends with what some laser thermometer (Most surfaces have high emissivity; over 0.9 for most biological surfaces, and most IR thermometers rely on this simplifying assumption; however, reflective surfaces have lower emissivity than non-reflective surfaces. Some sensors have an adjustable emissivity setting, which can be set to measure the temperature of reflective and non-reflective surfaces. A non-adjustable thermometer may be used to measure the temperature of a reflective surface by applying a non-reflective paint or tape, with some loss of accuracy) or some other multi-meter with read in temperature mode. So I just found out on my own skin that my laser pointer thermometer might read even 100 Celsius less than reality just because the surface I am pointing at is shiny metal (anodized aluminum block, the thermo heater element is stainless steel polished, etc)

or a kitchen "stick in the meat thermometer" helps too, not very exact tool, but better than nothing.

Here is a few selected links on how to do that:


I guess this will be a constant headache, in order to calibrate temperature readings you have to constantly verify your reading as the thermistors fade over time, and differ in readings output even if from the same producer, especially if from Asia.

European manufacturers tend to be most precise together with the Japanese and flowed by North Americans pretty close, but their prices are high, so most of the things you will find at "decent price" even if bragged to be sold by local companies, you might trust it is made in Asia somewhere, hence treat it as such.

Maybe the use of thermistors is not the best option as they do not produce an absolute reading but they output an exponential variation of their resistance going down as the temperatures go up (NTC)

While a calibrated reader like a laser beam thermometer pointing at the hot spot might be doing a better job, be more stable in time, the question is how do I get that reader to talk to the Arduino?

Please help with ideas.