I have a little mystery for you...
I want to connect my motorcycle helmet communication set to my Android phone, including the push-to-talk (PTT) functionality. This is a simple wired setup, not Bluetooth.
The communication set in the helmet is straightforward: two 32 Ohm drivers and a microphone. I made a cable according to the CTIA specifications for 3.5 mm headjacks at source.android.com. In the cable I spliced in a push button for the PTT function:
(More about the resistor later) It can't be much simpler than this, right? Now the weird part:
Push to talk doesn't work.
The speakers are working; the microphone works fine, I can talk and record sound from it. Yes, I know ground is the 3rd ring, not the 4th (last). However, whatever I do, pushing the button does not activate the PTT function.
Of course I tested it with an off-the-shelf headset which works perfectly. I measured its characteristics: drivers are 32-33 ohm, microphone 1.13 kOhm and pushing the button shorts the microphone circuit.
The microphone in my helmet has a slightly lower DC impedance (around 890 Ohm) than the Android specification (>= 1000 Ohm), so I inserted a resistor in line with the microphone; I tried values from 100 to 1 kOhm, but still no PTT function. Electrically I cannot find any difference between the off-the-shelf headset and my setup when measuring at the 4-pin connector.
But, it even get's weirder. If I unplug the cable from the helmet (so no drivers or microphone, just the cable with the switch), PTT works. Of course there's no sound but the application reacts to the pushes.
And oh, I tested with two different Android phones by different manufacturers: the same result.
The only difference that I can possibly think of is that the microphone in the helmet might a dynamic type while the one in the headset could be an electret; but how to test that without breaking the headset open?
Could it be that Android phones put a low-frequency signal on the microphone line to detect one? But surely, a 1 kOhm resistor would be enough to fool that.
Mic open circuit voltage: 1.79 Volt (measured at the headphone jack)
Microphone DC resistance: 0.90 kOhm
With microphone attached: 0.54 Volt
Button closed: 0.00 Volt
Microphone DC resistance: 1.13 kOhm
WIth microphone attached: 1.32 Volt
Button closed: 0.00 Volt
Fixed 1 kOhm resistor: 0.58 Volt
So definetely a different voltage, which is not explained solely by DC resistance..