Well.. I've Ford Focus, and one day my original radio, Ford 6000, have stopped receiving any FM station. It turned up that the FM proccessor is down. I had another Ford radio - 5000, with a cassettes player.
I've started wondering - ok, there is a sign "changer support", let's check our polish ebay for changer. I've found the emulator of changer, but it was quite expensive, so I thought - there has to be the way, to build it on my own.
And then I've started to googling - I've found the yampp project, customized by Andrew Hammond, with ACP for Ford. But it was build 10 years ago, many of files wasn't available, links were down. But - I had a code and some instructions, and that was enough. I've ported Andrews code to Arduino Mega and made a Ford emulator for my own.
Check the progress:
http://www.youtube.com/watch?v=e6wNowo8DjE
and working beta version:
http://www.youtube.com/watch?v=FykGC-gzuNc
Ok, so let's begin.
I've read about communication - radio is using RS485 protocol, so we need a MAX485 for communication. In included datasheet was basic schematic - everything is included on my schematic - I've used an led just as a indicator of communication.
You should use serial port no 1 (not 0) - RX1 and TX1 ports (18 and 19 pins of Mega) - basicly because of blocking ports etc.
Remember - don't include and don't use Serial library of Arduino - it's slowing things down (even for debbuging - it's better to use the lcd for that, but about lcd I'll mention later).
The basic problem was to get things synchronized - Yampp was prepared to use external oscilator with 7.37MHz clock, Arduino have 16MHz oscilator. And as I mentioned before - debugging with Serial library and arduino serial monitor on PC was causing errors while handshakes between radio and arduino.
After I've decided to resigne from using Serial library at all, I've discover (only by mistake) that handshakes are almost ok. It tourned up that even one more or less character on lcd may be a cause of synchro errors. That's why you shouldn't change the code.
My project looks like shield for Arduino - I've made it on universal pcb.
Full code is in the attachment.
Things to do: