« Updating Adobe Reader | Main | Time travel »

La Crosse WS-3600 serial protocol

Sander and Grzegorz managed to understand how the La Crosse WS-36001 weather station communicates over its serial port. They launched the Open3600 project and have a program for Linux and Windows (with source code) that dumps the contents of the memory.

Hat tip to them, it looks like the protocol is quite unorthodox.

Open3600 – Serial communication with the La Crosse WS-3600 weather station

  • dump3600: a program that reads the memory of the WS-3600;
  • Available as source code and binary for Linux and Window. Compiles on Mac OS X 10.4 (but not tested yet);
  • Communicates over the serial port2;
  • Works without requiring the Heavy Weather program or its history.dat file;
  • They now need help with the investigation of the memory map.

1. a.k.a LaCrosse WS3600. 

2. Serial port, COM port, RS232 port, whatever. 

TrackBack

TrackBack URL for this entry: http://ithink.ch/blog/tb.cgi/132.

Make sure JavaScript is enabled before using this URL. If you would like to ping my blog but can't, please do send me an e-mail at os3476 at this domain.

Comments

I know this is a very old post, but I’ve been trying to compile that dump3600 under 10.4 and I can’t do it! Any tips?

What I had to do to build it on Mac OS X 10.4 is this:

  1. rename the wait function in test3600.c because it confilcts with a system function;

    Line 13: replace

    void wait ( int seconds )
    

    with

    void our_wait ( int seconds )
    

    Line 31: replace

    wait (1);
    

    with

    our_wait (1);
    
  2. not build mysql3600, because I don’t have MySQL installed;

    in Makefile, line 49, replace

    all: test3600 dump3600 history3600 histlog3600 fetch3600 log3600 mysql3600
    

    with

    all: test3600 dump3600 history3600 histlog3600 fetch3600 log3600
    

Just beware that I couldn’t make the WS-3600 on a Mac, because it officially doesn’t work with USB to Serial adapters. Some apparently work, but not mine (a Kensington). LaCrosse says you need a ‘real serial port,’ whatever that means. I can’t believe they dare sell such a hack.

Many thanks for your help. I’ve compiled it fine. Unfortunately I am getting the error: Unable to open serial device /dev/tty.PL2303-3B1 (I’ve also tried /dev/cu.PL2303-3B1 as the device) - that is, the USB-serial adaptor issue. I had hoped I was onto something, since I read somewhere that adaptors working on the PL2303 chipset (mine is) would work.

Oh well, I guess the only solution would be to find a ‘real’ serial port. Do you think a PCMCIA serial card would work? I’ve got no idea about the underlying serial stuff…

Anyway, thanks, at least I know that ‘wait’ is a C++ system function! ;-)

Cheers, Joe

ftdi usb-serial might work. At least the one I have does with a ws-8610 so probably would with open3600 and a ws-3600.

There is a possible bug in the open3600 linux3600.c --count to count-- for the comms timings, but this is all pretty messed up by lacrosse’s hardware implementation anyway.

have you ever heard something about Generic Viagra

Post a comment

Make sure JavaScript is enabled before posting a comment. If you would like to post a comment but can't, please do send me an e-mail at os3476 at this domain.

Do not meddle in the affairs of Coding Ninjas, for they are subtle and quick to anger.