| 
  Protocol of the Lacrosse WS7000-22/25 meteo sensor | 
Each frame is 61 bits long. It is composed of:
-  10bits of 0 (start sequence) [blue]
 -  10 blocks of four bits separated by a bit 1 [red] to be checked and skipped
 
Example 1
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 
Example 2
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 
Example 3
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 
When extracting data from the examples, we get:
Example 1
| 1 | 0 | 0 | 0 |   | 0 | 1 | 1 | 0 |   | 1 | 1 | 1 | 0 |   | 0 | 1 | 0 | 0 |   | 1 | 0 | 0 | 0 |   | 0 | 0 | 0 | 0 |   | 1 | 0 | 0 | 1 |   | 1 | 1 | 1 | 0 |   | 1 | 0 | 1 | 1 |   | 1 | 1 | 0 | 0 |   | 
Example 2
| 1 | 0 | 0 | 0 |   | 0 | 1 | 1 | 0 |   | 0 | 1 | 0 | 0 |   | 1 | 1 | 1 | 0 |   | 1 | 1 | 0 | 0 |   | 0 | 0 | 0 | 0 |   | 1 | 0 | 0 | 0 |   | 1 | 0 | 1 | 0 |   | 1 | 0 | 1 | 0 |   | 1 | 1 | 0 | 0 |   | 
Example 3
| 1 | 0 | 0 | 0 |   | 0 | 1 | 1 | 1 |   | 1 | 1 | 1 | 0 |   | 0 | 1 | 0 | 0 |   | 1 | 0 | 0 | 0 |   | 0 | 0 | 0 | 0 |   | 1 | 0 | 0 | 0 |   | 0 | 1 | 1 | 0 |   | 0 | 0 | 1 | 1 |   | 1 | 0 | 0 | 0 |   | 
The 1st bit of each word is LSB, so we have to reverse the 4 bits of each word.
The active values of the sensor is coloured in [green] in the following tables:
Example 1
| 0 | 0 | 0 | 1 |   | 0 | 1 | 1 | 0 |   | 0 | 1 | 1 | 1 |   | 0 | 0 | 1 | 0 |   | 0 | 0 | 0 | 1 |   | 0 | 0 | 0 | 0 |   | 1 | 0 | 0 | 1 |   | 0 | 1 | 1 | 1 |   | 1 | 1 | 0 | 1 |   | 0 | 0 | 1 | 1 |   | 
| 1 |   | + | 6 |   | 7 |   | 2 |   | 1 |   | 0 |   | 9 |   | 7 |   | D |   | 3 |   | 
Check Xor : (1 ^ 6 ^ 7 ^ 2 ^ 1 ^ 0 ^ 9 ^ 7 ^ D) = 0 Check Sum : (const5 + 1 + 6 + 7 + 2 + 1 + 0 + 9 + 7 + D) and F = 3 |   | 
Example 2
| 0 | 0 | 0 | 1 |   | 0 | 1 | 1 | 0 |   | 0 | 0 | 1 | 0 |   | 0 | 1 | 1 | 1 |   | 0 | 0 | 1 | 1 |   | 0 | 0 | 0 | 0 |   | 0 | 0 | 0 | 1 |   | 0 | 1 | 0 | 1 |   | 0 | 1 | 0 | 1 |   | 0 | 0 | 1 | 1 |   | 
| 1 |   | + | 6 |   | 2 |   | 7 |   | 3 |   | 0 |   | 1 |   | 5 |   | 5 |   | 3 |   | 
Check Xor : (1 ^ 6 ^ 2 ^ 7 ^ 3 ^ 0 ^ 1 ^ 5 ^ 5) = 0 Check Sum : (const5 + 1 + 6 + 2 + 7 + 3 + 0 + 1 + 5 + 5) and F = 3 |   | 
Example 3
| 0 | 0 | 0 | 1 |   | 1 | 1 | 1 | 0 |   | 0 | 1 | 1 | 1 |   | 0 | 0 | 1 | 0 |   | 0 | 0 | 0 | 1 |   | 0 | 0 | 0 | 0 |   | 0 | 0 | 0 | 1 |   | 0 | 1 | 1 | 0 |   | 1 | 1 | 0 | 0 |   | 0 | 0 | 0 | 1 |   | 
| 1 |   | - | 6 |   | 7 |   | 2 |   | 1 |   | 0 |   | 1 |   | 6 |   | C |   | 1 |   | 
Check Xor : (1 ^ E ^ 7 ^ 2 ^ 1 ^ 0 ^ 1 ^ 6 ^ C) = 0 Check Sum : (const5 + 1 + E + 7 + 2 + 1 + 0 + 1 + 6 + C) and F = 1 |   | 
|   | Sensor type is 1 | 
|   | Temperature is positive | 
|   | Sensor Address | 
|   | Data values | 
|   | CheckXor | 
|   | Checksum | 
The first block is the LSB, so the values are repectively:
-  [temp] 12.7 deg - [hygro] 79.0 % 
 -  [temp] 37.2 deg - [hygro] 51.0 % 
 -  [temp] -12.7 deg - [hygro] 61.0 % 
 
I am interested by any comment or more information on the format of these frames. Contact: Jean-Paul ROUBELAT - F6FBB
[back to menu]