rWCHC is a project aimed at implementing a versatile weather-compensated central heating controller. The goal is to provide accurate and optimal temperature control based on outdoor temperature variations, building structure and occupant habits, in order to maximize comfort and reduce power usage (minimize both the impact on the environment and the energy bill). The system is designed to be scalable and remote operable (via internet connection).

This project is composed of two parts: a custom-designed hardware module to perform the actual power control on heating appliances, and a software module which is meant to run on a Raspberry Pi host to perform all computations and enhanced logic control. The rPi host also provides power to the hardware module which doesn't need an external power supply.

This project stemmed from my need for a reliable and highly configurable controller after having had a bad experience with a brand-name device.

This webpage is work in progress


This project falls under a different licensing scheme than the rest of this website. Please read this section carefully.


The information and methods described herein are provided "AS-IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED. Use the concepts, examples and information at your own risk. There may be errors and inaccuracies, that could be damaging to your devices. Proceed with caution, and although it is highly unlikely that accidents will happen because of following advice or procedures described in this document, the author does not take any responsibility for any damage claimed to be caused by doing so.

Design goals

My design goals are simple. The system should be:

This is reflected in the list of features.


The hardware features are:

Presently, the following features are implemented in software:

Provisions in the software have been made to later support the following additional features:

The software is pure C, and is currently unreleased as it's under rapid development.


To be completed

The hardware implementation reflects several constraints:

For the current prototype, the choice of THT with a limited number of SMT devices has been made for greater ease of assembly. The current device uses common components (which are easy and cheap to procure), with the exceptions of a specific high performance analog switch, a level-shifter IC for interfacing with the rPi's GPIOs, and a PIC microcontroller.


Here's a compact two-sided through-hole prototype layout that fits on 150 x 100 mm PCB.



rwchcd linux daemon

A daemon is being developped for controlling the device. It is entirely written in C. Most of the computation is done in integer arithmetics to reduce the load on the Raspberry Pi.

Daemon files

The daemon is currently unreleased but available from the following GIT repository. The code is abundantly commented. I would welcome anyone willing to help me in developping this software :)

The daemon documentation (automatically generated) is available here.

Picture of a completed unit

This prototype unit has 4 ("snubberless") Triac channels and 2 Relay channels implemented and is fitted in a custom-made clear acrylic case.

front back