Car radio head unit that sends headset commands

Search This thread

Chinasaur

Member
May 26, 2010
9
0
Hi all, first post but I'm really curious about this. I have a Droid Incredible and a 2008 Corolla with the factory radio. I added an aux-in 3.5 mm jack (several actually) to the head unit using one of the standard kits that plugs into the CD changer port on the back of the radio. This works well, although I had to get some mini TRS-TRRS 3.5 adapters to stop the Incredible from having the problem where it thinks it's getting headset commands through a TRS headset plug and goes crazy.

The thing that I would love is if I could control my Incredible with the buttons on the head unit, at least to have the ability to skip tracks forward/back by pushing the radio buttons. As far as I can tell, this should be possible given the hardware. There are kits that use the CD changer port on the radio to control an iPod, so we know we can get the track forward/back buttons sent out. And we know the Incredible will take headset commands like play/pause, answer, voice dial, and track forward through the headphone jack (I know this partly because these are the things my Incredible does when it is going crazy from the TRS input).

So is there no adapter that will connect to my car radio CD changer port and send the radio button pushes out as TRRS headset commands? I am really surprised this doesn't exist, but have searched around the web to no avail. Considering trying to build something but I don't have experience with an electronics project of this scale.

Alternatively, there is probably going to be an audio in/out + remote control for the Incredible usb adapter at some point, like the one for the Droid Eris. I assume this will be available since we know the Incredible is wired for audio through the USB port (I know this from the videos online where the Incredible does video out with audio through the USB). So this would appear to be another option for running the car radio commands into the phone.
 

Chinasaur

Member
May 26, 2010
9
0
Okay, barring any device surfacing to handle this, I'm going ahead with some research of my own. Apparently one reason devices and information are not widely available is that Apple may have a patent on some forms of headset commands through the TRRS 3.5 or 2.5 mm jack. Since I'm a new forum user I can't post any links out right now; sorry.

I have a SkullCandy headphones+mic. They have a single button next to the mic. This button works to pause/play the Meridian music player on my Droid Incredible. Pushing the button twice rapidly pauses and then skips to the next track and plays. If I push the button when no music player is open, it opens Meridian and plays. If I push when some other music player is open, it opens Meridian and plays.

Presumably the button works by changing the resistance over the headphone wires. Checking the resistance between the sleeve (which seems to be ground) and the other contacts (Tip, Ring1, Ring2) I find that without the button pressed, the resistance is about 1 kOhm for all three. Pushing the button changes the resistances to be: 17 Ohm, 17 Ohm, 1 Ohm for the Tip, Ring1, Ring2 respectively.

So if I can figure out what the head unit sends to the CD changer when the radio buttons are pushed, I may be able to rig up something useful. I am still curious what other signals might be possible. When I have the shorting out going crazy behavior there definitely seems to be a case where it opens the voice dialer window or calls the last number in the call list. Not clear whether this is a different hardware signal or something about the software state of the phone when it gets the resistance change. Haven't yet tested what happens when you push the button and there is a call, but presumably it answers/hangs up. There are other headsets (for Apple players mostly) that have additional buttons too; not sure if that's relevant.
 

sda2

Senior Member
Jun 8, 2008
97
11
Löhne
Hmm, I need a headunit for the same functions.

AFAIK for controllling a smartphone over bluetooth it must support AVRCP for controlling and A2DP for audio.

So I found this unit: Sony MEX-BT3800U

Iam going to buy this soon (need to sell some stuff).

Hope this runs with my Kaiser:D
 

Chinasaur

Member
May 26, 2010
9
0
@sda2: that one looks pretty good! A little pricey for me and I kind of like the aesthetic of having the factory radio but just having it do more. Keeps my car looking cheap and not theft-worthy.

I have confirmed that pretty much everything I've seen the phone do in response to headset commands is just dependent on the context the OS/software is in. So other than the single click or double click there doesn't seem to be a lot more that the phone is expecting to handle.

