Mobile device, detecting a contact closure...

My app, simply needs to detect a contact closure.

In code, I have this available:
Headset <state_nvar>, <type_svar>, <mic_nvar>

Reports if there is a headset plugged into your device, and returns data about the headset. The parameters are all names of variables that receive the data:

<state_nvar>: 1.0 if a headset is plugged in, 0.0 if no headset is plugged in, and -1.0 if unknown.

<type_svar>: A string describing the device type of the last headset known to your device.

<mic_nvar>: 1.0 if the headset has a microphone, 0.0 if the headset does not have a microphone, and -1.0 if unknown.

And I found this info:

On Android phones, on iOS devices, and on HD Audio PCs, no mechanical switches in the socket are used. Instead, the headphone socket has 4 contacts instead of 3, and accepts both 4-contact headsets and 3-contact headphones. The sleeve of the 3-contact headphone audio jack connects two of the socket contacts together.

One of the contacts is responsible for microphone and usually feeds 1.5-3.3v of voltage through a current limiting resistor (2-10 kOhm), which is necessary to bias a JFET transistor in the microphone capsule of a headset. DC resistance measurement between the microphone pin and the ground pin of the socket can be used to detect the kind of device plugged in - it will be 0 Ohm for a headphone, infinitely high for no device connected, and about 2 kOhm thereabouts for a headset with microphone.

The bias current limiting resistor forms a part of voltage divider network, with the other part being the above mentioned DC resistance. Voltage measurement on the microphone pin is taken to both determine the sound pressure on the microphone (through a 100hz high pass filter thereabouts) and the kind of jack or device inserted (through a low pass filter or noise rejection logic), allowing this design to be implemented without extra parts, if the filters are implemented digitally. Corresponding to the above DC resistances, you will measure about 0V on the microphone pin if headphone is connected, the full mic bias voltage in case nothing is connected, and something in between in case a headset is connected.

Switches in the audio jack like in the answer above were common in older electronics, but are incompatible with headsets and are just too bulky for a high-tech handset.

Not sure how to interpret this; do I connect a 2K resistor between the mic pin and ground, via my contact-closure, to give me a mic/no-mic condition?

Failure is not an option...it's bundled with the software.

Comments

  • 5 Comments sorted by Date Added Votes
  • ercoerco Posts: 19,330
    From https://www.fairchildsemi.co.jp/technical-articles/Mobile-Phone-Audio-Jack-Detection-Solutions.pdf :

    If a
    3 pole plug is inserted, the mic line is pulled to GND and the comparator outputs a Low to the baseband.
    When a 4 pole plug is connected, the mic line is typically 1.8V with no Send/End key press. When the
    Send/End key is pressed, it shorts the mic line to ground and the comparator outputs a Low to the
    baseband.


    So apparently a simple pullup resistor (your article says 2K is fine) wired from mic to ground should do it, with a N.O. momentary switch in parallel.

    But note the caveat on that page:

    This causes a fundamental issue- if a 4 pole headset is connected while pushing the
    Send/End key, the baseband registers a 3 pole jack, and the system may never recover.




    "When you make a thing, a thing that is new, it is so complicated making it that it is bound to be ugly. But those that make it after you, they don’t have to worry about making it. And they can make it pretty, and so everybody can like it when others make it after you."

    - Pablo Picasso
  • Many thanks, Erco.

    Hopefully the caveat won't apply because this will be a permanent connection inside my tablet enclosure.

    This is my machine-operator interface and I want to eliminate a bunch of hardware push-buttons by using touch-screen soft buttons. To avoid accidental triggering of machine movements, I am incorporating a "dead-man" button as found on robot teach-pendants. A half depression closes the contact but a full depression or release, opens the contact (apparently, some people tend to squeeze, rather than let-go when panicked).

    I just hacked-off the connector from a headphone/mic headset but these are strange conductors; extremely light-gauge and I can't read continuity to any of the plug contacts(???).

    Ordered a single 4-pole plug to test.

    Cheers!


    Failure is not an option...it's bundled with the software.
  • ercoerco Posts: 19,330
    edited May 16 Vote Up0Vote Down
    Mickster wrote: »

    Ordered a single 4-pole plug to test.

    Cheers!


    If you're a gamblin' man with 77 cents to burn, nab one of these and measure the resistances. https://www.ebay.com/itm/391181381554

    Be aware, the photos show a mix of 3 and 4 conductor types. And there's a cutaway view that says there's a chip inside, and an app. More likely a switch and maybe a resistor and/or cap.
    "When you make a thing, a thing that is new, it is so complicated making it that it is bound to be ugly. But those that make it after you, they don’t have to worry about making it. And they can make it pretty, and so everybody can like it when others make it after you."

    - Pablo Picasso
  • You find the coolest stuff :cool:

    I got excited about the NXP Quick-Jack. I can find the product in stock but the app is nowhere to be found.
    Failure is not an option...it's bundled with the software.
  • Oh, I could make/break the mic connection on this audio-loopback circuit.
    Failure is not an option...it's bundled with the software.
Sign In or Register to comment.