WMR918 PCLINK protocol (Version 0.2 with 600mb barometer supported)

1. Serial data is sent in 9600 bps from Main unit to PC through RS232  
2. For the PC to receive the data from WMR918, the 'Request to send'
pin of the PC must be setted to request data, otherwise no data will be sent.
3. When WMR918 is going to send the data, it will send a header 'FFFF' first, then follow by the code of the type of data
4. At the end of data, WMR918 will send the checksum of the data
5. WMR918 will send data to the PC when new data is received.
6. WMR918 will send the 'Minute' data to the PC every minute to ensure connection is OK.
7. WMR918 will send the clock data every 1 hour or when new RF clock time is being received
8. WMR918 will not send the data continously to the PC, it will send the data byte by byte. (ie. If there is other task for WM918 to complete such as to receive sensor data, WMR918 will go to receive the data first, then resume the sending of PC data).

Data Data Type
Wind Rain TH Mushroom T BTH Minute Clock EXTBTH
 Header 1       Bit 0 1 1 1 1 1 1 1 1 1
Bit 1 1 1 1 1 1 1 1 1 1
Bit 2 1 1 1 1 1 1 1 1 1
Bit 3 1 1 1 1 1 1 1 1 1
Bit 4 1 1 1 1 1 1 1 1 1
Bit 5 1 1 1 1 1 1 1 1 1
Bit 6 1 1 1 1 1 1 1 1 1
Bit 7 1 1 1 1 1 1 1 1 1
 Header 2       Bit 0 1 1 1 1 1 1 1 1 1
Bit 1 1 1 1 1 1 1 1 1 1
Bit 2 1 1 1 1 1 1 1 1 1
Bit 3 1 1 1 1 1 1 1 1 1
Bit 4 1 1 1 1 1 1 1 1 1
Bit 5 1 1 1 1 1 1 1 1 1
Bit 6 1 1 1 1 1 1 1 1 1
Bit 7 1 1 1 1 1 1 1 1 1
 3rd Byte
(Device type)
Bit 0 0000000
wind
00000001 
rain
00000010
thermo
hygro
00000011
mushroom
00000100
thermo
only
00000101
thermo
hygrobaro
00001110
Minute
00001111
Clock
00000110
thermo
hygrobaro
Bit 1
Bit 2
Bit 3
Bit 4
Bit 5
Bit 6
Bit 7
 4th Byte      Bit 0 -- -- Channel
number
 --   Channel
number
-- Date1 digit
minute
Date1 digit
minute
--
Bit 1
Bit 2
Bit 3
Bit 4 Gust over Rate over Dew under Dew under -- Dew under Date10
digit
minute
Date10
digit
minute
Dew under
Bit 5 Avgerage over Total over -- -- -- --
Bit 6 Low batt. Low batt. Low batt. Low batt. Low batt. Low batt. Low batt.
Bit 7 -- Yesterday over -- -- -- -- Batt. Low Batt. Low --
 5thByte      Bit 0 Winddirection1° digit CurrentRain
Rate1 digit
in mm/hr
 Temp0.1°Cdigit  Temp0.1°Cdigit  Temp0.1°Cdigit  Temp0.1°Cdigit    Check-sum     Date1 digithour  Temp0.1°Cdigit
Bit 1
Bit 2
Bit 3
Bit 4 Winddirection10° digit CurrentRain
Rate10 digit
in mm/hr
 Temp1°Cdigit  Temp1°Cdigit  Temp1°Cdigit  Temp1°Cdigit  Date10 digithour  Temp1°Cdigit
Bit 5
Bit 6
Bit 7
 6thByte      Bit 0 Winddirection100° digit CurrentRain Rate100 digitin mm/hr  Temp10°Cdigit  Temp10°Cdigit  Temp10°Cdigit  Temp10°Cdigit                                   Date1 digitDay  Temp10°Cdigit
Bit 1
Bit 2
Bit 3
Bit 4 GustWindSpeed0.1m/sec TotalRainfall0.1 digitin mm Temp100°C Temp100°C Temp100°C Temp100°C  Date10 digitDay Temp100°C
Bit 5
Bit 6 Over/Under Over/Under Over/Under Over/Under Over/Under
Bit 7 Sign Sign Sign Sign Sign
 7thByte      Bit 0 GustWindSpeed1 m/sec TotalRainfall1 digitin mm  Hum1% digit   Hum1% digit     Check-sum     Hum1% digit   Date1 digitMonth  Hum1% digit 