However, I did find an app called DroidShuffle that allows you to assign more functions to things like a long click or a triple click. Sadly, I couldn't get this app to work with my setup on the Incredible. But I think it is an interesting concept; since the OS only seems to understand 1 type of click, just write a service that lets it respond differently to different numbers or duration of click. Then setup a circuit that converts the different car radio head unit button pushes into these differentiable click trains.

Don't think I'm going to put the time in though; will wait to see what kind of control you can get through the micro-USB.

Another possibility: a device to convert the head unit button pushes to bluetooth AVRCP. This might be more widely useful, but I think the complexity and cost versus a wired solution push it towards the point where just getting a new head unit makes more sense. Unless I can find a simple generic AVRCP chip...
 

Dukenukemx

Senior Member
Jul 24, 2008
1,151
52
Jersey
I think what you're looking for is something like this? It comes with a wireless strap that you can put on your steering wheel that gives you control over your device. Basic stuff like answering phone, play music, and move track forward and back. Plus, it uses a 3.5mm port, so no stupid bad quality FM radio. As long as Bluetooth is enabled, it automatically connects to the device. So all you gotta do is walk into the car.

BTW, I have this hooked up to my Pioneer stereo, using the P-BUS that all Pioneers have. I just needed a adapter. Not to confuse anyone, this needs a car stereo with a 3.5mm aux jack. You can usually get an adapter that plugs in the back where the CD changer would normally go, and avoid the terrible FM radio quality. Don't waste your time with FM radio adapters.
http://www.amazon.com/gp/product/B0011UIX2K/ref=oss_product

41ldlngqWDL._SL500_AA300_.jpg
 
Last edited:

Chinasaur

Member
May 26, 2010
9
0
@DukeNukem: This looks nice; I especially like the steering wheel remote. I am still going to play with decoding the output from the head unit buttons, and I ordered a microcontroller and bluetooth module to see if I can actually get it speaking AVRCP without giving myself a stroke. But that has moved into fun project land so I think your suggestion will be the practical solution, especially if I can find it for < $50.
 

Fairamay

New member
Feb 27, 2010
2
0
yeah i also need that for my relative who has the same problem about the Car radio head unit that sends headset commands

thanks!!
 
Last edited:

Chinasaur

