::: nBlog :::
This morning I spotted an alarm from our heating system, brought to the mobile view as minor/informational and triggered by BaseN Platform trend analysis. Usually it would have gone unnoticed, but when I use the biomass furnace I tend to check temperature deltas in the morning, to see if more wood should be added.
The alarm was caused by a sudden drop in heating power, reported through incoming and outgoing temperature sensors connected to the floor heating pipes. Closer look indicated that between 4am and 5am the heating valve was fully closed for 50min, after which it regained normal operation.
As the house has more than 40 tons of concrete, this caused no noticeable indoor temperature changes or other issues. However, I don’t believe in ghosts so I wanted an explanation.
It turned out that this phenomenon happens every year around August, when night temperatures drop below 10 degrees, or 10.7 degrees, to be exact.
While the heating controller is connected to the BaseN Platform, it has its own embedded program to control the heating valve using a predetermined graph, issuing pulses to a stepper motor that is physically adjusting the valve. The graph is based on outdoor and heating water temperatures and compensated by indoor temperature.
Now at 10.7 degrees, this Negative Coefficient Thermistor (NTC) sensor happens to report a resistance that is converted by the embedded controller to.. Zero. While I don’t have the source code for the embedded program, I am relatively sure that we’re seeing a classical Divide-by-Zero bug, causing the program loop to abort and instruct the stepper motor to close the valve. At 10.8 or 10.6 degrees everything is fine.
While I’m happy that this is not a nuclear reactor cooling system or a logic controller managing centrifuges, this clearly highlights the problem of embedded programming which is not continuously verified and measured. Isolation does not bring security, it rather conceals potentially catastrophic bugs. This is why we advocate thorough data collection, and ultimately Spimes with multilayer, transparent structure.