serial data interfacing, where to start?

Hello,

I'm really hoping somebody could help me with some pointers on using the arduino to interface with another device. My car stereo has an un-used cd changer port. I'm trying to open the audio input, but first I need to fool the stereo by emulating the cd changer. I'm hoping the arduino can do this.

My biggest weakness is in the software. The stereo has a data-in and data-out pins (no clock). I've found nothing online to describe what protocal is used - maybe it's something like rs232, but I'm not sure. Someone mentioned it's 2 wire (rx/tx) async. serial protocol with 9 bits of data where the 8th bit is used for synchronisation - but I'm not certain...

Could someone suggest any pointers on where to start? How to test what kind of commands to send to open the audio in? Would you know where I could find some examples of simple programs that might be able to help me figure out how it communicates?

Any suggestions welcomed and appreciated, thanks!

I suggest you try to find more information on the protocol by searching google or some of the in-car audio sites. Use the manufacturer and model name of the radio unit and terms like protocol to see what you can come up with.

I'm really hoping somebody could help me with some pointers on using the arduino to interface with another device.

That's quite possible...

My car stereo has an un-used cd changer port.

OK. Fine. Be nice to know what brand and model it is, but if it's a secret, I'm fine with that. I like guessing games.

I'm trying to open the audio input, but first I need to fool the stereo by emulating the cd changer.

Why are you trying to open the audio input? Why do you think that fooling the stereo is the right approach?

I'm hoping the arduino can do this.

Maybe. Maybe not. Still too many unknowns.

The stereo has a data-in and data-out pins (no clock).

How do you know this?

PaulS,

I didn't want to bore people with too many details, I'll gladly pass on any information I have if it will help,

It's a blaupunkt head unit, (model no 937 CD NSB)

I'm trying to connect my MP3 player to the aux input of the stereo. From all the googling I've done, it seems this auxillary audio port will not open unless it gets the right command from the cd changer that should be connected to it.
I tried shorting the tx and rx pins, which apparently worked on older models, but doesn't with my version of firware.

There's a diagram on the case showing the pin outs for the CD changer plug, left and right audio in, 12Vdc, ground, data in and data out.

Mem,

Here's a couple of sites with some info, but that's about all I've been able to find that's useful so far.

http://www014.upp.so-net.ne.jp/harima60/auxin.html

Thanks very much for your help.

From those links it looks like you may find more if you search using terms:
blaupunkt DMS
or
blaupunkt cdc.

I will be interested in following you progress, I have an alpha 156 with a blaupunkt cd changer that probably uses a similar protocol.

Hi, Im very interested in your investigation. I have an Alfa GT and an interface Blaupunkt USB/Bluetooth.
You know what is the code to interpret the titles of the songs?

Thanks

PD:: Im spanish... sorry for my english :slight_smile:

I hope you're not waiting on me to solve this! :slight_smile:

I took the stereo out to try and bench test it, but I couldn't even get passed the security settings. Seems it needs to be connected to the cars computer to function... and seeing as it's feburary I'll be waiting until the weather warms up before I sit in the car with my laptop...

one thing I did find is that the data in and out use <1Vdc for logic 0 and >3.5Vdc for a logic 1, useable levels for the arduino I guess.

If I have any breakthroughs I'll be sure to let you know, and if you have any suggestions about how you think the comms could be tested, please let me know!

Thanks...

hey DrPluto,

how is it going your research on blaupunkt protocol?
i'am interested on the same thing, i already tried to sniff my blaupunkt headunit, got some responses but dont know the exact protocol to estabilish communication like a cd changer.

it seems there is to much information on internet about the protocol, but nothing official. Is it 9 bits? is it 19200 baud? is it NRZ?

Ntrindade,

I haven't touched this project for some weeks now, so I'm no further along since my last post. I think it will be some weeks before I have a chance to look into this again. But if I do find anything I will be sure to share it with you, as I'm sure I will need help with it!

Best of luck with your search!

Hi there,

I too am working on the Blaaupunkt DMS protocol, trying to implement it for my car radio. While I'm not stuck yet, I do get some commands which I don't know what they should do (for instance).

This protocol uses at startup 4800 baud, 9 bits, 1 stopbit. It can be 'directly'conneced to a PC serial port, though the RX/TX levels of the radio are at TTL 5V (but inverted to be compatible with RS232C of a PC).

