Bye Bye Standby 2011 Protocol

= Bye Bye Standby 2011 Protocol = Bye Bye Standby released a new range of devices in 2011 using a new protocol. There does not appear to be any documentation available, and so I deduced the message encoding by capturing transmissions from the 3 remotes I own (and one additional remote from John Hind).

An updated version of the Arduino library is available at the google code page (needs to be updated with the latest edits to the protocol).

Device Addressing
The BBSB2011 protocol has 20-bit sender (0x0001-0xFFFFF, built into the remote control) and 3-bit recipient (1-7) codes. The remotes (BBSLRC) can control 6 devices and also the group. The sockets learn the sender and recipient codes, rather than using a dial to select them.

Line Encoding
Bits are encoded over the air in 2 ways. Each bit is encoded as a HIGH signal of a fixed duration followed by a corresponding LOW signal over a total duration of 1200&mu;s.


 * 0-bit
 * HIGH for 300&mu;s followed by LOW for 900&mu;s


 * 1-bit
 * HIGH for 900&mu;s followed by LOW for 300&mu;s

Message Encoding
The message is 25-bits long encoded as follows:
 * 1) Sender (20-bits)
 * 2) Command (1-bits)
 * 3) Recipient (3-bits)
 * 4) Message ended (1-bit)

1. Sender
The sender identifies which remote is sending the command, and is preset in the remote. It is a 16-bit number that appears to be allowed to be anywhere in the range 0x0001 - 0xFFFFF (I have not verified all of these, but the extremes of 0x0001 and 0xFFFF work... 0xFFFFF needs testing!).

2. Command

 * 0 = Off
 * 1 = On

3. Recipient
This identifies which button on the remote has been pressed. The buttons map as follows:

4. Message ended
This is a single '0'. It is possible (even likely) that this could be part of the recipient... however as the remotes only have the ability to control 6 devices (+ group), it is always a '0'.