With the Experimenting with Thermistors Design Challenge drawing to a close in just a few days, here comes my final blog post. In this post, I continue testing thermistors in a more destructive fashion, attempt to resolve the question of thermistor response times and build a crude airflow sensor based on calorimetric principles. The series is then capped off with an overall conclusion summarising what I have learned through this challenge.
Table of Contents
Ring-Type Thermistor Durability
How tough is a ring-type thermistor? That’s something that occurred to me as it’s shaped just like a crimp connector … so it’s probably just asking to have a pull-test done on it.
I attached it to a mini bench vice, tied a knot in the leads so as to eliminate my connector as a potential point of failure and used my set of luggage scales to see just how much force it would withstand.
The reading topped out at 7.6kg (~75N) before the wires pulled out of the epoxied area.
This suggests the wires had broken at the point they joined the thermistor material inside the epoxy blob.
I can only surmise based on what is left that the thermistor inside may be very similar to the chip found in the bead. Regardless, the amount of force required surprised me due to the thin nature of the wires – I was expecting the wires to give way first!
What Happens on an Overload?
Severely overloading components is likely to cause permanent damage, overheating, fire or explosion. But what happens in the case of a moderate overload of an NTC thermistor? As larger disc-based thermistors are applied in inrush current limiting applications, the self-heating of a thermistor reduces the resistance which should reduce dissipation and “self-regulate” within limits.
As a result, I decided to sacrifice the 3kΩ thermistor for this experiment, being the lowest resistance of the group and thus being more likely to easily dissipate significant power. I connected the thermistor to my Rohde & Schwarz NGM202 power supply set to deliver 12V at a current limit of 0.1A, simulating an accidental connection to a current-limited power supply. I didn’t want any explosions, so the expected 1.2W peak power was something I was willing to put into the component which itself seems to have a 165mW expected dissipation at 135°C (maximum operating temperature), an overload of about 7.2 times. The resulting current and voltage is recorded using FastLog at 500kSa/s, resulting in log files of several hundred megabytes, so the raw data will not be made available.
The power was turned on about 6s into the log and the thermistor’s self-heating began to reduce the resistance of the thermistor resulting in current increases over time. By about 45s, it seems that the heating had reached a point where it “crossed” the knee and rapidly exceeded the current limit causing the power supply to fold-back the voltage. I did not turn off the supply for another 5s to see what would happen.
Power dissipation exceeded the rating by about half-way through the experiment and peaked at close to 1.4W due to the regulation behaviour of the power supply. Even at the point of turning off, the thermistor was still dissipating above 0.6W.
Converting the values into resistance shows that the current limit and dissipation peak occurred at about 105.5Ω which implies that the thermistor was “measuring” around 125°C which was less than I had expected.
Not wanting to be defeated, I felt brave enough to push up the current to 1A instead of 0.1A. In this case, a theoretical 12W would be available to the thermistor … will it pop?
The behaviour looks similar to the last test, scaled up for current by 10-times.
The peak power in this case reached 15W for a very short time, but was above 2W for around 25s. This is well beyond the power I’d expect it to be able to handle.
The resistance was merely 7.4Ω at the point the power supply went into current limiting. This is so far off the scale, it implies the thermistor was well beyond its 135°C rating and may have been on its way towards desoldering its own leads.
Despite pushing the thermistor well beyond its limits and even hearing a small “crack” towards the end of the test and smelling a faint burning smell, a visual inspection did not turn up any visual anomalies. After cooling, it still seemed to behave perfectly fine. It seems that thermistors are quite hardy components indeed.
The not very exciting video is below:
Thermistor Response Time & Thermal Shock
In the previous post, I tried to understand the response time difference between the bead and ring-type thermistor but I didn’t get an entirely adequate result. This is in part because of absolute reading errors between different thermistors, making it hard to compare the “lag” time. My best estimate was about 6s and while that would be within expectations based on the datasheet, I decided to go back to my freezing and boiling pots of water for more answers.
In this experiment, I decided to set up a pot of hot boiled water next to a pot of ice water. One thermistor will be tested at a time – it will first be dunked into the hot water and left to equilibrate. Resistances were recorded using the Keithley 2110 5.5-digit DMM, set to 1PLC for faster sampling. Once readings had stabilised, I would take it out and dunk it into the ice water, thermally shocking the thermistor in a “step change”. The resulting curve will be used to determine the thermal time constant of each thermistor at a time, based on actual temperatures recorded by the thermistor (as the hot water may cool slightly in the course of the experiment).
The overall response seems relatively similar, although some thermistors show a “rebound” behaviour. I’m not sure if this is an actual result or an anomaly that is the result of my particular test set-up (e.g. pot of ice water). The 10kΩ 3500K ring thermistor seemed to have a longer response time than the rest for some reason, which may also be a side effect of the experimental setup.
Nevertheless, zooming into the first ten seconds shows that the bead thermistors (that survived) all measured between 1.1s to 2.3s for thermal time constant, all within the <3s specification. The two surviving ring thermistors measured 6.1s and 3.8s, both well within the approximately 10s specification. It is clear that the ring does induce a thermal lag of anywhere from 1.5s to 5s based on these results, which is not too dissimilar to the previous estimate of about 6s.
After five minutes, it seems all were reading from 0°C to 1.3°C which seems to make sense, considering the tolerances of the thermistors. The data can be downloaded as a zipped Excel workbook - thermal-shock-data.zip
Experiment: Calorimetric Flow Sensing
In the course of this series, I’ve boiled many pots of water, created many pots of ice water, accidentally built a radiometer, measured ambient room temperature several times, derived the thermal resistance of heatsinks, protected my MOSFETs and LED chips from overheating, and attempted to measure self-heating.
But I still feel that perhaps there is a more interesting way to show just what thermistors can do.
Some expensive gas and liquid flow sensors operate on a calorimetric principle. This means that they are made with a small heater in-between two temperature sensors (usually thermocouples). Depending on the flow rate of the liquid, differential heating occurs where one sensor will register hotter than the other in proportion to the flow. This principle seems relatively simple, but making a practical sensor and calibrating it for a range of flow rates is a challenge. Baumer has a nice illustration demonstrating just how such an arrangement works.
Regardless, perhaps there is a way I could build myself a crude calorimetric flow sensor using thermistor beads as sensors, a through-hole resistor as a heater and a 3D printed “tube” as the flow channel. So that’s exactly what I did …
The tube was designed with three holes of 3mm each, one for a heating resistor and two for the thermistors. Printing required brim and support structures to ensure success.
After printing, a hole had to be reamed for the resistor as it was a bit too small. Hot glue was used to attach the thermistors to the tube.
The circuit was assembled onto a breadboard with an Arduino MKR Wi-Fi 1010 running the show.
Digital 2 was used to drive the resistor in case PWM control was necessary, readings from the 10kΩ and 12kΩ thermistors were taken using A0 and A1 respectively. The divider resistor was chosen to match the nominal resistances, thus the output voltage and ADC values should match given identical temperatures (within the tolerance value). A total of 128 readings were summed from each, and the difference between these summed values were used for plotting purposes. The (trivial) code is shown below:
void setup() { pinMode(A0,INPUT); pinMode(A1,INPUT); pinMode(2,OUTPUT); digitalWrite(2,HIGH); Serial.begin(115200); while(!Serial) { } } void loop() { int c1=0; int c2=0; for(int i=0;i<128;i++) { c1=c1+analogRead(A0); c2=c2+analogRead(A1); } Serial.println(c1-c2); }
Blowing into one end created a fairly noticeable response in the difference of 128-sample sum of ADC readings. The response was, however, predictably delayed and some baseline wander was apparent. This wander also changes depending on the orientation of the sensor, likely because the heat would travel differently in the tube.
Sealing my lips around the tube and breathing through it cyclically showed a major offset initially, possibly representing the difference in response of both thermistors to the mean “body” air temperature. Superimposed on this change was the AC signal that represents the inhalation and exhalation. This signal is smaller than one may expect, perhaps due to response time limitations, but as a demonstration it exceeded my expectations. Afterwards, I just left the tube at rest with no airflow and it seemed to be slowly trending back towards zero.
I guess this is a neat demonstration of heat flow being used to measure flow. If you’d like to print your own “breathing tube”, you can download the zipped STL file here - Breathing-Tube.zip
Experimenting with Thermistors – Overall Conclusion
It would not be a final posting without an overall summary conclusion. The best way to do this would be to summarise the learnings I have made throughout the whole series -
- Thermistors are devices which change their resistance with temperature and are constructed from special blends of metal-oxides to achieve their (highly) non-linear response characteristics.
- They are available in negative temperature coefficient (NTC) or positive temperature coefficient (PTC) types. The former is most used in temperature sensors and inrush current limiting, while PTCs are often used for over-current protection and self-regulating heat pads.
- They are available in a range of form factors, including bead, disc, chip, rod, probe, ring and flag to name a few. The latter two especially are suitable for mounting to flat surfaces such as heatsinks and tabs, but have slower response time and (usually) a more limited operating temperature range.
- They are available in a range of different nominal resistances, which is the resistance at 25°C. The actual resistance value is not too important assuming you have a high-impedance input and a divider resistor of an appropriate value. When tested with a MKR Wi-Fi 1010-based Arduino, higher resistance thermistors, seemed to have lower resolution possibly due to input impedance effects of the SAR ADC in the SAMD21 microcontroller.
- Optimal divider resistor value maximises the voltage swing in the temperature of interest. As a rule of thumb, this usually means choosing an equal resistance to the thermistor in the mid-point of the temperature range of interest.
- The tested bead and ring thermistors showed off-scale high insulation resistance and appear to be water resistant.
- The non-linear resistance behaviour is best described by a resistance-versus-temperature table, however, these values may incur round-off errors. The Beta model (single-value) and Steinhart-Hart Equation (three-value) are approximations of this non-linear resistance behaviour that can provide adequate accuracy depending on the application.
- The Steinhart-Hart Equation itself is based on empirical results and is not mathematically optimal. Conversely, expanding the infinite series on which it is based to the 5th-order is known to get into the milli-Kelvin region of accuracy given accurate source data for curve-fitting.
- Testing of computational performance of the models found that the Steinhart-Hart model took between 2.3 to 10.5x more execution time, while a 5th-order model took between 6.0 to 30.3x more execution time depending on architecture. At default clock-rates, the 5th-order model took 2.5s to compute on the worst-performing architecture (Atmel SAMD21 ARM Cortex M0+ at 48MHz) which may still be acceptable depending on the application.
- The 1% tolerance value only applies at the nominal resistance point. At extremes, the tolerance could be as high as 4-5% for such a thermistor. In terms of translated temperature error, this could be as high as ±2°C using a 5th-order model.
- Self-heating occurs whenever current is run through a thermistor. However, given the high resistance and low currents involved, for everything but the most-critical applications, it is not a major issue as the values are usually in the µW to mW range. In the case of immersion in a fluid with high specific heat, or which is flowing rapidly, this small amount of heat would be rapidly removed. In my case, just the heat from my finger touching the connector overwhelmed the self-heating in initial experiments, while tests inside a still air environment saw about 8m°C of self-heating by DMM.
- Running multiple thermistors on a single system can be achieved through the use of a microcontroller containing multiple ADC inputs, dedicated external multiplex ICs, a signal-relay or solid-state relay-based multiplexer or by innovative “abuse” of digital GPIO pins to drive thermistors (at the cost of increased reading error).
- The resolution of the ADC used and divider resistor will determine the temperature resolution of the system, which will vary as a function of temperature. To obtain 0.1°C resolution over a usable range necessitates using 12-bit ADCs or better, or to use a multi-range setup (multiplexing different resistors) with amplification.
- Linearisation of thermistors by adding a parallel resistor is possible, but it reduces the resistance range and seems most suited to use with a Wheatstone Bridge type circuit which makes differential measurements.
- Validation of thermistors can be done at boiling and freezing points with relative ease. Intermediate temperatures are more difficult due to a lack of reliable reference temperature. Testing did show that one of the ring thermistors appeared to be incorrectly marked, while the 10kΩ bead thermistor had higher than expected resistance at boiling, both of which were consistent across repeat tests.
- When characterised across a temperature range, 5th-order curve fits behave poorly outside of the characterisation range. Extrapolation is likely to result in wild results.
- The design of Molex ring thermistors allows for relatively small mounting footprint, the possibility to lead the wire quite a distance from the board, the use of Micro-Lock Plus connections that feature a locking tab making them more vibration resistant but also easy to replace if necessary. A pull-test of a single sample resulted in a value of 7.6kg with failure at the wire connections making it quite durable. A downside is slower response time due to the construction and thermal mass.
- Molex are not the only supplier of ring-based thermistors, however, they seem to offer a wider range than some competitors and better accuracy. The connector, however, is a key differentiator.
- Round bead thermistors are not so easy to mount to flat surfaces, necessitating thermal adhesive or pressure-bar based mounting. Such processes could be labour or time intensive. In case of overtightening, it is possible to crack the epoxy bead which may lead to reliability or accuracy issues.
- In the case of transient over-power (12V/1A limited, peak power ≈ 15W), the thermistor did heat significantly and a slight burning smell was emitted. Despite this, its characteristics appeared unchanged after cooling and it continued to function, which was an unexpected finding.
- A wide range of applications and experiments can be explored including characterisation of heatsinks, over-temperature protection of LEDs, measurement of ambient temperature and performing crude flow-rate or optical flux measurements. This just goes to show how related temperature and electronics can be!
In the end, I feel that this opportunity has helped me answer virtually all of the questions I had about thermistors and now I feel much more comfortable using thermistors in my designs. In fact, I quite like the sheer simplicity of the fact they have relatively uncomplicated instrumentation requirements (especially compared with thermocouples), assuming you have the data for your thermistor model of choice at your disposal. Their analog nature can actually be an advantage, as that opens the possibility of design tradeoffs to improve resolution at the cost of range and allows for designing simple microcontroller-free solutions as well (such as using an op-amp-based hysteresis comparator). The fact they are available in ring form for easy surface mounting is the icing-on-the-cake!
There were also some learnings that weren’t all that thermistor related – for example:
- Don’t expect components to stay put if you ship them in plastic sorter boxes.
- Laser markings on shiny metal surfaces may be difficult to read.
- Digital environmental sensors may seem easy to use but their accuracy can be somewhat questionable.
- Differences in sensor response times can make direct comparison of values difficult.
- Digital multimeters generally measure resistance by sourcing a known current with a voltage limit and reading the voltage across the leads. The actual currents used depend on the model of meter and may not be a round-number especially in battery-powered meters.
- Oversampling on ADCs can theoretically improve resolution, but in practice, requires more than just naïve averaging to achieve the theoretical performance.
- Water getting into your connectors can cause faulty insulation resistance readings.
- Having a variety of skills is important for exploring things effectively – C-based Arduino coding for microcontrollers, Python-based pyvisa scripting, Excel and MATLAB for data analysis, Word for writing up blog postings offline, KiCad for drawing up schematics and Tinkercad for basic 3D printing design have all made an appearance in this journey. I’m sure there are others that I have forgotten …
Thanks to element14 and Molex for sponsoring this design challenge and selecting me as one of the contestants. I hope you too have enjoyed this series of blogs and learned a thing or two along the way.
[[Characterising Thermistors Blog Index]]
- Blog #1: Characterising Thermistors - Introduction
- Blog #2: Characterising Thermistors - What's In The Box?
- Blog #3: Characterising Thermistors – A Quick Primer, Beta Value & Steinhart-Hart Coefficients
- Blog #4: Characterising Thermistors – An Inconvenient Truth, Taking Things to the Fifth Degree
- Blog #5: Characterising Thermistors – Measuring Resistance Is Not So Easy!
- Blog #6: Characterising Thermistors – Is Self-Heating a Problem or Not?
- Blog #7: Characterising Thermistors – Boiling, Freezing and Zapping the Truth Out of Them!
- Blog #8: Characterising Thermistors – Practically Running Multiple Thermistors
- Blog #9: Characterising Thermistors – Multi-T Results, Insulation R Redux, 5th Order Fits & Model Performance
- Blog #10: Characterising Thermistors – Multiple Thermistors on ESP8266
- Blog #11: Characterising Thermistors – Show Me Your Curves
- Blog #12: Characterising Thermistors – Sticking Rings on Tabs & Sinks, Absolutely Crushing It!
- Blog #13: Characterising Thermistors – Pulling Out, Overload, Response Time, Building a Flow Meter & Final Conclusion
Top Comments