|
Protocol of the Lacrosse WS7000-16 rain sensor |
Each frame is 46 bits long. It is composed of:
- 10bits of 0 (start sequence) [blue]
- 7 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 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 |
Example 2
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 |
Example 3
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 1 |
Example 4
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 1 |
Example 5
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 |
When extracting data from the 3 examples, we get:
Example 1
0 | 1 | 0 | 0 | | 1 | 1 | 1 | 1 | | 1 | 1 | 0 | 1 | | 0 | 1 | 0 | 0 | | 1 | 1 | 0 | 1 | | 1 | 1 | 1 | 1 | | 1 | 0 | 1 | 1 | |
Example 2
0 | 1 | 0 | 0 | | 1 | 1 | 1 | 1 | | 0 | 1 | 1 | 1 | | 0 | 1 | 0 | 0 | | 1 | 1 | 0 | 1 | | 0 | 1 | 0 | 1 | | 1 | 1 | 0 | 1 | |
Example 3
0 | 1 | 0 | 0 | | 1 | 1 | 1 | 1 | | 1 | 1 | 0 | 1 | | 0 | 0 | 0 | 1 | | 1 | 1 | 0 | 1 | | 1 | 0 | 1 | 0 | | 1 | 0 | 0 | 1 | |
Example 4
0 | 1 | 0 | 0 | | 1 | 1 | 1 | 1 | | 0 | 0 | 1 | 1 | | 0 | 0 | 0 | 1 | | 1 | 1 | 0 | 1 | | 0 | 1 | 0 | 0 | | 1 | 1 | 1 | 0 | |
Example 5
0 | 1 | 0 | 0 | | 1 | 1 | 1 | 1 | | 1 | 0 | 0 | 0 | | 1 | 0 | 0 | 1 | | 1 | 1 | 0 | 1 | | 0 | 1 | 1 | 1 | | 1 | 0 | 0 | 1 | |
The 1st bit of each word is LSB, so we have to reverse the 4 bits of each word.
The counter of the rain sensor is coloured in [green] in the following tables:
Example 1
0 | 0 | 1 | 0 | | 1 | 1 | 1 | 1 | | 1 | 0 | 1 | 1 | | 0 | 0 | 1 | 0 | | 1 | 0 | 1 | 1 | | 1 | 1 | 1 | 1 | | 1 | 1 | 0 | 1 | |
2 | | 1 | 7 | | B | | 2 | | B | | F | | D | |
Check Xor : (2 ^ F ^ B ^ 2 ^ B ^ F) = 0 Check Sum : (const5 + 2 + F + B + 2 + B + F) and F = D | |
Example 2
0 | 0 | 1 | 0 | | 1 | 1 | 1 | 1 | | 1 | 1 | 1 | 0 | | 0 | 0 | 1 | 0 | | 1 | 0 | 1 | 1 | | 1 | 0 | 1 | 0 | | 1 | 0 | 1 | 1 | |
2 | | 1 | 7 | | E | | 2 | | B | | A | | B | |
Check Xor : (2 ^ F ^ E ^ 2 ^ B ^ A) = 0 Check Sum : (const5 + 2 + F + E + 2 + B + A) and F = B | |
Example 3
0 | 0 | 1 | 0 | | 1 | 1 | 1 | 1 | | 1 | 0 | 1 | 1 | | 1 | 0 | 0 | 0 | | 1 | 0 | 1 | 1 | | 0 | 1 | 0 | 1 | | 1 | 0 | 0 | 1 | |
2 | | 1 | 7 | | B | | 8 | | B | | 5 | | 9 | |
Check Xor : (2 ^ F ^ B ^ 8 ^ B ^ 5) = 0 Check Sum : (const5 + 2 + F + B + 8 + B + 5) and F = 9 | |
Example 4
0 | 0 | 1 | 0 | | 1 | 1 | 1 | 1 | | 1 | 1 | 0 | 0 | | 1 | 0 | 0 | 0 | | 1 | 0 | 1 | 1 | | 0 | 0 | 1 | 0 | | 0 | 1 | 1 | 1 | |
2 | | 1 | 7 | | C | | 8 | | B | | 2 | | 7 | |
Check Xor : (2 ^ F ^ C ^ 8 ^ B ^ 2) = 0 Check Sum : (const5 + 2 + F + C + 8 + B + 2) and F = 7 | |
Example 5
0 | 0 | 1 | 0 | | 1 | 1 | 1 | 1 | | 0 | 0 | 0 | 1 | | 1 | 0 | 0 | 1 | | 1 | 0 | 1 | 1 | | 1 | 1 | 1 | 0 | | 1 | 0 | 0 | 1 | |
2 | | 1 | 7 | | 1 | | 9 | | B | | E | | 9 | |
Check Xor : (2 ^ F ^ 1 ^ 9 ^ B ^ E) = 0 Check Sum : (const5 + 2 + F + 1 + 9 + B + E) and F = 9 | |
| Sensor type is 2 |
| Unused ? |
| Sensor Address 7 |
| Data values |
| CheckXor |
| CheckSum |
The first block is the LSB, so the values are repectively:
- [hex] B 2 B = [dec] 2859
- [hex] B 2 E = [dec] 2862
- [hex] B 8 B = [dec] 2955
- [hex] B 8 C = [dec] 2956
- [hex] B 9 1 = [dec] 2961
I am interested by any comment or more information on the format of these frames. Contact: Jean-Paul ROUBELAT - F6FBB
[back to menu]