Meat thermometer using predictive filtering

The guys over at NerdKits put together a really informative video on a meat thermometer using predictive filtering which is viewable below. The video, supplemental text, and code is available on their website. The thermometer is constructed of a LM34 temperature sensor attached to a piece of 12 gauge solid copper wire. The thermometer signal is processed on an ATmega168 microcontroller and visualized using the pygame library for python. The real gem in this project is their excellent explanation of predictive filtering, which could easily be utilized for a large number of projects.

Post navigation

20 thoughts on “Meat thermometer using predictive filtering”

You know, it’s funny. During the course of my EE degree, I’ve taken a handful of signals classes and only applied transfer functions on paper for signal (AM, FM, PM, etc) transforms and bandwidth calculations. I think it’s bad that this if the first time I’ve seen transfer functions used in a physical example. Great presentation.

Interesting video, it’s very nice to see someone go into the technical details of how things work, for once. Their transistor biasing video was great as well.

Looking at the response of the sensor, it looks like it actually is a second order response, with a second order time constant much smaller than the first order constant. Maybe it comes from the heat diffusion delay in the copper wire. Taking this onto account would improve the accuracy but the math is much tougher there ;P

Even though copper has very good heat conductivity, I would not recommend to stick a copper wire into food: It will get corroded by the acids in the food, leaving back traces of copper salts which are toxic.
A possibility around this would be to use a copper tip covered by some protective layer (e.g. gold). Also, the tip from the mechanical meat thermometer shown in the beginning of the video might work well.

@:d
No, this won’t work, because you are proposing to model the temperature curve by a parabola which it obviously isn’t.

@myself: i talked to a biochemist and she told me copper wasn’t so critical and the traces were so small that it’s probably no problem… But clean it in order to remove lead and so on which might still stick on it from the wire insulation you might have peeled off.

I would imagine the predicted values would be much more accurate than they appeared to be in the video if the tip was held stationary in the hot water – by letting it bob up and down, he’s changing the distance the heat has to flow along the wire, which affects the rate of heat transfer to the sensor.

Not sure how 5 minute epoxy will react (or what chemicals will be transferred to the food) when heat is applied…

Also, even lead-free solder has impurities which are toxic… I would dissect a stainless steel thermometer and fill it in with a sensor in order to be certain that no contaminants enter the food.

Otherwise, good work! The presentation was explained well, although it would have been useful to compare the output to something else such as a capacitor in practice so that the portion of the audience which is not as skilled in mathematics would be able to relate. A simple breadboard example would suffice, and would not even require extra hardware or programming changes, as long as proper values were chosen.

i don’t think so. i’ve been using lm335’s in a project of mine (same as the lm34 here, except calibrated for the kelvin scale) and they do the same thing regardless of how they are mounted. it might be because the sensors are manufactured with a plastic case, which is not very thermally conductive.

Nice job. I hadn’t heard of predictive filtering. Seems like it should be called compensation filtering, since you really are not predicting (estimating future world state) as much as compensating for the transfer function of the sensor, which is very common in control applications. The term seems to appear in a decent number of papers, surprised nobody has written the Wikipedia page yet. Thanks for putting that together.