Ford Bluetooth Interface (Control Phone With Stock Radio)




This is a project I started about a year ago. It is a Bluetooth interface for a Ford radio and is a direct replacement for the CD changer in my '99 Ford Expedition! All you have to do is unplug the CD changer and plug the Bluetooth interface in!





-Voice Dial (Siri and Google Now)

-Answer/Cancel Calls

I will include the full schematics and source code below. But first, lets walk through a few pics of the build!

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Laying Out the Board

Here is a few pics of me trying to figure out where everything should be mounted on the board. Also, I have the board mounted to my holder and I am starting to solder the connections. This is gonna be messy! I should add here that this is a shield that will plug directly into an Arduino Mega 2560.

Step 2: Coming Together

After playing around with placement, I decided on a good fit and got started. Here are some pictures of the results. Note: I am still waiting on a new style Bluetooth module (the BLK-MD-SPK-B) so that's why there are so many wires coming out of the shield and connected to a temporary module (the XS3868). As soon as it arrives Ill solder it to this handy breakout board I got from eBay (the small purple board) and it should mount to the male headers that I placed on top of the shield.

Step 3: Test Setup

I went ahead and set up a test stand at my desk so that I wouldn't need to sit in my truck to do the testing. The radio I'm using is the same unit that is currently in my truck. I bought the connector that plugs into the interface separately from Mouser (part numbers, ect will be in folder below).

Overall, the test stand worked very well!

Step 4: Finished (Almost) Project

The only thing that I'm lacking at this point is the BLK Bluetooth module. It's coming from China and should be here soon. I'll update the pics once it arrives.

Note: the LCD is used for debugging. The jibberish that you see across the bottom is the AT commands that are being sent to the Bluetooth module when you press a button on the radio.

So, tell me what you think and check out the source folder and video link below!

Source folder:


3 People Made This Project!


  • Made with Math Contest

    Made with Math Contest
  • Multi-Discipline Contest

    Multi-Discipline Contest
  • Robotics Contest

    Robotics Contest

14 Discussions


Question 5 months ago

Hi! I just found this and I’m very interested in building one, but the google drive link seems to be broken. Anyone have an updated link or info?

1 answer

Question 8 months ago

Hey, i have a problem that after initialization and some handshakes (some 0xE0, 0xFC, 0xFF, 0xC2, 0xC8 first against 0x9B then 0x9A... looks fine too me and looks like the described protocol from ) the Radio starts sending following Bytes "0x061-0x0AB-0x080-0x0C3-0x14F" every 5-10 seconds and nothing else, which my controller responses just with "0x006"(Acknowledge) and controller keeps on sending Changer status bits "0x071-0x09B-0x082-0x0D0-0x001-0x001-0x000-0x0B5-0x115". Messages recorded with a Saleae logic Analyzer (24MHz)
Can anyone confirm they had this message too?? maybe shielding or timing problem??

I tried many things, like changing the code to answer with different messages, adjust timing, different arduino, copied some code from "acpmon - Simon Works" example etc... nothing helps

I have a Ford Blaupunkt RNS4-TP132 with Navigation, I saw the first messages are looking like the "standard" protocol, so i am hoping it is using the same communication.
Messages recorded with a Saleae logic Analyzer (24MHz)


2 years ago


I was looking at the circuit diagram file and had a question about the C_4 and C_5 capacitors. Is the diagram supposed to show the C_4 capacitor as bridging the 1 (IN) and 2 (GND) connections? Or is it saying that C_4 is just on the 2 (GND) connection. Same for C_5. Thanks!

3 replies

Reply 2 years ago

Sorry for the poor diagram. I know it's difficult to read. C_4 and C_5 are electrolytic capacitors. That means they are polarized. The dark bar is the positive plate and the light bar is the negative plate. Both negative plates of the capacitors are connected to pin 2 (GND). The positive plate of C_4 is connected to pin 1 (IN) and the positive plate of C_5 is connected to pin 3 (OUT).


Reply 2 years ago

Ok, thanks! The PDF version of the diagram makes a lot more sense! when I open the .dia file I get some errors about components not being found which I think leads to a messed up diagram (shown below). Is there a plugin I need to install over the diagram software for it to display correctly?


Reply 2 years ago

In iOS open the settings app and click on "Bluetooth". It will show up under discovered devices.


4 years ago on Introduction

Hey awesome project. I'm planning to build it, now I have a question on the TLP250, what this is intended for? The ford ACP uses the RS485 protocol which is 2 wires (ACP+ and ACP- in the radio), where you connect in the radio the 3rd wire coming from the TLP250? Thanks!

1 reply

Reply 4 years ago on Introduction

Thanks! The TLP250 is an optical isolator (you can find the data sheet easily with google). You can feed it a large voltage and have it act as a switch for another device. It is basically a relay. I'm using it to interface the 12v "on" signal from the radio with an input on the Arduino. It would possibly damage the Arduino if I were to feed it the 12v directly. Instead, this basically changes the input from 12v to 5v. Knowing when the radio is on allows greater control in the software.

Do you have access to the build folder? I have it as a link at the bottom of the instructable. It has the complete circuit diagram which may help you better understand.

Let me know how it goes and if you need anymore help!