Friday, September 30, 2011

Opentherm JeeNode shield PCB

Progress has been slow, but steady, in the opentherm front!

As I mentioned before, JCS is helping me out with the PCB part, and he has produced a nice PCB in the form of a shield for a JeeNode, which should be able to connect to the boiler! I leave to him to explain how he does his magic...

I have drilled the holes today, big victory for me, and now I just have to populate the board, cut it to the proper size, and develop the software.

I also still need to properly dimension the resistor at the detector optocoupler before I solder the whole thing on the PCB.

In the picture some resistors are still missing, but I just wanted to make this public! The designs and software will come soon!

i just realised that I should have included a couple of LEDs on the board to display status, but it can still be added in a later revision :)

Saturday, September 17, 2011

OpenTherm code repository

Times are changing, but it all stays the same...

I used to use some local version configuration tool, a long time ago, when I did software for real...then I stopped, and had all the troubles associated to the lack of one. Now, and only so that you all can enjoy, and hopefully help out with, the code I made for the OpenTherm thing, I decided to get an account at GitHub - seems to be the place to be - at host my code there!

So there it is, and you can find it at:

It is all still experimental, and not very well documented. The decoder is heavily based on the work by the palebluedot website owner. Thanks!!!

Friday, September 16, 2011

OpenTherm Circuit diagram

Here is a nice circuit diagram, made by JCS (from Coffee, Bits and Bikes), who is helping me with it.

The value of R2, which is indicated as 470 Ohm, is not yet final, as I still have to do some tests. The problem is the CTR of the optocoupler, which can be quite high, and so I will have to define the resistor such as to cause the transition in the proper place.
Next posts will be the code! so stay tuned!

Tuesday, September 13, 2011

More OpenTherm

Back from holidays! and with good news - I managed to communicate with the boiler using OpenTherm!

If you remember, the last time I managed to communicate, however, the boiler was not doing what I was telling it to do, namely, to heat up the central heating water to 35 degrees, instead, it was displaying an error state, and not a very informative one, in the small display.

Here is a picture showing the oscilloscope trace, where both the master to slave and slave to master burst messages are visible.

Since I had not implemented a decoder for OpenTherm, to analyse the reply from the boiler, I could not know what the boiler was complaining about. So I came up with a solution: I installed the OpenTherm arduino decoder found in the palebluedot site, and commented my emitter directly to the arduino with the decoder. As expected, the message was going with an data error. After finding a couple of bugs in my manchester encoder, I managed to get a correct message across.

Time to send the message to the boiler.

Another trip to the attic, and the boiler received the message, but didn't start heating up, but also no longer went into the error state. A careful read of the protocol, and I realised that I was disabling the CH when sending the message with ID=0. At the end of page 24, one can read that the "CHenable bit has priority over the Control Setpoint". So, another change to the message, another trip to the attic, and success!! The boiler started up, heating up the central heating water to the set temperature of 35 degrees!!

Next step is to implement the decoder in the same JeeNode, and the make a little PCB shield. After that, it is a matter of software, both in the JeeNode and in the server, to implement the communication layers, and of course, the much awaited and though of PID controller!