Currently, I work on reversing the protocol.
For that, I use the cheap Saleae Logic Analyzer clone connected to DATA and GND (COM) of the ribbon cable. Thanks to the very well written (repair) manual of this old Sound System, I could get a hint how zeros and ones are encoded, as well as the framing and timing.
Based on that, I wrote a custom Low-Level Analyzer plugin for Saleae to decode the raw values (see repo for details).
I already got a preliminary table of commands and interpretation of payload data together.
Currently the Low-Level Analyzer also decodes the meaning, but later this should be done via a (python) High-Level Analyzer. This is 1. more clean, and 2. can be reused better, as I plan on the Microcontroller to just read/write raw commands, with the interpretation done separately (in the host computer).
Note: All numbers in Hex
Recorded IDs
| ID | Name |
| ---- | ----- |
| `0`| Probably the Tuner (or display?) |
| `3`| Probably the Tape Deck |
| `4`| ?? Only acted as destination, perhaps CD, or AMP ?|
| `6`| only startup and off: `6->6 0x20` |
Commands `0 -> 3`
----
Missing to identify: Mute / unmute output
| ID | Description | (Data)
| ---- | ----------- | ------
| `05` | Stop ?? Comes directly after `0->4: 07` and after startup|
| `07` | Eject ? |
| `08` | Increase FF speed |
| `09` | Increase FR speed |
| `0A` | Fast Forward ? |
| `0B` | Fast Reverse ? |
| `0E` | Dolby: B |
| `0F` | Dolby: C |
| `10` | Dolby: None |
| `11` | Reverse Playing direction
| `12` | ?? Comes directly after `08` or `09`|
| `13` | ?? Comes directly after startup
| `15` | Request to record
| `17` | Play |
| `16` | Pause (Mute?)|
| `1C` | ? Answer to `3->0 : 07`, so perhaps "Ok to output", or "request for playing direction"
| `1E` | RECORD "NORM"
| `1F` | Zero time counter
Commands `3 -> 0`
----
| ID | Description | (Data)
| ---- | ----------- | ------
| `05` | ? Comes sometimes after `13` (is it the broadcast stop?)|
| `06` | Status Un-Playable? Eject was pressed, tape coming out
| `07` | Status playable? Eject was pressed, tape coming in and small wait time
| `0B` | Current FF/FR speed | _Only one byte!_ : lower nibble = speed (1-4), MSBit (`80`) = isReverse |
| `0C` | Set Time display | BCD-Like MM:SS, e.g. `0x0159` for 01:59 |
| `0D` | Set Time display Negative ? | like `0C` |
| `0F` | Tape deck is present (in Dolby: C mode?) |
| `10` | Is playing "to the right" |
| `11` | Is playing "to the left" |
| `12` | ?? comes sometimes as answer to `0 -> 3: 12`
| `13` | ? Came during FF, and after startup |
| `14` | Can not record (tape was not loaded) |
| `15` | Able to record (tape was just loaded) |
Broadcast commands `0 -> 0`
| Command | Direction | Type | Data |
| ------- | --------- | ---- | ---- |
| `01` | `0->0` | System On
| `02` | `0->0` | System Off
| `05` | `0->0` | Stop all?
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.