The overall system can be portrayed by
the block diagram below, and is the final system used for the project
to accomplish the desired objectives.
The signal always starts with a high-low
transition and ends with a low-high transition, meaning at idle state the signal is high. Each button press reveals the same number of transitions,
so the message contained within the transmitted signal lies not in bit
transitions but as is discovered in the length of time each bit is high
or low. The figure below shows that the length of time a bit stays is what contains
the transmitted message. When the program calculates the time that each
bit stays as a 1 or 0 and puts it in an array, it becomes apparent that
the different buttons have only a handful of these time length changes.
The signal is not pulse width modulated as each full cycle for the entire
message does not have a constant length.
The beginning and end of each message are always the same and must be part of whichever standard the company uses. By comparing three different button presses and only displaying the last twelve transition times (after truncation), the end of message can clearly be seen.
As is apparent in the values above, every second time length has a value
of 1 which must also be part of the standard Bang & Olufsen is using for their message transmission.
To determine the frequency at which the remote control communicates to the transceiver module, assuming it has the same frequency, or baud rate, as the signal on the data line, a quick estimation can be made. Looking at the shortest interval of time during a message, indicated by a 1 (originally ~ 3 x 0,5ms from polling) in the truncated array, the baud rate is estimated to be:
Baud Rate ~ 1 / 1.5ms = 666 Baud
Knowing that depending on where the program starts polling the incoming message, the length of the shortest time length can sometimes be 4 (ie 4 x 0,5ms) which leads to a slightly higher value for the shortest interval, say 1.6 or 1.7ms which likely indicates a real Baud rate of 600.