Probably many of you have a bunch of AA rechargeable batteries (Ni-MH or similar). Modern smart phones (and other stuff charged using standard USB connectors) consume a significant amount of power (especially if you tend to play mobile games, like https://www.ingress.com/😉 ). So, when you’re out of power, a mobile battery pack to charge your phone or player on the go would be a nice thing. Let’s build one using your existing AA (or AAA) rechargeable batteries, some off-the-(chinese)-shelf voltage converters and a few elements you can buy in every electronics shops, worth less than $10 in total.
In this part of the tutorial we will install and configure the web control interface of OpenHR20 project. I’m assuming here, that the interface is to be deployed on a home router running OpenWRT. Generally, anything capable of running a web server and PHP interpreter will do, but the controlling daemon should be run 24/7. So, OpenWRT based devices seem to be a perfect choice here. There is only one drawback: these routers run from a flash memory, which shouldn’t be written very often. Unfortunately, OpenHR20 daemon will issue a write at least once every 4 minutes for each remote thermostat. Thus, we will use some additional tweaks to keep the database in ramdisk and only backup it periodically to flash.
Building the master station, which will act as an interface between the server running openhr20 daemon and your wireless thermostats is actually pretty easy, especially when you can spare arduino or a similar dev board.
In this part you’re gonna solder the RFM12b radio to HR20’s PCB and put everything in HR20’s case.
In this part of the tutorial we will flash the ATmega169p on board of HR20 with OpenHR20 firmware.
- an AVR JTAG programmer
- a bunch of wires
- 2 AA batteries
- a PC with tools installed (example is based on Ubuntu 12.10)
- OpenHR20’s source code
This part is not strictly about OpenHR20, but it is nevertheless related to HR20. Before you start with your modifications of HR20’s hardware and firmware, make sure that the thermostat fits your valve and works properly with your radiator. HR20 is said to fit standard valves made by Honeywell, Braukmann, MNG, Heimer and Danfoss. In the package coming with HR20 there are also adapters for Danfoss RA, RAV and RAVL. Unfortunately, I have older type of valves, called Danfoss RTD-N, which were very popular a few years ago. Fortunately, you can still mount HR20 on them using a dedicated adapter, but it is somewhat hard to find and is priced at about… $8. What, more than the RFM12b digital radio and almost 1/3 of the thermostat for a piece of metal pipe with a thread from both sides? Since this is DIY approach, I’ve googled around and found on a forum how to adjust the included RAV adapter to make it fit RTD-N valves.
What is HR-20?
Honeywell HR-20 is an electronic programmable thermostat made by – well, Honeywell. You can read more about it on its homepage. Its main feature is that you can program 2 temperature settings and a time schedule, which can change your temperature 4 times a day to one of the preset temperatures. You can also have a separate schedule for every day of the week. Other than that, it offers freeze protection and automatic open window detection.
Because some of that features are limiting and some bugs were found in the original firmware, a group of electronics hackers reverse engineered the thermostat and wrote open source version of the thermostat’s firmware – and that’s OpenHR20. Since HR20’s main controller is an ATmega169p, it is quite easy to modify and program the firmware. OpenHR20 gives you 4 temperature settings, 8 temperature change timers and a control and monitoring protocol that runs over TTL serial on the diagnostic connection of the thermostat. It also fixes some issues with original firmware, like opened window detection or “cold valve” problem. Also, many low level settings, like PID controller parameters, are available for the user.
So, OpenHR20 can give you a lot more, but… here’s the most interesting thing. People running the project found a way of connecting inside the case a small digital radio transceiver called RFM12(b). It is cheap, offers a decent range and fits into the original case of HR20. Then, you can build a “master board” that connects to USB port and allows for remote control and on-line monitoring of all your OpenHR20 valves from any device with a web browser. It works on dekstop computers, smartphones and tablets, so you can control your heating system remotely from any network device. And that’s really cool!