Introduction: Ford CD Changer Emulator - Arduino Mega

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

Step 1: Let's Get This Party Started!

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.

Step 2: Parts & Soft

Parts youre gonna need:
  • Arduino Mega (you can always use another, but remember to read manuals about blocking PORT etc.)
  • 100ohm resistor
  • 5v LED
  • transisotr L78509CV (this is an option)
  • two capacitors (I've used 10uF, but should be .. I don't know, 470uF was good ;) )
  • Ford 12pin multilock (search on the internet)
  • LCD compatibile with hd44780 (mine was jhd162a)
  • MAX485
I've decided to use L78509CV only to get 9V, you can get 12V from radio straight ahead.

Remember - check the code - on schematic pins for LCD may be diffrent, than settings in the code (I've created schematic first, then soldierd universal pcb).

"Why do I need capacitors?", you may ask. Well, you need them between your jack connection and L+ and R+ - I've got nice sound from my iPhone after adding capacitors. I have plans to build or use opamp (OPA! Amp should work fine).

I've used Arduino 1.0.5 software.

You need an TimerOne library:
http://playground.arduino.cc/Code/Timer1
(http://code.google.com/p/arduino-timerone/downloads/list)

Step 3: Finito

Full code is in the attachment.

Things to do:

  • nice box :)
  • better cable (I've used ethernet cabel, its sucks)
  • AND gate - you can get 8V or 9V from radio (pin CD ENABLE) when radio is on, I don't know how (right now of course) what to use to build AND gate, because 12V from radio is constantly alive, so you have to put on/off switch, or and gate (when 9V is on, put 12V into circuit)
  • use OP AMP ?
Hardware Hacking

Participated in the
Hardware Hacking