Kenneract / Bose-Reverse-Engineering

A recount of my process of troubleshooting, investigating, and reverse-engineering my Bose 321GS Series III home entertainment system after it stopped working.
GNU General Public License v3.0
2 stars 0 forks source link

BoseLink data protocol? #1

Open mc510 opened 1 year ago

mc510 commented 1 year ago

Hey Kenneract, wondering if in the course of your extensive research you came across any documentation of how data communications happens over the BoseLink (mini-DIN) connector? My interest is in a different Bose device from yours, specifically the Bose Wave Music System III and the optional SoundTouch internet streaming unit that connects via BoseLink. Hoping to find out how the Bose Wave identifies that there is a SoundTouch connected to it (in hopes of being able to fake it with a RPi)

Kenneract commented 1 year ago

I only encountered brief mentions of the BoseLink connector, but nothing about the data format or protocol details, unfortunately. The most depth I went into while exploring was that (on my system) the BoseLink interface shares the same hardware UART as the ETAP system, meaning there is likely a 5V half-duplex & bi-directional UART interface on pin 7 of the BoseLink connector (see the Pinouts.md file). Source [1, p69] suggests that, if not in ETAP mode, the BoseLink connector actually uses the SmartSpeaker protocol, but that may be an incorrect interpretation.

Overall it seems BoseLink is just as poorly documented as the SmartSpeaker protocol, if not worse. If both of your devices are working, it may be worth it to open the Wave Music System III up and probe the BoseLink connector while the two devices are connected. Observe the communication using an oscilloscope as you run different actions.

A less intrusive route could be to disconnect the two devices, then probe the port of one device (I used some sewing needles and alligator-leads to mimic the pins of the cable). Once you've reasonably determined the data pin (I'd look at Pin7 first), you could simply try sending SmartSpeaker commands in and see if the device responds.

I'm sorry I couldn't be more help - that sounds like a really cool project, and I wish you the best!