My NovaKool dual compressor factory thermostats are utter crap. Besides the fact they don’t offer settings in standard temperature units (I will take Fahrenheit or Celsius, but 1-5 doesn’t work for me) they don’t work as expected. The thermostat probe is buried deep into the cooling mechanism, so it does not reflect the temperature in the fridge/freezer compartment itself. There must be some reason why the engineers did this, but it escapes me.
I originally thought they are made this way for efficiency? Perhaps, but in the real world i observed the stock thermostats cause very poor performance. The thermostats turn off prematurely, then later turn back on later, resulting in a slower cool down.
My original NovaKool Custom Thermostat worked very well! But its been a while now, and I wanted a new solution. Arduino has been acquired by Broadcom. (Primarily owned by private equity). While the service has not gone to shit yet, the whole IOT ecosystem is starting to worry me. What if in the future my refrigerator fails, or at least the GUI control program fails, because they release some crazy update? In other words the whole system is too complex and unreliable for me. I am just turning the thing on and off, or changing the settings. I really don’t want this whole IOT ecosystem. And I need it to last forever.
Also, I really worry about a SensorPush sensor failing underway. Due to a limitation in the Arduino library I have to use active scanning. It doesn’t seem to seriously degrade the button batteries in the sensors, but the Beaglebone can use a Python library that utilizes true passive scanning. This will be one less thing to worry about – with passive Bluetooth scanning the SensorPush batteries can literally last years.
Also originally I didn’t really know what I was doing and used low voltage relays to signal the compressors on and off. While this will probably last years – I saw the same relay on the Dometic AC control board – I since learned its just as easy to use a solid state switch as a relay – that has no moving parts.
At time point I discovered Beaglebone. My original Victron Venus – since replaced with Victron Cerbo, was a Beaglebone. I discovered this when I noticed a WiFi named “beaglebone…” following me around.
I started looking into them, and they are single board computers. I became interested because one of them, the Beaglebone Green Wireless, sounds just perfect for this. Its very small and low power, yet super heavy in capabilities. Its running a full fledged Debian stack so can do pretty much anything.

My original intrest in Arduino for this project was because its super low power and had the IOT built in. But then a glitch in they way they work forced me to employ two boards. And I realize now that I don’t really need that giant ecosystem (including an annual payment to Arduino)
The new Beaglebone relies on no external servers at all. I just wrote a very basic and crude webpage for monitoring and control. Using Tailscale I can access this from anywhere, so I can fully view and control the fridge without some cumbersome IOT package.

This simplistic interface is all I need, and vastly more reliable than all the things that can go wrong with somebody’s IOT cloud. The beauty of this is that using Tailscale I can also seemlessly monitor and control from my phone anywhere.
The previous version required a custom printed circuit board I designed whereas the Beaglebone components are more plug and play.
I still want to use the same bluetooth Sensorpush temperature sensors. They are extremely accurate. However I have since learned I was not doing it right! The temperature (and humidity) is actually in a bluetooth advertisement. You do not need to connect to the sensor to get it. This will greatly reduce battery life and get faster updates. It was a lot more complex to hack out the advertisements but thanks to the miracle of AI its working.
I’d be lying if I didn’t say it is also an opportunity to write something in Python. I know little about this language and it seems like a good project to start with. The Python libraries handled a lot of the code for me, so I really just had to connect all the parts together and test it!
The Arduino controllers relied on relays which I just don’t trust, Sooner or later it seems one might fail. I suppose I am overly risk averse but the last thing I need is the fridge turning off on vacation. The new one will use opto isolators and be all solid state – which should be a lot more reliable and really will last forever.
After a couple false starts I ended up settling on a WInford Engineering RLYSS102-060-35-FT Solid-state relay board. This seems very well made and is exactly what I need:

I will connect to the Beaglebone through a ribbon cable (left side) and connect my fridge and freezer to the load (right side). I don’t trust the little prototype screw terminals so I will unsolder them and solder in jumper wires.
Soldering to the Beaglebone itself is not easy, so I purchased a small “cape” that I could solder to.
The final result looks like this:

The Beaglebone is hiding under the solder cape. There is a DROK Buck converter under the Winford board to convert to 5 volts.
The thing works great! After some testing I mounted it in the adjacent cabinet.

Its been running a couple days. I wrote a short Python program and optimized Debian for the RV environment.
What is really exciting me, is, when I get time its just a little bit more programming and I can implement variable speed using PWM control – which the Winford board should be able to easily do.
In variable speed mode the compressor will run at max speed for fast recovery but at certain thresholds will slow down. Longer slower runs are more efficient, quieter, and lengthen compressor life. Thats not much additional work so I’ll try to get to that over the winter when the RV is in storage and we have no travel plans.
Leave a Reply