blob: c9a749e1073421b1343510e9e545e780b56f4216 [file] [log] [blame]
page.title=Wired audio headset specification
@jd:body
<!--
Copyright 2014 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><em>Version 1.1</em></p>
<p>This document specifies the requirements for headsets and mobile devices to
function uniformly across the Android ecosystem. It is separated into two
sections beginning with the specifications for the headset
accessory followed by the specifications for the mobile device.</p>
<h2 id=headset_accessory_plug_specifications>Headset Accessory (Plug) Specifications</h2>
<p>The requirements in the following section apply to the headset accessory.</p>
<h3 id=functions>Functions</h3>
<table>
<tr>
<th>
<p><strong>Function</strong></p>
</th>
<th>
<p><strong>Accessory Support</strong></p>
</th>
</tr>
<tr>
<td>
<p>Stereo Audio Out</p>
</td>
<td>
<p><strong>Required</strong></p>
</td>
</tr>
<tr>
<td>
<p>Audio in (Mic)</p>
</td>
<td>
<p><strong>Required</strong></p>
</td>
</tr>
<tr>
<td>
<p>Ground</p>
</td>
<td>
<p><strong>Required</strong></p>
</td>
</tr>
</table>
<h3 id=control-function_mapping>Control-Function Mapping</h3>
<table>
<tr>
<th>
<p><strong>Control Function</strong></p>
</th>
<th>
<p><strong>Accessory Support</strong></p>
</th>
<th>
<p><strong>Description</strong></p>
</th>
</tr>
<tr>
<td>
<p>Function A</p>
</td>
<td>
<p><strong>Required</strong></p>
</td>
<td>
<p>Play/pause/hook (Short Press), Trigger Assist (Long Press), Next (double press)</p>
</td>
</tr>
<tr>
<td>
<p>Function B</p>
</td>
<td>
<p>Optional</p>
</td>
<td>
<p>Vol+</p>
</td>
</tr>
<tr>
<td>
<p>Function C</p>
</td>
<td>
<p>Optional</p>
</td>
<td>
<p>Vol-</p>
</td>
</tr>
<tr>
<td>
<p>Function D</p>
</td>
<td>
<p>Optional</p>
</td>
<td>
<p>Reserved (Nexus devices will use this reserved function to launch Google
voice search)</p>
</td>
</tr>
</table>
<p><strong>Assign functions to buttons as follows</strong>:</p>
<ul>
<li> All one-button headsets must implement Function A.
<li> Headsets with multiple buttons must implement functions according to the
following pattern:
<ul>
<li> 2 functions: A and D
<li> 3 functions: A, B, C
<li> 4 functions: A, B, C, D
</ul>
</ul>
<h3 id=mechanical>Mechanical</h3>
<table>
<tr>
<th>
<p><strong>Function</strong></p>
</th>
<th>
<p><strong>Accessory Support</strong></p>
</th>
<th>
<p><strong>Notes</strong></p>
</th>
</tr>
<tr>
<td>
<p>4 conductor 3.5mm plug</p>
</td>
<td>
<p><strong>Required</strong></p>
</td>
<td>
<p>Ref: EIAJ-RC5325A standard</p>
</td>
</tr>
<tr>
<td>
<p>CTIA pinout order (LRGM)</p>
</td>
<td>
<p><strong>Required</strong></p>
</td>
<td>
<p>Except in regions with legal requirements for OMTP pinout</p>
</td>
</tr>
<tr>
<td>
<p>OMTP pinout order (LRMG)</p>
</td>
<td>
<p>Optional</p>
</td>
<td></td>
</tr>
<tr>
<td>
<p>Microphone</p>
</td>
<td>
<p><strong>Required</strong></p>
</td>
<td>
<p>Must not be obstructed when operating headset controls</p>
</td>
</tr>
</table>
<h3 id=electrical>Electrical</h3>
<table>
<tr>
<th>
<p><strong>Function</strong></p>
</th>
<th>
<p><strong>Accessory Support</strong></p>
</th>
<th>
<p><strong>Description</strong></p>
</th>
</tr>
<tr>
<td>
<p>Ear speaker impedance</p>
</td>
<td>
<p><strong>16 ohms or higher</strong></p>
</td>
<td>
<p>Recommend 32 - 300 ohms</p>
</td>
</tr>
<tr>
<td>
<p>Mic DC resistance</p>
</td>
<td>
<p><strong>1000 ohms or higher</strong></p>
</td>
<td>
<p>Mic characteristics must be compliant with section 5.4 Audio Recording of
current Android Compatibility Definition Document (CDD)</p>
</td>
</tr>
<tr>
<td>
<p>Control Function Equivalent impedance*</p>
<p>*Total impedance from positive mic terminal to GND when button is pressed with
2.2 V mic bias applied through 2.2 kOhm resistor</p>
</td>
<td>
<p><strong>0 ohm</strong></p>
</td>
<td>
<p>[Function A] Play/Pause/Hook</p>
</td>
</tr>
<tr>
<td></td>
<td>
<p><strong>240 ohm</strong> +/- 1% resistance</p>
</td>
<td>
<p>[Function B]</p>
</td>
</tr>
<tr>
<td></td>
<td>
<p><strong>470 ohm</strong> +/- 1% resistance</p>
</td>
<td>
<p>[Function C] </p>
</td>
</tr>
<tr>
<td></td>
<td>
<p><strong>135 ohm</strong> +/- 1% resistance</p>
</td>
<td>
<p>[Function D]</p>
</td>
</tr>
</table>
<p>In the following diagrams, Button A is mapped to Function A, Button B to
Function B, and so on.</p>
<h3 id=reference_headset_test_circuit_1>Reference Headset Test Circuit 1</h3>
<img src="images/headset-circuit1.png" alt="Reference Headset Test Circuit 1" />
<p class="img-caption"><strong>Figure 1.</strong> Reference headset test circuit 1</p>
<p class="note"><strong>Note:</strong> The above diagram shows the CTIA pinout
for a 4-segment plug. For the OMTP pinout, switch the positions of the MIC and
GND segments.</p>
<h3 id=reference_headset_test_circuit_2>Reference Headset Test Circuit 2</h3>
<p>The second reference circuit shows how the actual resistor values (R1 - R4)
are altered to meet this specification.</p>
<img src="images/headset-circuit2.png" alt="Reference Headset Test Circuit 2" />
<p class="img-caption"><strong>Figure 2.</strong> Reference headset test circuit 2</p>
<p>The actual resistance of the buttons parallel with the microphone (R1-R4) is
based on the microphone capsule resistance (Rmic) and the equivalent impedance
values (ReqA-ReqD). Use the following formula:</p>
<p><em>Rn=(Rmic*ReqN) / (ReqN-Rmic)</em></p>
<p>Where R<em>n</em> is the actual resistance of a button, Req<em>N</em> is the
equivalent impedance value of that button (provided), and Rmic is the
microphone impedance value.</p>
<p>The example above assumes a 5 kohm microphone impedance (Rmic). Therefore, to
achieve an equivalent R4 impedance of 135 ohm (ReqD), the actual resistor value
(R4) needs to be 139 ohms.</p>
<h2 id=mobile_device_jack_specifications>Mobile Device (Jack) Specifications</h2>
<p class="caution"><strong>Caution:</strong> To achieve compatibility with the
headset specification above, devices that include a 4 conductor 3.5mm audio
jack must meet the following specifications. Please see the <em>Analog audio
ports</em> section of the <a
href="{@docRoot}compatibility/android-cdd.pdf">Android Compatibility Definition
Document (CDD)</a> for Android compatibility requirements.</p>
<p><strong>Headset Jack Functions</strong></p>
<table>
<tr>
<th>
<p><strong>Function</strong></p>
</th>
<th>
<p><strong>Device Support</strong></p>
</th>
</tr>
<tr>
<td>
<p>Stereo Audio Out</p>
</td>
<td>
<p><strong>Required</strong></p>
</td>
</tr>
<tr>
<td>
<p>Audio in (Mic)</p>
</td>
<td>
<p><strong>Required</strong></p>
</td>
</tr>
<tr>
<td>
<p>Ground</p>
</td>
<td>
<p><strong>Required</strong></p>
</td>
</tr>
</table>
<h3 id=software_mapping>Software mapping</h3>
<table>
<tr>
<th>
<p><strong>Function</strong></p>
</th>
<th>
<p><strong>Device Support</strong></p>
</th>
<th>
<p><strong>Description</strong></p>
</th>
</tr>
<tr>
<td>
<p>Function A control event </p>
</td>
<td>
<p><strong>Required</strong></p>
</td>
<td>
<p>input event KEY_MEDIA</p>
<p>Android key KEYCODE_HEADSETHOOK</p>
</td>
</tr>
<tr>
<td>
<p>Function D control event</p>
</td>
<td>
<p><strong>Required</strong></p>
</td>
<td>
<p>input event KEY_VOICECOMMAND</p>
<p>Android key KEYCODE_VOICE_ASSIST</p>
</td>
</tr>
<tr>
<td>
<p>Function B control event</p>
</td>
<td>
<p><strong>Required</strong></p>
</td>
<td>
<p>input event KEY_VOLUMEUP</p>
<p>Android key VOLUME_UP</p>
</td>
</tr>
<tr>
<td>
<p>Function C control event</p>
</td>
<td>
<p><strong>Required</strong></p>
</td>
<td>
<p>input event KEY_VOLUMEDOWN</p>
<p>Android key VOLUME_DOWN</p>
</td>
</tr>
<tr>
<td>
<p>Headset insertion detection</p>
</td>
<td>
<p><strong>Required</strong></p>
</td>
<td>
<p>input event SW_JACK_PHYSICAL_INSERT 7</p>
</td>
</tr>
<tr>
<td>
<p>Headset type detection</p>
</td>
<td>
<p><strong>Mic</strong></p>
</td>
<td>
<p>input event SW_MICROPHONE_INSERT 4</p>
</td>
</tr>
<tr>
<td>
<p>Headset type detection</p>
</td>
<td>
<p><strong>No Mic</strong></p>
</td>
<td>
<p>input event SW_HEADPHONE_INSERT 2</p>
</td>
</tr>
<tr>
<td>
<p>Headset speaker impedance</p>
</td>
<td>
<p><strong>Required Headphone (low)</strong></p>
</td>
<td>
<p>Failure mode is to indicate headphones so that limitation would be on</p>
</td>
</tr>
<tr>
<td>
<p>Headset speaker impedance</p>
</td>
<td>
<p><strong>Required Line In (high)</strong></p>
</td>
<td>
<p>input event SW_LINEOUT_INSERT 6</p>
</td>
</tr>
</table>
<h3 id=mechanical11>Mechanical</h3>
<table>
<tr>
<th>
<p><strong>Function</strong></p>
</th>
<th>
<p><strong>Device Support</strong></p>
</th>
<th>
<p><strong>Description</strong></p>
</th>
</tr>
<tr>
<td>
<p>4 conductor 3.5mm jack</p>
</td>
<td>
<p><strong>Required</strong></p>
</td>
<td></td>
</tr>
<tr>
<td>
<p>CTIA pinout order (LRGM)</p>
</td>
<td>
<p><strong>Required</strong></p>
</td>
<td>
<p>3 Pin & Mono Plug Compatible</p>
</td>
</tr>
<tr>
<td>
<p>OMTP pinout order (LRMG)</p>
</td>
<td>
<p>Optional but <strong>Strongly Recommended</strong></p>
</td>
<td></td>
</tr>
<tr>
<td>
<p>Headset detect sequence</p>
</td>
<td>
<p><strong>Required</strong></p>
</td>
<td>
<p>Plug insert notification must only be triggered after all contacts on plug are
touching their relevant segments. This will prevent unreliable headset
detection due to slow insertion. </p>
</td>
</tr>
</table>
<h3 id=electrical12>Electrical</h3>
<h4 id=general>General</h4>
<table>
<tr>
<th>
<p><strong>Function</strong></p>
</th>
<th>
<p><strong>Device Support</strong></p>
</th>
<th>
<p><strong>Notes</strong></p>
</th>
</tr>
<tr>
<td>
<p>Maximum output voltage drive</p>
</td>
<td>
<p>150mV </p>
</td>
<td>
<p>&gt;= 150mV on 32 ohm</p>
<p>Test conditions: EN50332-2</p>
</td>
</tr>
<tr>
<td>
<p>Mic bias resistance </p>
</td>
<td>
<p>Required</p>
</td>
<td>
<p>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</p>
</td>
</tr>
<tr>
<td>
<p>Mic bias voltage</p>
</td>
<td>
<p>1.8V - 2.9V</p>
</td>
<td>
<p>To guarantee compatibility to common microphone capsules.</p>
</td>
</tr>
</table>
<h4 id=function_impedance_and_threshold_detection>Function Impedance and Threshold Detection</h4>
<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>
<p><strong>Button Impedance Level</strong></p>
</th>
<th>
<p><strong>Device Support</strong></p>
</th>
<th>
<p><strong>Notes</strong></p>
</th>
</tr>
<tr>
<td>
<p><strong>70 ohm or less</strong></p>
</td>
<td>
<p><strong>Required</strong></p>
</td>
<td>
<p>[Function A]</p>
</td>
</tr>
<tr>
<td>
<p><strong>110 - 180 ohm </strong></p>
</td>
<td>
<p><strong>Required</strong></p>
</td>
<td>
<p>[Function D]</p>
</td>
</tr>
<tr>
<td>
<p><strong>210 - 290 ohm</strong></p>
</td>
<td>
<p><strong>Required</strong></p>
</td>
<td>
<p>[Function B]</p>
</td>
</tr>
<tr>
<td>
<p><strong>360 - 680 ohm </strong></p>
</td>
<td>
<p><strong>Required</strong></p>
</td>
<td>
<p>[Function C]</p>
</td>
</tr>
<tr>
<td>
<p><strong>Headset speaker impedance level</strong></p>
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>
<p>Low Threshold Detection</p>
</td>
<td>
<p><strong>Required</strong></p>
</td>
<td>
<p>Headphone (low) &lt; 1 Kohm</p>
</td>
</tr>
<tr>
<td>
<p>High Threshold Detection</p>
</td>
<td>
<p><strong>Required</strong></p>
</td>
<td>
<p>Line In (high) &gt; 5 Kohm</p>
</td>
</tr>
</table>