- Part 1 - Installation of the Car PC
- Part 2 - Adding a Rear-View Camera
- Part 3 - Time for some Software!
- Part 4 - An LED message sign
- Part 5 - Voice Commands
- Part 6 - Phone Integration
- Part 7 - XM Radio Integration
- Part 8 - Permanent Internet
- Part 9 - Front Camera
- Part 10 - Digital Dash
- Part 11 - Shuttle Jog Wheel
- Frequently Asked Questions
Phone Integration via BluetoothMaking your CarPC talk to your Bluetooth-enabled cell phone should be easy, right? I mean, your cell phone has Bluetooth... and your car PC has Bluetooth (either built-in or with a USB adapter)... so what's the problem? Well, as I found out, there are a lot of problems. From what I've seen, no "commercial" CarPC software (Centrafuse, Streetdeck) has properly working Bluetooth support.
There's also other software solutions, like PhoneControl.NET (which is not available anymore) and FreeFone (which seems very half-baked).
I use a PocketPC smart phone, so integrating Bluetooth hands-free shouldn't be this complicated. It's a computer in my pocket, seriously! I knew trying to do this integration via the "software" route would be a nightmare. So I went the "hardware" route.
First, I did some research, and then bought a Parrot CK3000 Bluetooth car kit:
This kit seemed to do everything I needed, and the reviews said it was quite a nice kit. It also seemed like integrating it into my CarPC setup would be not too difficult.
It's designed to cut off your car speakers when a call comes in or when you dial a call, and has it's own internal amplifier. I didn't want that -- I wanted the CarPC to control the audio. It turns out that the "mute box"'s grey wires (for the positive side of the rear speakers) can be used to switch arbitrary voltage, such as 12V.
So, here's what I did:
First, I opened up the little control knob and soldered 4 wires onto the red and green phone buttons.
These would later allow a relay to control the phone buttons. Here's what the box looks like once it's all closed up:
Then, I added some more relays to my existing Arduino Box:
The left three relays are controlled by the Arduino and are "outputs" -- the bottom left two are for the red and green button. The right three relays are "inputs" -- 12V from the car turns them on or off to trigger commands on the computer.
In the case of the phone setup, I've wired the "mute box" so that when the mute is off (not in a call), the relay is switched on. As soon as a call comes in, the Parrot mute box cuts power to the relay. The Arduino sees this and sends a command to the computer, telling it that the mute has been initiated.
When the CarPC computer gets this command, it carries out a series of instructions, such as pausing the music, increasing the volume for the phone, and so on. To get the phone audio into the CarPC, I bought a "Line Output Converter" for $30 at a local car audio shop. This takes the amplified audio output from the Parrot box and connects it to the Line In on the sound card. With that done, the software now simply unmutes the Line In when a call is in place, and mutes it again when the call is complete. It also knows when a call is coming in -- when the mute signal occurs, but without me issuing a voice command to start "phone mode", it knows that it must be an incoming call.
Update: After testing this solution for several months, the one major problem that made it almost unusable was routing the audio through the PC. This introduced a delay to the audio and created an echo that the caller could hear -- very annoying. I solved this problem by buying a small communications speaker at a surplus store and wiring it directly into the Parrot harness -- it was originally intended to drive your car speakers, so it should have no problem with a smaller speaker. I hid the speaker in my center console, and sure enough, the echoing was gone.
But as with any solution, there are some negatives. Let's look at the pros and cons of my solution vs. a "proper" CarPC Bluetooth integration, if you can get it working:
My Solution w/ Parrot device:
- Pro: Works 100% of the time.
- Pro: No need for bluetooth drivers or com ports or stacks
- Pro: Works with all cell phones
- Con: No caller-ID on-screen.
- Con: No ability to dial via the screen.
- Pro: Caller-ID can work
- Pro: Uses your existing audio connection and existing microphone
- Pro: Can (with phone support) read your phone book
- Pro: Can dial calls from Touchscreen of CarPC
- Con: Unreliable!
- Con: Different bluetooth adapters and stacks cause massive headaches
- Con: No good software out there to do this properly.
- Con: Doesn't work with all models of phone
I think my solution is perfect for me!