fussy real time clock batttery
Monday, April 15 2013
Temperatures finally climbed back into the 60s today, and, against all expectations, the sun came out. I decided to pay careful attention to the solar collection system to see if it was doing its job. It's designed to run itself without the need for any human intervention, but things happen from time to time and sometimes I check it and find it isn't working. Today, for example, I found that it was heating not the household water supply but the basement slab even though the household hot water was only about eighty degrees Fahrenheit. At such a low temperature, the priority should have been heating household water. After some investigation, I found that the problem was that the "maximum hot water temperature" setting, which is designed to keep the water in the hot water tank from being heated to boiling, was absurdly low number. More troubling, that number kept changing every time I checked it. That (and other numbers that are supposed to survive a controller reboot) are stored in the battery-backed RAM on a real time clock module. Clearly something was causing that RAM to lose its memory. But what? If the little pill battery that keeps it ticking were low, then the clock shouldn't be keeping accurate time. But it was keeping accurate time.
Still, I didn't want to have to replace the real time clock (or find some other way to store these values) if I didn't have to. I have another identical real time clock module, so I extracted its pill battery and swapped it into the module in the solar controller. Though the new battery's measured voltage was 3.07 volts and the old battery's was only a little less (2.9 volts), the difference was apparently enough to preserve values in the real time clock's memory, because the replacement battery fixed the problem. I'm guessing that the reason the weak battery hadn't affected timekeeping was that the clock circuitry itself is either less fussy than the RAM about needing backup power or is able to fail over to running reliably on non-battery power (which, in this application, is almost always present). In any case, I added some code to my controller system to never accept a value below 120 degrees Fahrenheit as a hot water maximum (so that a failed RTC will no longer lead to failed hot water collection). I should probably also add a line of code to correct any value of more than 200 degrees as a hot water maximum (so that a failed RTC will never lead to hot water tank boil over, which, in cases where the pressure relief valve sticks, can lead to an explosion).
Speaking of explosions, today was the day that bombs went off at the finish line of the Boston Marathon. These bombs killed only a few people, though a great many suffered serious injuries, including traumatic loss of limbs. Given that today is also "Patriot Day," the day when haters traditionally kill Americans for the good of America, I'll speculate that the responsible party will prove to be some right wing lunatic in the model of Timothy McVeigh, but as of this time nobody knows. Nevertheless, both speculation and even some nascent trutherism are rampant.
For linking purposes this article's URL is:feedback
previous | next