I've ventured in building an OpenTherm (OT) master controller, aka Thermostat.
Online I found plenty of diagrams (one and two) that roughly are all the same. The foundation of them is fine.
Someone invented this like in 2012 or even before and everybody has been replicating it,
sometimes introducing bad ideas, sometimes good ideas but never nailing it.
Bottom line, find below an improved Opentherm design.
EDIT: see post #5 below why the idle state issue is not an issue
It solves the following issues these bad designs have:
- The specification states in 3.2.2.1 that there is an IDLE state, which is a wire voltage below 7V.
However, the bad designs have an idle voltage of 17V, a HIGH
This actually means that if your microcontroller freezes or has no power, your boiler will heat forever!
- The transition sensitivity is terrible if R5 is too low. You'd like a steep transition.
With the addition of one NPN (Q2) and one resistor (R6) and making D4 a 3V9 instead of 4V3 the idle issue is solved.
With the change of R5 to 4k7ohm we have a transition range of just 1.5V
The LTspice output shows the diagram where I have created two inputs
- a wire current source that ramps from zero to 23mA in 23 seconds, to show the transition for input
- a voltage pulse every second that shows the wire voltage based on a high or low (or dead) master input.
When applying this, do not forget to invert in hardware or software to send the right bits ;-)
My question:
- Review if this makes sense.
- Post wherever you have accounts to refer to this design and prevent overheated houses in the odd chance of bad luck.

Online I found plenty of diagrams (one and two) that roughly are all the same. The foundation of them is fine.
Someone invented this like in 2012 or even before and everybody has been replicating it,
sometimes introducing bad ideas, sometimes good ideas but never nailing it.
Bottom line, find below an improved Opentherm design.
EDIT: see post #5 below why the idle state issue is not an issue
It solves the following issues these bad designs have:
- The specification states in 3.2.2.1 that there is an IDLE state, which is a wire voltage below 7V.
However, the bad designs have an idle voltage of 17V, a HIGH
This actually means that if your microcontroller freezes or has no power, your boiler will heat forever!
- The transition sensitivity is terrible if R5 is too low. You'd like a steep transition.
With the addition of one NPN (Q2) and one resistor (R6) and making D4 a 3V9 instead of 4V3 the idle issue is solved.
With the change of R5 to 4k7ohm we have a transition range of just 1.5V
The LTspice output shows the diagram where I have created two inputs
- a wire current source that ramps from zero to 23mA in 23 seconds, to show the transition for input
- a voltage pulse every second that shows the wire voltage based on a high or low (or dead) master input.
When applying this, do not forget to invert in hardware or software to send the right bits ;-)
My question:
- Review if this makes sense.
- Post wherever you have accounts to refer to this design and prevent overheated houses in the odd chance of bad luck.

Attachments
-
6.7 KB Views: 9
Last edited: