Every kitchen timer has the same flaw, and once you notice it you cannot un-notice it: it starts counting when you press the button.
But "three minutes for a soft-boiled egg" does not mean three minutes from when you pressed start. It means three minutes of boiling. So you stand at the stove watching for bubbles, press the button at some moment that feels about right, and accept that breakfast is a coin flip. A watched pot, as the saying goes, never boils.
PotWatch is a small device that clips onto the rim of the pot, drops a stainless probe into the water, and takes that judgement away from you. It waits until the water reaches the temperature it is looking for, and only then starts the countdown. Then it shouts.
That is the whole idea. The interesting part is what "the temperature it is looking for" turned out to mean.
Water does not boil at 100 °C
This is the part everybody knows and nobody accounts for. Water boils at whatever the local air pressure says it should — lower if you live somewhere high, and drifting by a fraction of a degree as weather systems roll through. A device that waits for a fixed 100 °C will either wait forever or start early, and both failure modes ruin the egg.
So PotWatch carries a BMP280 barometer and computes its own threshold:
trigger = calibratedTemperature + (currentPressure − calibratedPressure) × 0.03 clamped to 85…102 °C
The 0.03 °C per hectopascal falls out of Clausius–Clapeyron and is close enough to linear over the ±30 hPa that weather actually moves. Altitude is a much bigger jump than that, and it is not handled by the formula at all — it is handled by calibrating once, in your own kitchen, against your own pot.
Detection then requires five consecutive readings at or above the threshold, sampled once a second. A splash, a burst of steam, or one noisy conversion resets the counter. Under-engineering this was the difference between a device that works and a device that starts the timer when you stir the pot.
The feature I did not plan: the threshold is a setting
The calibration screen exists so you can tell the device where your water boils. What I actually do with it is different, and I think better.
Water does not go from still to rolling in one step. Long before a full boil it is already working hard — bubbles streaming off the base, the surface moving, plenty of heat going into the food. On my hob that point arrives around 88 °C. So that is what I set the trigger to. The countdown starts there and the hob comes down, and the food cooks in water that is lively rather than violent.
Which reframes the whole device. It is not really a boil detector. It is "start the timer when the water reaches this temperature" — anywhere from 85 to 102 °C — and boiling just happens to be the obvious default. Nobody asked for that; it fell out of using the thing.
The failure that nearly killed the project
The first prototypes kept destroying their temperature sensors.
Not gradually — a DS18B20 would work perfectly for a few sessions and then return garbage forever. I replaced sensors, blamed the wiring, blamed the water, blamed the cheap modules. Then I noticed the common factor: it only happened on the induction hob.
An induction cooktop is a large, unshielded coil throwing a serious alternating magnetic field around, and I had helpfully placed a bare semiconductor inside a metal tube right next to it. The steel thermowell I had chosen to protect the sensor was doing the exact opposite — acting as an antenna and delivering the interference straight to the part I was trying to protect.
Two changes fixed it:
- Bed the sensor in thermal paste — ordinary CPU heatsink compound — before sliding it into the well.
- Bond the steel thermowell itself to ground with a wire.
The grounded tube is almost certainly doing the real work: it turns the sleeve from an antenna into a shield wrapped around the sensor. The paste was originally there...
Read more »
Ilia Kuzmin