Kenwood

Recommended links: Patrick Loef's Page with AVR based Kenwood CD changer emulator (KECANI) The protocoll used here is a synchron serial protocoll. First let us start with the connector pinout. The pins have a 2.54mm distance, so you can simply build a plug using some prototyping board ......... New connector pin-out (for head units >'99?) Thanks to Patrick Loef for this information. pin direction description 1 2 3 4 5 6 7 8 9 10 11 12 13 O O I O I I I O I I/O CH-REQH - Request output to changer; "Low" : Request Ground Vcc +12V CH-CON - Changer control; "High" : Operation mode "Low" : Standby CH-MUTE - Mute request from changer; "High" : Mute AGND - Audio Ground CH-RST - Reset output to changer Audio right channel CH-REQC - Request input from changer; "Low" : Request CH-DATAC - Data input from changer CH-DATAH - Data output to changer Audio left channel CH_CLK - Clock input/output for changer

When a transfer is initiated by the radio by setting its fs low it waits for the changer to answer with a low fs. data is valid at the rising clock edge. When the changer starts the communication it gets 40 clocks from the radio ( 4 bytes addr + 1byte data size ). MSB first ).. Older models have the same pinout but use some more simple protocol .. the initiator just pulls its fs line low.. The data transfer is initiated either by the radio or the changer. direction: both byte 0 1 2 3 4 5 log value ( r->cdc) description 0x29 0x10 0x1E 0x00 x x destination address destination address own address own address data size in bytes first data . The clock low and high periods had a length of 4us. Packet header.. The radio then sets its fs to low if it accepts the transfer. the size byte for the data and the data. then it sends the 4 byte addr header..The following works only with newer kenwood radios. The data is transfered in bytes ( 8 bits .

byte 4+data x size last data byte From this point I only write the data part of a packet initialisation handshake answer. direction: cdc->r byte 0 1 2 3 4 log value 0x11 0xA4 0x00 0x01 0x02 description command identifier cycle numer of the above packet ?? ?? ?? send after above packet. direction: r->cdc byte 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 log value 0x20 0x00 0x11 0x01 0x03 0x0B 0x0B 0x07 0x05 0x83 0x84 0xC0 0xC1 0xC2 0xC3 0xC4 description command identifier . maybe radio identification and caps.

direction: cdc->r byte 0 1 2 3 4 5 6 log value 0x70 0x02 0x0A 0x3F 0x03 0x0C 0x02 maybe disc count description command identifier play position info. maybe init ack from radio. direction: r->cdc byte 0 1 2 3 4 5 6 7 log value 0x20 0x01 0x11 0x29 0x10 0x00 0x01 0x02 changer address changer address maybe last bytes of cmd 0x11(cdc->r) maybe last bytes of cmd 0x11(cdc->r) maybe last bytes of cmd 0x11(cdc->r) description command identifier changer caps info. direction: cdc->r byte log value description .16 17 0xC5 0xC6 send after above packet. send after above packet.

.. . ) play status (1 .0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 0x60 0x02 0x00 0x00 0x00 0x00 0x02 0x00 0x01 0x00 0x04 0xBB 0x01 0x0B 0x07 0x01 0x22 0x62 0x26 0x09 0x30 command identifier maybe sub command id error code. 2 .random 6... 0 is no error changer status ( load...) some bcd number field. sections had 12 bytes size here command identifier . direction: r->cdc byte 0 1 2 3 4 5 log value description 0x42 0x02 0x07 0x0A 0x00 0x00 disc number track number text section number. tscan 1. dscan 2. eject. displayed when field 3 != 0 track number disc number min ( bcd ) sec ( bcd ) min disc ( bcd ) sec disc ( bcd ) min remain ( bcd ) sec remain ( bcd ) text info request.play.pause ) track order mode ( normal 0. .

0x04 0x02.0x02 0x02.0x02 0x07 0x01.0x05 0x06.0x00 0x00.0x00 0x02.0x02 0x02..6 0x80 text id ( 0x80 -> name 0x81 -> artist ) text info send after request. 01 down.0x00 0x00.0x00 2 3 4 5 0x02 0x02.0x50 disc+(toggle) description command identifier maybe event id ( 0 all up.0x01 0x02.0x50 0x50.0x50 1 0x02 0x01.0x00 0x04.0x04 0x01. sections had 12 bytes size here disc number command identifier commands send when keys on the radio were pressed.0x02 0x02. 06 hold ) 0x50.20 log value description 0x62 0x02 0x07 0x02 0x0A 0x00 0x09 0x00 0x80 x text id ( 0x80 -> name 0x81 -> artist ) text track number ( 0 -> disc title transfer ) text section number. 04 up.0x00 0x02. direction: cdc->r byte 0 1 2 3 4 5 6 7 8 9. 02 toggle.0x06 0x02.0x50 0x50.0x02 0x00 0x05.0x02 0x00 0x02. direction: r->cdc log discbyte value fwd(toggle) bwd(toggle) (toggle) (play) 0 0x50 0x50.0x02 0x00.0x00 0x00.0x00 key id .

Using the information above you should have some starting point if you are intrested in doing your own project. . it is simple to build a converter to send and receive these commands using a pc so you can find out the meaning of other commands and fields if you need.

Sign up to vote on this title
UsefulNot useful