Earth Notes: Open-Source Thermostatic Radiator Valve (OpenTRV)

Updated 2024-05-03 19:59 GMT.
By Damon Hart-Davis ORCID logo.
OpenTRV retrofit open-source reference mechanical/hardware/software design for zoned heating to save carbon and money. #OpenTRV #TRV #heating #cutCarbon
DORM1 wall scene
OpenTRV makes it easy to save lots of energy and carbon by only heating rooms that you are using, and by no longer trying to use a single thermostat to get your whole house comfortable. Radbot is a commercial OpenTRV-based product.

Heating accounts for around 60% of UK domestic energy use and 60% of people admit to heating unoccupied rooms. [p2 DECC 2012 2323, p33 DECC 2012 6918]

OpenTRV also allows a simple schedule to be set (no complex displays though!) and tries to anticipate when you'll need heating to improve comfort while boosting efficiency.

OpenTRV is designed to be simple to (retro-)fit to existing UK housing stock with radiator central heating.

Design Principles

Here are some key design principles behind OpenTRV:

Scratching That Itch

cover slide from presentation to DECC Oct 2012

Open source projects are said to work best when they really scratch an itch, ie fulfil a requirement or deal with an irritation, that nothing else works for.

As of the start of 2013 I had been trying to put together some electronic/programmable thermostatic radiator values/controls (TRV/PRC). The aim is to follow a temperature programme against time (chronostat), individually call for heat (ie fire up) the central heating boiler when not meeting targets, and that have an occupancy sensor that can drop the target temperature a couple of degrees when a room is (unexpectedly) not occupied (or at least has no active awake human in it).

Why? At the October 2012 DECC smart heating workshop that I presented at there was wide agreement that the ability to retrofit soft heating zones to existing radiator central heating systems would likely be a good thing with a lot of potential to save heating unoccupied spaces, and set appropriate heating levels in occupied areas too, with the potential for a lot of energy savings for little physical upheaval. That implies thermostats per heating zone, possibly even per room, controlling local TRVs to regulate temperature and able to bring on the boiler ("call for heat" or "boiler interlock" are common terms) if any zone needs heat to meet target. Modern building regs in England require at least two zones; this proposal is finer-grained.

OpenTRV prototype 20130220 V0p09 PICAXE 18M2 microcontroller DS18B20 temperature sensor DS1306 RTC RFM22B radio LDR USB powered on stripboard front closeup 11 DHD OpenTRV prototype 2 20130301 V0p09 PICAXE 18M2 microcontroller DS18B20 temperature sensor DS1306 RTC RFM22B radio LDR USB powered on stripboard complete in Maplin N10KH power supply case closeup 1 DHD

In any case, this seemed hard to do, especially the occupancy sensing, and even a couple of major well known manufacturers that I've been talking to that that offered to lend me kit to test or tell me their hardware protocols, have not yet managed to do so.

There seems to be little that operates satisfactorily with fully-open protocols (sometimes a subset of functionality is available, but not enough, or not reliably) so that, for example, I could couple the system with a home automation system or my server or whatever.

The primary aim of the OpenTRV project is to have an unencumbered open design from boiler to rad of which pieces can be substituted at will, eg if cheaper. Licensing is permissive so that existing manufacturers can use our designs, and also so that "makers"/DIYers can use the tech easily.

And all of this is to try to make it easy and cheap and pleasant for everyone to save carbon emissions from heating: I think most people in the UK could halve theirs without hardship, and the UK has crappy housing stock and will for many years to come.

As of autumn 2013 we had working PICAXE and Arduino/AVR implementations, with REV1 and REV2 boxed instances of the AVR solutions deployed in multiple households for testing over winter 2013--2014.

News and Project Updates

See also the OpenTRV project update archive.

Basic Operation (V0.09, V0.1, V0.2, V1.x)

