Hi,
For those who are still interested in this protocol for communication between Blaupunkt headunits and CD changers, this is some extra info i've found from original ducumentation, this file is for a CDC A09
see also topic
http://arduino.cc/forum/index.php/topic,39755.15.html
Long time ago i've managed to control a CDC with a PIC 16F
[SOFTWARE VERSION]
{
|Lx1 ASCI.DLL,INIT_COM,,
|Lx2 ASCI.DLL,TX,180 AD 14F,
|df0 0.5
|Lx3 ASCI.DLL,TXRX,180 A7 14F,0E HI XX 4F,1,
}
{
|Lx1
|Lx2 <nbSend All Messages 0=on 9D=Timeout >
|Lx3 0E <nb Manufacturer 00=RESERVED
01=SONY CDC A/F03
05=KENWOOD CDC A/F05, CDC A06
07=KENWOOD CDC A071/072
08=BLAUPUNKT CDC A08
09=BLAUPUNKT IDC A09> 4F
}
[SLOT INFORMATION]
{
|Lx1 ASCI.DLL,INIT_COM,,
|df0 0.1
|Lx2 ASCI.DLL,TXRX,180 C0 02 14F,02 XX XX XX 4F,1,
}
{
|Lx1
|Lx2 02<nbavailable slots
10=1
20=2
30=3
40=4
50=5>
<fb bitfield validity
01=bitfield 1 invalid
02=bitfield 2 invalid
04=bitfield 3 invalid
08=bitfield 4 invalid
10=bitfield 5 invalid
20=bitfield 6 invalid
40=bitfield 7 invalid
80=bitfield 8 invalid>
<fbslot status
01=CD in Slot 1
02=CD in Slot 2
04=CD in Slot 3
08=CD in Slot 4
10=CD in Slot 5>
}
[CD STATUS]
{
|Lx1 ASCI.DLL,INIT_COM,,
|Lx2 ASCI.DLL,TXRX,180 9E 14F,0D XX XX XX XX 4F,1,
}
{
|Lx1 <nbSend All Messages 0=on 9D=Timeout >
|Lx2 0D
}
____weitere LW-Fktn
[ ]
{}{}
[more functions]
{}{}
[TPM On/Off]
{
|Lx1 ASCI.DLL,INIT_COM,,
|Lx2 ASCI.DLL,TX,180 AB 14F,
|Lx3 ASCI.DLL,TXRX,180 2B 14F,03 xx xx xx xx 4F,1,
}
{
|Lx1
|Lx2
|Lx3 03
<fbByte4
01=No TPM programmed disc in magazine
02=TPM Mode is active
04=TPM Disc Search is active>
}
[Mix one Disc On/Off]
{
|Lx1 ASCI.DLL,INIT_COM,,
|Lx2 ASCI.DLL,TXRX,180 A3 14F,03 xx xx xx xx 4F,1,
}
{ |Lx1
|Lx2 03
<fbByte3
01=mix tracks of one disc is active>
}
[Mix all Discs On/Off]
{
|Lx1 ASCI.DLL,INIT_COM,,
|Lx2 ASCI.DLL,TXRX,180 97 14F,09 xx xx 4F,1,
}
{ |Lx1
|Lx2 09
}
[Mix all Discs/Tracks On/Off]
{
|Lx1 ASCI.DLL,INIT_COM,,
|Lx2 ASCI.DLL,TXRX,180 96 14F,03 xx xx xx xx 4F,1,
}
{ |Lx1
|Lx2 03
<fbByte3
02=mix all tracks is active
04=mix all discs is active>
}
[Repeat Track On/Off]
{
|Lx1 ASCI.DLL,INIT_COM,,
|Lx2 ASCI.DLL,TXRX,180 93 14F,03 xx xx xx xx 4F,1,
}
{ |Lx1
|Lx2 03
<fbByte3
08=repeat track is active
20=repeat magazine is active>
}
[Repeat Disc On/Off]
{
|Lx1 ASCI.DLL,INIT_COM,,
|Lx2 ASCI.DLL,TXRX,180 94 14F,03 xx xx xx xx 4F,1,
}
{ |Lx1
|Lx2 03
<fbByte3
10=repeat disc is active
20=repeat magazine is active>
}
[Repeat Magazine On]
{
|Lx1 ASCI.DLL,INIT_COM,,
|Lx2 ASCI.DLL,TXRX,180 95 14F,03 xx xx xx xx 4F,1,
}
{ |Lx1
|Lx2 03
<fbByte3
08=repeat track is active
10=repeat disc is active
20=repeat magazine is active>
}
[Disc Scan On/Off]
{
|Lx1 ASCI.DLL,INIT_COM,,
|Lx2 ASCI.DLL,TXRX,180 98 14F,03 xx xx xx xx 4F,1,
}
{ |Lx1
|Lx2 03
<fbByte3
40=disc scan is active>
}
Play Disk1 Track5]
{
|Lx1 ASCI.DLL,INIT_COM,,
|Lx2 ASCI.DLL,TXRX,180 99 01 05 14F,01 01 05 4F,1,
|df0 0.1
|Lx3 ASCI.DLL,TX,180 A5 14F,
}
{ |Lx1
|Lx2 01
|Lx3
}
[Play Disk X Track Y]
{
|Lx1 ASCI.DLL,INIT_COM,,
|+t0 LVAR1=<lbEnter Disk number 01=disk 1
02=disk 2
03=disk 3
04=disk 4
05=disk 4>
|+t0 LVAR2=<srPlease enter 2digit track number.
example: 01 for Track #1, 12 for Track #12>
|Lx2 ASCI.DLL,TX,180 A5 14F,
|Lx3 ASCI.DLL,TXRX,180 99 14F,01 xx xx 4F,1,
}
{
|Lx1
|Lx2
|Lx3 01
}
Softkeys__
The init1 is only used for Peugeot IDCA09
**[#INIT1] **
{
** |Lx1 ASCI.DLL,INIT_COM,,
_ |dt0 Turn on supply and ignition._
Please activate communicationdirection ST7
_( TX/RX position )._
|Lx2 ASCI.DLL,TXRX_SLAVE,180 86 14F,90 xx 4F,1,
_ |dt0 Turn switch to position RX/TX**_
** |Lx3 ASCI.DLL,TX,180 AD 14F,**
}
{
** |Lx2 90 <nbVAN communication 00=not ok **
** 01=ok>**
** |Lx3 <nbSend All Messages 0=on 9D=Timeout >**
**} **
[#SOFTKEY1:Play]
{
|Lx1 ASCI.DLL,INIT_COM,,
|Lx2 ASCI.DLL,TXRX,180 A5 14F,01 xx xx 4F,1,
}
{ |Lx1
|Lx2 01
}
[#SOFTKEY2:Stop]
{
|Lx1 ASCI.DLL,INIT_COM,,
|Lx2 ASCI.DLL,TXRX,180 A6 14F,03 xx xx xx xx 4F,1,
}
{ |Lx1
|Lx2 03
<fbByte2
01=Play Mode is active
02=Pause Mode is active
04=Stop Mode is active
08=Real Time active
10=Absolute Time is active
20=Absolute Remain Time is active
40=Name Erase is active
80=Name Edit is active>
}
[#SOFTKEY3:Pause||]
{
|Lx1 ASCI.DLL,INIT_COM,,
|Lx2 ASCI.DLL,TXRX,180 A2 14F,03 xx xx xx xx 4F,1,
}
{ |Lx1
|Lx2 03
<fbByte2
01=Play Mode is active
02=Pause Mode is active
04=Stop Mode is active
08=Real Time active
10=Absolute Time is active
20=Absolute Remain Time is active
40=Name Erase is active
80=Name Edit is active>
}
[#SOFTKEY4:SCAN ON/OFF]
{
|Lx1 ASCI.DLL,INIT_COM,,
|df0 0.1
|Lx2 ASCI.DLL,TXRX,180 87 14F,03 xx xx xx xx,1,
}
{ |Lx1
|Lx2
}
|Lx2 ASCI.DLL,TXRX,180 A5 14F,01 xx xx 4F,1,
[#SOFTKEY5:Track>>]
{
|Lx1 ASCI.DLL,INIT_COM,,
|Lx2 ASCI.DLL,TXTX,180 82 14F,50,180 02 14F,
|Lx3 ASCI.DLL,TXRX,180 A5 14F,01 xx xx 4F,1,
}
{
|Lx2
|Lx3 01
}
[#SOFTKEY6:Track<<]
{
|Lx1 ASCI.DLL,INIT_COM,,
|Lx2 ASCI.DLL,TXTX,180 81 14F,50,180 01 14F,
|Lx3 ASCI.DLL,TXRX,180 A5 14F,01 xx xx 4F,1,
}
{ |Lx2
|Lx3 01
}
[#SOFTKEY7:cue On]
{
|Lx1 ASCI.DLL,INIT_COM,,
|Lx2 ASCI.DLL,TXRX,180 91 14F,03 XX XX XX XX 4F,1,
|df0 0.5
|Lx3 ASCI.DLL,TXRX,180 11 14F,03 XX XX XX XX 4F,1,
}
{ |Lx1
|Lx2
|Lx3
}
[#SOFTKEY8:review On]
{
|Lx1 ASCI.DLL,INIT_COM,,
|Lx2 ASCI.DLL,TXRX,180 92 14F,03 XX XX XX XX 4F,1,
|df0 0.5
|Lx3 ASCI.DLL,TXRX,180 12 14F,03 XX XX XX XX 4F,1,
}
{ |Lx1
|Lx2
|Lx3
}
[#SOFTKEY9:DISC>>]
{
|Lx1 ASCI.DLL,INIT_COM,,
|Lx2 ASCI.DLL,TXTX,180 84 14F,100,180 04 14F,
}
{
|Lx1
|Lx2
}
[#SOFTKEY10:DISC<<]
{
|Lx1 ASCI.DLL,INIT_COM,,
|Lx2 ASCI.DLL,TX,180 83 14F,
|df0 3
|Lx3 ASCI.DLL,TX,180 03 14F,
}
{
}
Direct CD / track ingave read 0x80 as 0x180!! data was read in 8 bits mode
Recieved: 0x180 0x99 0xdisc 0xtrack
skip+
Received: 0x180 0x82
Received: 0x180 0x02
skip-
Received: 0x180 0x81
Received: 0x80 0x01
map+
Received: 0x80 0x84
Received: 0x80 0x04
map-
Received: 0x80 0x83
Received: 0x80 0x03
pause / OFF e sleep toestand
Received: 0x80 0x21 (pauze commando )
Received: 0x03 0x20 0x0A 0x20 0x00 0x4F (MD stuurt nog 2 commando's => 2laatste zijn disk, track en tijd)
Received: 0x01 0x01 0x01 0x4F
Received: 0x09 0x05 0x39 0x4F
play
Received: 0x80 0xA5
pauze
Received: 0x80 0xA2
FF
Received: 0x80 0x91 ( bij indrukken ff )
Received: 0x80 0x11 ( bij loslaten ff)
FR
Received: 0x80 0x92 ( bij indrukken fr )
Received: 0x80 0x12 ( bij loslaten fr)
MIX CD
Received: 0x80 0xA3
MIX MAG
Received: 0x80 0x96 ( 1e maal mix mag, 2e maal mix off )
MIX off
Received: 0x80 0x96
repeat trk on/ off
Received: 0x180 0x93