I have finished documenting/cleaning the code for my Jaycar el-cheapo “Thermor/BIOS” branded wireless weather station receiver. The basis for the code comes from the Practical Arduino weather station receiver project.
In the end all it took was a week of analysing the RF signal from the weather station using my soundcard and wasting countless hours decoding the packets! And a little determination.
Receiving the signal is pretty straight forward – an RF receiver is connected to pin 8 of the arduino via a 1k resistor, and an LED via a 330ohm resistor to pin 6. See the Practical Arduino schematic for more info – it is essentially the same circuit, just minus the LED on pin 7.
You can also take a look at the ThermorWeatherRx Protoshield I soldered up after the recent SparkFun freeday.
I have uploaded the sketch to github: http://github.com/kayno/ThermorWeatherRx for anyone else to try. There is a small to-do list for me to complete, but that can happen later.
3:40 pm, February 5, 2010Mike /
“In the end all it took was a week of analysing the RF signal from the weather station using my soundcard and wasting countless hours decoding the packets! And a little determination.”
Can you post more on your tools and process for decoding the packets? There is a weather station (temperature only) on my bench that is resisting me. I’m interested in hearing about your toolset.
9:43 am, February 8, 2010kayno /
@Mike
Take a look at http://davehouston.net/learn.htm – it has a schematic that uses an RF receiver (eg sparkfun or jaycar) and two resistors as a voltage divider to connect to the line in on a soundcard.
When its connected you will hear static coming through the line in, and whenever data comes in it will make a *beeeep* sound (at least it did for me). I used audacity to record this beep, and by zooming in on the sound waves i could see the following pattern: http://twitpic.com/wmblf.
From there its a matter of working out what those pulses mean – some are long, some are short in width, which indicate 1s and 0s. See this example of this, but you will need to determine the ‘pattern’ of your device – capture the packet, record what is on the display of your weather station, and determine how they correlate.
Once you know the correlation, an arduino can be used to capture, decode and output the temperature!
i am happy to look at the packets you capture and help decode :)
11:40 pm, June 17, 2010Riley /
“In the end all it took was a week of analysing the RF signal from the weather station using my soundcard and wasting countless hours decoding the packets! And a little determination.”
Can you post more on your tools and process for decoding the packets? There is a weather station (temperature only) on my bench that is resisting me. I’m interested in hearing about your toolset.
6:34 am, October 26, 2010marty /
Mate any chance of a jaycar part number for te weather station
i wonder if there the same as the ones on ebay they look the same
4:24 pm, October 26, 2010kayno /
XC-0293 was the Jaycar cat number, I am pretty sure.
The model is “DG950R”
3:37 pm, November 1, 2010marty /
Cheers
see you on the seg page
3:57 am, March 1, 2011Dan /
xoscope for linux could have helped.
3:50 am, March 12, 2011Bill /
Kayno…noob question…I have uncommented the debug define, yet get nothing after the “ready to receive data…” line. Expected something, if only garbage.
My build is exactly as shown in Practical Arduino…1k resistor to D06, not 330. Is this a problem?
Thanks for any suggestions..
Bill
3:50 pm, March 13, 2011kayno /
Hi Bill
The resistor on the LEDs wont make and difference (apart from the brightness of the LED!).
What model is the weather station? I believe Jaycar may be selling a different model now.
Cheers
Kayne
11:31 am, March 20, 2011Bill /
Hi Kayne,
I’m trying to capture directly from 3 sensors, which currently feed a Radio Shack base unit Cat. #63-1030. This unit receives up to 3 sensors, differentiated by dip switches. The units appear identical to Oregon Scientific products. Two of my sensors are RS 63-1031, temp & humidity. My third sensor is Ore Sci THC268, temp only, which works fine with the base unit.
To determine if I was actually receiving the RF, I ran a packet sniffer,
http://www.eightlines.com/blog/2009/06/arduino-packet-analyzer/
which captured output from all 3 sensors. Unfortunately, I really don’t know what to do with that data yet. I also ran my receiver through my sound card, and was able to clearly see the data streams every 40 seconds or so.
Back to the sketch:
I’m not getting “if(weather_rx_state == RX_STATE_PACKET_RECEIVED) ” to be true.
So, I’m having fun, but not making much progress…if I ever get the sketch to recognize the start of the data, then I can worry about decoding it.
I’m going to keep modifying your sketch by adding debug statements until I figure out where the problem lies.
I’ll let you know when I’m successful!
Bill
11:53 pm, May 16, 2011George Catlin /
I am starting the same process with a single temperature sensor. I seem to have decoded some data from an Acu-Rite model 822RX and matching transmitter RNE822TX. Am now working to modify the Arduino code. Any interest in this from anybody?
3:11 am, November 18, 2011Al /
Just starting Arduino. Xbee radios are on order. I have tons of wx eqpt (Davis, Vaisala, RM Young, Peet, etc). I wish to decode the data stream from an Acu-Rite #VN1TXC Integrated Multi-Sensor 5-IN-1. The LaCrosse sensors as described in Practical Arduino book are obsolete. The TX4U is also obsolete. I can see the data stream on my DSO using the Acu-Rite 01010-RX display receiver board.
Thanks, Al