Potential interface issue

This Forum is about the Opentherm gateway (OTGW) from Schelte

Moderator: hvxl

Post Reply
wintersteiger
Starting Member
Starting Member
Posts: 7
Joined: Mon May 01, 2023 1:14 pm

Potential interface issue

Post by wintersteiger »

I'm running different MCUs than OTGW, but with the same type of inverted-master interface (Ihor Melnyk's). Since I'm developing new code, it sometimes happens that my MCUs crash. When that happens, the output pin seems to go low, and due to the inverted nature of the interface, it means that the OT bus is driven high and my boiler reacts with firing every ~10 seconds for just a few seconds.

I conjecture that this is due to the short-circuit test feature of the boiler (OpenTherm 2.2, Sec 3.5). The only simple solution to this I can think of, is to add a very weak (high resistance) pull-up resistor to the corresponding pin (OK1A, pin 1 in the OTWG schematics), but that feels very wrong. Can anyone think of a better solution than that?
hvxl
Senior Member
Senior Member
Posts: 1965
Joined: Sat Jun 05, 2010 11:59 am
Contact:

Re: Potential interface issue

Post by hvxl »

So, you're using some inferior rip-off of the OTGW that introduces a problem. And then you come to the forum for the genuine device to ask for help. Obviously I suggest to use the one and only real OTGW, not some fake. :-D

You have things the wrong way around. The short-circuit feature of a boiler may kick in when the Opentherm line is low for longer than 5 seconds. Due to the inverted nature of the interface, that happens when the output pin is driven high. Normally I/O pins default to input. But even an input with an internal weak pull-up won't cause the opto-coupler to turn on. That requires more current. In other words, the I/O pin must actually be an output that is at a high logical level. As that is exactly the same as when the Opentherm line is supposed to be driven low when transmitting a message, I don't see an easy way to detect in hardware that the MCU crashed. You would need something like a retriggerable monostable multivibrator that intervenes when the output is high for more than a couple of seconds. A weak pull-up (or pull-down) resistor on OK1 pin 1 won't make any significant difference.

As you indicated, the problem happens during development of new code. You could use another OTGW to act as a boiler in your development setup. That way you won't unnecessarily burn gas and cause wear on your boiler when there's a bug in your code.
Schelte
wintersteiger
Starting Member
Starting Member
Posts: 7
Joined: Mon May 01, 2023 1:14 pm

Re: Potential interface issue

Post by wintersteiger »

Yes, my question was about the principle, not about this one particular rip-off :-)

You're completely right, I mis-remembered the standard. It needs to be low, i.e. the inverted input would have to be high for 5 sec. I'll have to take some measurements, perhaps my output does go indeed go/stay high.

In theory this could be detected by another watchdog-like MCU (I guess even just a counter that triggers the reset line on overflow would be enough). But, that would complicate the interface quite a bit.

And yes, of course I simulate a boiler for development, but the simulation is much simpler than my actual boiler!
Post Reply

Return to “Opentherm Gateway Forum”