Arduino + Weather Shield Receiver working with Lacrosse WS3600

Downloadable files to run your Weather Shield on your Freetronics Arduino Uno.

Code that will run on your Mac, under XCode, or if you like, compile under GCC

Including an ad-on board and instructions for the Adafruit BMP180 Barometric/Temp/Altitude sensor. (5volt)

[ddownload id=”121″] newport – XCode project for a command line data logging tool.

[ddownload id=”126″] weather.c – command line data logging too, same as above, for GCC etc

[ddownload id=”129″] Weather2 – Arduino+Weather Receiver Sketch for WS3600

[ddownload id=”145″] PDF File. Tells you how it works…Decoding Lacrosse Weather Sensor RF Transmissions by Simon Ratcliffe. (Legend)

[ddownload id="155"] Updated weather.c, now includes Pressure, Altitude and Indoor Temp.

The new output looks like this: (Note: I am actually at Sea Level, so the second last number is 0.00. Indoor temp is actually 20.8, and the third last number is the hPa, 1008.03

80,31,31,18.6,55,1032,NNE,3.3,WNW,1.6,1008.03,0.00,20.8

NOTE: Further mod to weather.c Replacing in the altitude bit, the uint32-t with double. (Maybe could be float?)
No no no …. The BMP180 Datasheet specifies everything as either ‘short, long, or unsigned long, and the calculations use mod, the the data types must be int16_t, int32_t, uint32_t or it won’t work correctly


void Packet_Converter_WS3600(void)
{
	uint8_t b;
	uint8_t c;
	uint16_t si;
#ifdef PRESSURE
	uint32_t up;
	uint32_t p;
       	
	uint32_t ut;
	uint32_t t;
#endif

The output of the Arduino is like this. At the moment, it is producing a – in the rain slot, when it’s not raining. I may remove this? Every fifth output it produces the rain totals, in seesaw tips per rain session. If it’s not raining, then every fifth slot it shows the total, other wise it updates it if it is raining. It produces a line every 30 seconds. That’s how often the LaCrosse transmitter sends the data.

Many thanks to Simon Ratliffe for the Sketch code. Brilliant work, as well as the work he has done on detailing the actual signal from the WS3600 transmitter. That’s available elsewhere on this site. I may lump it all together and put it here on this page as well.

80,27,27,20.6,59,-,WSW,51.0,SSE,0.3
80,31,31,20.7,59,1018,WSW,51.0,NNE,0.2
80,27,27,20.6,58,-,WSW,51.0,SSW,0.0
80,27,27,20.6,58,-,WSW,51.0,SSW,0.8
80,27,27,20.6,59,-,WSW,51.0,N  ,1.3
80,27,27,20.5,60,-,WSW,51.0,WSW,0.2
80,31,31,20.8,59,1018,WSW,51.0,NW ,1.7
80,27,27,20.6,56,-,WSW,51.0,WNW,2.0
80,27,27,20.5,56,-,WSW,51.0,WSW,0.8

If you are going to add the BMP180 Air Pressure sensor, you need to be careful. The Sparkfun one is 3.3 volts, and the Adafruit one is 5v. The Freetronics Arduino and Shield are 5v. Check your voltages. They are NOT compatible.

https://learn.adafruit.com/bmp085/downloads

One Reply to “Arduino + Weather Shield Receiver working with Lacrosse WS3600”

  1. If anyone gets the Altitude part working … please let me know. I can’t … something happened and now all I get is 65530.65530 as the altitude …. oh dear!

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA * Time limit is exhausted. Please reload CAPTCHA.