REV1 with battery backpack OpenTRV REV2 with BRB Big Red Button whip antenna battery backpack and top slot for FTDI plug 20190421 2 DHD

The V0.2 design (as the V0.09 design also) works as follows:

Key versions from the V0p2 codebase were:

The V1.x all-in-one design replaces the valve head, contains the controls and temperature sensor, and can transmit (securely) to the boiler controller and Internet gateway.

REV2 (V0p2) schematic
OpenTRV TRV1 containing REV7 20190421 7 DHD OpenTRV TRV1 containing REV7 20190421 2 DHD OpenTRV REV10 data relay with SIM900 GSM shield 20190421 8 DHD

See more OpenTRV hardware photos.


OpenTRV will work better if it can interoperate easily with other open and proprietary systems in the heating and monitoring area, eg Open Energy Monitor and various home-automation (HA) systems.

Non-Core Uses

OpenTRV was conceived for the typical UK combination of gas boiler plus radiators plus limited heating controls.

Bo H as of 2013-05 is using (PICAXE V0.1) OpenTRV to control his domestic hot water (DHW), and hopes to control his radiators too, that get their heat from the local district heating system, which is partly why he joined in with such gusto getting our first PCB layout together! (With the TRV slew rate turned right down, it seems to be working well for him at V0.1-operational tag with tweaks, saving ~33% but not keeping water hot pointlessly overnight.)

General Cheap/Open Sensor and IoT Platform

If we have this right then we can save people a lot of work redeveloping their own easy-to-program low-power reliable sensor platform.


This is an attempt to define some commonly-used terms in OpenTRV to avoid confusion: please send in corrections as needed!

A wiki superset is also available.

(TRV) valve (base/body)
Plumbed into a radiator's flow or return pipework to allow automatic regulation of flow of water through the radiator and thus heat into the room. For UK installations the control pin is typically vertical. See two freestanding valve bases.
(TRV) valve head
Part that screws on to (usually vertical in UK) TRV valve base to drive the pin and regulate the flow of water and thus heat. In this simplest case this is a purely mechanical component using a wax that expands/contracts in response to room air temperature to regulate room temperature. This part can be replaced by the end user, eg with a wireless radiator valve to make a 'smarter' zoned heating system. See two valve heads.


OpenTRV and associated/halo projects are all about interoperability and to that end we will use or create 'standards' where necessary.


From REV1 of the V0.2 OpenTRV PCB (and REV0 of DD1), we have settled on a main PCB size of 50mm by 50mm with 3mm (M3) mounting holes inset 1mm from each edge at the corners. Standard PCB thickness is 1.6mm. This is in part at least to enable a standard box/enclosure design to be adopted across all units. See for example this from the SVN repository.


All OpenTRV software and hardware designs are licensed permissively, specifically to encourage manufacturers to incorporate elements they find useful to encourage wide adoption, along with research and hobby/DIY use.

As of March 2013 everything was covered by an Apache 2.0 licence. All new hardware design elements thereafter will be under the Solderpad licence which better addresses some of the non-code IP issues. Note that Solderpad-licenced elements can be treated as if licensed under Apache 2.0 if preferred, as the latter is OSI approved.

DHD2013-04-17: broad licensing policy after discussion with Andrew Katz, a lawyer involved with the creation of the Solderpad (0.51) licence, a variant of Apache 2.0 that deals with some of the legal/IP issues beyond copyright and patents that Apache addresses:

  • All code (including the generation scripts for 3D shapes): Apache licence.
  • Schematics: Solderpad licence (eg paste the text into the schematic like we already have with V0.09 and the Apache licence).
  • PCB: Solderpad licence by putting short text eg "Solderpad licence [URL]" linking to the licence text on the PCB legend.
  • Generated 3D files (ie output of scripts): disclaim rights, eg add something to the output to the effect we believe we retain no rights in this, but you may choose to regard this as licensed under Solderpad/Apache if you wish.


(Count: 2)

~3985 words.