Bronberg Weather Station
Pretoria
South Africa

11°C
Bashewa, Pretoria, South Africa
Language: en gb za dk nl fi fr de gr it no pl pt es se
 

WMR200 PROTOCOL

Version 3.0



Intro Notes C# Code
Snippet
History
[D2]
Wind
[D3]
Rain
[D4]
UVI
[D5]
Baro
[D6]
Temp/Hum
[D7]
Status
[D9]
Introduction
==============================================================================================
                                 WMR200 Data Protocol v3.0
                   Oregon Scientific WMR200 Weather Station USB Protocol

                   Compiled by: Rainer Finkeldeh .... rainer@bashewa.com
                   Please email me the corrections or additions. Thanks.
==============================================================================================

Oregon Scientific Weather Stations HID ID:

Vendor  Id: 0fde
Product Id: ca01


PC FRAMES:
Commands to be issued to the WMR200 Console i.e. by the PC to the Console.

NOTE:
o There does not seem to be a way to only request historic data from the WMR200's data logger.
o If the console has historic data available after issuing a [D0] command, it will respond by
  sending a [D1] packet otherwise it'll start sending live data.
o If you don't receive any data within 30 seconds then you should issue a [D0] frame again.
o If you don't acknowledge historic data packets with [DA] that you have received the WMR200
  console will stop sending them.
o If you don't send a heartbeat [D0] frame periodically the WMR200 stops pumping live data
  after 30 seconds, and then goes into history logging mode.
o Normally the WMR200 sends data for most of the sensors within 30 seconds after a [D0] data
  retrieval request.
o For historic data retrieval you need to send a [D0] on startup and then wait for a [D1].
  This you need to ACK with a [DA] to trigger [D2] history record retrieval.
o If you are not interested in historic data retrieval then only issue a [D0] frame at startup,
  don't ACK the [D1]'s and perhaps send a [DB] command to clear the data logger.

D0 .. Heartbeat to Console ........ Console starts streaming [d3 - d9] records for 30 seconds.
                                    This is a heartbeat to let the console know that your
                                    application is still active. You should implement a timer
                                    that pumps out [D0] frames on 30 second intervals. If the
                                    WMR console does not receive a heartbeat from your
                                    application within 30 seconds it will switch to data
                                    logging mode.
DA .. Request historic data ....... This should be sent in response to [D1] and [D2] packets.
                                    It triggers the retrieval of the next historic data record.
DB .. Erase WMR200 data logger .... Clears the historic data from WMR200's data logger memory
                                    and when done the console will respond with a [DB].
DF .. Stop communication .......... Stops communication between PC and WMR200 Console and puts
                                    the WMR200 into data logging mode. The console responds
                                    with a [DF] in return if the command has been honoured.

NOTE: USB frames are made up of 9 bytes where the second byte indicates the length of the
      command within the frame. Unused bytes in the frame should be padded with [00]'s. For
      instance to issue a [D0] command you would send [00 01 D0 00 00 00 00 00 00] to the
      USB port.


CONSOLE FRAMES:
Packets received by the PC i.e. returned by the WMR200 Console in response to one of the above
commands.

D1 .. Historic Data Notification .. Normally received after the first [D0] command has been
                                    issued at startup if historic data is available in the
                                    WMR200's data logger. Should you encounter such a packet
                                    during normal execution then the data logger has gathered
                                    some historic data. In such a case immediatly respond with
                                    a [DA] command to retrieve the record.
D2 .. Historic Data ............... Issue [DA] immediately when received for the next historic
                                    data record retrieval.
D3 .. Wind Data ................... Delivered during hearbeat period.
D4 .. Rain Data ................... Delivered during hearbeat period.
D5 .. UVI Data .................... Delivered during hearbeat period.
D6 .. Pressure Data ............... Delivered during hearbeat period.
D7 .. Temperature/Humidity Data ... Delivered during hearbeat period.
D8 .. Spare ....................... Not in use or not known at this stage.
D9 .. Battery & Sensor Status ..... Delivered during hearbeat period.
DB .. Erase Acknowledgment ........ By the console that erase data logger [DB] command has
                                    been honoured.
DF .. Stop Acknowledgment ......... By the console that an issued stop communication [DF]
                                    command has been honoured.


NOTATION USED IN FORMULAS:
   byte(09)   .. byte number 9
   byte(09:H) .. byte number 9 high nibble
   byte(09:L) .. byte number 9 low  nibble
   [#0C] ....... hex number
   [0011] ...... bits within a byte


UOM CONVERSIONS:
   °C to °F: (tC * 1.8) + 32
   °F to °C: (tF - 32) / 1.8

   1 inch       = 25.4 mm
   1 millimeter = 0.0393700787 inch

   1 m/s = 2.23693629 mph
   1 m/s = 3.60000000 kph
   1 m/s = 1.94384449 kts