Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1.
Physical Layer
If you are using other than CC1101, please refer to CC1101 datasheet.
1.1.
CC1101 settings
Registers in italics are not programmed, CC1101 defaults used. Register 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 Value 0D 2E 2E 07 D3 91 FF 00 32 00 00 06 00 21 65 CC 6A 83 10 Function Register 13 14 15 16 17 18 19 1A 1B 1C 1D 23 24 25 26 29 2C 2D 2E 3E Value 22 F8 50 07 30 18 16 6C 43 40 91 E9 2A 00 1F 59 81 35 09 C0 Function
RF channel*
RF power**
*The default value for RF channel is 0xCC, but it is factory programmable. **The default value for RF power is 0xC0, but it is factory programmable.
2.
Channel Coding
The channel coding for transmission and reception is absolutely the same.
2.1.
Basics
Serial port settings: 38400, 8 bits LSB rst, no parity, 1 start bit, 1 stop bit 0 1 1 2 3 4 5 6 7 Input Input
S 0 1 1 2 3 4 5 6 7 X
2.2.
Preamble
...contd
0xFF 0x00 0x33 0x55 0x53
For practical reasons I suggest to sync on 00 33 55 53. Values 00, 33 and 53 are Manchester-breaking, anyway.
2.3.
Output
End of block
0x35 0x55 0x55 0x55
2.4.
Manchester-decoding
To decode the actual message a simple Manchester decoding procedure should be used. If Manchester-decoding fails, the message should not be processed. Input 10 01 Decoded 0 1
For practical reasons I suggest to use the following table, high nibble rst, low nibble last: 55 56 59 5A 65 66 69 6A F E D C B A 9 8 85 86 89 8A 95 96 99 9A 7 6 5 4 3 2 1 0
3.
Message format
3.1.
Checksum
rcvi = 0b
i=0
3.2.
For each multi-byte (16 bit unsigned, 16 bit signed, 24 bit) values the byte order is little-endian (MSB rst). The data format for temperatures is a 16 bit signed integer value, the units are 1 100 Celsius; if not otherwise indicated.
3.3.
Message Header
The message block starts with a header byte, that contains additional ags and describes which optional content is included in the message header.
Header Command devID0 Len devID1 Payload devID2 ChkSum P1 P2
Header byte Device id 0 Device id 1 Device id 2 Param 1 Param 2 Command Payload length Payload Checksum
8 24 24 24 8 8 16 8 var 1
required optional optional optional optional optional required required required required
Flags* bit 0 Flags* bit 1 Flags* bit 2 Header bit 1 Header bit 0 Command code Payload length Payload length 8 Checksum to 0x00
Command 0x0001
Output
0x0001 PL len ChkSum
0x0016: DUNNO
Output Data: something
0x0016 PL len Data ChkSum
0x1030: DUNNO
Output contd. contd. contd. contd. Fixed: 0xC8 Fixed: 0x01 maxTemp (maxT): Maximum Temperature / 100 Fixed: 0xC8 Fixed: 0x01 minTemp (minT): Minimum Temperature / 100 Fixed: 0xC8 Fixed: 0x01 accRun (AR): Actuator running time Fixed: 0xC8 Fixed: 0x01 pumpRun (PR): Pump running time Fixed: 0xC8 Fixed: 0x01 6
0x1030 0xC9 0xCA 0xCB 0xCC 0x01 0x01 0x01 0x01 PL len minT AR PR U ChkSum 0xC8 0x01 maxT
setTemp (setT): Hotwater setting temperature minTemp (minT): Hotwater minimum temperature
Cycle Rate (Cycle): 4 Cycle Rate Minimum On-Time (OnTime): 4 Minimum On-Time Data: something Data: something Data: something Data: something
0x1260: DUNNO
Output
0x1260 PL len ChkSum
0x1FC9: Binding
Output
0x1FC9 PL len ChkSum
0x1FC9: Binding
Output devType: See device types 0x2309 = evoTouch deviceID: Source Device ID
0x1FC9 PL len devType deviceID ChkSum
0x1FC9: Binding
Output devType: See device types 0x2309 = evoTouch deviceID: Source Device ID Data: 0xFB Data: Device type 0x3150
0x1FC9 PL len devType deviceID 0xFB Data ChkSum
0x1FC9: Binding
Output devType: See device types deviceID: Source Device ID Data: 0xFB Data: Device type 0x3150
0x1FC9 PL len 0x1FC9 deviceID 0xFB Data ChkSum
Celsius
0x2349: Incoming 3
Output devID: Setting / 100 Flags: 0 or 3
0x2349 PL len devID Flags ChkSum
Command 0x3B00
Output Data: Always 0xC8
0x3B00 PL len 0xC8 ChkSum
10