New page: I've started a collection page of utility programs that I've made.
Alpine Car Stereo CD Shuttle/Changer Protocol

Protocol Description:

This is called either Alpine AI-Net or Alpine MBUS.
This document describes the protocol that an Alpine Car Stereo head unit uses to communicate with a 6 disc CD shuttle.

Information Sources:

1)  Samples were measured and responses examined from an
     "Alpine 7513 Digital FM/AM Cassette" head unit, from a 1995 306XSI Peugeot

2)  The 0x994ghijklmnopqr packets were partially decoded from:
      http://www.cus.org.uk/~cleggy/discus/messages/2/71.html

3)  The author's email is: hone_heke at hotmail.com

Physical Connections:

   Head-unit DIN connector:
     Standard DIN 8-pin male plug (fits Dick Smith Electronics part P1571)
     Has a data wire, stereo line input, battery and accessory line connections.
     Pins are labeled in the manual (see 7513din.gif) and also on the circuit board.
   Also see 7513controls.gif for the button layouts.

Link Protocol:

   The Data Bus pin uses the Alpine AI-Net or MBUS protocol.
     It is a common bus using TTL signal levels:
       5v = logic 0
       0v = logic 1
     The head-unit maintains a logic 0 with a 22kohm pull-up resistor. (source: lost url?)

     Serial data is transmitted at 1200 baud.
     Each data bit (x) is sent with a 4 bit encoded sequence:
        0 x 1 1
     Packets are constructed with a series of 4 bit nibbles.
     Each packet is followed with a checksum nibble.
     It is calculated with the XOR of each nibble, then add one.
   The sequence is begun with a packet sent from the head unit followed by at least one reply packet from the the cd shuttle.
   The head unit will send a packet at varying rates down to about one every (two?) second.

Packet Descriptions:

   Each packet begins with a one nibble device identifier:
     0x1 = head unit
     0x9 = cd shuttle
   Followed by a command of one or two nibbles
     eg. from the head unit:
       0x8  = are you there?
       0x11 = playback control
       0x13 = track selection
       0x14 = playlist mode
     eg. from the cd shuttle:
       0xF  = error signals
       0x94 = shuttle status & track time
       0xB4 = shuttle status

Packets:

   Head unit to cd shuttle:

     0x18 = are you there?
       This is sent every two seconds until a CD shuttle is detected.

     0x111gh = playback control
        g bit 3 = if set then power up cd shuttle (if not already)
        g bit 2 = if set then power down cd shuttle
        g bit 0 = if set the resume playing
        h bit 3 = if set then play at fast forward speed
        h bit 2 = if set then play at rewind speed
        h bit 1 = if set then play is paused
        h bit 0 = if set then play at normal speed
       power up requests can be sent without requiring a change in the play speed.

     0x113ghij0 = sent when a new track selection has been made
        g = BCD (binary coded decimal) for the selected disc
        hi = BCD for the selected track
        j bit 1 = if set then play is paused
        j bit 0 = if set then play at normal speed

     0x114gh000 = sent when a new play list mode is set
        g bit 3 = if set then REPEAT ALL mode is set (also requires a bit 2)
        g bit 2 = if set then REPEAT mode is set
        h bit 1 = if set then MIX mode is set

   CD shuttle to head unit:

     0x9Fgh000 = error signals
        gh = 0x00 for normal condition
             0x30 for high temperature error state ( ---H is displayed)
             0x01 for disc change malfunction ( E-01 is displayed)
             0x02 for disc in player mechanism ( E-02 is displayed)
        g = 1,2,4-15 then the line input is muted

     0x994ghijklmnopqr = shuttle status & track time
        gh = BCD for the playing track number
        i = 0
        j bit 0 = 1 for positive track time, 0 for negative track time
        klmn = BCD for the track playing time in seconds
        o bit 3 = if set then REPEAT ALL mode is set (also requires o bit 2)
        o bit 2 = if set then REPEAT mode is set
        p bit 1 = if set then MIX mode is set
        q bit 1 = signal an error (causes head unit to select paused mode)
        r = 0-3 for amplifier on, 4-15 for amplifier muted

     0x9B4ghijopqr = shuttle status
        g = BCD for the playing disc
        hi = BCD for the playing track
        j bit 0 = loading (disc number flashes)
        j bit 1 = no disc (---- is displayed)
        j bit 2 = no track (T--- is displayed)
        opqr = same coding as opqr in the 0x994ghijklmnopqr packet