Bit 1
Bit 2
Bit 3
Bit 4 GustWindSpeed10 m/sec TotalRainfall10 digitin mm  Hum10% digit   Hum10% digit   Hum10% digit   Date10 digitMonth  Hum10% digit 
Bit 5
Bit 6
Bit 7
 8thByte      Bit 0 AverageWindSpeed0.1 m/sec TotalRainfall100 digitin mm DewTemp1°Cdigit DewTemp1°Cdigit                  DewTemp1°Cdigit  Date1 digitYear DewTemp1°Cdigit
Bit 1
Bit 2
Bit 3
Bit 4 AverageWindSpeed1 m/sec TotalRainfall1000 digitin mm DewTemp10°Cdigit DewTemp10°Cdigit DewTemp10°Cdigit  Date10 digitYear DewTemp10°Cdigit
Bit 5
Bit 6
Bit 7
 9thByte      Bit 0 AverageWindSpeed10 m/sec YesterdayRainfall1 digitin mm  Check-sum Check-sum ADCBARO
Reading
Check-sum ADC0BARO
Reading
Bit 1
Bit 2
Bit 3
Bit 4  -- YesterdayRainfall10 digitin mm
Bit 5 Chill no data
Bit 6 Chill over
Bit 7 Sign
 10thByte      Bit 0 WindChill1°Cdigit YesterdayRainfall100 digitin mm      WeatherStatus      ADCbit9
Bit 1 --
Bit 2
Bit 3
Bit 4 WindChill10°Cdigit YesterdayRainfall1000 digitin mm      --       WeatherStatus 
Bit 5
Bit 6
Bit 7
 11thByte      Bit 0 Check-sum    TotalStart Date1 digitminute      Sea level
offset0.1
digitmb
     --
Bit 1
Bit 2
Bit 3
Bit 4 TotalStart Date10 digitminute      Sea level
offset1
digitmb
     Sea level
offset0.1
digitmb
Bit 5
Bit 6
Bit 7
 12thByte      Bit 0          TotalStart Date1 digithour          Sea level
offset10
digitmb
         Sea level
offset1
digitmb
Bit 1
Bit 2
Bit 3
Bit 4 TotalStart Date10 digithour Sea level
offset100
digitmb
Sea level
offset10
digitmb
Bit 5
Bit 6
Bit 7
 13thByte      Bit 0          TotalStart Date1 digitDay             Check-sum             Sea level
offset100
digitmb
Bit 1
Bit 2
Bit 3
Bit 4 TotalStart Date10 digitDay Sea level
offset1000
digitmb
Bit 5
Bit 6
Bit 7
 14thByte      Bit 0          TotalStart Date1 digitMonth           Check-sum
Bit 1
Bit 2
Bit 3
Bit 4 TotalStart Date10 digitMonth
Bit 5
Bit 6
Bit 7
 15thByte      Bit 0          TotalStart Date1 digitYear
Bit 1
Bit 2
Bit 3
Bit 4 TotalStart Date10 digitYear
Bit 5
Bit 6
Bit 7
 16thByte      Bit 0           Check-sum   
Bit 1
Bit 2
Bit 3
Bit 4
Bit 5
Bit 6
Bit 7

Weather Status :
1100-sunny
0110-half cloudy
0010-cloudy
0011-rainny


Channel :
0001- Channel 1
0010- Channel 2
0100- Channel 3

over:
1=over range
0=normal

under:
1=under range
0=normal

over/under :
1=over /under
0=normal
* to identify over/under
check also the sign of data

Low batt. :
1=low battery

Batt.Low :
1=low battery of main unit

Sign:
0=positive
1-negative

ADC baro reading :
range 0 to FF (hex)

ADC0 & ADCbit9
range : 0 to 1FF (Hex)
where ADC0 is the LSB
ADCbit9 is the MSbit

Note :
1. For Device 5 (BTH), the barometic pressure reading = ADC baro reading (converted from HEX to BCD) + 795mb
For Device 6 (EXTBTH), the barometric pressure reading = ADC reading (converted from 9 bit HEX to BCD) + 600mb
2. For Device 5 (BTH), the Sea level offset of 1000mb digit is not send out. If the Sea level offset pressure is less than 400.0mb,
then it means the Sea level offset is (1000mb + offset). Howver, if the offset is larger or equal to 400.0mb, then (0mb + Offset)
The above will only applied to device 5. There is NO NEED TO ADJUST FOR DEVICE 6 (EXTBTH)
3. Sea level pressure reading = ADC baro reading (converted from HEX to BCD) + Sea level offset
4. Total start date = The date that total rainfall started to count.
5. The total rainfall that send is added by 0.5mm, please minus 0.5mm before display.
6. Check sum = the lower byte of the sum of the data send (include header)