HS: The CM15a uses X10’s collision
protection algorithm, but not all other
controllers do. The algorithm works as
follows:
First the transmitter will wait for 8, 9 or
10 (determined randomly) zero half-bits
(each bit is immediately followed by its
compliment (except in the header which uses
1110) in the X10 protocol) on the
powerline. Then it will start transmitting
data. If when transmitting a zero it reads
a one, it will abort the transmission and
start waiting again.
This algorithm works extremely well if all
transmitters use it (I will leave it as an
exercise to the reader to figure out
why
). If a transmitter doesn’t use it,
it could cause a collision. The CM15a
should recover just fine without losing any
of its own transmissions, but the
transmission from the other controller will
probably be garbled.