page.title=3.5 mm Headset Jack: Device Specification
@jd:body

<!--
    Copyright 2015 The Android Open Source Project

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->
<div id="qv-wrapper">
  <div id="qv">
    <h2>In this document</h2>
    <ol id="auto-toc">
    </ol>
  </div>
</div>


<p>To achieve compatibility with the <a href="plug-headset-spec.html">3.5 mm plug
headset specification</a>, devices that include a 4 conductor 3.5 mm audio jack
must meet the following specifications. For Android compatibility requirements,
refer to the <em>Analog audio ports</em> section of the <a
href="{@docRoot}compatibility/android-cdd.html#7_8_audio">Android CDD</a>.</p>

<h2 id="headset_jack_functions">Functions</h2>

<table>
 <tr>
    <th>Function</th>
    <th>Device Support</th>
 </tr>
 <tr>
    <td>Stereo Audio Out</td>
    <td>Required</td>
 </tr>
 <tr>
    <td>Audio in (Mic)</td>
    <td>Required</td>
 </tr>
 <tr>
    <td>Ground</td>
    <td>Required</td>
 </tr>
</table>

<h2 id="software_mapping">Software mapping</h2>

<table>
 <tr>
    <th style="width:33%">Function</th>
    <th style="width:33%">Device Support</th>
    <th style="width:33%">Description</th>
 </tr>
 <tr>
    <td>Function A control event</td>
    <td>Required</td>
    <td>Input event: <code>KEY_MEDIA</code>
<p>Android key: <code>KEYCODE_HEADSETHOOK<code></p></td>
 </tr>
 <tr>
    <td>Function D control event</td>
    <td>Required</td>
    <td>Input event: <code>KEY_VOICECOMMAND</code>
<p>Android key: <code>KEYCODE_VOICE_ASSIST</code></p></td>
 </tr>
 <tr>
    <td>Function B control event</td>
    <td>Required</td>
    <td>Input event: <code>KEY_VOLUMEUP</code>
<p>Android key: <code>VOLUME_UP</code></p></td>
 </tr>
 <tr>
    <td>Function C control event</td>
    <td>Required</td>
    <td>Input event: <code>KEY_VOLUMEDOWN</code>
<p>Android key: <code>VOLUME_DOWN</code></p></td>
 </tr>
 <tr>
    <td>Headset insertion detection</td>
    <td>Required</td>
    <td>Input event: <code>SW_JACK_PHYSICAL_INSERT 7</code></td>
 </tr>
 <tr>
    <td rowspan="2">Headset type detection</td>
    <td>Mic</td>
    <td>Input event: <code>SW_MICROPHONE_INSERT 4</code></td>
 </tr>
 <tr>
    <td>No Mic</td>
    <td>Input event: <code>SW_HEADPHONE_INSERT 2</code></td>
 </tr>
 <tr>
    <td rowspan="2">Headset speaker impedance</td>
    <td>Required Headphone (low)</td>
    <td>Failure mode is to indicate headphones so limitation would be on</td>
 </tr>
 <tr>
    <td>Required Line In (high)</td>
    <td>Input event: <code>SW_LINEOUT_INSERT 6</code></td>
 </tr>
</table>

<h2 id="mechanical11">Mechanical</h2>

<table>
 <tr>
    <th style="width:33%">Function</th>
    <th style="width:33%">Device Support</th>
    <th style="width:33%">Description</th>
 </tr>
 <tr>
    <td>4 conductor 3.5 mm jack</td>
    <td>Required</td>
    <td></td>
 </tr>
 <tr>
    <td>CTIA pinout order (LRGM)</td>
    <td>Required</td>
    <td>3 Pin & Mono Plug Compatible</td>
 </tr>
 <tr>
    <td>OMTP pinout order (LRMG)</td>
    <td>Optional but strongly recommended</td>
    <td></td>
 </tr>
 <tr>
    <td>Headset detect sequence</td>
    <td>Required</td>
    <td>Plug insert notification must be triggered only after all contacts on
    plug are touching their relevant segments (this prevents unreliable headset
    detection due to slow insertion.</td>
 </tr>
</table>

<h2 id="electrical12">Electrical</h2>

<h3 id="general">General</h3>

<table>
 <tr>
    <th style="width:33%">Function</th>
    <th style="width:33%">Device Support</th>
    <th style="width:33%">Notes</th>
 </tr>
 <tr>
    <td>Maximum output voltage drive</td>
    <td>150mV</td>
    <td>&gt;= 150mV on 32 ohm
<p>Test conditions: EN50332-2</p></td>
 </tr>
 <tr>
    <td>Mic bias resistance</td>
    <td>Required</td>
    <td>Flexible on detection method used and microphone bias resistor
    selection. Require that all button resistance value ranges specified below
    be detected and related to their respective function</td>
 </tr>
 <tr>
    <td>Mic bias voltage</td>
    <td>1.8V - 2.9V</td>
    <td>To guarantee compatibility to common microphone capsules.</td>
 </tr>
</table>

<h3 id="function_impedance_and_threshold_detection">Function impedance and
threshold detection</h3>

<p>Devices must detect the following resistor ladder on the accessories. The
accessories will be tested to the standardized circuit diagram in the diagram
illustrated earlier (Reference Headset Test Circuit) where the total impedance
is measured from MIC terminal to GND when a button is pressed with 2.2V mic
bias applied through 2.2 kOhm resistor. This is the same effective resistance
as the button detection circuit with the microphone in parallel with the button
resistor.</p>

<table>
 <tr>
    <th style="width:40%">Button Impedance Level</th>
    <th style="width:20%">Device Support</th>
    <th style="width:40%">Notes</th>
 </tr>
 <tr>
    <td>70 ohm or less</td>
    <td>Required</td>
    <td>[Function A]</td>
 </tr>
 <tr>
    <td>110 - 180 ohm</td>
    <td>Required</td>
    <td>[Function D]</td>
 </tr>
 <tr>
    <td>210 - 290 ohm</td>
    <td>Required</td>
    <td>[Function B]</td>
 </tr>
 <tr>
    <td>360 - 680 ohm</td>
    <td>Required</td>
    <td>[Function C]</td>
 </tr>
 </table>

 <table>
 <tr>
    <th style="width:40%">Headset Speaker Impedance Level</th>
    <th style="width:20%">Device Support</th>
    <th style="width:40%">Notes</th>
 </tr>
 <tr>
    <td>Low Threshold Detection</td>
    <td>Required</td>
    <td>Headphone (low) &lt; 1 Kohm</td>
 </tr>
 <tr>
    <td>High Threshold Detection</td>
    <td>Required</td>
    <td>Line In (high) &gt; 5 Kohm</td>
 </tr>
</table>

 <table>
 <tr>
    <th style="width:40%">4-Segment Plug Detection Resistance (between 3rd and 4th segment)</th>
    <th style="width:20%">Device Support</th>
    <th style="width:40%">Notes</th>
 </tr>
 <tr>
    <td>4-Segment Plug Threshold</td>
    <td>Required</td>
    <td>Resistance &gt;= 100 ohms</td>
 </tr>
 <tr>
    <td>3-Segment Plug Threshold</td>
    <td>Required</td>
    <td>Resistance &lt; 100 ohms</td>
 </tr>
</table>
