Decoding bytes from Tower wireless thermostat

I've been using an Arduino Nano with an RFM12B chip to communicate with an Arduino Pro Mini that collects temperature and humidity readings in the loft.

The base unit (Arduino Nano) is running a customised version of the jee labs RFM12Demo sketch (see » RFM12B library for Arduino » JeeLabs) to receive data from the remote node and write it over Serial/USB to a small server PC for logging.

I decided to disable quiet mode in the demo sketch, which causes any random packets which are received that aren't valid jee labs packets, to be written out to serial as well. After collecting these random packets for a few days I've now been trying to decode them to work out a) what nearby 434mhz device they're coming from, and b) exactly what the data shows.

I do have a Tower Wireless Thermostat which is one of the most likely candidates, but it could be something else I haven't thought of or something running in a neighbour's house.

Can anyone help me decode the bit patterns I'm seeing? I've included timestamps of when the data is received, but bear in mind that if a timestamp is included in the data it might be out of sync. The clock on my wireless thermostat for example is a good 10 minutes ahead. Below are some examples of the data and I've put more at the URL link below to save posting too much to the forum. It could of course be garbage bytes, especially if it's being sent at a different baud rate to the receiving RFM12 chip, but the repeating 00100000 patterns and the fact that every data burst ends with 00001010 seems to suggest that it's genuine data.

(Bigger data set available here -> http://www.matthew1001.webspace.virginmedia.com/samplebytes.txt)

[Bytes received: Mon Apr 15 16:23:30 2013
10101000 00100000 11010000 00100000 10001001 00100000 00100101 00100000
00001110 00100000 10110011 00100000 01110000 00100000 00110000 00100000
00111000 00100000 00011110 00100000 11000111 00100000 10101000 00100000
10111100 00100000 00001010 ]

[Bytes received: Mon Apr 15 16:27:47 2013
00010001 00100000 00101000 00100000 10010001 00100000 11100010 00100000
10111000 00100000 00101101 00100000 00101100 00100000 00010101 00100000
01111010 00100000 01111011 00100000 10010001 00100000 01111000 00100000
00111101 00100000 10100000 00100000 11001000 00100000 00100010 00100000
01000001 00100000 11101000 00100000 11100101 00100000 11011100 00100000
11011101 00100000 00101011 00100000 10000001 00100000 01111111 00100000
00111001 00100000 10001011 00100000 01000011 00100000 10000010 00100000
10010001 00100000 00000000 00100000 00111111 00100000 00001100 00100000
11100110 00100000 01100100 00100000 00111110 00100000 00101100 00100000
10101110 00100000 10111110 00100000 01011001 00100000 00101111 00100000
11101101 00100000 10110000 00100000 01000111 00100000 11011111 00100000
01001000 00100000 00011000 00100000 11011101 00100000 11111011 00100000
01000001 00100000 11011111 00100000 11110000 00100000 01111100 00100000
01000111 00100000 11100011 00100000 11111001 00100000 10010100 00100000
11110001 00100000 00000111 00100000 10011101 00100000 11010000 00100000
00001101 00001010 ]

[Bytes received: Mon Apr 15 19:27:23 2013
11101110 00100000 01000000 00100000 01111000 00100000 01001011 00100000
00001000 00100000 10111101 00100000 11111110 00100000 01110010 00100000
10010001 00100000 00101011 00100000 10010001 00100000 00110110 00100000
11011100 00100000 01110111 00100000 11100100 00100000 10100101 00100000
10010001 00100000 00111100 00100000 11111000 00100000 11001000 00100000
01000000 00100000 01001100 00100000 01111010 00100000 00110111 00100000
00001111 00100000 00001011 00100000 00000010 00100000 00000011 00100000
11111110 00100000 01001111 00100000 11011110 00100000 00010011 00100000
10001011 00100000 01011110 00100000 10111111 00100000 10011110 00100000
00111001 00100000 10001010 00100000 10001010 00100000 00111110 00100000
00011101 00100000 01001000 00100000 11111111 00100000 10100001 00100000
11011011 00100000 10010000 00100000 01001111 00100000 10001111 00100000
01011010 00100000 10110011 00100000 10100000 00100000 10110100 00100000
11011101 00100000 01011101 00100000 01111100 00100000 11100010 00100000
00000011 00100000 01101110 00100000 00011111 00100000 10110111 00100000
00001101 00001010 ]

[Bytes received: Tue Apr 16 09:19:51 2013
11110011 00100000 10111001 00100000 00010111 00100000 01111101 00100000
11000101 00100000 11000011 00100000 10010101 00100000 01110010 00100000
11000000 00100000 01110010 00100000 00010000 00100000 00010111 00100000
10101110 00100000 10111011 00100000 00110000 00100000 10000000 00100000
01101110 00100000 11110100 00100000 01000110 00100000 11101110 00100000
11100000 00100000 00001001 00100000 10100101 00100000 01110101 00100000
10111000 00100000 11001100 00100000 01011010 00100000 01001000 00100000
10110011 00100000 01111010 00100000 00001100 00100000 10100111 00100000
10000110 00100000 00111001 00100000 00000110 00100000 01000111 00100000
01010110 00100000 10111100 00100000 00101011 00100000 01010111 00100000
01011110 00100000 00001110 00100000 10100010 00100000 11110001 00100000
11010100 00100000 01000000 00100000 01100001 00100000 00011101 00100000
11001010 00100000 01111110 00100000 11111011 00100000 10011111 00100000
01110011 00100000 11000000 00100000 01100001 00100000 10011011 00100000
00101011 00100000 10011111 00100000 00011001 00100000 11100011 00100000
00001101 00001010 ]

[Bytes received: Tue Apr 16 09:21:24 2013
01001110 00100000 01100100 00100000 00110000 00100000 00110010 00100000
00100000 00100000 00110011 00100000 00100000 00100000 00110100 00100000
00111000 00100000 00100000 00100000 00111001 00100000 00100000 00100000
00110011 00100000 00110011 00100000 00001101 00001010 ]

Any help is much appreciated!

I suggest that these may be ASCII characters, as the last 3 numbers in most blocks represent space, carriage return and line feed. Alternate characters are 20h (space). I'll leave you to check the rest.... :smiley:

That's a good spot, yeah they could be ascii characters although having printed some of the messages as chars rather than bit strings there's no obvious message present in them.

I think I need to check if the RFM12 demo sketch is adding any bytes in the middle/at the end of the packets. It seems slightly wasteful to send so many superfluous characters in a transmitted message, especially if the device is running on a battery.

I'll keep investigating...

Thanks for the help!

Have you tried removing the battery from the thermostat to see if that stops the messages?
That will, at least, confirm the source.
You may have to put your central heating on override, if the weather's cold.