Bit 8 is always '1' for commands (the CDC has adress $180 so to speak, at least the one I'm trying to implement).
if bit 8 is zero it means you are rx/txing data. $14f is the end-of-message command.

If someone can dump their communication here or otherwise make it known to me, I'd appreciate it a lot: maybe it can fill in a/the gaps for my trials...

Thanks!

Rudolf.

RudolfC,

please tell me what kind blaupunkt model do you have?
i have a blaupunkt fiat 199 head unit, already sniffed the tx/rx line. every time i turn on head unit, i get the stream "E0 06 80" (sniff at 9600 baud, 8 bits).

meanwhile i will make some test based on your information (4800baud, 9 bits).

Hi,

I have a Blaupunkt TravelPilot Freestyler, behaves probably the same as the travelpilot E1/E2.

My CDC connector does not have a clock input. If yours does, you need another protocol: vwcdpic (for microchip) would be useable then (hopefully).

Head Units with clock input are older than the versions without. My radio has been manufactured in 2005. For instance 2002 radio's use the older protocol with the clock input.

Maybe you should check that other project to see if you can find protocol info that resembles the data you found.

BTW The newer protocol startsup in 4800 baud, then during init swithces up to 9600 (9bit, 1 stopbit, no parity).

Bye!

Rudolf.

Hi again,

DrPluto, would you have some info yet?

Over here, after power on, the HU starts with sending (@4800 baud):
$180, $0AD, $14F: purpose unknown. I just accept is by echoing the first two words ($14F is never echoed by the CDC).

Then, HU sends:
$180, $048, $001, $14F: purpose: set 4800 baud. accept it and send back afterwards:
$10F, $048, $001, $14f, which is completely echoed by the HU.

Now HU sends:
$180, $048, $002, $14F: purpose: set 9600 baud. accept it (by echoing the first three words as soon as they arrive) and switch baudrate.

Now it gets interesting. Hu sends @ 9600 baud:
$180, $0A9, $000, $14F: purpose unknown. Accepting it.

Then HU sends:
$180, $0A7, $14F.: purpose unknown. Accepting it (by echoing the words exept $14F of course).
I tried sending single words with a small time delay between each one: $17C. Would this be a heartbeat or something? ( tried this because I found this in MrBlau's dump on another forum somewhere)
Wether I send it or not doesn't seem to interest the HU atm.

Hu sends:
$180, $0A5, $14F: purpose: send TIME info (mask). Accepting it and starting to send the following command to the HU:

$109, current track minutes in BCD, current track seconds in BCD, $14F. HU echoes everything as it should.

Next, Hu sends:
$180, $021, $14F: purpose: 'pause', stop sending time, cd, trackinfo.

I've got more, also some commands I don't know what they should do (I don't have a CDC here, just someone's sourcecode and two dumps, and my HU of course).

IF there's anyone who's finding about the same results as I do I'd be very interested in dumps or more specific info about commands. You could have that if you have a CDC because you can then send it commands by using the HU's buttons and such..

Anyone?

Bye!

Rudolf.

hi everyone,

RudolfC, i have been playing with my car headunit and so far i have been using your information. The codes seems to communicate with car radio. On last code 0x180, 0x021, 0x14F, i can only get on my headunit a text "CD CHANGER", but still no audio input accepted by headunit.

Pressing next track buttons or volume up, dont show any data (RX/TX) or make any change on radio.

Do you have more codes that i can try? i think from this point, the "cd changer application" must take control, sending commands or information to headunit.

hi everyone,

im still researching the blaupunkt protocol and already find the meaning of new codes.

when HU send
0x180 0x0a5 0x14f -> play command, request cd number or track time.

when HU send
0x180 0x021 0x14f -> pause command (on my HU equal to mute command)

when HU send
0x180 0x082 0x14f 0x180 0x002 0x14f -> next track request
0x180 0x081 0x14f 0x180 0x001 0x14f -> prev track request
|

  • after this command i think it is suppose to reply with something, since next command (0x180) take about 2ms-4ms to be received.

from the other side, the meaning of some commands from "cd changer"

0x109 0x003 0x022 0x14f -> send track time (in this case 3:22)

0x101 0x007 0x001 0x14f -> send cd number (in this case CD 07)

i believe few people still interested on blaupunkt protocol, but if anyone have more information about this, please reply. The information collected so far is enought to build a simple cd changer emulator, but im sure there is more commands to be interpreted.

bye.

Hi again ntrindade,

I found the same packets :slight_smile:
All your assumptions are exactly as I did.
Please modify the settings for the serial port to have 2 stopbits instead of one as that's actually correct.

After the next and prev command (bitmasks are in there: b7: you have a key pressed followed by a key release sequence)

Can you tell me what CDC changer you are sniffing? I now have a CDC-A09 here on which I made progression..

Bye!

Rudolf.

BTW:

The CD number is actually the CD number followed by the tracknumber.

You also send this command if you do CDC inited mag scan: just make sure the tracknumber is the currently playing track then as otherwise the display will momentarily flicker :wink:

Can you tell me your CDC reply after it received the HU command 0x0a7 BTW? I call this one DMS_HU_PROTOCOL..

Rudolf.

hi,

sorry, but actually i dont have a cd changer, im just trying to communicate with radio unit from cd changer port. i just attached a microcontroller to the port and tested different commands.

already tried to reply command 0x0a7, but i didnt get any conclusion yet. i think radio is waiting for some text information, like "CD ERROR" or "NO CD". but i dont bet my fate that it is possible to write text to radio.

Try replying with:

DMS_CDC_PROTOCOL; (0x10e)
DMS_PROT_IDCA09; (0x009)
DMS_PROT_VERSION; (0x006)
DMS_END_MSG; (0x14f)

A CDC-A08 sends 0x008 followed by 0x001 I found somewhere on the net..

BTW: what's the production year of your head unit? do you have a photo or link or something that tells me more about it?

Thanks!

Rudolf.