Home Automation – RF Protocols

 

This is a new version of the old 'Home Automation - RF Protocols', as I have re-done some measurements.
On the previous version a lot of the information was just translated text from other web sites.
Now I will only add information that I actually have measured myself, as it will make it easier for me to answer any questions that might arise.

As I get a lot of spam if I have the comment field turned on, I have decided to turn it off. I am not happy to have to do that, as I think the feedback and questions I have gotten on this has been very fun.
So if you have any question or other feedback, please look up my email address in the 'About Me page'.

General Info

Below is info on RF protocols used in the Home Automation field of simple devices.
The protocol used is the On-Off Keying modulation, which is a very simple form of Amplitude Shift Keying, at 433.92 MHz frequency.

Proove/Anslut/Nexa

First some definitions.

Bit format

'1' bit:
 _____
|     |
|     |
|     |_____

|-----|-----|
   T     T

'0' bit:
 _____
|     |
|     |
|     |_________________________

|-----|-------------------------|
   T               5T

'SYNC' bit:
 _____
|     |
|     |
|     |__________________________________________________

|-----|--------------------------------------------------|
   T                         10T

'PAUSE' bit:
 _____
|     |
|     |
|     |_______________________ . . . ____

|-----|----------------------- . . . ----|
   T                40T

T = 250 us
(5T = 1250 us)
(10T = 2500 us)
(40T = 10 ms)

Bitcoding
The data part on the physical link is coded so that every logical bit is sent as two physical bits, where the second one is the inverse of the first one.
'0' => '01'
'1' => '10'
Example: For the logical datastream 0111, is sent over the air as 01101010.

Packetformat
Every packet consists of a sync bit followed by 26 + 2 + 4 (total 32 logical data part bits) and is ended by a pause bit.

S HHHH HHHH HHHH HHHH HHHH HHHH HHGO CCEE P

S = Sync bit.
H = The first 26 bits are transmitter unique codes, and it is this code that the reciever "learns" to recognize.
G = Group code. Set to 0 for on, 1 for off.
O = On/Off bit. Set to 0 for on, 1 for off.
C = Channel bits. Proove/Anslut = 00, Nexa = 11.
E = Unit bits. Device to be turned on or off.
Proove/Anslut Unit #1 = 00, #2 = 01, #3 = 10.
Nexa Unit #1 = 11, #2 = 10, #3 = 01.
P = Pause bit.

For every button press, N identical packets are sent. For Proove/Anslut N is six, and for Nexa it is five.

Packet burst     
         _____       _____                               _____       _____ 
        |     |     |     |                             |     |     |
        | #1  |     | #2  |       .  .  .  .  .  .      |#N-1 |     | #N  |
________|     |_____|     |_____                   _____|     |_____|     |_______

        |-----------|-----------|-.  .  .  .  .  . -----|-----------|-----------|

For some more info, check my post here.

For some Arduino libs I have made check here, Proove/Anslut and Nexa.

A note if you are to use the Arduino libs.
Every receiver can handle up to 3 different unique codes (H bits above).
This means you can construct your own code and have the receiver learn it,
as you do with the normal remote.
You do not need to have the exact same code as the remote to have this to work.