Saturday, November 26, 2011

On the way to a finished project

An enclosure is also important! and now that the OpenTherm interface is working, all the software is written, and I just put it to work less than an hour ago (lets see how that goes...), I also went searching for a box.

I went to my trusted shop, probably one of the last in Holland to sell components offline, it is the last one for at least 40Km around...probably more...and found some boxes from Hammond Manufacturing.

These are great, as they have card guides and can fit a Jeenode precisely!! here are some photos:


1591MSBK
1591LSBK

The low one, one has to cut the flange of the lid to be able to close it (and maybe grind a bit of the sides of the JeeNode), the higher one, which I will be using just fits it all with no problems!!

Here is also a graphic of the gas usage with the first hour with the OpenTherm:


before I always about 4 blocks of burning, as a saw tooth -  burning level increasing slowly, from 0.01 to 0.05m3 per minute in 4 to 5 minutes...maybe I'll try to get one of those images for comparison.


And a bit of the radio transactions already digested:

seq: sequence
set: set temperature received from server
out: temperature of the water leavng the boiler
ret: temperature of the water returning to the boiler
status: status of the boiler

seq       set   out   ret  status
3483    38    42    37    10    @    Sat Nov 26 16:04:19 2011
3523    38    42    38    10    @    Sat Nov 26 16:04:59 2011
3563    38    43    38    2    @    Sat Nov 26 16:05:40 2011
3603    38    39    38    0    @    Sat Nov 26 16:06:20 2011
3643    38    38    38    0    @    Sat Nov 26 16:07:00 2011
3683    38    38    38    0    @    Sat Nov 26 16:07:40 2011
3723    38    38    37    0    @    Sat Nov 26 16:08:20 2011

apparently, the boiler allows an overshoot, or tries to control the water such that the return temperature is controlled...still need to investigate this further...

Wednesday, November 16, 2011

OpenTherm interface ready!

If you have been following this, you know I have been busy getting a JeeNode (arduino compatible) to talk to the boiler suing the OpenTherm protocol.

I am glad to report that the circuit, which you can find here works fine, and the code available in github, is also functional! Sometimes it hangs when first connecting to the boiler, but a reset of the JeeNode solves the problem. Will try to investigate (I have some ideas)

Today I was busy finalising some details, and implementing communication with the server to get the set temperature. All is ready, except one little linking piece of software: the listener that listens to messages coming from the JeeLink has to now accept messages via the serial, which are sent by the module that calculates the set temperature. Maybe for the next post I make a diagram of the software layers involved.


Anyway, here is a picture of the little thing!

The little icons represent: radio link, OpenTherm link, flame, Central Heating, and Hot Water. T1 is the outgoing temperature, T2 is the return temperature, Ts is the set temperature, under the reported set temperature, and to the right of the Ts the received from the radio (for debug...will delete that). The 5 is just a number that changes once a cycle, and serves as an indication that the whole thing is still working.

You can see the yellow antenna, and the home made PCB, the one with the blue connector block.


I will get a PCB done externally, to learn how to do that (although Joao is taking care of that), and then get the whole thing in a nice enclosure.

The next hardware version will be to get the thing powered from the OpenTherm bus, which should be possible, as it provides 5mA for the master to operate. That should be enough, given that the radio only transmits once a minute!

Tuesday, October 18, 2011

New Dashboard

Progress of the OpenTherm interface is going very well! but that is not what I am here to report today. Today it is just a short post to share the prototype of the new design of my dashboard. My wife made the design, and I implemented the functionality. Still some rough edges to adjust. Here is a snapshot:



All information gets updated regularly via HTML5 and AJAX calls. Half of it is already working even, but there is still some to get done. I'll share the code once it is ready!

By the weekend I should report on the Opentherm!

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:

https://github.com/amvv/ArduinoOpenTherm

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!