I'm working on an audio application for mobile phones. At this point in time I'm trying to measure audio latency of a mobile device by feeding colored noise into its microphone jack and having it play it back through the headphones, and correlating/deconvolving the two to obtain the time delay.

This all sounds great on paper, but my problem is that the phone will only accept inputs of certain impedance as microphones, or at least that's my guess. I've tried several microphones (actual transducers), and some of them worked while others didn't. As a rule of thumb, headset-like mics worked. Vocal-like dynamic mics didn't. I'm guessing there has to be enough bias current for a microphone to work. When simply taking an audio cable from the output of a computer or MP3 player and putting it into the microphone jack of the mobile phone it never works. What I mean by that is that the device does not recognize presence of an external microphone and does not switch to it as default input.

I don't know a whole lot about current biases and such, but do you suppose there's a way of building a circuit to somehow "trick" the phone into thinking that there's a microphone plugged into it when it's a line in instead?

\$\begingroup\$Which phone? Some have headset inputs, some have dedicated line inputs ("enhanced USB"), etc.\$\endgroup\$
– endolithOct 10 '11 at 19:53

\$\begingroup\$@endolith It's a TRRS headset input which I'm splitting into headphone stereo and mic using a splitter. I'm testing it on iPhone4 and Nexus S.\$\endgroup\$
– PhononOct 10 '11 at 19:59

\$\begingroup\$I've been looking for this answer too! I have a Nexus One, and I haven't found any way to connect an external source (including using purpose-built line-level-to-microphone-level attenuators).\$\endgroup\$
– Kevin ReidOct 10 '11 at 23:39

1 Answer
1

That way the headphones will work plugged into a normal TRS jack, too.

The microphone input is meant to connect to an electret mic with a circuit like this:

The bias voltage, resistor, and DC-blocking capacitor are all inside the phone. So just connecting a signal source like a computer's sound card to the microphone input (with ground to the ground ring) should work.

If your sound source's DC output resistance is too low (normally a good thing), the phone could be interpreting it as a continuous button press (Answer or Play/Pause), because the headset button shorts the mic line's bias resistor to ground. Does it do anything to indicate that it thinks a button is being pressed? If this is the case, just put an electrolytic capacitor in series with your source, like 10 µF to 100 µF between your source and the microphone input. This will block the DC current from the bias resistor while allowing the AC signal to pass. Larger capacitance will have better low-frequency response.

For instance, if the input impedance of the phone is 2.2 kΩ, 10 µF will have a -3 dB cutoff frequency of 7 Hz, which is plenty.