Member
May 26, 2010
9
0
Well, I bought a Really Bare Bones Board (Arduino compatible that's small, cheap, and easy to breadboard) from Modern Device. Based on several Corolla AVCLAN sniffing projects out there on the web (Marcin, SigmaObjects, AngryCamel) it was pretty easy to get something up and running that sniffs the bus for head unit messages.

Since I already paid the $50 for the box that emulates a CD changer to add aux-in, I don't need to worry about that, but it should be pretty easy to accomplish that with the microcontroller as well.

For sending headset commands through the 3.5 mm jack, I think I'm pretty close. Not exactly sure how to emulate a click on the headset button, but I would guess a simple transistor can do the job since it's basically just a change in resistance.

I bought a bluetooth chip though, so I am trying to get messages to my phone through that for now. There is a post on android forums where someone has hacked the pinout for the USB/AV port on the Droid Incredible too, so I'm hoping it will be possible to send commands through that at some time soon.

Will plan to post project details at some point, but it's still a work in progress for now.
 

futaris

Senior Member
Jul 27, 2004
100
2
44
It should be fairly trivial to modify VWCDPIC (for Audi / Volkswagen / SEAT / Skoda) etc, to do this. I may look into doing this for my HTC HD2 soon, if no-one has done this yet.

For emulating the button pushes, on the TRRS I think you should just connect the lines to each TRR, and just leave them in input mode (high resistance). Then when you want to send a command, just pull the line down to ground. If you're worried about applying too much resistance, add a resistor between the micro and the tip or ring.

On my HTC headset:
Play/Pause/Phone - Pull the second ring down to ground (Mic line)
Previous Track - Pull the first ring down from 20kOhm to ~235 Ohm
Next Track - Pull the tip from 20kOhm to ~600 Ohm
 

Chinasaur

Member
May 26, 2010
9
0
Thanks for that futaris; I'll check out whether I get different behaviors for pulling different lines to ground.
 

alda

Member
Nov 2, 2008
14
0
Hallo,
I have in my car VWCDPIC working with my android HTC desire phone, but now without remote control of this phone. For me is enough implement jump between tags and play/stop function - so the same functions which I have on headset for my phone.

I checked firmware which is here :
http://www.k9spud.com/vwcdpic/devel/vwcdpic3/flash/

and checked source code. I found inside source code this information :

; VWCDPIC Volkswagen CMR PIC16F627(a)/PIC16F628(a) Connections
;--------------------------------------------------------------------------
; PIC RA3 -> VW Pin 2 Clock to Head Unit
; PIC RA2 -> VW Pin 1 Data to Head Unit
; PIC RB0 <- VW Pin 4 Data from Head Unit
; Make sure PIC and VW Head Unit have common GND.
;
; PIC RB6 -> PJRC MP3 Player RX (19.2Kbps serial)
; PIC RB7 -> Archos Jukebox RX (9600bps serial with weak pull-up)
; Make sure PIC and MP3 Player have common GND.
;
; Volkswagen CMR:
; PIC RB1 -> TP11 when button Mix is pressed has about 15
; seconds logic low output (one pulse)
; ALSO:
; when soft-button CD6 is pressed, TP11 has
; about 3 seconds logic low output (one pulse)
; FINALLY:
; when button SCAN is pressed, TP11 has about 20ms
; logic low output (one pulse)
;
; PIC RB2 -> TP14 when button Next Track (>>) is pressed, has
; about 20ms logic low output (one pulse)
;
; PIC RB3 -> TP15 when button Last Track (<<) is pressed, TP15
; has about 20ms logic low output (one pulse)
;
; PIC RB4 -> Track number is incremented when one pulse (low active) on RB4
;
; PIC RB5 -> Track number is decremented when one pulse (low active) on RB5

Important information is that on RB2 and RB3 is pulse after next/last track pressing. But it's for PIC16F627 with 16pins.
What I need is modify this firmware for PIC12F629 which is now connected :

; VWCDPIC 3.x PIC12F629/PIC12F675/PIC12F683 Connections
;--------------------------------------------------------------------------
; PIC GP0 -> VW Pin 2 Clock to Head Unit
; PIC GP1 -> VW Pin 1 Data to Head Unit
; PIC GP2 <- VW Pin 4 Data from Head Unit
; Make sure PIC and VW Head Unit have common GND.
;
; PIC GP4 -> PJRC MP3 Player RX (19.2Kbps serial)
; PIC GP5 -> Archos Jukebox RX (9600bps serial with weak pull-up)
; Make sure PIC and MP3 Player have common GND.

so I want cancel GP4 and GP5 - I don't need this serial communication and on GP3, GP4, GP5 I need next/last track pulse and play/stop pulse.

Is there somebody who is able change program and implement it ?

Thanks

Alda
 
Last edited:

seylerc

New member
Aug 29, 2010
1
0
You guys inspired me to look deeper into this. I found a few potential solutions. I am not one to really spend a lot of money on this type of stuff, but there is one heck of a solutions commercially available:

(can't post a link, but lookup Scosche BT1200)

If you click on the download link and look at the instructions, you can really see how this thing works. It is a pretty elegant solution, but then again you pay for it as well. I like that it allows BT streaming or direct connect.

It seems to me that the whole reason this stuff is so hard to find is due to Apple's longtime patent of a way of controlling portable audio devices. I am not sure what the specifics are, but you certainly don't see anyone making a nice adapter/connector from iPod to TRRS that codes these commands for TRRS signaling. My fiance has a car with play/pause, volume controls on the steering wheel, and I would love to have it all work with a generic mp3 player, but unfortunately it is set to work with an iPod, and there doesn't seem to be any other way about it. It is almost like consumers are being bullied by these patents. I want the functionality, but I am not going to be stuck with buying from that brand.
 

alda

Member
Nov 2, 2008
14
0
I think that best way is firmware modification as posted futaris , but I don't have enough skills to do that. Or is some modificaton for HTC phones ( and not only HTC - it's only about resistance ) available now ?

Alda