Electronic – arduino – Simplifying this circuit using optotriacs

arduinocircuit-designopto-isolatorrectifier

I'm currently trying to create an interface between my Arduino-compatible (NodeMCU) and my OpenTherm boiler. OpenTherm is a protocol used by some boilers (mainly in Europe) which allows for the control of boiler temperature and other things like the boiler state; this is usually done by a stand-alone OpenTherm-compatible thermostat wired into the boiler. The protocol allows you to send and receive information from the boiler. However, the protocol operates on AC, and at a much higher voltage than an Arduino, thus, an OpenTherm to TTL levels adapter is needed

I've found myself upon this tutorial which seems to be the only one available relating exactly to what I am trying to accomplish. The writer of the article has made an Arduino Library which allows for the Arduino to communicate directly with OpenTherm via this circuit:

enter image description here

X1 & X2 are the Opentherm wires (doesn't matter which); the IN and OUT go directly into the Arduino's GPIOs. Finally, the VCC goes to Arduino 3.3 or 5v and the GND to Arduino ground.

Whilst the circuit does function perfectly, I felt that this was slightly overcomplicated as it involved numerous different components like multiple diodes. This would require the purchasing of a wide range of components which is not desired. As a result, I did some more digging and found myself upon this question on the forum. Whilst the question is not the same as mine, the top answer notes that:

• any of these parts will the same or better job.

What was linked was optotriacs. The answer also states that:

That circuit provides a DC current shunt to an AC rectified source and series load from a 24Vac furnace transformer. All it has to drive is a logic driver to activate the furnace, the same way a reed relay might work.

Now, whilst it does seem that the original poster of the question asked for more clarity on how exactly the optotriacs could be used in this situation, I feel the person answering does not give a sufficient enough answer for the skill level of the person asking.

Similarly, I am not super skilled with electronics and found the explanation of the proposed solution rather lacking. As a result, I am asking this question.

My question is: How can the above circuit be replaced with a simpler solution? Is all that circuitry required to allow the communication from 5v DC to 24v AC and back? The answer linked above mentions optotriacs, how could they be used in this situation to simplify the circuit?

Best, John

P.S. The NodeMCUs logic voltage is 3.3V

Best Answer

The short answer is NO.

The circuit you post is already quite simple and clever for what it does. The "optotriacs" suggestion you saw was probably a misunderstanding on how this circuit operates, which was already described in this site.

In OpenTherm/plus communication, the master (e.g. a thermostat) sends data to a slave (e.g. a boiler) by "pulling down" the bus voltage. The slave answers back by changing the bus current. The voltages need to be between specified limits; hence the specific zener diodes.

enter image description here

The diode bridge (4 x 1N4148 diodes) is not absolutely necessary if you know the polarity of the slave, but the OpenTherm specification mandates that X1 and X2 could be swapped, for convenience.

The opto-isolators could also be removed from the circuit, however, you will be connecting systems with different power supplies that do not share a common ground; it is safer to maintain these circuits isolated.

I have seen other OpenTherm interfaces with less components, but they certainly would not be compliant with the OpenTherm spec. A few cheap components will save you from lots of headaches, especially if you do not have an oscilloscope to figure out what does not work. I have also seen other more complicated ones, using op-amps. Or this one using comparators. The one you picked is the design used by the popular OTGW project, it is proven and I recommend that you stick with it.