/datalink

B&O datalink reverse engineering effort

Primary LanguageC++GNU General Public License v3.0GPL-3.0

Datalink reverse engineering effort.

Hello, this is a repository where some code might end up that allows a
programmer to communicate with B&O Datalink.

How to get started logging traffic:

To monitor Datalink'80 traffic, use the bl80-analyzer Arduino project.

Tested working with pin 6 of the 7-pin DIN connected to pin 2 on an Arduin
Uno, and ground connected from the Arduino to pin 2. This will let you monitor 
Datalink'80 traffic on every source port except the TV/AUX port, which communicates
with Datalink'86.

To monitor Datalink'86 traffic, use bl86-analyzer.

Note that I am using a non-standard bitrate for the console.

Well, good luck! The rest of this file is basically justes.

A very informative source is this guide by B&O.
https://www.mikrocontroller.net/attachment/33137/datalink.pdf

Datalink'80
-----

This is sometimes referred to as "old datalink" in B&O documentation. An extremely
simple protocol for communicating between a Beomaster and turntables, tape
decks, and CD players.

This is an active-low wired-OR bus, with the pullup resistor in the master unit.

After the start bit, eight bits follow - 3.125ms apart. There is no apparent
stop bit.

My current impression of this protocol is thus: A single byte denotes the type
of message, and each such message type implies an defined recipient node and
assumed source node, obviating the need for any adressing.

Each packet from the beomaster seems to end with 0x00, but this is not always
true for packets from at least the CD7000.

....

Datalink'86
------

This is a far more versatile protocol with adressing, used with MCL2.

I think there are two distinct data protocols spoken across the 7-pin B&O
"augmented DIN" audio connector which carries two data leads.

I think one is Datalink 80, which is also referred to in public documentation
from 1986 as "Datalink (old format)":

This is the protocol used to communicate between TVs, tape decks, amplifiers,
and is the precedent of later B&O protocols such as Datalink '86 and Masterlink.

It is spoken across pins 7 and 2 (Chassis ground).

To be clarified: https://forum.beoworld.org/forums/t/40130.aspx this source
refers to two different uses for two different pins, while most other sources
either list them both as "Datalink", or "Datalink" and "Data shield/ground".

It is my suspicion that if a Beolink 1611 Converter is connected to a Beolink
1986-era amplifier, data communication will take place with a more advanced
protocol spoken between pins 6 and 2. (confirmed)