Apple Accessory Interface Specs R22
Apple Accessory Interface Specs R22
Specification
Release R22
Contents
1. Introduction 50
1.1 Purpose of This Specification 50
1.2 Requirements, Recommendations, and Permissions 50
1.3 Applicability 51
1.4 Terminology 52
1.4.1 Accessory, Device, and Product 52
1.4.2 Authentication Coprocessor 52
1.4.3 I2C Bus 52
1.4.4 Challenge 52
1.4.5 Challenge Response 52
1.4.6 X.509 Certificate 53
1.4.7 Component 53
1.4.8 Feature 53
1.4.9 USB Device and Host Mode 53
1.4.10 iAP 53
1.4.11 Direct User Action 54
2
Contents
3
Contents
4.1 Overview 95
4.2 Firmware Updates 95
4.3 Authentication 95
4.4 Lightning Connector 95
4.5 Mechanical 95
4.6 Pad Layout and Assignments 98
4.7 Input/Output Electrical Characteristics 100
4.8 Cable 102
4.9 Power 103
4.9.1 Power States 103
4.9.2 Module Power 104
4.9.3 Accessory Power 104
4.9.4 Device Power 105
4.10 Audio 106
4.10.1 I2S 106
4.11 Control 108
4.11.1 S0-S2 Headset Remote Inputs 108
4.11.2 HID Headset Remote 108
4.11.3 Serial 108
4.12 Serial Protocol 109
4.12.1 Packet Format 109
4.12.2 Initialization Packets 110
4.12.3 Configuration Packets 110
4.12.4 Operation Packets 116
4.12.5 Examples 123
4.13 Test Procedures 125
4.13.1 Connectivity 126
4.13.2 Audio Quality 126
4.13.3 Power 126
4.13.4 Charge/Sync 126
4.13.5 Headset Jack 127
4.13.6 Firmware Update 127
4
Contents
5
Contents
6
Contents
7
Contents
8
Contents
9
Contents
10
Contents
11
Contents
12
Contents
13
Contents
14
Contents
15
Contents
16
Contents
17
Contents
18
Contents
19
Contents
20
Contents
21
Contents
22
Contents
23
Contents
24
Contents
25
Contents
26
Contents
27
Contents
28
Figures and Tables
29
Figures and Tables
30
Figures and Tables
31
Figures and Tables
32
Figures and Tables
33
Figures and Tables
34
Figures and Tables
35
Figures and Tables
36
Figures and Tables
37
Figures and Tables
38
Figures and Tables
39
Figures and Tables
40
Figures and Tables
Table 45-8 Power Supply Voltage Outputs for Lightning Accessories 671
Table 45-9 Power Supply Voltage Outputs for non-Lightning Accessories 672
Table 45-10 Maximum allowable Low Power Mode current draw 678
41
Figures and Tables
Figure 51-1 USB Role Switch Custom Vendor Request (Apple device is USB Device, Accessory is USB Host)
715
Table 51-1 USB Vendor Request for Apple Device to Get Supported Capabilities 715
Table 51-2 USB Vendor Request for Apple Device to Host Mode Switch: wValues (bitfield) 716
Table 51-3 USB Vendor Request for Apple Device to Host Mode Switch 716
42
Figures and Tables
43
Figures and Tables
44
Figures and Tables
45
Figures and Tables
46
Figures and Tables
47
Figures and Tables
48
Figures and Tables
49
1. Introduction
50
1. Introduction
1.3 Applicability
The absence of requirements, recommendations, or permissions for a specific accessory design in this
specification must not be interpreted as implied approval of that design. Developers are strongly encouraged
to ask Apple for feedback on accessory designs that are not explicitly mentioned in this specification.
1.3 Applicability
This specification covers the accessory interface exposed by Apple devices that have the Lightning connector
and Apple TV. At time of release, this includes the following Apple devices:
● iPhone 6s Plus
● iPhone 6s
● iPhone 6 Plus
● iPhone 6
● iPhone 5s
● iPhone 5c
● iPhone 5
● iPad Pro
● iPad Air 2
● iPad Air
● iPad (4th generation)
● iPad mini 4
● iPad mini 3
● iPad mini 2
● iPad mini
● iPod touch (6th generation)
● iPod touch (5th generation)
● iPod nano (7th generation)
● Apple TV (4th generation)
This specification also covers portions of the accessory interface exposed by Apple devices that have the 30-pin
connector. More content can be found in the following specifications:
● MFi Accessory Firmware Specification R46
● MFi Accessory Hardware Specification R9
51
1. Introduction
1.4 Terminology
Any conflicts between the Accessory Interface Specification and MFi Accessory Firmware/Hardware Specifications
must be resolved in favor of the Accessory Interface Specification .
1.4 Terminology
1.4.4 Challenge
A random number sent from an Apple device to an accessory, or vice versa. The device/accessory being
challenged must perform a challenge response computation on the offered challenge and return the resulting
Challenge Response (page 52) to the challenging device for verification.
52
1. Introduction
1.4 Terminology
1.4.7 Component
An accessory is defined as a collection of functional units called components . Examples of a component include,
but are not limited to, the following:
● Data transport
● Power source
● Human Interface Device (HID) control set
1.4.8 Feature
All accessories must support one or more accessory interface features . Each feature may have associated
accessory design requirements and recommendations; an accessory must comply with all feature-specific
requirements to properly support the feature. Some features require other features to be implemented.
Accessory design must take into account the possibility that an Apple device may not support all of the
accessory's implemented features and react appropriately.
1.4.10 iAP
There are two iAP protocols - iAP1 and iAP2 . iAP1 is the iPod Accessory Protocol as specified in MFi Accessory
Firmware Specification R46 . iAP2 is a complete replacement for iAP1 and is not backward compatible; it is
specified in this specification.
An iAP2 connection is composed of an iAP2 transport , iAP2 link , and one or more iAP2 sessions .
53
1. Introduction
1.4 Terminology
Failure to observe this requirement when specified will always result in failure to pass self certification.
54
2. General Requirements and Recommendations
The requirements in this section apply to all accessories regardless of their feature sets.
Note: Apple will use an accessory's claimed device compatibility list to prioritize future development
and bug fixes. Devices that currently work with an accessory, but are not on the accessory's claimed
compatibility list, will receive a lower priority.
Accessories that claim compatibility with iPhone and/or iPod should claim compatibility with at least the set
of iPhones and iPods running iOS 9.2 or later:
● iPhone 6s Plus
● iPhone 6s
● iPhone 6 Plus
● iPhone 6
● iPhone 5s
● iPhone 5c
● iPhone 5
● iPhone 4s
● iPod touch (6th generation)
● iPod touch (5th generation)
Accessories that claim compatibility with iPad should claim compatibility with at least the set of iPads running
iOS 9.2 or later:
● iPad Pro
● iPad Air 2
● iPad Air
55
2. General Requirements and Recommendations
2.2 Development Tools and Emulators
Accessories may exclude Apple devices from their compatibility list if they:
● Cannot physically connect to the Apple device.
● Implement a feature that is not supported by the Apple device.
● Implement a feature in a specified manner that is not compatible with the Apple device.
Similarly, this specification must not be used to create accessories that emulate the accessory interface exposed
by Apple devices.
56
2. General Requirements and Recommendations
2.3 Reference Designs & Development Kits
Reference designs and development kits must treat specification recommendations as requirements and pass
certification audits with no warnings.
A datasheet for the reference design or development kit listing all supported accessory interface features and
expected accessory design/prototyping approaches must be submitted for certification audit.
2.5 iAP
All accessories that support iAP must implement iAP2.
Accessories may support both iAP1 and iAP2. This specification details how an accessory may detect whether
the connected Apple device supports iAP2 in Initialization (page 773). If the Apple device does not support
iAP2, the accessory may fall back to iAP1.
Accessories that claim compatibility with the iPod nano (7th generation) must support iAP1.
57
2. General Requirements and Recommendations
2.6 Connector Assemblies
Docks, dongles, and form fitting accessories as defined in Apple Lightning Connector (page 128) must not
implement user detachable 30-pin/Lightning connector assemblies.
Accessories that both provide power and exchange data with an Apple device may incorporate both a 30-pin
connector and a Lightning connector under the following conditions:
● The accessories must use the same data transport (serial/USB Host/USB Device) to communicate with both
connectors unless they implement the Digital Audio (page 528) feature on both connectors. In that situation,
the accessory may use the USB Host Mode transport on the Lightning connector and USB Device Mode
transport on the 30-pin connector.
● If the USB data transport is used, both connectors must meet the signal integrity requirements set forth
in Connector Signal Integrity Requirements (page 168). Possible implementation approaches include a
microcontroller with sufficient I/O capability to maintain two separate data transport paths or a multiplexer
chip such as the Intersil ISL54233.
● All connectors that are physically accessible must provide power even when no Apple device is attached.
● If the accessory is intended to work with only one Apple device at any given time, it must switch to the
last attached Apple device by looking for Accessory Power to go high on a connector.
● The accessory must use iAP1 or iAP2 to inform the device of available power.
58
2. General Requirements and Recommendations
2.8 Mixed 30-pin and Lightning Connectors
Figure 2-2 Mixed 30-pin and Lightning Connector USB Accessory with Multiplexer
59
2. General Requirements and Recommendations
2.9 Mixed Headset Jack and Lightning Connectors
Figure 2-4 Mixed 30-pin and Lightning Connector Serial Accessory with Multiplexer
All other accessories must not integrate both 30-pin and Lightning connectors.
60
2. General Requirements and Recommendations
2.10 Apple USB Power Adapters
Accessories that both implement iAP and integrate a Lightning connector that offers Accessory Power (see
Connector Pad/Pin Configuration (page 139)) may choose to wait until Accessory Power is detected before
sending the StartIDPS command or Link Initialization Byte Sequence.
Accessories that do not implement iAP must assume that an Apple device is present at all times.
Alternatively, an accessory may shut down the iAP2 connection on one transport and then start up an iAP2
connection on a different transport, but it must change its identification information accordingly.
If both wired (e.g., Lightning) and wireless (e.g., Bluetooth) transports are simultaneously available to the same
Apple device, the accessory must use the wired transport unless otherwise specified by a specific feature.
61
2. General Requirements and Recommendations
2.14 Relationships Between Multiple Accessories
change in shuffle state until the Apple device has confirmed the state change. Assuming that the state change
will happen will cause problems if the state change does not occur, such as when a third party app is running
and does not respond to the user input.
Similarly, accessories must not cache Apple device information unless explicitly specified otherwise.
Note: Any accessory control, whether physical or virtual, that is an analogue to a corresponding
HID usage specified in HID Requirements (page 580) must send that exact HID usage to the Apple
device when the user takes direct action to actuate that control. For example, use of a 'Play/Pause'
button to programmatically send either the 'Play' or 'Pause' HID usage based on cached Apple device
state is prohibited; a 'Play/Pause' HID usage must be sent.
2.15 iBeacon
MFi accessories must not support the iBeacon feature.
For example, every accessory that provides or receives any kind of MIDI data to or from an Apple device must
support the MIDI feature in addition to any other mechanism it may implement, such as an External Accessory
Protocol.
62
2. General Requirements and Recommendations
2.17 Temperature Range
Accessories must use the conductors in standard USB plugs as defined in the USB-IF specifications and
Engineering Change Notices.
For cables incorporating a Lightning connector, see Apple Lightning Connector (page 128).
For cables incorporating a Lightning connector, see Apple Lightning Connector (page 128).
63
2. General Requirements and Recommendations
2.22 Integrated Non-USB Receptacles
● They must not attempt to detect Apple branded or MFi power supplies that connect the D+/D- pins to
resistor networks as specified in Connectors That Do Not Implement iAP2 (page 665).
● If the accessory can also be enumerated as a USB device via the USB receptacle, it must comply with the
USB 2.0 specification and not draw more than 100 mA of current until it has been successfully enumerated
by the external USB host.
Accessory non-USB receptacles that are intended for an included accessory cable that incorporates both a
Lightning connector and non-USB connector may be labeled using the compatibility icon for an iPhone 5
(without any accompanying text) to highlight to the user that the cable should be plugged into that receptacle.
This compatibility requirement applies to all aspects of user-supplied cables and power supplies. For example:
● Connector receptacles on accessories must accommodate all spec-compliant connector overmolds, and
any accessory opening surrounding the Lightning connector on an Apple device must provide sufficient
clearance for spec-compliant connector overmolds.
● Accessories must work with all cables that comply with the specification with regards to electrical DCR
and SI.
64
2. General Requirements and Recommendations
2.24 Removable Storage
Note: Such accessories must be tested with a wide variety of spec-compliant cables (including
various lengths of the same cable if applicable) and power supplies during accessory development,
in addition to Apple branded cables and power supplies.
65
3. Apple Authentication Coprocessor 2.0C
Earlier versions of the Apple Authentication Coprocessor (1.0, 2.0A, and 2.0B) were implemented in QFN-40,
QFN-20, and SOP-8 packages. The current version, 2.0C, is supplied in a smaller and more efficient PG-USON-8-1
package.
The Export Classification Control Number (ECCN) of the Apple Authentication Coprocessor 2.0C is 5A992 NLR.
For information about accessory authentication of the Apple device, refer to Accessory Authentication (page
261).
For information about Apple device authentication of the accessory, refer to Device Authentication (page 523).
66
3. Apple Authentication Coprocessor 2.0C
3.4 Coprocessor 2.0C Address Selection
RST 7 I At reset: selects I2C slave address. During operation: CP warm reset
RST
SCL
VCC
NC
8 7 6 5
(top view)
Index marking 1 2 3 4
GND
SDA
NC
NC
PG-USON-8-1 package
The thermal pad on the bottom of the CP may be left unconnected or connected to GND.
0 0x20 0x21
67
3. Apple Authentication Coprocessor 2.0C
3.5 Coprocessor 2.0C Reference Circuit
1 0x22 0x23
See I2C Communications Process (page 71) for the interface requirements of the CP's I2C slave communication
transport.
2.2 k
SDA
0.1 F
Note: If the CP's warm reset function is not needed, RST can be tied to either VCC or GND, depending
on which of the addressing modes shown in Table 3-2 (page 67) is used. If the warm reset function
is needed, RST should be connected to a general-purpose I/O line on the accessory's controller. For
further details, see I2C Startup On Warm Reset (page 70).
68
3. Apple Authentication Coprocessor 2.0C
3.7 Coprocessor 2.0C I2C Interface
Figure 3-3 (page 70) diagrams the timing of the I2C interface when it is started up by turning power on.
69
3. Apple Authentication Coprocessor 2.0C
3.7 Coprocessor 2.0C I2C Interface
VCC
0.4 V
t START-UP
SCL
tR
ADDR = 0x22/0x23
t [Link]
SDA
transmission 1 transmission n
Prepare for
Address selection
warm reset
Power-up Bus-Idle
In this diagram, tSTARTUP ≥ 10 ms and [Link] ≥ 1 ms . The rise time of tR and the fall time of tF are both < 1 µs
from 10% to 90% of the signal amplitude, and tPOWER-UP < 200 µs from VCC = 0.4 V until VCC = 90% of the target
supply voltage.
● The terminal must halt I2C communication, and the SDA and SCL lines must be set high before the RST
line is set low.
● The RST line must be set low and kept low for at least 10 µs . Not later than 1 ms after the falling edge of
the RST signal, the accessory must finish its I2C address selection by either keeping RST low or driving RST
high. If the RST line is kept low during the warm reset, the accessory must set it high not earlier than 10
ms after the VCC line goes high but before the first data transmission occurs.
● The first data transmission may start not earlier than 10 ms after the falling edge of the RST signal. If the
RST line has been kept low during the warm reset, the accessory must set it high not earlier that 1 ms
after the start of the first data transmission ([Link] interval in Figure 3-4 (page 71)).
70
3. Apple Authentication Coprocessor 2.0C
3.7 Coprocessor 2.0C I2C Interface
Figure 3-4 (page 71) diagrams the timing of the I2C interface when it is reset by software toggling the RST
line without a power off/on cycle.
VCC
0.4 V
t START-UP
t2
t1
SCL
tF tR
tR
ADDR = 0x22/0x23
t [Link]
SDA
transmission 1
Prepare for
Address selection
warm reset
Reset detection
Warm reset
In this diagram, tSTARTUP ≥ 10 ms, [Link] ≥ 1 ms, t1 > 10 µs , and t2 = 3 ms . The rise time of tR and the fall time of
tF are both < 1 µs from 10% to 90% of the signal amplitude.
0 0 1 0 0 0 RST 0
0 0 1 0 0 0 RST 1
71
3. Apple Authentication Coprocessor 2.0C
3.8 Coprocessor 2.0C Registers
In I2C mode, the CP has both a write address and a read address, as is typical for an I2C device. The I2C write
address of the CP consists of the seven bits [A6:A0] followed by 0 for the R/nW bit. The I2C read address of the
CP consists of the seven bits [A6:A0] followed by 1 for the R/nW bit. If the RST input is connected to ground,
the write and read addresses of the CP are 0x20 and 0x21 respectively; if it is pulled high, the write and read
addresses of the CP are 0x22 and 0x23.
Note: Registers in the same block with consecutive addresses may be read from sequentially in
increasing numerical order. Registers must not be written to sequentially except as noted. Multibyte
numeric values are stored in big-endian order; for example, the first byte in a two-byte register is
the MSB of the stored value and the second byte is its LSB.
72
3. Apple Authentication Coprocessor 2.0C
3.8 Coprocessor 2.0C Registers
73
3. Apple Authentication Coprocessor 2.0C
3.8 Coprocessor 2.0C Registers
0x41-0x4C 4 Reserved
74
3. Apple Authentication Coprocessor 2.0C
3.8 Coprocessor 2.0C Registers
Note: Normally, reading register 0x05 will clear it. However, register 0x05 can be read sequentially
only as part of a sequence that begins with a register in the range 0x00-0x04, in which case the read
operation does not clear it.
Note: Registers 0x11 and 0x20 may each be written sequentially with registers 0x12 and 0x21,
respectively.
[Link] Device ID
The Device ID read-only register is not used by accessories that implement iAP2.
75
3. Apple Authentication Coprocessor 2.0C
3.8 Coprocessor 2.0C Registers
If a single communication operation happens to produce multiple errors (for example, by writing an invalid
challenge response length during a multiregister write that also attempts to continue past the end of the
corresponding block) then only the highest-numbered error code is stored.
0x00 No error
0x0C-0xFF Reserved
When read from, the Authentication Control and Status register provides the status of the most recently
requested CP process, as shown in Figure 3-7 (page 76), Table 3-5 (page 77) and Table 3-6 (page 77).
Figure 3-7 Coprocessor Authentication Control and Status register, read-only bits
7 6 5 4 3 2 1 0
ERR_SET PROC_RESULTS 0 0 0 0
76
3. Apple Authentication Coprocessor 2.0C
3.8 Coprocessor 2.0C Registers
ERR_SET Description
Value
0 The Error Code register does not contain a code generated by the most recent command
execution. However, it may still contain the most recent error code (greater than 0x00)
generated by an earlier command.
1 The Error Code register contains the most recent process or communication error. Both
this bit and the Error Code register contents are cleared after the Error Code register is
next read. This bit is also cleared after every successful command execution.
5-7 Reserved.
When written to, the Authentication Control and Status register controls the start of CP processes, as shown
in Figure 3-8 (page 77) and Table 3-7 (page 78).
Figure 3-8 Coprocessor Authentication Control and Status register, write-only bits
7 6 5 4 3 2 1 0
0 0 0 0 0 PROC_CONTROL
Note: Attempts to write to other bits in the Coprocessor Authentication Control and Status register
are ignored.
77
3. Apple Authentication Coprocessor 2.0C
3.8 Coprocessor 2.0C Registers
6-7 Reserved.
Before a challenge response-generation process begins, this register should contain 0x80, the maximum
allowable challenge response length. After completion of the challenge response-generation process, the CP
updates this register to contain the actual length of the generated challenge response. This updated value
should be read in order to determine how much of the Challenge Response Data register contains valid
challenge response bytes.
Before a challenge response-verification process begins, this register should hold the actual length of the
challenge response being verified.
78
3. Apple Authentication Coprocessor 2.0C
3.8 Coprocessor 2.0C Registers
Before starting a challenge response-generation process on the current challenge during Apple device
authentication of an accessory, this register must contain the length of the challenge.
Before starting a new challenge-generation process during accessory authentication of an Apple device, this
register should contain the requested challenge length. The length must be in the range of 1 to 128 bytes,
thus writing any other value will cause an error.
79
3. Apple Authentication Coprocessor 2.0C
3.8 Coprocessor 2.0C Registers
Figure 3-9 Coprocessor Self-Test Control and Status register, write-only bits
7 6 5 4 3 2 1 0
0 0 0 0 0 PROC_CONTROL
0 None
2-7 Reserved
When read from, bits 7-4 of the Self-Test Control and Status register report the results of the X.509 certificate
and private key tests, as shown in Figure 3-10 (page 80) and Table 3-9 (page 80). The CP detects a read cycle
and resets the Control and Status register to 0x00 after it; hence bits 7-4 must all be retrieved in one operation.
Figure 3-10 Coprocessor Self-Test Control and Status register, read-only bits
7 6 5 4 3 2 1 0
Self-Test results 0 0 0 0
6 Private key Private key not found Private key found in memory
5-4 Reserved
80
3. Apple Authentication Coprocessor 2.0C
3.8 Coprocessor 2.0C Registers
Note: The X.509 and private key tests only verify that these elements are present in Flash memory;
no authentication is performed.
Writing a value in a range greater than 0 and less than or equal to 1024 will cause the CP to validate the data
contained in the iPod Certificate Data registers. If the CP invalidates the iPod Certificate Data, it sets this register
to 0.
81
3. Apple Authentication Coprocessor 2.0C
3.9 Coprocessor 2.0C I2C Protocol
Unlike the Apple Authentication Coprocessor version 2.0B, CP 2.0C does not perform clock synchronization by
stretching SCL. It may, however, not-acknowledge (NACK) a requested register operation if busy, so the I2C
master should expect retry operations as a normal part of CP 2.0C use.
82
3. Apple Authentication Coprocessor 2.0C
3.10 Coprocessor 2.0C Device Characteristics
Any additional reads after an I2C read stop sequence continue with the byte following the previous byte read
until an invalid register address or an end of block is reached, at which point the slave returns 0xFF in response
to all further reads.
83
3. Apple Authentication Coprocessor 2.0C
3.10 Coprocessor 2.0C Device Characteristics
CODE
2.5
R0.1 Index marking
4 1
Index marking (lasered)
0.4 0.05 0.5
0.2
3X 0.5 = 1.5
0.6 Max
8X
C 0.05 (0.152)
Seating plane
0.05 Max standoff
Figure 3-12 (page 85), Figure 3-13 (page 86), Figure 3-14 (page 87), Figure 3-15 (page 88), and Figure
3-16 (page 89) describe how the CP is delivered to accessory manufacturing facilities.
84
3. Apple Authentication Coprocessor 2.0C
3.10 Coprocessor 2.0C Device Characteristics
85
3. Apple Authentication Coprocessor 2.0C
3.10 Coprocessor 2.0C Device Characteristics
86
3. Apple Authentication Coprocessor 2.0C
3.10 Coprocessor 2.0C Device Characteristics
87
3. Apple Authentication Coprocessor 2.0C
3.10 Coprocessor 2.0C Device Characteristics
88
3. Apple Authentication Coprocessor 2.0C
3.10 Coprocessor 2.0C Device Characteristics
89
3. Apple Authentication Coprocessor 2.0C
3.10 Coprocessor 2.0C Device Characteristics
90
3. Apple Authentication Coprocessor 2.0C
3.10 Coprocessor 2.0C Device Characteristics
Table 3-13 Coprocessor supply current into VCC, excluding external current
Figure 3-17 (page 92) illustrates the CP's typical I/O port input signal timing and voltage limits. Table 3-16 (page
92) lists the parameter values in Figure 3-17 (page 92).
91
3. Apple Authentication Coprocessor 2.0C
3.10 Coprocessor 2.0C Device Characteristics
TF TR
Table 3-16 Coprocessor Values for typical I/O port input waveform
92
4. Apple Lightning Audio Module
Accessories may make use of the Apple Lightning Audio Module (LAM) to create the following types of
accessories that plug into the Lightning connector on Apple devices running iOS 7.1 or later:
● Headsets (see Headsets (page 549)).
● Accessories with an integrated 3.5 mm headset jack, but not integrated speakers.
● Non-audio accessories.
93
4. Apple Lightning Audio Module
Accessory designs that implement an integrated 3.5 mm headset jack but do not include integrated speakers
may also use the Lightning Audio Module to pass analog audio to and from the Apple device. These accessories
must comply with the following requirements:
● They may physically block or occlude the Apple device's headset jack.
● They must use a 4-pole 3.5 mm headset jack.
● They must support both audio input and output.
● They must not physically block or occlude the Apple device's built-in microphones or speakers.
● They must set the Audio Output Terminal Type and Audio Input Terminal Type to Headset Jack. See
accAudioTerminalInformation (0x0B) (page 114).
● They must use the accAudioTerminalStateInformation (0x23) (page 121) packet to indicate when
headsets/microphone are plugged into or unplugged from the accessory headset jack.
Accessory designs that do not integrate audio features may also use the Lightning Audio Module. These
accessories must comply with the following requirements:
● They must not physically block or occlude the Apple device's built-in microphones, speakers, or headset
jack.
● They must set the Audio Output Terminal Type and Audio Input Terminal Type to None. See
accAudioTerminalInformation (0x0B) (page 114).
● They must set the Audio Output Terminal State and Audio Input Terminal State to Disabled. See
accAudioTerminalStateInformation (0x23) (page 121).
94
4. Apple Lightning Audio Module
4.1 Overview
4.1 Overview
Key accessory-facing interfaces of the Lightning Audio Module are:
● I2S audio (Host or Slave)
● Serial
● 3 digital inputs (S0, S1, and S2 buttons)
● Accessory Power
4.3 Authentication
Accessories that integrate the Lightning Audio Module do not need to integrate an Apple Authentication
Coprocessor.
4.5 Mechanical
The Lightning Audio Module has the following mechanical characteristics:
● 7.6 mm x 7.6 mm LGA package on tape and reel
● Not encapsulated in order to maximize compatibility with pick and place operations
● Pickup is offset to the CSP surface
● A1 pad has a fiducial mark that may be used as a reference
● FR4 PCB material
● SAC305 solder is used. Solder reflow operations must take this into consideration
95
4. Apple Lightning Audio Module
4.5 Mechanical
Note: Encapsulation of the Lightning Audio Module is recommended to pass salt spray environmental
testing.
96
4. Apple Lightning Audio Module
4.5 Mechanical
Pickup offsets for the Lightning Audio Module (see Figure 4-3 (page 98)) are:
● (X1) 3.4635075 mm
97
4. Apple Lightning Audio Module
4.6 Pad Layout and Assignments
● (Y1) 3.513225 mm
● (X2) 4.258955 mm
● (Y2) 4.30867 mm
98
4. Apple Lightning Audio Module
4.6 Pad Layout and Assignments
A2 Reserved N/A
A4 Reserved N/A
99
4. Apple Lightning Audio Module
4.7 Input/Output Electrical Characteristics
C4 Reserved N/A
D4 Reserved N/A
The following electrical timing characteristics apply to the Lightning Audio Module I2S pads:
100
4. Apple Lightning Audio Module
4.7 Input/Output Electrical Characteristics
The following electrical characteristics apply to all other Lightning Audio Module input/output pads:
Table 4-4 Lightning Audio Module I/O pad (except I2S) electrical characteristics
101
4. Apple Lightning Audio Module
4.8 Cable
I/O VREF is a 1.8 V output and may be used as a voltage reference for the I/O level when the accessory's circuits
operate with voltage levels different from the CMOS 1.8 V expected by the Lightning Audio Module. The
accessory must not draw power from this pad. A RC filter as shown in Figure 4-5 (page 102) must be added
before connecting it to the accessory's reference input.
Capacitance 12 pF 15 pF
4.8 Cable
Accessory cables or interconnects that connect a Lightning (C10E) or Lightning (C68E) connector to a Lightning
Audio Module must comply with the requirements in this section.
The following signals must be connected from the Lightning Audio Module to the Lightning (C10E) or Lightning
(C68E) connector using separate conductors.
● LAM Power
● LAM D+
● LAM D-
● LAM Ground
● LAM DW
● Ground
102
4. Apple Lightning Audio Module
4.9 Power
Then,
● LAM Ground and Ground conductors may be omitted from the cable or interconnect.
● LAM Ground and Ground pads must be connected to a cable shield drain wire.
4.9 Power
103
4. Apple Lightning Audio Module
4.9 Power
Note: Lightning accessories must not force the Apple device to wake from a sleep state autonomously
or prevent it from entering a sleep state. This is grounds for failure to pass self certification.
Note: Accessories must not draw power directly from the LAM Power pad on the Lightning (C10E)
or Lightning (C68E) connector; all power must be drawn from the Accessory Power pin on the
Lightning Audio Module.
Apple strongly recommends keeping the power draw as low as possible to maximize the lifetime of the Apple
device's internal battery. If the accessory does not perform any user-visible or user-audible function (such as
ANC) when the Apple device is asleep, it must not configure the Lightning Audio Module to provide constant
Accessory Power. Instead, the Lightning Audio Module will stop providing Accessory Power when audio
streaming has stopped or the Apple device enters a sleep state. It will re-enable Accessory Power when audio
streaming restarts.
Accessories that configure the Lightning Audio Module to provide constant accessory power should implement
the following steps to minimize power draw:
● When the Audio Output Stream Status field in the lamInformation packet (see lamInformation (0x10) (page
117)) is 0, the accessory should power down amplifiers, DACs, and other audio processing circuits but leave
its UART operational and ready to process incoming packets.
● The accessory should monitor the SDA pad as specified in I2S (page 106). If SDA is low for more than 500
ms, the accessory may enter a deep sleep state, and should exit that state when SDA is subsequently
driven high.
104
4. Apple Lightning Audio Module
4.9 Power
The voltage supply range from the Accessory Power pad is 2.5 V-4.7 V (3.3 V typical).
● Average current draw from the Accessory Power pad must not exceed 50 mA.
● Peak current draw from the Accessory Power pad must not exceed 100 mA with one exception. When the
Lightning Audio Module enables Accessory Power, the accessory may exceed the 100 mA current limit
until 5 ms has elapsed or 100 uF of capacitance has been charged, whichever comes first.
I2S MCLK will stay active as long as the Lightning Audio Module provides Accessory Power.
Note: To minimize the risk of audible artifacts, Lightning accessories must immediately mute all
audio interfaces when they detect a loss of Accessory Power.
Additionally, the power source's ground must be directly connected to the Ground pad on the Lightning (C10E)
or Lightning (C68E) connector and isolated from LAM Ground as shown:
105
4. Apple Lightning Audio Module
4.10 Audio
If a LAM accessory has an internal battery, it may draw some current from an external power source to recharge
that battery while the Apple device is also charging, but must inform the Apple device of the current draw
using accPassthroughPowerSourceInformation (0x24) (page 122). Additionally, the amount of current that may
be drawn depends on the Apple device's power state as specified in lamInformation (0x10) (page 117).
4.10 Audio
4.10.1 I2S
LAM accessories may consume audio from the Lightning Audio Module via I2S. The Lightning Audio Module
can either be a I2S host or I2S slave. I2S slave mode is the default.
106
4. Apple Lightning Audio Module
4.10 Audio
When the I2S audio interface is operating in slave mode, SCLK, and LRCK are inputs. Conversely, SCLK and
LRCLK are outputs when the I2S audio interface is operating in host mode. LRCLK is 48 kHz. MCLK is always an
output regardless of slave or host mode and is 6.144 MHz ±80 ppm.
LAM accessories may treat a low level on the I2S_ERROR pad to indicate possible errors in the I2S data stream.
Apple recommends that this signal be used to mute the audio DAC. The signal will remain low until the I2S
data stream is deemed free of errors by the Lightning Audio Module. An external pull-up resistor must be
attached to the I2S_ERROR pad if it is used in this manner. A resistor value of 10 kΩ - 47 kΩ is recommended.
If the I2S_ERROR pad is not used in this manner, it must be connected to ground via a 1 kΩ -10 kΩ resistor.
If the accessory does not contain a microphone, it must connect SDIN to ground. If it does contain a microphone,
the I2S audio input stream must comply with all of the following requirements:
● The accessory must natively sample audio at a rate of at least 48 kHz.
107
4. Apple Lightning Audio Module
4.11 Control
4.11 Control
Lightning accessories must take one of two possible approaches for implementing user controls.
The S0-S2 inputs default to a high impedance input "1". A button press corresponds to "0". All S0-S2 activity
must occur as a result of direct user action.
The Lightning Audio Module provides internal pull-ups for S0, S1, and S2. No external pull-ups are required.
When the Apple device is in a sleep state, LAM accessories must only send an accHIDReport packet if the user
takes direct action to press the Center button on the headset remote. All other button presses must be ignored
and accHIDReport packets must not be sent.
4.11.3 Serial
LAM accessories must use the Serial interface.
108
4. Apple Lightning Audio Module
4.12 Serial Protocol
The serial interface operates at either 57600 bps or 115200 bps. By default, the interface is configured to operate
at 57600 bps. All Lightning Audio Module serial communications use 8 data bits, no parity bits, and one stop
bit (8-N-1). The Lightning Audio Module does not support serial hardware flow controls (RTS/CTS and DTR/DSR).
Length 1 Number of bytes in Type and Payload fields. Must be 129 or less.
109
4. Apple Lightning Audio Module
4.12 Serial Protocol
Accessories should send the Wake byte only if the accessory is self powered or has configured the Lightning
Audio Module for constant Accessory Power. In that situation, the Lightning Audio Module will make use of
the Wake byte to recover from a sleep state and correctly parse the rest of the packet.
The Checksum field is calculated by adding together the values of the Length, Type, and Payload bytes as
signed 8-bit values (discarding any signed 8-bit overflow) and then negating that sum to create the signed
8-bit checksum byte. The sum of all bytes in the following packet fields must add up to 0x00:
● Length
● Type
● Payload
● Checksum
All packets with an invalid checksum are presumed invalid and must be ignored by both the Lightning Audio
Module and the Lightning accessory.
Before sending any other packets, the Lightning accessory must confirm the operating state of the Lightning
Audio Module by sending this packet once a second until a lamReady (0x02) (page 110) packet is received in
response.
The Lightning Audio Module will send this packet when it has received a accReady (0x01) (page 110) packet
or a configuration packet (see Configuration Packets (page 110)) from the Lightning accessory and is ready to
start accepting other packets.
110
4. Apple Lightning Audio Module
4.12 Serial Protocol
Accessories must receive a lamReady packet from the Lightning Audio Module after every configuration packet
before sending other packets.
To pass certification audit, the model name, serial number, etc. must be configured properly.
Hardware Revision 1 0
Firmware Revision 1 0
Changes to the UART Baud Rate will only take effect after the Lightning Audio Module has been power cycled.
Accessories must receive a lamReadyPacket from the Lightning Audio Module before cycling power.
Actual data transfer rates will vary based on the packet size and configured baud rate. Generally, higher baud
rates and larger packets are recommended for best results.
111
4. Apple Lightning Audio Module
4.12 Serial Protocol
The accessory must provide a value for the Name parameter that matches the accessory's markings and
packaging.
The accessory must provide a value for the Manufacturer parameter that matches the accessory's markings
and packaging.
The accessory must provide a value for the Model parameter that matches the accessory's markings and
packaging.
112
4. Apple Lightning Audio Module
4.12 Serial Protocol
The accessory must provide a value for the SerialNumber parameter that matches the accessory's markings
and packaging.
Note: The SerialNumber parameter must be unique for each accessory (i.e. serialized).
If the accessory has a preferred app that communicates with the accessory using the External Accessory Protocol,
it must set the PreferredAppBundleIdentifier parameter accordingly. Otherwise, the parameter must be set to
a null string.
If the accessory has a preferred app that communicates with the accessory using the External Accessory Protocol,
it must set the ExternalAccessoryProtocolName parameter accordingly. Otherwise, the parameter must be set
to a null string.
113
4. Apple Lightning Audio Module
4.12 Serial Protocol
If the accessory intends to send accHIDReport packets (see accHIDReport (0x21) (page 120)), then it must set
its HID component information using accHIDComponentInformation.
The HID Component Function parameter must be set to 8 during factory configuration.
Audio Output Terminal Gain Steps 1 Number of steps - 1 (0 = 1 step, 255 = 256
steps)
Audio Output Terminal Attenuation Steps 1 Number of steps - 1 (0 = 1 step, 255 = 256
steps)
Audio Input Terminal Gain Steps 1 Number of steps - 1 (0 = 1 step, 255 = 256
steps)
Audio Input Terminal Attenuation Steps 1 Number of steps - 1 (0 = 1 step, 255 = 256
steps)
Preferred Apple Device Audio Processing 1 See Table 4-19 (page 116)
The accAudioTerminalInformation packet is used to inform the Lightning Audio Module of the accessory's
audio input/output terminal configuration.
All other parameters must be set to 0 if the Terminal Type parameter is None.
114
4. Apple Lightning Audio Module
4.12 Serial Protocol
Accessories must accurately communicate their audio processing latency. Apple devices will use these parameters
to help maintain audio/video sync across different terminals for a better user experience.
Accessories must accurately communicate their ability to set gain/attenuation in decibels (dB) using the Step
Size and Steps parameters. Apple devices will use these parameters to normalize audio volume settings across
different terminals for a better user experience. The total number of gain steps (both Gain and Attenuation)
must not exceed 255.
At this time, the Preferred Apple Device Audio Processing parameter must be set to 0.
0 None Must be used if accessory has no ability to render audio from Apple device
3-255 Reserved
3-255 Reserved
Table 4-18 Lightning Audio Module Audio Terminal Gain/Attenuation Step Size Values
0 0.5
1 1.0
2 1.5
3 2.0
115
4. Apple Lightning Audio Module
4.12 Serial Protocol
4 2.5
5 3.0
6 3.5
7 4.0
8 4.5
9 5.0
10 5.5
11 6.0
12 6.5
13 7.0
14 7.5
15 8.0
16-255 Reserved
1-255 Reserved
116
4. Apple Lightning Audio Module
4.12 Serial Protocol
Audio Sample Rate 1 Sample rate truncated to kHz. See Table 4-23 (page
118).
The External Accessory Protocol Session parameter indicates whether an iOS app on the device has opened
an EASession to the accessory. Accessories must not send accExternalAccessoryProtocolSessionData packets
(see accExternalAccessoryProtocolSessionData (0x20) (page 120)) until a lamInformation packet has been
received with this parameter set to 1.
Accessories that both provide power to the Apple device via the Lightning Audio Module and reserve some
current to charge their own internal battery using accPassthroughPowerSourceInformation packets (see
accPassthroughPowerSourceInformation (0x24) (page 122)) must monitor the Device Power State and Device
Battery Level parameters to implement correct charging behavior. The Device Battery Level parameter is only
valid when the Device Power State has a value of 0 or 1.
Value Description
2-3 Device is connected to external power and not charging its internal battery
5 Device is connected to external power and its internal battery is fully charged
6-255 Reserved
117
4. Apple Lightning Audio Module
4.12 Serial Protocol
The Audio Input/Output Stream Status parameters may be used to optimize accessory power consumption.
For instance, headset amplifiers may be placed into a lower power state while the Output Stream Status is Not
Playing, although they must remain able to render audio immediately if the status changes to Playing.
Accessories must use the Audio Signal Processing Mode parameter to trigger content-specific audio processing
modes as defined in Table 4-22 (page 118). The signal processing mode applies to both the input and output
streams. If an accessory receives a stream type of Reserved, it must treat it as if the stream type was set to
Default.
Table 4-22 Lightning Audio Module Audio Stream Signal Processing Mode Values
The Audio Sample Rate parameter indicates the maximum sample rate of the content within the 48 kHz stream.
This information may be used to filter microphone input or otherwise optimize signal processing performed
within the accessory.
Table 4-23 Lightning Audio Module lamInformation Audio Sample Rate Values
8 8.0 kHz
11 11.025 kHz
12 12.0 kHz
16 16.0 kHz
22 22.050 kHz
24 24.0 kHz
32 32.0 kHz
44 44.1 kHz
118
4. Apple Lightning Audio Module
4.12 Serial Protocol
48 48.0 kHz
Audio Output Terminal Gain 1 Signed byte expressing number of gain steps above
Steps zero (positive values) or attenuation steps below zero
(negative values).
Audio Input Terminal Gain Steps 1 Signed byte expressing number of gain steps above
zero (positive values) or attenuation steps below zero
(negative values).
If an audio terminal is Muted, the accessory must mute its corresponding audio interface. The accessory may
apply a ramp of its choosing while transitioning to a Muted state.
If an audio terminal is Not Muted, the accessory must un-mute the audio interface. The accessory may apply
a ramp of its choosing while transitioning to a Not Muted state.
Gain values will be set based on information provided by the accessory in an accAudioTerminalInformation
packet (see accAudioTerminalInformation (0x0B) (page 114)). Changes in the Gain of an audio terminal while
Not Muted must be applied without any ramp by the accessory. The accessory also must not remap or scale
the requested Gain value from the Apple device.
The Lightning Audio Module will send a lamAudioTerminalInformation packet to the accessory before starting
to stream or record audio for the first time after accessory connect. The accessory must not independently
remember and apply its own previous audio terminal volume settings.
119
4. Apple Lightning Audio Module
4.12 Serial Protocol
This packet will request that the LAM provide its version information, see lamVersionInformation (0x25) (page
122).
120
4. Apple Lightning Audio Module
4.12 Serial Protocol
This packet will request that the Apple device launch the app specified by
accPreferredAppBundleIdentifierInformation (see accPreferredAppBundleIdentifierInformation (0x08) (page
113)) on the accessory's behalf. The accessory must not assume that the app has launched, because the request
may be denied by iOS or the user. A lamInformation (see lamInformation (0x10) (page 117)) packet must be
received indicating that the app has successfully opened an External Accessory Protocol session before the
accessory may presume that it is now communicating with the app.
Note: This packet must only be sent in response to direct user action, such as pushing a button on
the accessory. Autonomous launch of apps is explicitly prohibited.
If the accessory must accurately report terminal state as Enabled or Disabled to the Lightning Audio Module
when initially connected and whenever it changes. Apple devices will use this information to adjust audio
routing for the appropriate user experience. The Lightning Audio Module will assume that all accessory audio
terminals are Disabled until the accessory sends an accAudioTerminalStateInformation packet indicating
otherwise. The accessory should report the Enabled state as early as possible to minimize audio routing time.
Note: Audio terminal state must be reported as Enabled if and only if the terminal is fully capable
of rendering or recording audio in a manner that is perceptible to the end user. Failure to comply
with this requirement may cause a poor user experience in the form of truncated audio output or
input and is grounds for failure to pass self certification.
121
4. Apple Lightning Audio Module
4.12 Serial Protocol
If the accessory has an internal battery, it must use this packet to communicate how much current it will draw
from the pass-through power source to recharge the internal battery before passing the rest on to the device.
The Apple device will adjust its current draw from the pass-through power source accordingly. This packet
must be sent whenever the accessory's current draw from the pass-through power source changes.
The accessory must not reserve more than 500 mA of current until the Apple device's battery is fully charged
as indicated by the Device Power State parameter in a lamInformation packet (see lamInformation (0x10) (page
117)).
This packet provides information about the hardware and firmware versions of the Lightning Audio Module.
The accessory may request this information by sending an accVersionInformation packet, see
accVersionInformation (0x14) (page 120).
122
4. Apple Lightning Audio Module
4.12 Serial Protocol
4.12.5 Examples
[Link] Initialization
The following example demonstrates how to initialize communications with a Lightning Audio Module.
LAM Accessory
LAM Initialization
accReady
lamReady
123
4. Apple Lightning Audio Module
4.12 Serial Protocol
LAM Accessory
accConfigurationInformation
<iAj mrotocol sersion> M
<Accessory mower jode> M
<fOp oole> N
<oeserved> M
<eardware jajor sersion> N
<eardware jinor sersion> M
<eardware oevision> M
<cirmware jajor sersion> N
<cirmware jinor sersion> M
<cirmware oevision> M
lamReady
accNameInformation
<kame> Diightning eeadsetD
lamReady
accManufacturerInformation
<janufacturer> DACjb fncKD
lamReady
accModelInformation
<jodel> Djodel AD
lamReady
accSerialNumberInformation
<perial kumber> DRVUCbCUcNSa4D
lamReady
accPreferredAppBundleIdentifierInformation
<mreferred App _undle fdentifier> DcomKacmeKheadsetD
lamReady
accExternalAccessoryProtocolNameInformation
<bxternal Accessory mrotocol kame> DcomKacmeKheadsetD
lamReady
accHIDComponentInformation
<efa oeport aescriptor> see example descriptor
lamReady
accAudioTerminalInformation
<Audio lutput qerminal qype> N
<Audio lutput qerminal iatency> MxMMcM
<Audio lutput qerminal dainLAttenuation ptep pize> NM
<Audio lutput qerminal dain pteps> NMM
<Audio lutput qerminal Attenuation pteps> RM
<Audio fnput qerminal qype> M
<Audio fnput qerminal iatency> MxMMMM
<Audio fnput qerminal dainLAttenuation ptep pize> M
<Audio fnput qerminal dain pteps> M
<Audio fnput qerminal Attenuation pteps> M
<mreferred Apple aevice Audio mrocessing> M
lamReady
124
4. Apple Lightning Audio Module
4.13 Test Procedures
● Receives initial audio terminal information from the Lightning Audio Module (not streaming)
● Communicates that it is ready to accept audio output from the Lightning Audio Module
● Receives notification of incoming audio streaming data from the Lightning Audio Module
LAM Accessory
accAudioTerminalStateInformation
<Audio lutput qerminal ptate> M
<Audio fnput qerminal ptate> M
Not streaming
lamInformation
<bxternal Accessory mrotocol pession> M
<aevice _attery ievel> ORR
<Audio lutput ptream ptatus> M
<Audio lutput ptream qype> M
<Audio fnput ptream ptatus> M
<Audio fnput ptream qype> M
Ready to stream
accAudioTerminalStateInformation
<Audio lutput qerminal ptate> N
<Audio fnput qerminal ptate> M
lamAudioTerminalInformation
<Audio lutput qerminal jute> M
<Audio lutput qerminal dain pteps> NOT
<Audio fnput qerminal jute> N
<Audio fnput qerminal dain pteps> NOT
Streaming
lamInformation
<bxternal Accessory mrotocol pession> M
<aevice _attery ievel> ORR
<Audio lutput ptream ptatus> N
<Audio lutput ptream qype> M
<Audio fnput ptream ptatus> M
<Audio fnput ptream qype> M
125
4. Apple Lightning Audio Module
4.13 Test Procedures
4.13.1 Connectivity
While the accessory is attached to the Apple device, verify that:
1. The accessory is visible in the Setting app (Settings: General: About) on the Apple device and that it
identifies with the correct information strings.
2. The Apple device will enter a sleep state after a period of inactivity while the accessory is still attached.
3. Pressing the Center button on the headset remote will wake the Apple device from a sleep state.
4. Pressing any other button on the headset remote will not wake the Apple device from a sleep state.
5. After the Apple device hibernates, launch Siri through pressing and holding either home button or headset
Center button. Verify that the Siri double beep prompt is heard in full.
6. After the Apple device hibernates, send an iMessage to the hibernating device to trigger notification.
Confirm notification sound is heard in full.
4.13.3 Power
1. If applicable, verify that the accessory battery is not charged from the Apple device.
2. Verify that peak current draw from the Apple device does not exceed 100 mA except for the first 5 ms
after the Lightning Audio Module enables Accessory Power.
3. Verify that the average current draw from the Accessory Power pad does not exceed 50 mA.
4. Immediately after a power loss to the accessory, verify that the accessory mutes all audio.
4.13.4 Charge/Sync
If the accessory supports pass-through charge/sync of the Apple device from an external USB host or power
supply, verify that:
1. The Apple device charges when the accessory is connected to an external USB power supply, such as an
Apple USB power adapter.
126
4. Apple Lightning Audio Module
4.13 Test Procedures
2. The Apple device is recognized and can sync/restore when the accessory is connected via USB to a host
computer.
3. If the accessory has an internal battery that can also recharge from an external USB power supply, the
accessory's internal battery does not draw more than 500 mA until the Apple device's battery is fully
charged.
127
5. Apple Lightning Connector
Accessories may incorporate a Lightning connector to establish mechanical and electrical connections with
an Apple device and enable other accessory interface features.
This chapter covers the Lightning connector. See MFi Accessory Hardware Specification R9 for details of the
30-pin.
5.1.1 Dimensions
6.00 mm 6.65 mm
128
5. Apple Lightning Connector
5.2 Connector Versions
5.1.3 Reversability
The Lightning connector engages with Apple devices in either orientation. Accessories do not need to manage
this capability. The connector pad/pin configuration always remains constant from the accessory's point of
view, because the connector automatically routes power and data to and from the accessory appropriately
after determining its insertion orientation.
129
5. Apple Lightning Connector
5.2 Connector Versions
All references to the Lightning connector in this chapter are applicable to all versions unless explicitly specified
otherwise.
Accessory developers must take the following recommendations and requirements into consideration when
deciding which version to use for a particular accessory design:
Note: See Dongle Accessories (page 167) for one exception to the prohibition on use of Lightning
(C10) in accessory dongle integrations.
130
5. Apple Lightning Connector
5.2 Connector Versions
Side A
Side B
Side A
Side B
131
5. Apple Lightning Connector
5.2 Connector Versions
132
5. Apple Lightning Connector
5.2 Connector Versions
133
5. Apple Lightning Connector
5.2 Connector Versions
134
5. Apple Lightning Connector
5.2 Connector Versions
135
5. Apple Lightning Connector
5.2 Connector Versions
136
5. Apple Lightning Connector
5.2 Connector Versions
137
Figure 5-11
4 3 2 1
01 C68,MODULE
NOTES: (UNLESS OTHERWISE SPECIFIED) IPOD PD 11/20/14
5.2 Connector Versions
CENTERLINE OF A C
GROUND RING
1.50 0.03
Lightning (C68) dimensions
C C
+0.05
6.70
-0.03
1.15 0.05
0.90
B
2x 1.50 MAX
COMPONENT COMPONENT
HEIGHT 0.75mm HEIGHT 0.60mm
138
5.55 0.20
0.30
2x 0.70 0.15 PIN 5 PIN 1
2.80 0.08 1.58
0.30 PIN 6
1.83 PIN 2
B 1.30 B
2.43 PIN 7
5x 0.55
5x 0.90
4x 0.55
4x 1.32
PIN 3
1.55 0.00 0.20
2.68 PIN 8
2.03 PCB CENTERINE PIN 4
TO DATUM C 3.28 PIN 9
2.28
2.88 3.78
3.13 4.79
3.73
3.98
5.09
4.79
5.60
TOLERANCES TITLE
A A
3.36 X.X 0.1
[Link] 0.05
C68,MODULE
[Link] 0.030
SHT 1 OF 1
THIRD ANGLE PROJECTION D NONE
4 3 2 NX GENERATED
5. Apple Lightning Connector
5.3 Connector Pad/Pin Configuration
Note: All accessories that do not have the potential for data communication with the Apple device
(Power Only or Power/Sync) accessories must use the B configuration. The D configuration (Power
Only) has been deprecated and must not be used in new accessory designs.
More information on the data transports supported by the Lightning connector can be found in the following
chapters:
● Serial (see Serial (page 680))
● USB Device Mode (see USB Device Mode (page 706))
● USB Host Mode (see USB Host Mode (page 712))
To refer to a specific connector version and configuration, the connector version is immediately followed by
the configuration. For example, Lightning (C10B) refers to a Lightning (C10) connector with the B, or USB Device
Mode, configuration.
139
5. Apple Lightning Connector
5.3 Connector Pad/Pin Configuration
Side A
5
6
7
8
9
Side B
140
5. Apple Lightning Connector
5.3 Connector Pad/Pin Configuration
141
5. Apple Lightning Connector
5.3 Connector Pad/Pin Configuration
Lightning (C10), Lightning (C11), Lightning (C12), and Lightning (C68) connector configurations that exchange
data with the Apple device offer accessories the ability to provide power to, and draw power from, the Apple
device via the Device Power and Accessory Power pads/pins respectively. Accessories that do not draw power
from the Apple device may leave the Accessory Power pad/pin unconnected (NC). This may ease accessory
assembly operations.
Lightning (C48) connectors do not allow accessories to draw power from the Apple device, but do allow them
to provide power to the Apple device.
Accessories must use the B configuration for a connector (USB Device Mode) if there is no potential for data
communication with the Apple device.
Accessories that incorporate a Lightning Audio Module (see Apple Lightning Audio Module (page 93)) must
use a Lightning (C10E), Lightning (C11E), Lightning (C12E), or Lightning (C68E) connector. Conversely, accessories
that do not incorporate a Lightning Audio Module must not use those connectors.
142
5. Apple Lightning Connector
5.3 Connector Pad/Pin Configuration
143
5. Apple Lightning Connector
5.3 Connector Pad/Pin Configuration
144
5. Apple Lightning Connector
5.4 Connector Mechanical Requirements
145
5. Apple Lightning Connector
5.4 Connector Mechanical Requirements
Additionally, all accessory integrations of a Lightning (C11) connector must make physical contact with the
connector in the area labeled 'MIN MOUNTING AREA' as shown in Figure 5-8 (page 135).
Figure 5-17 (page 146) illustrates the following requirements related to plug engagement:
● At least 6.47 mm of the connector plug must be exposed. 6.65 mm +0.10 mm/-0.18 mm is recommended.
● When a force of 30 N is applied to the plug in the direction of device insertion, the exposed connector
plug length must not decrease below 6.47 mm. The plug is designed to exert a force of 15 N during device
insertion.
● The connector plug must not break away from the accessory when a force of 30 N or less is applied on
the plug in the direction of device extraction.
● The connector must not be mounted in such a way that the connector plug is biased more than 2 degrees
sideways.
Plug exposure
Angular bias Angular bias
Note: All Lightning connector faces besides the cosmetic plug faces should be hidden within the
accessory such that the faces are not visible as shown in Figure 5-18 (page 147). Gaps between the
accessory surface and the Lightning connector must not exceed 0.25 mm.
146
5. Apple Lightning Connector
5.4 Connector Mechanical Requirements
Exposed
Accessory surface
Plug surfaces
Accessories that use a Lightning (C48) or Lightning (C68) connector must shield the connector. See
Shielding (page 152) and Shielding (page 163).
An enclosure refers to the rigid portion of an accessory that encloses the components of the accessory. If a
cable incorporates a strain relief, the strain relief is not counted in the enclosure. An enclosure must not deform
under normal loads.
147
5. Apple Lightning Connector
5.4 Connector Mechanical Requirements
The Lightning connector enclosure dimensions must not exceed the following dimensions with full radii
rounded edges as shown in Figure 5-19 (page 147) and Figure 5-20 (page 148):
● (A) 20 mm
● (B) 12.00 mm
● (C) 6.25 mm
Although strain relief designs may vary, the cable enclosure must adhere to the specified requirements.
Note: Cables that do not meet the enclosure dimensions will be treated as a dongle accessory. See
Dongle Accessories (page 167) for more information.
See Figure 5-21 (page 149) and Figure 5-22 (page 149) for all allowed USB to Lightning cable integrations.
148
5. Apple Lightning Connector
5.4 Connector Mechanical Requirements
Accessory cables that incorporate a Lightning connector must not terminate in a USB receptacle.
Accessory cables that incorporate a Lightning connector must not terminate in a non-USB receptacle.
149
5. Apple Lightning Connector
5.4 Connector Mechanical Requirements
A jet dispense process is recommended for applying encapsulation. Some recommended vendors of
encapsulation equipment are:
● Nordson EFD/ASYMTEK ([Link]
● Musashi Engineering ([Link]
Solder
The following recommendations related to EMC apply to all cable accessories, using Figure 5-24 (page 150) as
a visual reference:
● The cable (C) should have both braid and foil shield. The braid should have a minimum of 95% coverage.
150
5. Apple Lightning Connector
5.4 Connector Mechanical Requirements
● Shield braid (B) should make 360 degree termination to the plug housing (A). Copper tape is recommended
for this purpose. The termination should include mechanically secured crimp and soldering. 'Pigtail'-type
connections should not be used.
● Connection from plug (D) to plug housing should make a 360 degree termination.
●
Connector-to-connector resistance should be <100 mΩ maximum end to end.
All cables that incorporate a Lightning (C48) or Lightning (C68) connector must pass the test procedures
specified in Cable Accessories (page 173) and Lightning (C48)/Lightning (C68) Accessories (page 170).
Ensure that none of the components of the connector are damaged during termination.
[Link].2 Encapsulation
Both sides of the Lightning (C48) or Lightning (C68) connector must be encapsulated (see Cable
Encapsulation (page 150)) to protect it from liquid ingress and damage. UV cure encapsulation is recommended.
Avoid processes that subject the connector to heat over 85 °C.
151
5. Apple Lightning Connector
5.4 Connector Mechanical Requirements
[Link].3 Shielding
All cables incorporating a Lightning (C48) or Lightning (C68) connector must incorporate a cable shields as
shown in Figure 5-26 (page 152). Use of 0.40 mm thick SUS 304 1/2H material is recommended.
The shield must extend to crimp to the cable shield braid (A) as illustrated in Figure 5-26 (page 152). See Cable
EMC Considerations (page 150) for additional information.
Additionally, flanges (B) are recommended for increased plug strength as illustrated in Figure 5-26 (page 152).
Shields must be free of burrs. Electropolishing is recommended as burrs can cut into wires and cause failures
either in the factory or in the field.
152
5. Apple Lightning Connector
5.4 Connector Mechanical Requirements
The SUS stamped shield must be laser welded to the Lightning (C48) or Lightning (C68) ground ring as shown
in Figure 5-27 (page 153). Recommended flange welding areas are also indicated. See Laser Welding (page 158).
Apple recommends the following two-part cable shield design for Lightning (C48).
153
5. Apple Lightning Connector
5.4 Connector Mechanical Requirements
154
5. Apple Lightning Connector
5.4 Connector Mechanical Requirements
Apple recommends the following two-part cable shield design for Lightning (C68).
155
4 3 2 1
01 C68,SHELL,CRIMP
NOTES: (UNLESS OTHERWISE SPECIFIED) IPOD PD 11/20/14
2X 5.71
5.4 Connector Mechanical Requirements
3.79
R 1.41
C C
0.80
4X 1.200
0.800
4X R 0.100 4X R 0.100
2X 2.68 4X R 0.100
6.40
156
11.85
0.600
DETAIL
A
2X 0.950
SCALE 10:1
2X 0.20
2X 2.05
B 0.10 B
1.85
2X 1.15
X.X 0.2
[Link] 0.10
C68,SHELL,CRIMP
A A
[Link] 0.050
SHT 1 OF 1
THIRD ANGLE PROJECTION C NONE
4 3 2 NX GENERATED
4 3 2 1
01 C68,SHELL,NO CRIMP
NOTES: (UNLESS OTHERWISE SPECIFIED) IPOD PD 11/20/14
3.23
5.4 Connector Mechanical Requirements
R 1.36
3.79
C C
1.51
2.65
1.77 1.200
2.90 0.110
1.12 1.12 R 0.100
3.23
157
A
C
R 0.100
R 0.100 0.110
1.68
0.950 DETAIL
A
0.10 2.05
Lightning (C68) Recommended Cable Shield, No Crimp
+0.10
SCALE 10:1
0.20
0.00 +0.10
B 1.85 B
0.00
1.15
0.49
SHT 1 OF 1
THIRD ANGLE PROJECTION C NONE
4 3 2 NX GENERATED
5. Apple Lightning Connector
5.4 Connector Mechanical Requirements
All dock accessories must contain integrated backstops. See iPhone and iPod touch Dock Requirements (page
158) and iPad Dock Requirements (page 160) for more information.
One of two approaches must be used to secure the Lightning connector to the dock accessory:
● 4 M1.6 screws are used to secure the Lightning connector to the dock accessory.
● 2 M1.6 screws are used in the bottom holes of the Lightning connector and 2 locating posts are fed through
the top holes. Apple recommends that the size and tolerance of the locating posts is 1.68 ±0.05 mm.
The tip of the Lightning plug is made with a conductive material. Apple recommends that a continuity tester
be designed and used during the accessory manufacturing process to assure that the minimum exposed plug
length meets the requirement of 6.47 mm.
158
5. Apple Lightning Connector
5.4 Connector Mechanical Requirements
The accessory must have a backstop that contacts the iPhone or iPod touch at a point at least 15 mm vertically
from the bottom of the device when a force of 5 N is applied perpendicular to the screen of the device at a
point 100 mm vertically from the bottom of the device. The iPhone or iPod touch will rotate approximately 2
degrees from its rest position relative to the backstop when this force is applied. A typical backstop is shown
in Figure 5-32 (page 159).
2°
5N
15 mm
The accessory must have a flexible mechanism that allows a user to rotate the iPhone or iPod nano from the
rest position to at least 15 degrees from vertical. This mechanism must prevent the user from applying 10 N
perpendicular to the iPhone or iPod nano at a distance 100 mm from the bottom of the device before the
device reaches the compliant limit.
Flexible
mechanism
100 mm
1 2 3
The accessory should contact the bottom of the device at two points, each of which is at least 20 mm away
from the side of the connector, when the device is in the rest position.
159
5. Apple Lightning Connector
5.4 Connector Mechanical Requirements
Accessory
40 mm total minimum
Centerline
of plug
The Lightning connector is designed to disconnect if biased more than 4 degrees sideways.
Max 4
Accessory
The accessory should not block any iPhone or iPod touch speakers or microphones. See Cases (page 487) for
a pointer to dimensional drawings of iPhone and iPod touch that call out locations of speakers and microphone.
The accessory must have a backstop that contacts the iPad at a point at least 50 mm vertically from the bottom
of the device when a force of 2.5 N is applied perpendicular to the screen of the device at a point 200 mm
vertically from the bottom of the device.
The accessory should contact the bottom of the device at two points, each of which is at least 50 mm away
from the side of the connector, when the device is in the rest position.
160
5. Apple Lightning Connector
5.4 Connector Mechanical Requirements
The accessory and its backstop should not block any speakers or microphones.
The accessory must have a flexible mechanism that allows a user to rotate the iPad from its rest position to at
least 15 degrees from vertical. This mechanism must prevent the user from applying more than 5 N force
perpendicular to the iPad at a distance of 200 mm from the bottom of the device before the device reaches
the compliant limit.
This flexibility requirement is illustrated in Figure 5-37 (page 162). Drawings 1 and 2 show the iPad being
engaged with the connector plug. Drawing 3 shows the device responding to a force of 5 N or less, applied
200 mm above the bottom of the device, by rotating up to 15 degrees from its vertical position.
161
5. Apple Lightning Connector
5.4 Connector Mechanical Requirements
<5N
15 °
Flexible
mechanism
200 mm
1 2 3
The accessory must have a backstop that contacts the iPod nano at a point at least 15 mm vertically from the
bottom of the device when a force of 10 N is applied perpendicular to the screen of the device at a point 50
mm vertically from the bottom of the device.
The accessory should contact the bottom of the device at two points, each of which is at least 20 mm away
from the side of the connector, when the device is in the rest position.
The accessory and its backstop should not block any speakers or microphones.
The accessory must have a flexible mechanism that allows a user to rotate the iPod nano from its rest position
to at least 15 degrees from vertical by only applying a load to the device. This mechanism must prevent the
user from applying more than 20 N force perpendicular to the iPhone or iPod touch at a distance of 50 mm
from the bottom of the device before the device reaches the compliant limit.
This flexibility requirement is illustrated in Figure 5-38 (page 163). Drawings 1 and 2 show the iPod nano being
engaged with the dock connector plug. Drawing 3 shows the device responding to a force of 20 N or less,
applied 50 mm above the bottom of the device, by rotating up to 15 degrees from its vertical position.
162
5. Apple Lightning Connector
5.4 Connector Mechanical Requirements
< 20 N
Flexible
mechanism
50 mm
1 2 3
All docks that incorporate a Lightning (C48) or Lightning (C68) connector must pass the test procedures
specified in Dock Accessories (page 179) and Lightning (C48)/Lightning (C68) Accessories (page 170).
[Link].1 Shielding
All docks incorporating a Lightning (C48) or Lightning (C68) connector must incorporate a SUS stamped shield
as shown in Figure 5-39 (page 163). Use of 0.40 mm thick SUS 304 1/2H material is recommended.
Shields must be free of burrs. Electropolishing is recommended as burrs can cut into wires and cause failures
either in the factory or in the field.
The SUS stamped shield must be laser welded to the Lightning (C48) or Lightning (C68) ground ring as shown
in Figure 5-40 (page 164). Recommended flange welding areas are also indicated. See Laser Welding (page 158).
163
5. Apple Lightning Connector
5.4 Connector Mechanical Requirements
Laser welds between shields and Lightning (C48) or Lightning (C68) must withstand 2000 Nmm bending force.
See Dock Shield Bend Test (C48, C68) (page 179).
Apple recommends the following two-part dock shield design for Lightning (C48).
164
5. Apple Lightning Connector
5.4 Connector Mechanical Requirements
165
5. Apple Lightning Connector
5.4 Connector Mechanical Requirements
166
5. Apple Lightning Connector
5.4 Connector Mechanical Requirements
10 mm
Note: Form-fitting accessories must avoid degrading the wireless performance of Apple devices.
See RF Transmission and Reception (page 65)
Form-fitting accessories may mount the Lightning connector rigidly without any compliance. However, the
rigid mounting should not contact the connector's PCB in any way, as shown in Figure 5-16 (page 146).
167
5. Apple Lightning Connector
5.5 Connector Electrical Requirements
If a Lightning (C48) is used, it must incorporate a shield. The dock shield is recommended, see Shielding (page
163).
168
5. Apple Lightning Connector
5.6 Test Procedures
Figure 5-44 Identifying Lightning (C10), Lightning (C11), or Lightning (C12) connector configuration
169
5. Apple Lightning Connector
5.6 Test Procedures
Note: This procedure is required for all Lightning (C48) or Lightning (C68) integrations on the factory
line. See Lightning (C48)/Lightning (C68) Accessory Testing Requirements (page 169).
170
5. Apple Lightning Connector
5.6 Test Procedures
Verify that the Lightning (C48) or Lightning (C68) connector is functioning correctly after integration by
performing the following test procedure:
1. For cable integrations that terminate in a USB-A plug:
a. Connect the USB side of the cable to the MFi USB Breakout.
b. Connect the MFi USB Breakout to the power supply (pin 9 to power and pin 3 to ground).
2. For all other integrations, connect the accessory's power and ground terminating points to the power
supply.
3. Connect the Lightning (C48) or Lightning (C68) side to the MFi Lightning Breakout.
4. Attach digital multimeter across PWR and GND on MFi Lightning Breakout to measure voltage.
5. Apply 5V on the power supply.
6. Ramp the power supply from 5V to 9V
7. Verify that the output voltage on PWR tracks VBUS until 6.0V ≤ VBUS ≤ 6.6V. At this point PWR must drop
to 0V and remain until VBUS has dropped back below this threshold.
Note: This procedure is required for all Lightning (C48) or Lightning (C68) integrations on the factory
line. See Lightning (C48)/Lightning (C68) Accessory Testing Requirements (page 169).
Verify that the Lightning (C48) or Lightning (C68) connector is functioning correctly after integration by
performing the following test procedure:
1. For cable integrations that terminate in a USB-A plug:
a. Connect the USB side of the cable to the MFi USB Breakout.
b. Connect the MFi USB Breakout to the power supply (pin 9 to power and pin 3 to ground).
2. For all other integrations, connect the accessory's power and ground terminating points to the power
supply.
3. Set current limit on power supply to at least 20 mA.
4. Connect the Lightning (C48) or Lightning (C68) side to the MFi Lightning Breakout.
5. Attach digital multimeter inline with PWR to measure current.
6. Apply 5V on the power supply.
7. Attach 3.5V SMU load (see Note below) across PWR and GND on MFi Lightning Receptacle, measure current
through load. Current must be < 8 mA.
171
5. Apple Lightning Connector
5.6 Test Procedures
8. Attach a short across PWR and GND on MFi Lightning Receptacle, measure current through load. Current
must not exceed 15 mA.
Note: The following four-quadrant SMU or equivalent set of power loads are required:
●
500Ω , > 100 mW
● "short" load, > 20 mA
Note: This procedure is required for all Lightning (C48) or Lightning (C68) integrations on the factory
line. See Lightning (C48)/Lightning (C68) Accessory Testing Requirements (page 169).
Verify that the Lightning (C48) or Lightning (C68) connector is functioning correctly after integration by
performing the following test procedure:
1. For cable integrations that terminate in a USB-A plug:
a. Connect the USB side of the cable to the MFi USB Breakout.
b. Connect the MFi USB Breakout to the power supply (pin 9 to power and pin 3 to ground).
2. For all other integrations, connect the accessory's power and ground terminating points to the power
supply.
3. Attach digital multimeter inline with VBUS to measure current.
4. Apply -1 V on the power supply and measure current consumption. Current must not exceed 17 mA.
5. Apply 5 V on the power supply and measure current consumption. Current must not exceed 1 mA.
172
5. Apple Lightning Connector
5.6 Test Procedures
[Link] Signal Integrity Tests (C10A, C10B, C48A, C48B, C68A, C68B)
All cables that incorporate a Lightning (C10A), Lightning (C10B), Lightning (C48A), Lightning (C48B), Lightning
(C68A), or Lightning (C68B) connector on one end and a USB plug on the other must be tested for differential
insertion loss and differential impedance.
Equipment needed for differential insertion loss and differential impedance testing:
● Agilent E5071C-4K5 ENA with Enhanced TDR
● Agilent N4433A-010 RF ECal module, 300 kHz to 20 GHz, 3.5 mm, 4-port
● MFi USB SI Tester (MFI677-2103)
● MFi Lightning SI Tester (MFI677-1642)
173
5. Apple Lightning Connector
5.6 Test Procedures
On the Agilent ENA, enter TDR mode and run the Setup Wizard and select "Full Calibration". Make sure
"Differential Two-Port" is selected when prompted. Run through the steps required to calibrate and test the
accessory.
Set limit lines for Tdd11 (differential impedance graph) and Sdd12/Sdd21 (differential insertion loss graph).
Results should look similar to Figure 5-46 (page 174) and Figure 5-47 (page 175) as shown below.
174
5. Apple Lightning Connector
5.6 Test Procedures
Note: Differential insertion loss and differential impedance requirements can be found in chapter
7 of the Universal Serial Bus Specification , revision 2.0.
175
5. Apple Lightning Connector
5.6 Test Procedures
Figure 5-48 DCR Ground in Parallel with Shield Conductor Test Setup (RGND||SHIELD)
176
5. Apple Lightning Connector
5.6 Test Procedures
Verify that the cable shielding is still intact after performing a bend test as shown in Figure 5-51 (page 178).
177
5. Apple Lightning Connector
5.6 Test Procedures
2. Cable tester should rotate at 42 RPM. Apple suggests a cable tester from [Link] part
number: YH-8801K.
3. Fix connector so strain relief is centered on a rotating surface. Strain relief and cable should be free to
bend. See Figure 5-53 (page 179).
4. Rotate the tester counter clockwise by 180°. See Figure 5-54 (page 179).
5. Rotate the tester clockwise by 360°. See Figure 5-55 (page 179).
6. Return the tester to its original position. See Figure 5-53 (page 179).
7. Cable should go through at least 50 cycles and still remain functional.
178
5. Apple Lightning Connector
5.6 Test Procedures
Figure 5-54 180° Cable Bend Test Setup for Lightning Cables
Figure 5-55 360° Cable Bend Test Setup for Lightning Cables
179
5. Apple Lightning Connector
5.6 Test Procedures
Figure 5-56 Bend Test Clamp Region for Lightning Dock Shield
Ensure a 1.5 mm gap between plug clamp and groundring flange as shown in Figure 5-57 (page 180) and apply
a force of at least 286 N at a distance of 5.50 mm from flange.
180
5. Apple Lightning Connector
5.6 Test Procedures
[Link].1 Backstop
1. Connect the iPhone or iPod touch to the dock.
2. Using a calibrated force gauge, apply 5 N of force perpendicular to the screen at a point 100 mm vertically
from the bottom of the device as shown in Figure 5-33 (page 159).
3. Verify that a backstop contacts the device at a point at least 15 mm vertically from the bottom of the
device when the force is applied, as shown in figure Figure 5-32 (page 159).
Some docks have a backstop or other surface that limits access to the back of the device. A mechanism fitting
over the front of the device similar to the one shown in Figure 5-58 (page 182) should be constructed to test
them.
181
5. Apple Lightning Connector
5.6 Test Procedures
Figure 5-58 Fitting mechanism to enable testing of certain docks that limit device access
[Link].1 Backstop
1. Connect the iPad to the dock.
2. Using a calibrated force gauge, apply 2.5 N of force perpendicular to the screen at a point 200 mm vertically
from the bottom of the device as shown in Figure 5-37 (page 162).
3. Verify that a backstop contacts the device at a point at least 50 mm vertically from the bottom of the
device when the force is applied.
182
5. Apple Lightning Connector
5.6 Test Procedures
2. Using a calibrated force gauge, apply force perpendicular to the device at a point 200 mm from the bottom
of the device. Verify that a flexible mechanism prevents the user from applying more than 5 N of force to
the device.
3. Using a protractor, verify that the device can be rotated 15 degrees from vertical.
Some docks have a backstop or other surface that limits access to the back of the device. A mechanism fitting
over the front of the device similar to the one shown in Figure 5-58 (page 182) should be constructed to test
them.
[Link].1 Backstop
1. Connect the iPod nano to the dock.
2. Using a calibrated force gauge, apply 20 N of force perpendicular to the screen at a point 50 mm vertically
from the bottom of the device.
3. Verify that a backstop contacts the device at a point at least 15 mm vertically from the bottom of the
device when the force is applied, as shown in figure Figure 5-32 (page 159).
Some docks have a backstop or other surface that limits access to the back of the device. A mechanism fitting
over the front of the device similar to the one shown in Figure 5-58 (page 182) should be constructed to test
them.
183
5. Apple Lightning Connector
5.6 Test Procedures
184
5. Apple Lightning Connector
5.6 Test Procedures
185
6. Apple Lightning Receptacle
The Lightning Receptacle does not support any accessory interface features other than the ones listed above.
186
6. Apple Lightning Receptacle
6.1 Lightning Receptacle Requirements
Examples of accessories that may benefit from including Lightning Receptacle include docks, battery pack
cases, game controllers, Lightning headsets, and Bluetooth speakers.
Wireless accessories may use a Lightning Receptacle to charge their internal batteries at higher rates than
those permitted by the USB specification using any USB to Lightning cable and Apple branded or MFi certified
USB power adapters. This can be useful for game controllers (see HID Game Controller (page 591)), headsets
(see Headsets (page 549)), and speakers.
For example, accessories that only provide power to the Apple device do not qualify to use the Lightning
Receptacle.
187
6. Apple Lightning Receptacle
6.2 Lightning Receptacle Mechanical Requirements
The Lightning Receptacle is designed to withstand a standard reflow profile. Apple recommends a peak reflow
temperature below 250 °C for 20 seconds maximum to prevent damage to the receptacle.
188
6. Apple Lightning Receptacle
6.2 Lightning Receptacle Mechanical Requirements
189
6. Apple Lightning Receptacle
6.2 Lightning Receptacle Mechanical Requirements
6.2.1 Mounting
A stainless steel trim ring is recommended around the opening of the receptacle for maximum durability and
robustness.
The receptacle must be recessed from the surface of the accessory as specified in Figure 6-3 (page 189). The
depth of the receptacle to the surface of the opening must be at least 6.47 mm and at most 6.65 mm.
The opening for the Lightning connector must be fully rounded and meet the dimensions in Figure 6-3 (page
189).
The receptacle must be mounted in all 4 mounting holes with screws. Holes are designed to fit M1.2 screws.
The accessory must keep a 13.65 mm by 6.85 mm area with full radii rounded edges clear around the receptacle
for a distance of 14.0 mm as shown in Figure 6-4 (page 190).
190
6. Apple Lightning Receptacle
6.2 Lightning Receptacle Mechanical Requirements
The accessory must use the Lightning Receptacle icon art asset posted on the MFi Portal.
The accessory must not use any other icon or text to label the receptacle.
The icon should be aligned with the center of the receptacle and should be located either directly below or
to the right of the receptacle.
The icon color should be black or white, whichever provides most contrast against the surface.
A jet dispense process is recommended for applying encapsulation. Some recommended vendors of
encapsulation equipment are:
● Nordson EFD/ASYMTEK ([Link]
● Musashi Engineering ([Link]
191
6. Apple Lightning Receptacle
6.3 Lightning Receptacle Electrical Requirements
Accessories that integrate a Lightning Receptacle must use one or more of the following data transports to
connect to the Apple device:
● Serial
● Lightning Audio Module Serial
● Wi-Fi
● Bluetooth
Accessories that integrate a Lightning Receptacle and also connect to an Apple device via a Lightning connector
may support passthrough USB charge/sync for the Apple device. To support passthrough charge/sync, such
accessories must:
● Integrate one of the following Lightning connectors:
● Lightning (C10B), Lightning (C48B), Lightning (C11B), Lightning (C12B), or Lightning (C68B)
● Lightning (C10E), Lightning (C11E), Lightning (C12E), or Lightning (C68E)
● Connect USB D+, USB D-, and Ground from the Lightning connector directly to the Lightning Receptacle
Controller.
● Connect Device Power from the Lightning connector to the gated Receptacle Power, see Reference
Circuit (page 213).
● Not use the USB transport for any communication with the Apple device while gated Receptacle Power
is active, see Reference Circuit (page 213).
● Not draw power from the Lightning Receptacle unless they also integrate a Lightning Audio Module and
use it to reserve a portion of pass-through power for the accessory's own use (see
accPassthroughPowerSourceInformation (0x24) (page 122)).
● Pass the Lightning receptacle USB Integrity test procedures (see Passthrough USB Signal Integrity (page
198)).
192
6. Apple Lightning Receptacle
6.3 Lightning Receptacle Electrical Requirements
● Enumerate as a USB device when connected to a USB host, such as a Mac, and:
● Not draw more than 100 mA of current until they have been successfully enumerated.
● Request no more than 500 mA of charging current in their USB device descriptor.
● Not draw more power than the USB power source claims it is capable of providing via one of the above
methods.
Accessories that draw power from a Lightning Receptacle to charge an internal battery must be capable of
drawing at least 1.0 A from an Apple branded or MFi certified USB power source. 2.4 A is recommended.
Accessories that draw power from the Lightning Receptacle must be able to identify all of the resistor values
in Table 6-1 (page 193) and must not attempt to draw more than the current specified. Accessories must take
into account the variation of USB VBUS voltage and resistor tolerance (see Connectors That Do Not Implement
iAP2 (page 665)).
Table 6-1 USB D+/D- resistor values for power-providing accessory connectors that do not implement iAP2
Current R1 R2 R3 R4
The following procedure is recommended for identifying the current limit based on the resistor values:
193
6. Apple Lightning Receptacle
6.3 Lightning Receptacle Electrical Requirements
1. Read the VBUS voltage using an ADC. If value is less than 4.5 V, return no resistors detected.
2. For each D+ and D-, pull-down the line and read the voltage using an ADC. If either value is less than 1 V,
return no resistors detected.
3. For each D+ and D-, disable the pull-down and allow the voltage to return to normal.
4. Read the D+ voltage using an ADC.
5. Read the D- voltage using an ADC.
6. For each value:
●
If value is > 2.995 V (based on 1 MΩ load impedance), then assume 24.9 kΩ .
●
If value is between 2.320 V and 2.995 V (based on 1 MΩ load impedance), then assume 43.2 kΩ .
●
If value is < 2.320 V (based on 1 MΩ load impedance), then assume 75.0 kΩ .
7. Use a table to look up max current, see Table 6-1 (page 193).
If resistor values could not be identified, the accessory should proceed to identify the power available based
on the USB Battery Charging 1.2 specification.
194
6. Apple Lightning Receptacle
6.4 Test Procedures
Signals from the following pads must be routed as differential pairs with 90 Ω differential impedance:
● RCP_3 and RCP_4
● RCP_7 and RCP_8
195
1.
2.
a.
b.
Figure 6-7
4 3 2 1
6.4 Test Procedures
Using a caliper,
D D
6. Apple Lightning Receptacle
A
1.50 0.025
6.65 0.04
0.05
BOTH SIDES
+0.10
-0.18
0 1
ALL CONTINUOUS SURFACES
6.65
2x 90 1
9.87
2X 2.31
+0.04 4.72
6.69
C C
2X 0.70
20.95
10.00
2X 0.64
2X 1.14
Lightning Receptacle Mechanical Test Plug
196
4.52 2.22
B B
8.97
R
METRIC Apple Inc.
DRAFTER DATE
6.12
DESIGNER DATE THE FOLLOWING:
(i) TO MAINTAIN THIS DOCUMENT IN CONFIDENCE
IPOD PD 05/14/14 (ii) NOT TO REPRODUCE OR COPY IT
(iii) NOT TO REVEAL OR PUBLISH IT IN WHOLE OR PART
(iv) ALL RIGHTS RESERVED
Verify that an Apple branded Lightning cable inserts fully into the receptacle.
DIMENSIONS ARE IN MILLIMETERS
TOLERANCES TITLE
R
0
.5
0 X.X 0.2 PLUG, LIGHTNING,
A [Link] 0.10 MFI, BENDTEST A
[Link] 0.050
SHT 1 OF 1
THIRD ANGLE PROJECTION C NONE
4 3 2 NX GENERATED
Verify that the width of the receptacle opening is at least 7.45 mm and at most 7.70 mm.
Verify that the height of the receptacle opening is at least 1.70 mm and at most 1.95 mm.
6. Apple Lightning Receptacle
6.4 Test Procedures
c. Verify that the depth of the receptacle to the surface of the opening is at least 6.47 mm and at most
6.65 mm.
d. Verify that the an area at the surface is clear for at least 13.65 mm by 6.85 mm with full radii rounded
edges for a distance of 14.0 mm normal to the surface.
3. Verify that the receptacle opening is fully rounded.
4. If labeled, verify that the only label for the receptacle is the icon in Figure 6-5 (page 191).
197
6. Apple Lightning Receptacle
6.4 Test Procedures
198
6. Apple Lightning Receptacle
6.4 Test Procedures
The eye diagram must meet the requirements in Figure 6-9 (page 199) and Table 6-3 (page 199).
Figure 6-9 High-Speed Eye Diagram Template at the SMA test fixture
Point 1 0V 7.5% UI
Point 2 0V 92.5% UI
199
6. Apple Lightning Receptacle
6.4 Test Procedures
For more information on the Full-Speed Electrical Test Procedure, refer to section B.6.3 Test Steps of USB-IF
Full and Low Speed Electrical and Interoperability Compliance Test Procedure.
The eye diagram must meet the requirements in Figure 6-10 (page 201).
200
6. Apple Lightning Receptacle
6.4 Test Procedures
Figure 6-10 Full-Speed Eye Diagram Template at the SMA test fixture
The Lightning Receptacle Tester is designed to provide VBUS and D+/D- voltages with ±1.0% and ±2.2% of
specification to take into account variations in tolerances and to provide additional margin for testing. See
Table 6-4 (page 201) and Table 6-5 (page 201).
201
6. Apple Lightning Receptacle
6.4 Test Procedures
The Lightning Receptacle Tester provides controls to vary the following parameters:
●
D+ pull-up resistor value (24.9 kΩ , 43.2 kΩ , or 75.0 kΩ )
●
D- pull-up resistor value (24.9 kΩ , 43.2 kΩ , or 75.0 kΩ )
● VBUS voltage margin (min/max)
● D+ pull-up resistor margin (min/max)
● D- pull-up resistor margin (min/max)
202
6. Apple Lightning Receptacle
6.4 Test Procedures
203
6. Apple Lightning Receptacle
6.4 Test Procedures
Table 6-6 (page 204) may be used to record the current for each switch combination.
204
6. Apple Lightning Receptacle
6.4 Test Procedures
205
6. Apple Lightning Receptacle
6.4 Test Procedures
206
6. Apple Lightning Receptacle
6.4 Test Procedures
207
7. Apple Lightning Receptacle Controller
Accessories may incorporate a Lightning Receptacle Controller to establish electrical connections with Apple
branded or MFi certified power supplies, USB Dedicated Charging Ports, and USB hosts, such as a Mac.
The Apple Lightning Receptacle Controller chip must be used in conjunction with the Lightning Receptacle,
see Apple Lightning Receptacle (page 186).
7.1 Mechanical
The Lightning Receptacle Controller has the following mechanical properties:
● Package: WLCSP 36 balls, 2.07 mm x 2.07 mm x 0.435 mm height, 0.35 mm pitch
● Operating temperature: -20 °C to 85 °C
208
7. Apple Lightning Receptacle Controller
7.1 Mechanical
209
7. Apple Lightning Receptacle Controller
7.1 Mechanical
e 0.35 mm
e1 1.75 mm
e2 1.75 mm
v 0.05 mm
w 0.015 mm
y 0.03 mm
210
7. Apple Lightning Receptacle Controller
7.1 Mechanical
Label Dimension
P0 4 mm
P 4 mm
A 2.24 mm
B 2.24 mm
K 0.75 mm
W 8 mm
211
7. Apple Lightning Receptacle Controller
7.2 Electrical
7.2 Electrical
The Lightning Receptacle Controller has the following electrical properties:
● Power supplies:
● VDD(1V8)
212
7. Apple Lightning Receptacle Controller
7.2 Electrical
Application Specific
ISOURCE ISYSTEM
5V0 5V0 5V0
Charge VBATT Discharge 5V0
RCP6, RVP GATE Step
Receptacle Step Up
Power Down
ILIMIT
�1.0 uF 10k
after derating at 5.4V
Charger
C37 Input
Current
220K
10k Limit
Receptacle Gate Local
RCP_1, RCP_10 E3 Power 3V3 EN
3V3
LDO Batt
RCP_3 A2 1.1 uF
RCP_4 B2
RCP_5 C5 1V8 EN
C37 1V8
LDO
RCP_7 B4 0.01 uF
Controller
RCP_8 A4
RCP_9 E5 USB D+ USB D+
USB D-
MCU
RCP_2, Ground Ground USB D-
E6 D3, D4, E4
1.0 uF 10k
Note: This reference circuit does not support passthrough USB charge/sync. See Lightning Receptacle
Electrical Requirements (page 192) for additional requirements specific to passthrough USB
charge/sync.
The RVP (reverse voltage protection) and GATE (power gate) transistors can both be the same model since the
voltage, current and resistance requirements are the same. Vds and Vgs should withstand at least ±6 V and
should be rated for continuous operation at Vds or Vgs as high as ±5.4 V. The drain current should be rated to
at least 2.4 A. An Rdson of no more than 10 mΩ is recommended for each transistor at Vgs = 4.25 V, Id = 2.4
A in order to avoid significant impact to the overall roundtrip resistance. This accounts for the lowest VBUS
voltage, highest roundtrip cable resistance, and maximum current.
213
7. Apple Lightning Receptacle Controller
7.2 Electrical
The capacitor connected to Receptacle Power at F6 must be at least 1.0 uF after derating at 5.4 V. A 0402 25
V X5R 1 uF capacitor is recommended.
The two LDOs must only be enabled when Receptacle Power is 5 V. The LDO power source may come from
Receptacle Power or System Power.
Signals from D3, D4, and E4 must be combined and pulled-up to VDD(1V8) using a 10 kΩ resistor.
All un-assigned or Reserved signals must be soldered but left Not Connected (NC).
Pad Assignment
A1 Reserved
A3 USB D+
A5 Reserved
A6 Ground
B1 Reserved
B3 USB D-
B5 Reserved
B6 Reserved
C1 Ground
C2 Reserved
C3 Reserved
C4 Reserved
214
7. Apple Lightning Receptacle Controller
7.2 Electrical
Pad Assignment
C6 Reserved
D1 Reserved
D2 Reserved
D3 10 kΩ pull-up to VDD(1V8)
D4 10 kΩ pull-up to VDD(1V8)
D5 Reserved
E1 Reserved
E2 Reserved
E3 RCP_1 and RCP_10 with 220 kΩ pull-up to VDD(3V3) and 10 kΩ in series, see Pins and
Assignments (page 194)
E4 10 kΩ pull-up to VDD(1V8)
E6 1.0 uF to Ground
F1 Reserved
F2 Reserved
F3 VDD(1V8)
F4 VDD(3V3)
F5 Ground
215
7. Apple Lightning Receptacle Controller
7.2 Electrical
216
7. Apple Lightning Receptacle Controller
7.2 Electrical
217
8. Apple Magnetic Charging Module
The Magnetic Charging Module enables dock accessories to recharge the Apple Watch when it is not being
worn by the user.
Magnetic Charging Module must not be integrated into cables or wearable accessories such as wrist straps or
watch bands.
Apple Magnetic Charging Module docks may also integrate a Lightning connector so long as the integration
complies with Lightning dock requirements (see Dock Accessories (page 158)).
Accessories that incorporate a Magnetic Charging Module must provide power to Apple Watch. See Magnetic
Charging Module Electrical Requirements (page 221).
218
4 3 2 1
Figure 8-2
REV ECO# DESCRIPTION OF REVISION
01 INITIAL RELEASE
NOTES: (UNLESS OTHERWISE SPECIFIED) APPLE 03/26/15
02 CORRECTED PINOUT DESIGNATION.
APPLE 06/02/15
D D
31.62 0.03
8. Apple Magnetic Charging Module
C C
8.2 Magnetic Charging Module Mechanical Requirements
GND USB D+
Magnetic Charging Module Dimensions
1.48 0.20
2.80 7.56
0.40
219
1.27 PITCH
1.80
4 PIN CONNECTOR R 0.50
27.62
0.63
PIN 1 3X 5.00
SHT 1 OF 1
THIRD ANGLE PROJECTION C NONE
4 3 2 NX GENERATED
8. Apple Magnetic Charging Module
8.2 Magnetic Charging Module Mechanical Requirements
Accessories should be compatible with all Apple bands including the Milanese Loop and the Link Bracelet.
Additionally, the accessory should not:
● Require the watch band to be removed or detached.
● Make contact with the watch band in a manner that may scratch or damage the band.
The surface of the Magnetic Charging Module must be 0.40 mm ±0.25 mm proud of the surface of the accessory.
220
8. Apple Magnetic Charging Module
8.3 Magnetic Charging Module Electrical Requirements
The Magnetic Charging Module must be mounted such that any combination of Apple Watch and band must
not disengage and fall off due to gravity.
The Magnetic Charging Module must not be mounted more than 45 degrees from horizontal. Horizontal
mounting is suggested.
The Magnetic Charging Module must be mounted using at least one of the following:
● All 3 mounting holes with screws. Holes are designed to fit M2 x 0.4 threaded screws. A minimum 2 thread
engagement is required.
● An adhesive to bond the lip of the cap to the surface of the accessory. Apple recommends pressure sensitive
adhesive (PSA) in a ring with an inner diameter of 29.12 mm, a width of 1.05 mm to 1.25 mm, and a
thickness of 0.15 mm.
The Magnetic Charging Module connector must not be mounted in proximity to magnetic steel.
All RF/metal keep out zones for the Apple Watch must be respected, see Apple Watch 38 mm (page 883) and
Apple Watch 42 mm (page 884).
8.3.1 Power
Accessories that integrate a Magnetic Charging Module must provide power from either:
● An external USB power source.
● An internal power supply.
221
8. Apple Magnetic Charging Module
8.3 Magnetic Charging Module Electrical Requirements
If the accessory relies on an external USB power source to provide power to the Magnetic Charging Module
and does not contain its own internal power supply, it:
● Must connect to the external USB power source via a captive cable that terminates in a USB-A plug.
● Must not consume any power from the external USB power source.
● Must not monitor or modify the USB D+/D- signals from the external USB power source.
For USB-IF test procedures, see the USB-IF Full and Low Speed Electrical and Interoperability Compliance Test
Procedure and Gold Suite Test Procedure .
Overcurrent protection (OCP) is optional. If the accessory implements OCP, the round trip DCR measurement
must include the on-resistance of the OCP switch.
222
8. Apple Magnetic Charging Module
8.3 Magnetic Charging Module Electrical Requirements
2 GND Ground
3 USB D+ USB D+
4 USB D- USB D-
The module housing must be grounded. Any metallic accessory housing must share the same ground as the
module housing.
Signals from the USB D+ and D- pins must be routed as a differential pair.
One of the following approaches must be used to connect to the module pins:
● Use a 4-pin 0.050" micro pitch connector mounted to a PCB. The PCB must be attached to the module
using the 3 mounting holes.
● Use a 4-pin 0.050" micro pitch connector attached to a cable.
● Solder pins directly to a PCB using through-hole mounting. The pins must not be reflow soldered, but
must be manually soldered with heat contained to the pin region.
● Solder wires directly to the pins.
Micro pitch connectors are available from Samtec ([Link] and others.
223
8. Apple Magnetic Charging Module
8.3 Magnetic Charging Module Electrical Requirements
8.3.3 EMC
Apple recommends shielding the magnetic field from the charging coil and maintaining a low impedance
shield termination for the cable to comply with regulatory EMC requirements for the completed product. The
implementation, final compliance testing, report preparation, and labeling are the responsibility of the company
marketing the product.
Cable termination is critical for reduced emissions. Cable termination and connectors should be kept away
from the Magnetic Charging Module and should be routed away from the face of the module.
If an adapter board is used between the Magnetic Charging Module and a cable, the cable should have 360
degree termination to the board. The design of the adapter board should limit exposed traces on external
layers.
If emissions are present, adding clamp-on ferrites/absorbers to the cable can help reduce the emissions. The
selected ferrite/absorber material should be rated for the failing frequencies.
The Apple Watch models with wristband combinations (listed at [Link] should
be tested with the Magnetic Charging Module for EMC/EMI.
Depending on the use cases, testing should be performed with one or all of the following power supplies:
● 15" MacBook Pro
● Apple USB Power Adapter (US) Model A1385
● Apple USB Power Adapter (Int.) Model A1400
● Apple USB Power Adapter (UK) Model A1552
● Apple USB Power Adapter (China) Model A1443
● Apple USB Power Adapter (Australia) Model A1444
● Apple USB Power Adapter (Brazil) Model A1486
● Apple USB Power Adapter (Korea) Model A1487
● Apple USB Power Adapter (Argentina) Model A1501
If different power sources are used than listed above, emission testing should be performed with those power
sources ON.
In addition to the cases above, the charging device should be tested in idle mode for emissions.
Emissions tests should be conducted in accordance with standards referenced in the following:
● FCC CFR 47, Part 15
● ICES-003, Issue 5, CAN/CSA-CEI/IEC CISPR 22-10
224
8. Apple Magnetic Charging Module
8.4 Factory Configuration
● CISPR 22:2008
● EN55022:2010
● AS/NZS CISPR 22:2009, TCVN 7189:2009
● VCCI V-3/2013.04
● GB 9254-2008, GB 17625.1-2012, GB 17625.2-2007, CNS 13438-2006
● CISPR 24: 2010
● EN 55024: 2010
Once the highest emissions combination is identified, complete testing should be performed on that
configuration.
In some regulatory domains EMC certification is required before placing the accessory on the market.
The Magnetic Charging Module must be configured at the time of accessory manufacturing to set the following
parameters:
● Vendor ID (VID)
● Product ID (PID)
● Vendor Name
● Product Name
● Model Number
● Serial Number
225
8. Apple Magnetic Charging Module
8.4 Factory Configuration
● Must set the Vendor ID (VID) as assigned by the USB-IF and a unique Product ID (PID) assigned by the
accessory developer. The VID must correspond to the brand name that appears on the accessory or its
packaging. See USB Host Mode (page 712).
The Magnetic Charging Module factory configuration interface provides commands to read and set each
configuration parameter. Commands take two forms:
● "[commandName ]" to read the current value of a parameter.
● "[commandName -parameterValue ]" to set the value of a parameter.
Format: [SetVN-vendorName ]
Parameters:
● vendorName : A string representation of the vendor name from the manufacturer (up to 64 UTF8 characters).
226
8. Apple Magnetic Charging Module
8.4 Factory Configuration
Format: [SetPN-productName ]
Parameters:
● productName : A string representation of the product name from the manufacturer (up to 64 UTF8
characters).
Format: [SetMN-modelNumber ]
Parameters:
● modelNumber : A string representation of the model number from the manufacturer (up to 32 UTF8
characters).
Format: [SetSN-serialNumber ]
Parameters:
● serialNumber : A string representation of the serial number from the manufacturer (up to 32 UTF8 characters).
Example: [SetSN-ABCDEF123456]
Response: <SetSN-ABCDEF123456>
Format: [SetUV-vendorID ]
227
8. Apple Magnetic Charging Module
8.4 Factory Configuration
Parameters:
● vendorID : A string representation of the hex value of the vendor ID from the manufacturer, without the
0x prefix.
Example: [SetUV-0000]
Response: <SetUV-0000>
Format: [SetUP-productID ]
Parameters:
● productID : A string representation of the hex value of the product ID from the manufacturer, without the
0x prefix.
Example: [SetUP-0000]
Response: <SetUP-0000>
Format: [LkCfg-mode ]
Parameters:
● mode :
● 1 = Configure the next boot into production mode, then return to VCP mode. This setting may be
used for testing.
● 2 = Permanently boot in production mode. This setting must be used for all production units.
● All other values are reserved.
Example: [LkCfg-2]
Response: <LkCfg-2>
228
8. Apple Magnetic Charging Module
8.4 Factory Configuration
The following is an example factory configuration sequence which permanently locks the Magnetic Charging
Module immediately after configuration:
1. Apply power to Magnetic Charging Module and connect to USB VCP interface.
2. Issues all SetXX commands to program module.
3. Issue LkCfg-2 (permanently lock firmware settings).
4. Cycle power, Magnetic Charging Module permanently boots in production mode.
5. Verify configuration (see Verifying Configuration (page 229)).
229
8. Apple Magnetic Charging Module
8.5 USB Virtual COM Port
When using a Mac running OS X, the Magnetic Charging Module is recognized as a USB serial device. The
accessory will appear as /dev/[Link]-<identifier>. The interface may be accessed using various
serial interface programs (e.g. executing screen /dev/[Link]-<identifier> given the appropriate
identifier in a terminal).
When using a computer running Windows, the STMicro VCP driver is required. The STM32 Virtual COM Port
Driver (part number STSW-STM32102) is available at [Link] Once installed, edit the [Link]
file to add Apple VID 0x05AC and Magnetic Charging Module PID 0x1709 to the DeviceList sections as follows:
[[Link]]
[DeviceList.NTamd64]
If the VCP is not identified properly upon connection, update the driver using the Windows Device Manager.
If the accessory is listed as a Composite device, select it and update the driver (choose "Have Disk", and browse
to the folder containing the updated [Link] file).
8.6.1 Mechanical
This section contains mechanical test procedures for accessories integrating the Magnetic Charging Module.
230
8. Apple Magnetic Charging Module
8.6 Test Procedures
3. Using a caliper, verify that the Magnetic Charging Module is 0.40 mm ±0.25 mm proud of the surface of
the accessory.
4. Using a protractor, verify that the Magnetic Charging Module is not mounted at an angle greater than 45
degrees from the horizontal.
8.6.2 Electrical
This section contains electrical test procedures for accessories integrating the Magnetic Charging Module.
[Link].1 Equipment
The following equipment is required for performing the electrical test procedures:
● Electronic load rated at 10 W or higher, capable of constant current (CC) mode.
● Oscilloscope with 100 MHz or higher bandwidth.
231
8. Apple Magnetic Charging Module
8.6 Test Procedures
2. With electronic load set to CC mode, record the average VBUS voltage on the scope for each load from 0
A to 1 A in 200 mA steps.
3. Verify that all recorded values are within 4.75 V and 5.40 V.
[Link].1 Equipment
The following equipment is required:
● DMM with 4-wire Kelvin sense capability
232
8. Apple Magnetic Charging Module
8.6 Test Procedures
8. Connect the positive lead of the DMM to the 4-pin connector's GND pin.
9. Connect the negative lead of the DMM to the USB-A plug's GND pin on the breakout board.
10. Record the voltage, VGND in mV, from the DMM.
233
9. Apple 30-pin Connector
These connectors must not be the sole or main point of physical support for an iPhone, iPad, or iPod. Accessories
must use the universal dock & dock adapter approach to provide support, or, alternatively, must implement
another means (other than the connector) to provide physical support to an iPhone, iPad, or iPod.
See MFi Accessory Hardware Specification R9 for full details of the 30-pin connector.
The mid-plane plug is designed for use with the Mid-Plane Plug (Top Shell) (page 235) & Mid-Plane Plug (Bottom
Shell) (page 235), which provide a passive/friction latching mechanism.
Note: Only 16 pins are present in this connector. See the connector drawing for details. Licensees are strongly
encouraged to purchase samples of this connector to confirm that it meets their requirements.
This connector should be used with products where a metal shell around the connector is not desired or
supported, but does require friction latching pins.
234
9. Apple 30-pin Connector
9.1 Connector Versions
This connector should be used with products where a metal shell around the connector is not desired or
supported, but does require friction latching pins.
Note: Only 10 pins are present in this connector. See the connector drawing for details.
This is not a plastic over-mold or shell, and helps shield against EMI.
The cable-end plug is designed for use with Cable-End Plug (Top Shell) (page 236) & Cable-End Plug (Bottom
Shell) (page 236), which provide an active latch mechanism.
This connector is designed to be soldered to the end of a cable. It should be used with cable assemblies, where
the connector cannot be unplugged unless the user presses release buttons on the side of the connector
housing. This connector has solder tail pins, and is not suitable for mounting onto a PCB.
235
9. Apple 30-pin Connector
9.1 Connector Versions
Designed for use with Cable-End Plug (Top Shell) (page 236) & Cable-End Plug (Bottom Shell) (page 236), which
provide an active latch mechanism.
Note: Only 10 pins are present in this connector. See the connector drawing for details.
It includes latch 'fingers' that hold the connector into the iPod. Users are required to press detent buttons on
the side of the connector to disconnect the accessory.
This is not a plastic over-mold or shell, and helps shield against EMI.
9.1.12 Receptacle
The receptacle connector is only available in sample quantities, and is only for use in manufacturing and R&D
test fixtures.
236
9. Apple 30-pin Connector
9.1 Connector Versions
Note: This connector is not available for use in production and/or shipping products.
237
9. Apple 30-pin Connector
9.2 Connector Dimensional Drawings
238
9. Apple 30-pin Connector
9.2 Connector Dimensional Drawings
239
9. Apple 30-pin Connector
9.2 Connector Dimensional Drawings
240
9. Apple 30-pin Connector
9.2 Connector Dimensional Drawings
241
9. Apple 30-pin Connector
9.2 Connector Dimensional Drawings
242
9. Apple 30-pin Connector
9.2 Connector Dimensional Drawings
243
9. Apple 30-pin Connector
9.2 Connector Dimensional Drawings
244
9. Apple 30-pin Connector
9.2 Connector Dimensional Drawings
245
9. Apple 30-pin Connector
9.2 Connector Dimensional Drawings
246
9. Apple 30-pin Connector
9.2 Connector Dimensional Drawings
247
9. Apple 30-pin Connector
9.2 Connector Dimensional Drawings
248
9. Apple 30-pin Connector
9.2 Connector Dimensional Drawings
249
9. Apple 30-pin Connector
9.2 Connector Dimensional Drawings
250
10. Apple Smart Connector
Note: This chapter is a Developer Preview and is not intended for use in the development of Proposed
Products or Licensed Products under a MFi License. Although this content has been reviewed for
accuracy, it is not final. Apple is supplying this content to help accessory developers plan for the
adoption of the accessory interface features described herein. This information is subject to change,
and accessories implemented according to this content must be tested with final operating system
software and final documentation before going through self certification.
The Apple Smart Connector must be used in conjunction with the Apple Smart Connector Module (page 253).
10.1 Reversibility
The Apple Smart Connector is not reversible.
Accessories must combine the following additional components with a Smart Connector:
● Two M1.2 screws
● 0.3 mm thick foam
251
10. Apple Smart Connector
10.4 Electrical Requirements
Accessory designs must respect these areas when meeting the following requirements:
● Mated assembly shall be subjected to mechanical shock per EIA-364-27B, test condition A, three
discontinuities of 1 µs or longer duration.
● Any process performed on the Smart Connector must not cause any buildup of material on its exposed
contact surface.
● Pin height must be 0.45 mm ±0.05 mm after being assembled onto the accessory.
● All 4 snaps between the connector and bracket must be engaged.
● Assembled Smart Connector must not short any pins to the bracket.
● Accessory's Smart Connector must make contact normal to the Apple device's Smart Connector.
252
11. Apple Smart Connector Module
Note: This chapter is a Developer Preview and is not intended for use in the development of Proposed
Products or Licensed Products under a MFi License. Although this content has been reviewed for
accuracy, it is not final. Apple is supplying this content to help accessory developers plan for the
adoption of the accessory interface features described herein. This information is subject to change,
and accessories implemented according to this content must be tested with final operating system
software and final documentation before going through self certification.
Accessories may make use of the Apple Smart Connector Module to create the following types of accessories
that attach to Apple devices with a Apple Smart Connector (page 251):
● Form-fitting
● Docks
Accessories using the Smart Connector Module may support the following features:
● iAP2 Control Session
● Native HID
● Accessory Power
● Device Power
253
11. Apple Smart Connector Module
11.1 Overview
11.1 Overview
Key accessory-facing features of the Smart Connector Module are:
● I2C Interface
● Accessory Power
● Device Power
11.3 Authentication
Accessories that communicate with an Apple device via the Smart Connector Module do not need to integrate
an Apple Authentication Coprocessor.
254
11. Apple Smart Connector Module
11.4 Smart Connector
11.5 Mechanical
The Smart Connector Module has the following mechanical characteristics:
● 6 mm by 15 mm by 1 mm LGA package on tape and reel
● 0.5 mm offset
● 1.5 mm center to center on all pads
255
11. Apple Smart Connector Module
11.5 Mechanical
Pickup offsets for the Smart Connector Module (see Figure 11-3 (page 257)) are:
256
11. Apple Smart Connector Module
11.6 Pad Layout and Assignments
● (X1) 3.25 mm
● (Y1) 3.25 mm
● (X2) 4.00 mm
● (Y2) 4.00 mm
257
11. Apple Smart Connector Module
11.6 Pad Layout and Assignments
Figure 11-4 Smart Connector Module pad layout (top view looking through module)
11-20 Reserved
258
11. Apple Smart Connector Module
11.7 Input/Output Electrical Characteristics
33 Reserved
34 SDA
35 Reserved
36 SCL
37 Reserved
38 RESET
39 READY
40 IRQ
Table 11-3 Smart Connector Module I/O and I2C pad voltage characteristics
259
11. Apple Smart Connector Module
11.7 Input/Output Electrical Characteristics
Table 11-4 Smart Connector Module I/O and I2C pad current characteristics
Pin Characteristic Max Source Typical Source Typical Sunk Maximum Sunk
SDA I2C 16 mA 8 mA 8 mA 22 mA
SCL I2C 16 mA 8 mA 8 mA 22 mA
RESET Output 16 mA 8 mA 8 mA 22 mA
IRQ Input 16 mA 8 mA 8 mA 22 mA
READY Output 16 mA 8 mA 8 mA 22 mA
260
12. Accessory Authentication
Accessory authentication provides a mechanism for Apple devices to trust the identities and feature sets of
accessories that are compliant with this specification.
It is also possible for an accessory to require the Apple device to authenticate itself to the accessory. For more
details, see Device Authentication (page 523).
An accessory may use one authentication processor to authenticate itself to more than one Apple device.
Conversely, multiple accessories must not share one authentication coprocessor or authenticate on behalf of
each other to the same Apple device.
All accessories that support the Accessory Authentication feature via iAP2 must send or receive the following
iAP2 control session message(s):
RequestAuthenticationCertificate (page 805)
AuthenticationCertificate (page 805)
RequestAuthenticationChallengeResponse (page 805)
AuthenticationResponse (page 806)
AuthenticationFailed (page 806)
261
12. Accessory Authentication
12.2 Accessory Authentication Usage
If control session version 2 is in use and the RequestAuthenticationCertificate (page 805) message contains a
RequestAuthenticationCertificateSerialNumber parameter, the accessory should retrieve the X.509 certificate
serial number from its Apple authentication coprocessor and transmit it to the Apple device using an
AccessoryAuthenticationSerialNumber (page 807) message.
If the certificate is valid, the Apple device will respond with a RequestAuthenticationChallengeResponse (page
805) message. The accessory then must use the Apple authentication coprocessor to compute a response to
the authentication challenge and send an AuthenticationResponse (page 806) message with the response. This
response must be sent within 2 seconds of receiving the RequestAuthenticationChallengeResponse (page 805)
message.
If the authentication response is correct, then the Apple device will send an AuthenticationSucceeded (page
806) message. The accessory must immediately proceed to Accessory Identification (page 265) unless it is using
control session version 2 and has already identified (see Control Session (page 789)). With control session version
2, once the Apple device starts authentication, the accessory must complete the process within 15 seconds.
To demonstrate correct handling of the AuthenticationFailed (page 806) message during self-certification,
accessories must send an empty or invalid certificate when the Apple Authentication Coprocessor is not present.
262
12. Accessory Authentication
12.3 Accessory Authentication Examples
RequestAuthenticationCertificate
oequestAuthenticationCertificateperialkumber
AccessoryAuthenticationSerialNumber
uKRMV Certificate perial kumber
RequestAuthenticationCertificate
Certificate Data
uKRMV Certificate <Accessory Certificate aata>
AuthenticationCertificate
uKRMV Certificate <Accessory Certificate aata>
RequestAuthenticationChallengeResponse
<Challenge aata>
Read Status
Status:
molC_obpriqp=N
AuthenticationResponse
<Challenge oesponse aata>
AuthenticationSucceeded
263
12. Accessory Authentication
12.3 Accessory Authentication Examples
RequestAuthenticationCertificate
AuthenticationCertificate
AuthenticationFailed
RequestAuthenticationCertificate
AuthenticationCertificate
RequestAuthenticationChallengeResponse
AuthenticationResponse
AuthenticationFailed
264
13. Accessory Identification
All accessory interface features other than charging require that the identification feature be supported.
Control session version 2 allows the Apple device to choose the order of identification and authentication, so
the accessory must be ready for either StartIdentification (page 807) or RequestAuthenticationCertificate (page
805) after successful link layer negotiation.
All accessories that support the Accessory Identification feature via iAP2 may also send or receive the following
iAP2 control session message(s):
IdentificationInformationUpdate (page 819)
Identification is always initiated with the transmission of a StartIdentification (page 807) message from the
Apple device to the accessory. The accessory must respond with a IdentificationInformation (page 807) message.
The IdentificationInformation (page 807) message is evaluated by the Apple device to determine whether all
of the requested iAP2 connection features are supported. If the parameters are valid and the Apple device can
support all of the requested messages, it will send a IdentificationAccepted (page 816) message to the accessory.
265
13. Accessory Identification
13.2 Accessory Identification Usage
Otherwise, a IdentificationRejected (page 817) message is sent detailing which invalid parameters and
unsupported messages were present in the previous IdentificationInformation (page 807) message. Note that
it is possible for the list of unsupported messages to be empty; that is an indication of incorrect accessory
implementation, rather than unsupported features on a specific device.
Accessory Test System (ATS) output and Apple device console logs (see 'Getting Crash Logs and Console Output'
at [Link] will also provide additional supporting information
which is useful for accessory development. Apple strongly recommends that accessory developers pay close
attention to both ATS and the device logs.
If the identification information has been rejected, the accessory must send another
IdentificationInformation (page 807) message with different parameters or abort the identification process
using CancelIdentification (page 819). Cancellation of the identification process will cause the Apple device to
inform the user that the accessory is not supported.
Failure of the accessory to send IdentificationInformation (page 807) within 1 second of either
StartIdentification (page 807) or IdentificationRejected (page 817) is grounds for failing to pass self certification.
Once IdentificationAccepted (page 816) is received, the accessory must not send any more identification
messages other than IdentificationInformationUpdate (page 819).
It is possible for an accessory to update its identification information after IdentificationAccepted (page 816)
by sending an IdentificationInformationUpdate (page 819) message. For example, the user may change the
accessory's active language. When that occurs, the accessory must send an
IdentificationInformationUpdate (page 819) message containing both the new active language and accessory
information strings in the new language.
If the identification process fails or the accessory cancels identification, the Apple device may choose to restart
the identification process or terminate the iAP2 link.
266
13. Accessory Identification
13.2 Accessory Identification Usage
Additionally, the FirmwareVersion and HardwareVersion parameter values must uniquely reflect the
current revision of the accessory's firmware and hardware respectively.
Accessories must not provide blank or generic string values (such as those provided by a reference design or
component vendor) for any manufacturing information parameters.
The SerialNumber parameter should be unique for each accessory (i.e. serialized); Apple devices may use this
to differentiate multiple accessories of the same type.
There is only one exception to this requirement. Messages associated with the Authentication and Identification
features do not need to be in the MessagesSentByAccessory or MessagesReceivedFromDevice lists, as
all accessories that implement iAP2 must support those features.
If an accessory does not provide power to the Apple device, PowerProvidingCapability must be set to
None.
If an accessory does not draw power from the Apple device, MaximumCurrentDrawnFromDevice must be
set to 0.
Otherwise, the accessory must set those parameters as required by Power (page 660).
Some accessory interface features require a specific transport component to be implemented in order to
function. This requirement is independent of whether or not an iAP2 connection is implemented on that
transport. For example, an accessory must identify a USBDeviceModeTransportComponent for Digital Audio
267
13. Accessory Identification
13.3 Accessory Identification Examples
over the USB Device Mode transport. Every identified transport component must have a unique identifier and
human-readable name that reflects the intended purpose of the component, such as 'iAP2' or 'Digital Audio
Speakers'.
StartIdentification
IdentificationInformation
IdentificationAccepted
StartIdentification
IdentificationInformation
IdentificationRejected
IdentificationInformation
IdentificationAccepted
268
13. Accessory Identification
13.4 Test Procedures
StartIdentification
IdentificationInformation
IdentificationRejected
IdentificationInformation
IdentificationRejected
CancelIdentification
StartIdentification
IdentificationInformation
IdentificationAccepted
IdentificationInformationUpdate
1. Verify that the accessory identifies with all of the required accessory information fields in the ATS iAP
Summary.
a. Connect the accessory and the Apple device to ATS.
b. View iAP Summary page.
c. Confirm required fields (Name, brand, etc.) are correctly filled in (no "filler" entries, such as ACME,
1234, etc.)
2. Verify that the accessory supports and is connected to a non-IDPS supported device such as iPod Classic,
that it properly falls back to Identify Device Lingoes when attached to the non-IDPS device.
a. Connect the accessory and the non-IDPS Apple device to ATS.
269
13. Accessory Identification
13.4 Test Procedures
270
14. AirPlay
14.1 Introduction
AirPlay lets a user wirelessly stream audio from their Apple device, iTunes or OS X computer to any
AirPlay-enabled accessory connected to the network.
AirPlay includes a number of Apple technologies to allow for a complete music streaming experience for the
user.
14.2.1 Hardware
AirPlay requires the following:
● A device running iOS version 4.3.3 or greater, iTunes version 10.2.2 or greater, or OS 10.8.0 or greater to
act as an audio source.
● An AirPlay accessory with built-in or external speakers.
14.2.2 Network
AirPlay requires a wired or Wi-Fi TCP/IP network connection between the source and accessory. The
AirPlay-enabled accessory must reside on both the same local network and subnet as the AirPlay source device.
271
14. AirPlay
14.3 AirPlay Accessory Requirements
● 802.11n
● 802.11ac
AirPlay accessories are encouraged not to use proprietary Wi-Fi technologies that overlap with the international
Wi-Fi spectrum.
272
14. AirPlay
14.4 AirPlay Setup Experience
NOTE: Pre-existing MFi program certification on an accessory is not sufficient for AirPlay accessory certification.
Network configuration Joining the network is the first touch point the consumer will have with the AirPlay
Accessory. As such, it is important that thought is put into the best way to get the Accessory onto the network.
AirPlay Accessories must minimally support the use of a Bonjour HTTP record and a web based configuration
page that is compatible with the Safari browser on Mac, PC, iPhone, iPod touch and iPad. Any additional
methodologies to improve the user experience of joining the network are encouraged. Additional methodologies
must support Mac OS and iOS, though other operating systems are allowed.
If the AirPlay Accessory includes a Wi-Fi interface, it must be configurable via that interface. Specifically, when
configuring using a wireless methodology it is required that the AirPlay accessory operate as an Access Point
in its unconfigured state instead of in Ad-Hoc mode for greater ease of use and Accessory compatibility. While
in configuration mode, the Accessory must also expose Apple's Wi-Fi Accessory Configuration (WAC) feature
to the user according to that feature's functional requirements. See Wi-Fi Accessory Configuration (page 737).
273
14. AirPlay
14.5 Power States and Accessory Availability
Both configuration options are required to allow configuration of the AirPlay Accessory via WAC on iOS and
OS X devices that support that feature, and via a web interface for older iOS, OS X and Windows Accessories
that do not support WAC.
iOS 5 onward provides the ability for the AirPlay accessory to gain access to the user's current Wi-Fi network
credentials through the iPod Accessory Protocol (iAP). The use of this feature is detailed in Wi-Fi Information
Sharing (page 761). Be aware that the use of this feature requires the AirPlay accessory to include a button or
other manual way of triggering the feature. Automatic triggers are not allowed.
When configuring the Accessory on any network interface, it is required that the AirPlay accessory be
pre-configured to use DHCP but allow for manual IP address assignment on the setup page.
If the AirPlay accessory is in a power state that is too low to allow full compliance with the above requirements,
it must cleanly deregister its Bonjour record and power down its Wi-Fi radio. No other network functions are
permitted in such a low power state (HTTP web serving, etc.).
274
14. AirPlay
14.6 Bonjour
14.6 Bonjour
The AirPlay accessory must only advertise its Bonjour service when that service is actively available. This means
that a device which is in a mode where it cannot accept an AirPlay stream, it must not advertise its service.
Additionally, when a device is powered down it must deregister its Bonjour service on the network. By
broadcasting its Bonjour service, the AirPlay accessory is indicating it is actively prepared and capable of
accepting an AirPlay stream at that time.
Model Name
All Accessories must have a vendor defined model name. This name should be unique within the vendors'
product line.
● Field: am=<Vendor model name>
● example: am=AppleTV2,1
Metadata Support
AirPlay accessories that choose to implement metadata must declare their support in their Bonjour record.
Accessories must not declare any metadata support unless they plan to actively present that data to the end
user.
● field: md=<Metadata Supported>
● 0 Text; If set, textual metadata supported.
● 1 Artwork; If set, artwork metadata supported.
● 2 Progress; If set, progress metadata supported.
● example: md=0,1,2
Firmware Version
All Accessories must indicate the firmware version that the AirPlay accessory is based upon.
● field: fv=<AirPlay Firmware Version>.<MCU Firmware Version>.<Vendor Custom>
Accessories must declare the version of the AirPlay code base that their technology provider has supplied in
the <AirPlay Firmware Version> field.
For accessories based on the POSIX source release, this field can be found in the third field of the release
number of the POSIX source drop, and is composed of the letter "p" followed by a number. For example, for
the POSIX source drop release "AirPlay Audio POSIX Receiver 190.9.p7", the value of the <AirPlay Firmware
Version> field is "p7". The official POSIX source releases are:
● 190.9.p6
275
14. AirPlay
14.7 Web Interface
● 190.9.p7
● 211.1.p8
For accessories based on the Microchip DM8XX module, this field value will be provided by the technology
provider and is composed of the letter "s" followed by a number.
If an Accessory has a separate MCU, they must declare the version of the firmware in the <MCU Firmware
Version> field. If no MCU is used, this field should be filled with a 0. The Accessory may include whatever other
firmware versioning information desired in the <Vendor Custom> field. If no custom data is used, this field
should be filled with a 0.
example: fv=p101.0515.0
In the case where an AirPlay accessory's firmware update is not successful, the device must not advertise a
Bonjour service unless it is in a state where that service can be fully supported.
276
14. AirPlay
14.9 AirPlay Accessory User Interface
AirPlay accessories must minimally be able to upgrade from a locally stored file on the customer's computer
through a web based configuration page that is compatible with the Safari browser on both Mac and PC.
AirPlay accessories cannot require WAN connectivity for this firmware upgrade method. Accessories can
optionally support other upgrade methodologies as long as they do not require specialized tools. Additional
methodologies must include Mac OS or iOS support, though other operating systems are allowed. AirPlay
devices which choose to use a computer application to update their firmware must minimally include support
for Mac OS.
Accessories must minimally show a unique status indication for an active network connection, a network
connection problem, and a critical firmware issue. All other status indications are optional. See Table 14-1 (page
277).
Status Indicator
Accessories which use a GUI are highly recommended to include the AirPlay logo as defined in the document:
AirPlay Logo Guidelines for Made for iPod Licensees. Accessories may not use any imagery other than the
AirPlay logo to represent the AirPlay feature. Text indicators are considered to be valid alternatives for the
status indicators required of all AirPlay Accessories. See Table 14-2 (page 278).
277
14. AirPlay
14.9 AirPlay Accessory User Interface
Condition Message
Metadata requirements:
AirPlay accessories with presentation capability (whether on an attached display, a remote control with a
display, or an app, web, or voice interface) may choose to present information about the currently-playing
song. When choosing to support metadata, the device must minimally support the Song title. The user must
also be given the option to cycle through Song title, Artist name, and Album name. Metadata is transmitted
using UTF-8 and the presentation mechanism must be able to faithfully represent all UTF-8 characters
transmitted.
It is highly recommended that the accessory support both the Song title and Artist name as a minimum on all
visible user interfaces. The AirPlay accessory is required to present any metadata it chooses to implement
faithfully. All devices with limited display capabilities must scroll a piece of metadata that is too long for its
display, ensuring the user can see the entirety of that piece of metadata.
Devices which choose to present metadata for sources other than AirPlay must include metadata display for
the AirPlay source as well.
All metadata not listed as required can be implemented as an option in the AirPlay accessory.
Metadata Field
Album name
Album artwork
Artist name
Elapsed time
278
14. AirPlay
14.9 AirPlay Accessory User Interface
Metadata Field
Song title
Total time
Album artwork is only permitted for display on full color screens. The Accessory must be able to render JPEG
and PNG images up to at least 512kB in size. If an AirPlay stream reports that it has no associated Album artwork
or the Album artwork transmitted is not in a file format the AirPlay accessory can render, the accessory must
render a placeholder image in place of the missing album artwork. The placeholder image used is at the
discretion of the AirPlay accessory.
iTunes does not cross convert Album artwork so it is recommended that accessories support as many image
formats as possible. Common image file formats are: JPEG, PNG, GIF, BMP, JPEG2000, TIFF, and PICT.
Play/Pause toggle
Toggles the playback state of the currently playing track in iTunes. Other endpoints in the network will retain
their ON/OFF settings and audio stream state as previously set.
Play
Starts playback of the currently selected track in iTunes. The AirPlay accessory that initiated the play event
must be enabled as a playback endpoint (if not previously enabled in iTunes the command will have no effect).
Other endpoints in the network will retain their ON/OFF settings as previously set.
Pause
Pauses the playback of the currently playing track in iTunes. Other endpoints in the network will retain their
ON/OFF settings and audio stream state as previously set.
Stop
Stops the playback of the currently playing track in iTunes. If the Apple device is in the middle of playback, the
song time will reset to the start of the track. Other endpoints in the network will retain their ON/OFF settings
and audio stream state as previously set.
279
14. AirPlay
14.9 AirPlay Accessory User Interface
Skips to the next/previous track in the current playlist of iTunes. Has no effect if there is not a currently selected
"now playing" track in iTunes. Previous track command automatically skips to the start of the song if more
than 3 seconds of the currently playing track has passed.
Shuffle toggle
Advances the iTunes shuffle setting from it's current state to the next in the progression (... shuffle all songs,
shuffle off ...)
Repeat toggle
Advances the iTunes repeat setting from it's current state to the next in the progression (... repeat all songs,
repeat single song, repeat off ...)
Volume is communicated as a floating-point dB attenuation value where 0.0 is full volume and -144.0 is
completely muted. The practical volume range utilized for the AirPlay stream has a basis of -30dB to 0dB with
a special cased mute level of -144dB (linear volume of 0) in order to avoid infinities. The following equations
can be used to convert between a dB value and a linear volume:
● linear volume = pow( 10, dB / 20 )
● dB value = 20 * log10( linear volume )
The AirPlay accessory must map the communicated volume range to its own full scale range. Additionally, the
AirPlay accessory must implement volume control at the final gain stage available to it in order to minimize
audio quality loss through the system.
280
14. AirPlay
14.9 AirPlay Accessory User Interface
Controls the output volume of the local AirPlay accessory immediately upon action. The AirPlay accessory's
new volume level must be reported back to the AirPlay server immediately upon setting the system volume.
Controls the output volume of the local AirPlay accessory from a remote location. Upon receiving a remote
volume setting the AirPlay accessory should send the actual volume set to the server.
All accessories are required to support a true, no volume Mute audio level communicated by the AirPlay
streaming protocol by a value of -144dB.
Accessory manufacturers may decide to implement a Mute function within their Accessory. The operation of
the mute function should bring the volume level down to -144dB when engaged and back to the pre-mute
level when disengaged. It is the responsibility of the Accessory to remember the pre-mute level when entering
the mute function and to ensure both that it returns to this level and that it reports the proper level to the
AirPlay server when disengaging.
Further, any volume up or down commands that the Accessory receives from the user should disengage the
mute function and then act upon the pre-mute level. The exception to this rule is when a volume level is
commanded by the AirPlay stream itself. In this case the Accessory should cancel the mute function but set
the return volume to that which has been dictated by the AirPlay stream.
Allow
The device allows AirPlay audio playback to begin. This is the default state of an AirPlay accessory.
Prevent
The device prevents AirPlay audio playback from beginning. This state is only allowed during an accessory
source switch. The state must be set back to Allow immediately upon completing the source switch.
281
14. AirPlay
14.10 User Documentation
Available
Busy
282
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
Term Definition
IE Information Element.
AP Access Point.
AU AirPort Utility.
DS Distribution System.
AirPlay is an evolution of Apple's AirTunes technology, allowing for music to be played seamlessly over any IP
connected device. As such, all network interfaces are acceptable to run AirPlay, however it is understood that
all AirPlay DUTs will not implement all of the possible network interfaces and thus only the network interface
that are implemented will need to be tested.
While not necessarily required to run AirPlay as a feature, the following are minimum requirements to complete
the test suites that are included in this test plan.
283
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
Some tests will require the use of Safari. These tests should use the latest version of Safari available for the test
platform.
Before performing these tests, ensure that the 'Include Bonjour in the Bookmarks menu' option is enabled in
the Safari Preferences pane, under the 'Advanced' tab.
When a test refers to accessing the Bonjour list, the list may be found in the Bookmarks menu bar, under the
'Bonjour' menu bar item.
Some tests require the ability to query specific Bonjour records. In order to get the Bonjour information, some
tests will require the use of dns-sd, a standard tool provided in OS X. Please refer to the Unix man page provided
with dns-sd for usage details not provided in this document.
iPerf is a network bandwidth performance tool used for testing both TCP and UDP performance with various
options to test network quality metrics. All necessary options for operation for this test plan will be provided
for each test case that iPerf is necessary.
The following test beds are designed and specified for each test case in this test plan. While not all DUTs will
need to use every test bed, the minimum requirement for every test bed is a wired OS X computer running
the latest version of iTunes and a simultaneous dual band Apple Base Station, running the latest firmware.
All wired performance tests must be conducted from host machine to base station, to DUT.
All wireless performance tests must be conducted on an Apple approved rate vs. range test bed. The test bed
may be line of sight or non-line of sight but must be conducted in a clean RF environment as confirmed by a
spectrum analyzer. At Apple, these tests are conducted in an office environment with walls and hallways
interfering with direct line of sight between the units. The DUT and AP are positioned on the same vertical
284
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
plane, approximately 1m off the ground. The DUT is rotated about its vertical axis at a rate of 1 RPM during
iPerf testing. Tests are required on channels 1 and 11 in the 2.4 GHz band and channels 36 and 161 if the 5
GHz band is supported.
Wired and wireless non-performance tests do not have any particular topology or positioning requirement
beyond that required to support connectivity.
The following test beds will be used as references for test environments.
285
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
286
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
The following test cases must be completed successfully to ensure compliance with the AirPlay specification
and interoperability with Apple Base Station product lines. While it is possible to implement AirPlay without
an Apple Base Station, all tests will be done with an Apple Base Station (AirPort Extreme or Time Capsule)
product because certain features of the Base Station are required to complete all of the testing.
Customer accessible Accessory firmware upgrade is a required feature of AirPlay Audio devices. All
supported firmware upgrade methodologies must be tested and verified as a part of AirPlay Accessory
compliance testing.
11. The speaker should be able to be selected without and error, or else FAIL.
12. Follow the onscreen instructions to conduct a firmware update to the _production image provided.
287
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
13. The unit should firmware update and rejoin the network, or else FAIL.
Network connectivity is a requirement for AirPlay and may be implemented either via Ethernet (802.3) or
Wi-Fi (802.11). Only the implemented features are required to be tested; however if a DUT contains both
interfaces, both must be tested.
If the DUT contains an Ethernet Port, the following test must be completed successfully.
1. Power on the DUT.
2. In the AirPort Utility go to Internet-> Internet connection and make sure the Connection Sharing is set to
'Share a public IP address'. Then set the Ethernet WAN Port to Automatic and click update.
3. Using an Ethernet wire, connect the DUT to the WAN port on the Base Station.
4. The green light on the port that the DUT is connected to should illuminate to indicate link and some
indication on the DUT should also indicate a link. (This can be a light on the DUT's Ethernet port, like the
Base Station or some other form).
14.12.4 Wi-Fi
If the DUT contains a Wi-Fi (802.11) interface, the following tests must be completed successfully. Each DUT
that supports Wi-Fi must, at minimum, support 802.11g. All support PHYs must be tested.
288
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
11. In the Apple AU, go to Advanced->Logs and Statistics->Wireless Clients. In list box look for the MAC address
that was collected from Step 1. Verify that Type that is listed is one of the following options: 802.11b/g,
802.11g, 802.11a, 802.11a/n, 802.11b/g/n, or 802.11g/n. If any other Type is present, FAIL.
289
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
12. Next go to Advanced->Logs and Statistics->DHCP clients, and in the list box look for the MAC address that
was collected from Step 1. If the MAC address is not present, FAIL.
13. Open Safari on the iTunes Server and attempt to connect to the web server on the DUT with the address
it just received.
14. Safari should be able to navigate to the web server, or else FAIL. All of the settings that were entered in
previous steps should be reflected in the user interface.
[Link] WPA2-PSK
For the Test Environment, refer to Figure 14-2 (page 285).
1. Power on the DUT. Note the MAC address of the DUT.
2. Configure the Base Station to its OOB configuration and note the SSID that is present. It should be something
in the form of Apple Network XXXXXX. Configure the Base Station with WPA2-PSK Security with a Pass
phrase of 12345678.
290
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
3. Use the user interface on the DUT to connect to the Base Station Network with WPA2-PSK with a Pass
Phrase of 12345678. There should be, at a minimum, someway to enter the SSID manually and the security
mode. Optionally there can also be a way to select the SSID from a collected list.
4. The DUT must have a way to manually enter the SSID for the Wi-Fi network and select a security mode.
Optionally it can create a list (scan list) for the user pick their network from, if desired. Once the device is
connected to the Base Station, the DUT must indicate it is connected based on Table 14-5 (page 291).
5. Open the AU and verify the settings are correct.
6. In the Apple AU, go to Advanced->Logs and Statistics->Wireless Clients. In list box look for the MAC address
that was collected from Step 1. Verify that Type that is listed is one of the following options: 802.11b/g,
802.11g, 802.11a, 802.11a/n, 802.11b/g/n, or 802.11g/n. If any other Type is present, FAIL.
7. Next go to Advanced->Logs and Statistics->DHCP clients, and in the list box look for the MAC address that
was collected from Step 1. If the MAC address is not present, FAIL.
Action Implementation
291
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
This needs to be tested if the DUT can select WPA-Personal as a possible security mode.
1. Power on the DUT. Note the MAC address of the DUT.
2. Configure the Base Station to its OOB configuration and note the SSID that is present. It should be something
in the form of Apple Network XXXXXX. Configure the Base Station with WPA/WPA2-PSK Security with a
Pass phrase of 12345678.
3. Use the user interface on the DUT to connect to the Base Station Network with WPA-PSK with TKIP
encryption with a Pass Phrase of 12345678. There should be, at a minimum, someway to enter the SSID
manually and the security mode. Optionally there can also be a way to select the SSID from a collected
list.
4. The DUT must have a way to manually enter the SSID for the Wi-Fi network and select a security mode.
Optionally it can create a list (scan list) for the user pick their network from, if desired. Once the device is
connected to the Base Station, the DUT must indicate it is connected based on Table 14-5 (page 291).
5. Open the AU and verify the settings are correct.
292
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
6. In the Apple AU, go to Advanced->Logs and Statistics->Wireless Clients. In list box look for the MAC address
that was collected from Step 1. Verify that Type that is listed is one of the following options: 802.11b/g,
802.11g, 802.11a, 802.11a/n, 802.11b/g/n, or 802.11g/n. If any other Type is present, FAIL.
7. Next go to Advanced->Logs and Statistics->DHCP clients, and in the list box look for the MAC address that
was collected from Step 1. If the MAC address is not present, FAIL.
IP connectivity is required for all AirPlay devices, with a minimum of IPv4 with a DHCP client to be implemented.
It is preferred that an IPv6 stack is also implemented; however this is not required, but highly recommended.
If a dual stack (IPv4 and IPv6) is implemented, both will need to be verified. (These tests must be repeated for
all interfaces, Ethernet and/or Wireless, if both are present.)
DHCP Tests
1. Power on the DUT. Note the MAC address of the DUT.
2. Connect the DUT to the network. There are two options here, either Ethernet or Wireless. If the device
supports both interfaces then the test must be done for both. Additionally, if Wireless is supported this
test must be repeated for both No Security and WPA2-PSK.
3. Once connected to the network, open the Apple AU and go to Advanced->Logs and Statistics->DHCP
clients, and in the list box look for the MAC address that was collected from Step 1. If the MAC Address is
not present, FAIL. If the MAC address is present, note the IP Address next to the MAC Address and note
the 'Lease Time'.
4. On the iTunes server connected to the Base Station ping the IP address that was collected from Step 2-3.
5. If all the pings are successful, then PASS, else FAIL.
6. Reboot the DUT and wait for it to come back up.
7. Once connected to the network, open the Apple AU and go to Advanced->Logs and Statistics->DHCP
clients, and in the list box look for the MAC address that was collected from Step 1. If the MAC Address is
not present, FAIL. If the MAC address is present, note the 'Lease Time' and make sure it has been updated
than what was in Step 2-3.
It is highly recommended that IPv6 is also implemented on all AirPlay DUTs and these tests must be run if IPv6
is implemented. (These tests must be repeated for all interfaces, Ethernet and/or Wireless, if both are present.)
293
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
4. On the iTunes server connected to the Base Station start iperf with the following command.
iperf -c IP_of_DUT -u -b 10M -t 120 -i 1 -w 128k
5. The bandwidth output at the end of the test must be greater than 5Mb/s.
294
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
iperf -s -u -i 1 -w 128k
5. On the iTunes server connected to the Base Station start iperf with the following command.
iperf -c IP_of_DUT -u -b 10M -t 120 -i 1 -w 128k
6. The bandwidth output at the end of the test must be greater than 4.9Mb/s with a packet loss < 0.1% on
both channels 1 and 11
10. A/R should have "Rmv" below it, if this is true, PASS.
295
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
11. Service Type should have "_raop._tcp." below it, if this is true, PASS.
12. Instance should have "MACADDRESS@DeviceName" below it, if this is true, PASS. (Example:
78CA3901C341@AirTunes).
296
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
● fv= <AirPlay firmware version>.<MCU firmware version>.<vendor custom> (unused fields should
contain a 0 and the AirPlay firmware version field should start with a "p" or "s" only, followed by a
number). See Bonjour TXT Records Tests (page 295) for the list of valid AirPlay POSIX Source release
numbers.
● md=(This may only be present if the device displays the meta data options selected)
● pw=(required only if a password is required)
● tp=UDP
● vn=65537
● vs= See Bonjour TXT Records Tests (page 295) for the list of valid AirPlay POSIX Source release versions.
(Populated by AirPlay source code) (No field should be left empty, any field that contains no data
should not be present.)
12. If all of the fields are present then PASS, else FAIL.
11. On the iTunes server connected to the Base Station, issue the following command in a Terminal:
297
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
15. If the DUT also supports IPv6, on the iTunes server connected to the Base Station, issue the following
command in a Terminal:
16. ping6 IP address.
10. A/R should have "Rmv" below it, if this is true, PASS.
11. Service Type should have "_raop._tcp." below it, if this is true, PASS.
12. Instance should have "MACADDRESS@DeviceName" below it, if this is true, PASS. (Example:
78CA3901C341@AirTunes)
13. In the terminal opened on the iTunes server, a Bonjour record should appear with the following format:
298
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
14. A/R should have "Add" below it, if this is true, PASS.
15. Service Type should have "_raop._tcp." below it, if this is true, PASS.
16. Instance should have "MACADDRESS@DUTSpeaker" below it, if this is true, PASS. (Example:
78CA3901C341@AirTunes)
17. If DUTSpeaker is not the name of the speaker, then FAIL.
299
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
13. Use the user interface to set a password for the speaker and apply the settings. This may require a soft
restart.
14. The Bonjour record needs to contain a minimum of the following TXT records (a value is specified that is
the requirement for field):
● am=<vendor model name>
● cn=0,1
● da=true
● et=0,4
● fv= <AirPlay firmware version>.<MCU firmware version>.<vendor custom> (unused fields should
contain a 0 and the AirPlay firmware version field should start with a "p" or "s" only, followed by a
number). See Bonjour TXT Records Tests (page 295) for the list of valid AirPlay POSIX Source release
numbers.
● md=(This may only be present if the device displays the meta data options selected)
● pw=(required only if a password is required)
● tp=UDP
● vn=65537
● vs= Refer to Bonjour TXT Records Tests (page 295) for the list of valid AirPlay POSIX Source release
versions. (Populated by AirPlay source code) (No field should be left empty, any field that contains
no data should not be present.)
15. Verify the pw TXT record is now set to true and in iTunes the speaker has a lock next the name of the
speaker and when the user attempts to connect, iTunes ask for the password that was entered in the user
interface. If all of this is true, PASS.
300
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
301
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
11. The audio should stop playing within 15 seconds on both devices, or else FAIL.
[Link] Switching to Other Input where the Other Input is active (Manual Switch Available)
For the Test Environment, refer to Figure 14-1 (page 285) and/or Figure 14-2 (page 285).
1. Power on the DUT.
2. Connect the DUT to the network. There are two options here, either Ethernet or Wireless. If the device
supports both interfaces then the test must be done for both. For Wireless only use WPA2-PSK with a
Passphrase of 12345678.
3. On the DUT set the device to AirPlay input selection.
4. On the iTunes server that is connected to the Apple Base Station select the DUT and click on a song in the
iTunes library and then click Play in iTunes.
5. The audio should begin playing within 15 seconds, or else FAIL.
6. On a different input on the DUT begin some activity.
302
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
(Example: For a receiver, attach a CD player and click play so music will be going into the DUT. This will
be different based on the type of device.)
7. The audio from the iTunes server should keep playing on the speakers.
8. On the DUT switch the input from the AirPlay input to the input from step 4.
9. The active input should be acting correctly and actively using the DUT.
10. Using the sniffer on the iTunes server, verify three HTTP Get Requests are sent from the DUT IP to the
iTunes server's IP. The payload of one should contain an AirPlay device-Prevent-playback=1 (Prevent)
command. Another request's payload should contain an AirPlay device-busy=1 (Busy) command. Another
request's payload should contain an AirPlay device-Prevent-playback=0 (Allow) command. These commands
must come in sequence without any additional interspersed commands, or FAIL. The order for of the
Device-Prevent-playback=1 (Prevent) and Device-busy=1 (Busy) commands does not matter but the
Device-Prevent-playback=0 (Allow) must come after the Device-Prevent-playback=1 (Prevent) command,
or FAIL.
11. Continue the activity on the other input for 60 seconds while taking a sniffer trace on the iTunes server.
18. Using the sniffer on the iTunes server, verify a HTTP Get Request is sent from the DUT IP to the iTunes
server's IP. The payload of one should contain an AirPlay Device-busy=0 (Available) command.
19. Another HTTP Get Request with a payload of the Device-Prevent-playback=0 (Allow) command could also
be sent in addition to the Device-busy=0 (Available) command but if a HTTP Get Request with a payload
of either Device-Prevent-playback=1 (Prevent) or Device-busy=1 (Busy) is sent, FAIL.
20. On the iTunes server that is connected to the Apple Base Station select the DUT and click on a song in the
iTunes library and then click Play in iTunes.
303
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
21. The audio should begin playing within 15 seconds, or else FAIL.
(Example: For a receiver, attach a CD player and click play so music will be going into the DUT. This will
be different based on the type of device.)
23. The audio from the iTunes server should keep playing on the speakers.
24. On the DUT switch the input from the AirPlay input to the input from 3 steps above.
25. The active input should be acting correctly and actively using the DUT.
26. Using the sniffer on the iTunes server, verify three HTTP Get Requests are sent from the DUT IP to the
iTunes server's IP. The payload of one should contain an AirPlay device-Prevent-playback=1 (Prevent)
command. Another request's payload should contain an AirPlay device-busy=1 (Busy) command. Another
request's payload should contain an AirPlay device-Prevent-playback=0 (Allow) command. These commands
must come in sequence without any additional interspersed commands, or FAIL. The order for of the
Device-Prevent-playback=1 (Prevent) and Device-busy=1 (Busy) commands does not matter but the
Device-Prevent-playback=0 (Allow) must come after the Device-Prevent-playback=1 (Prevent) command,
or FAIL.
27. Continue the activity on the other input for 60 seconds while taking a sniffer trace on the iTunes server.
32. Using the sniffer on the iTunes server, verify a HTTP Get Request is sent from the DUT IP to the iTunes
server's IP. The payload of one should contain an AirPlay Device-busy=0 (Available) command.
33. Another HTTP Get Request with a payload of the Device-Prevent-playback=0 (Allow) command could also
be sent in addition to the Device-busy=0 (Available) command but if a HTTP Get Request with a payload
of either Device-Prevent-playback=1 (Prevent) or Device-busy=1 (Busy) is sent, FAIL.
[Link] Switching to Other Input where the Other Input is inactive (Manual Switch Available)
For the Test Environment, refer to Figure 14-1 (page 285) and/or Figure 14-2 (page 285).
1. Power on the DUT.
304
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
2. Connect the DUT to the network. There are two options here, either Ethernet or Wireless. If the device
supports both interfaces then the test must be done for both. For Wireless only use WPA2-PSK with a
Passphrase of 12345678.
3. On the DUT set the device to AirPlay input selection.
4. On the iTunes server that is connected to the Apple Base Station select the DUT and click on a song in the
iTunes library and then click Play in iTunes.
5. The audio should begin playing within 15 seconds, or else FAIL.
6. On the DUT switch the input from the AirPlay input to an idle input.
7. The idle input should be selected correctly.
8. Using the sniffer on the iTunes server, verify three HTTP Get Requests are sent from the DUT IP to the
iTunes server's IP. The payload of one should contain an AirPlay device-Prevent-playback=1 (Prevent)
command. Another request's payload should contain an AirPlay device-busy=1 (Busy) command. Another
request's payload should contain an AirPlay device-Prevent-playback=0 (Allow) command. These commands
must come in sequence without any additional interspersed commands, or FAIL. The order for of the
Device-Prevent-playback=1 (Prevent) and Device-busy=1 (Busy) commands does not matter but the
Device-Prevent-playback=0 (Allow) must come after the Device-Prevent-playback=1 (Prevent) command,
or FAIL.
9. Stay on the idle input for 60 seconds while taking a sniffer trace on the iTunes server.
10. There are two options:
● No HTTP Get Requests are sent from the DUT to the iTunes.
● The device-busy=1 (Busy) and device-Prevent-playback=0 (Allow) HTTP Get commands could be sent
at regular intervals, which are manufacturer dependent.
11. If a HTTP Get Request with either the Device-Prevent-playback=1 (Prevent) or Device-busy=0 (Available)
command is sent, FAIL.
12. Change the input to the AirPlay input.
13. Using the sniffer on the iTunes server, verifies a HTTP Get Request is sent from the DUT IP to the iTunes
server's IP. The payload of one should contain an AirPlay device-busy=0 (Available) command.
14. Another HTTP Get Request with a payload of the Device-Prevent-playback=0 (Allow) command could also
be sent in addition to the Device-busy=0 (Available) command but if a HTTP Get Request with a payload
of either Device-Prevent-playback=1 (Prevent) or Device-busy=1 (Busy) is sent, FAIL.
15. On the iTunes server that is connected to the Apple Base Station select the DUT and click on a song in the
iTunes library and then click Play in iTunes.
16. The audio should begin playing within 15 seconds, or else FAIL.
17. On the DUT switch the input from the AirPlay input to an idle input.
305
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
19. Using the sniffer on the iTunes server, verify three HTTP Get Requests are sent from the DUT IP to the
iTunes server's IP. The payload of one should contain an AirPlay device-Prevent-playback=1 (Prevent)
command. Another request's payload should contain an AirPlay device-busy=1 (Busy) command. Another
request's payload should contain an AirPlay device-Prevent-playback=0 (Allow) command. These commands
must come in sequence without any additional interspersed commands, or FAIL. The order for of the
Device-Prevent-playback=1 (Prevent) and Device-busy=1 (Busy) commands does not matter but the
Device-Prevent-playback=0 (Allow) must come after the Device-Prevent-playback=1 (Prevent) command,
or FAIL.
20. Stay on the idle input for 60 seconds while taking a sniffer trace on the iTunes server.
25. Using the sniffer on the iTunes server, verify a HTTP Get Request is sent from the DUT IP to the iTunes
server's IP. The payload of one should contain an AirPlay Device-busy=0 (Available) command.
26. Another HTTP Get Request with a payload of the Device-Prevent-playback=0 (Allow) command could also
be sent in addition to the Device-busy=0 (Available) command but if a HTTP Get Request with a payload
of either Device-Prevent-playback=1 (Prevent) or Device-busy=1 (Busy) is sent, FAIL.
[Link] Switching to Other Input where the Other Input is active (No Manual Switch
Available)
For the Test Environment, refer to Figure 14-1 (page 285) and/or Figure 14-2 (page 285).
1. Power on the DUT.
2. Connect the DUT to the network. There are two options here, either Ethernet or Wireless. If the device
supports both interfaces then the test must be done for both. For Wireless only use WPA2-PSK with a
Passphrase of 12345678.
3. On the DUT set the device to AirPlay input selection.
4. On the iTunes server that is connected to the Apple Base Station select the DUT and click on a song in the
iTunes library and then click Play in iTunes.
306
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
17. Using the sniffer on the iTunes server, verify a HTTP Get Request is sent from the DUT IP to the iTunes
server's IP. The payload of one should contain an AirPlay Device-busy=0 (Available) command.
18. Another HTTP Get Request with a payload of the Device-Prevent-playback=0 (Allow) command could also
be sent in addition to the Device-busy=0 (Available) command but if a HTTP Get Request with a payload
of either Device-Prevent-playback=1 (Prevent) or Device-busy=1 (Busy) is sent, FAIL.
307
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
(Example: For a receiver, attach a CD player and click play so music will be going into the DUT. This will
be different based on the type of device.)
20. The DUT should automatically switch to the input selected.
21. Using the sniffer on the iTunes server, verify three HTTP Get Requests are sent from the DUT IP to the
iTunes server's IP. The payload of one should contain an AirPlay device-Prevent-playback=1 (Prevent)
command. Another request's payload should contain an AirPlay device-busy=1 (Busy) command. Another
request's payload should contain an AirPlay device-Prevent-playback=0 (Allow) command. These commands
must come in sequence without any additional interspersed commands, or FAIL. The order for of the
Device-Prevent-playback=1 (Prevent) and Device-busy=1 (Busy) commands does not matter but the
Device-Prevent-playback=0 (Allow) must come after the Device-Prevent-playback=1 (Prevent) command,
or FAIL.
22. Continue the activity on the other input for 60 seconds while taking a sniffer trace on the iTunes server.
27. Using the sniffer on the iTunes server, verify a HTTP Get Request is sent from the DUT IP to the iTunes
server's IP. The payload of one should contain an AirPlay Device-busy=0 (Available) command.
28. Another HTTP Get Request with a payload of the Device-Prevent-playback=0 (Allow) command could also
be sent in addition to the Device-busy=0 (Available) command but if a HTTP Get Request with a payload
of either Device-Prevent-playback=1 (Prevent) or Device-busy=1 (Busy) is sent, FAIL.
[Link] Switching to Other Input where the Other Input is inactive (No Manual Switch
Available)
For the Test Environment, refer to Figure 14-1 (page 285) and/or Figure 14-2 (page 285).
1. Power on the DUT.
308
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
2. Connect the DUT to the network. There are two options here, either Ethernet or Wireless. If the device
supports both interfaces then the test must be done for both. For Wireless only use WPA2-PSK with a
Passphrase of 12345678.
3. On the DUT set the device to AirPlay input selection.
4. On the iTunes server that is connected to the Apple Base Station select the DUT and click on a song in the
iTunes library and then click Play in iTunes.
5. The audio should begin playing within 15 seconds, or else FAIL.
6. On the DUT verify there in no way to switch the input from the AirPlay input to an idle input.
7. If there is no manual way to switch away from the AirPlay input test is PASS.
309
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
md= (This should only be present if the devices supports one of the metadata options.)
12. This field can be populated with any combination of the following values and the field can contain more
than one.
● 0 = Text is supported
● 1 = Artwork is supported
● 2 = Progress is supported
13. In order for a metadata option to be considered supported the device must contain the appropriate
mechanism to present that metadata. (i.e. if there is no display, remote control with display, app, or voice
interface that can present that metadata, the device can not claim to support it)
14. If the metadata field contains all of the supported options that the device does support then PASS, else
FAIL.
13. The Artist and Song title should be the same as what is displayed in iTunes.
310
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
14. Select a song that does not have the Artist section in the song info set, set the volume in iTunes to 50%
and click play. (The 50% does not need to be exact.)
15. The audio should begin playing within 15 seconds, or else FAIL.
17. The Song title should be the same as what is displayed in iTunes, and the Artist should not be displayed.
19. The audio should stop playing within 15 seconds, or else FAIL.
14. Select a song that does not have any album artwork, set the volume in iTunes to 50% and click play. (The
50% does not need to be exact.)
15. The audio should begin playing within 15 seconds, or else FAIL.
311
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
19. The audio should stop playing within 15 seconds, or else FAIL.
11. The audio should begin playing within 15 seconds, or else FAIL.
13. The current song should move back to the beginning of the song and restart playing and the slider bar
in iTunes should have moved to the far left, indicating time 0. The Progress bar and time should move
back and start from 0 in DUT. If all of this is true, PASS.
14. Click the stop button within iTunes.
15. The audio should stop playing within 15 seconds, or else FAIL.
312
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
2. Connect the DUT to the network. There are two options here, either Ethernet or Wireless. If the device
supports both interfaces then the test must be done for both. For Wireless only use WPA2-PSK with a
Passphrase of 12345678.
3. Verify the device that has just been added to the network appears as a speaker in iTunes within 30 seconds,
or else FAIL.
4. In the music section of the Apple device that is connected to the Apple Base Station, select the newly
added speaker.
5. The speaker should be able to be selected without and error, or else FAIL.
6. Once the speaker is selected, select a song that does not have the Artist section in the song info set, set
the volume on the Apple device to 50% and click play. (The 50% does not need to be exact.)
7. The audio should begin playing within 15 seconds, or else FAIL.
8. Look at the display on the DUT.
9. The Song title should be the same as what is displayed on the Apple device, and the Artist should not be
displayed.
10. Select a song that does have the Artist section in the song info set, set the volume on the Apple device
to 50% and click play. (The 50% does not need to be exact.)
11. The audio should begin playing within 15 seconds, or else FAIL.
13. The Artist and Song title should be the same as what is displayed on the Apple device.
14. Select a song that does not have the Artist section in the song info set, set the volume on the Apple device
to 50% and click play. (The 50% does not need to be exact.)
15. The audio should begin playing within 15 seconds, or else FAIL.
17. The Song title should be the same as what is displayed on the Apple device, and the Artist should not be
displayed.
18. Click the stop button within iTunes.
19. The audio should stop playing within 15 seconds, or else FAIL.
313
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
2. Connect the DUT to the network. There are two options here, either Ethernet or Wireless. If the device
supports both interfaces then the test must be done for both. For Wireless only use WPA2-PSK with a
Passphrase of 12345678.
3. Verify the device that has just been added to the network appears as a speaker in iOS within 30 seconds,
or else FAIL.
4. In the music section of the Apple device that is connected to the Apple Base Station, select the newly
added speaker.
5. The speaker should be able to be selected without and error, or else FAIL.
6. Once the speaker is selected, select a song that does not have any album artwork, set the volume in iTunes
to 50% and click play. (The 50% does not need to be exact.)
7. The audio should begin playing within 15 seconds, or else FAIL.
8. Look at the display on the DUT.
9. No artwork should be displayed.
10. Select a song that does have album artwork, set the volume in iTunes to 50% and click play. (The 50%
does not need to be exact.)
11. The audio should begin playing within 15 seconds, or else FAIL.
13. The artwork should be the same that is displayed in Apple device.
14. Select a song that does not have any album artwork, set the volume in iTunes to 50% and click play. (The
50% does not need to be exact.)
15. The audio should begin playing within 15 seconds, or else FAIL.
19. The audio should stop playing within 15 seconds, or else FAIL.
314
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
3. Verify the device that has just been added to the network appears as a speaker in iTunes within 30 seconds,
or else FAIL.
4. In the music section of the Apple device that is connected to the Apple Base Station, select the newly
added speaker.
5. The speaker should be able to be selected without and error, or else FAIL.
6. Once the speaker is selected, select a song that does not have the Artist section in the song info set, set
the volume on the Apple device to 50% and click play. (The 50% does not need to be exact.)
7. The audio should begin playing within 15 seconds, or else FAIL.
8. Look at the display on the DUT.
9. The Progress bar and time should be the same as what is displayed on the Apple device. Observe Progress
bar and displayed time for minimum 60 sec. If all of this is true, PASS.
10. Using either the buttons on the device or on a remote click the "Previous Track" release the button.
11. The audio should begin playing within 15 seconds, or else FAIL.
13. The current song should move back to the beginning of the song and restart playing and the slider bar
in Apple device should have moved to the far left, indicating time 0. The Progress bar and time should
move back and start from 0 in DUT. If all of this is true, PASS.
14. Click the stop button within iTunes.
15. The audio should stop playing within 15 seconds, or else FAIL.
315
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
11. On the iTunes server connected to the Base Station, issue the following command in a Terminal:
● dns-sd -L Instance Name _raop local.
● (Example: dns-sd -L 78CA3901C341@AirTunes _raop local.)
12. Verify that the Bonjour record does not contain "pw=" field, or else FAIL.
13. On the iTunes server that is connected to the Apple Base Station, select the newly added speaker and
then click play.
14. The speaker should be able to be selected without an error, user should not be asked for a password and
the audio should begin playing within 15 seconds, or else FAIL.
15. Click the stop button in iTunes.
16. The audio should stop playing within 15 seconds, or else FAIL.
18. Use the DUT user interface to set a password for the speaker and apply the settings. This may require a
soft restart.
19. On the iTunes server that is connected to the Apple Base Station, select the speaker again and then click
play.
20. The speaker should be able to be selected without an error, user should be asked for the password. Once
the user provides the previously set password, the audio should begin playing within 15 seconds, or else
FAIL.
21. Click the stop button in iTunes.
22. The audio should stop playing within 15 seconds, or else FAIL.
24. Use the DUT user interface to set a different password for the speaker and apply the settings. This may
require a soft restart.
25. On the iTunes server that is connected to the Apple Base Station, select the speaker again and then click
play.
316
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
26. The speaker should be able to be selected without an error, user should be asked for the password. Once
the user provides the newly set password, the audio should begin playing within 15 seconds, or else FAIL.
27. Click the stop button in iTunes.
28. The audio should stop playing within 15 seconds, or else FAIL.
30. Use the DUT user interface to clear the password for the speaker and apply the settings. This may require
a soft restart.
31. On the iTunes server that is connected to the Apple Base Station, select the speaker again and then click
play.
32. The speaker should be able to be selected without an error, user should not be asked for a password and
the audio should begin playing within 15 seconds, or else FAIL.
11. On the iTunes server connected to the Base Station, issue the following command in a Terminal:
● dns-sd -L Instance Name _raop local.
● (Example: dns-sd -L 78CA3901C341@AirTunes _raop local.)
317
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
12. Verify that the Bonjour record does not contain "pw=" field, or else FAIL.
13. On the Apple device that is connected to the Apple Base Station, select the newly added speaker and then
click play.
14. The speaker should be able to be selected without an error, user should not be asked for a password and
the audio should begin playing within 15 seconds, or else FAIL.
15. Click the stop button on the Apple device.
16. The audio should stop playing within 15 seconds, or else FAIL.
17. Deselect the speaker from the Apple device accessory list.
18. Use the DUT user interface to set a password for the speaker and apply the settings. This may require a
soft restart.
19. On the Apple device that is connected to the Apple Base Station, select the speaker again and then click
play.
20. The speaker should be able to be selected without an error, user should be asked for the password. Once
the user provides the previously set password, the audio should begin playing within 15 seconds, or else
FAIL.
21. Click the stop button on the Apple device.
22. The audio should stop playing within 15 seconds, or else FAIL.
23. Deselect the speaker from the Apple device accessory list.
24. Use the DUT user interface to set a different password for the speaker and apply the settings. This may
require a soft restart.
25. On the Apple device that is connected to the Apple Base Station, select the speaker again and then click
play.
26. The speaker should be able to be selected without an error, user should be asked for the password. Once
the user provides the newly set password, the audio should begin playing within 15 seconds, or else FAIL.
27. Click the stop button on the Apple device.
28. The audio should stop playing within 15 seconds, or else FAIL.
29. Deselect the speaker from the Apple device accessory list.
30. Use the DUT user interface to clear the password for the speaker and apply the settings. This may require
a soft restart.
31. On the Apple device that is connected to the Apple Base Station, select the speaker again and then click
play.
32. The speaker should be able to be selected without an error, user should not be asked for a password and
the audio should begin playing within 15 seconds, or else FAIL.
318
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
11. On the iTunes server connected to the Base Station, issue the following command in a Terminal:
● dns-sd -L Instance Name _raop local.
● (Example: dns-sd -L 78CA3901C341@AirTunes _raop local.)
12. Verify that the Bonjour record contains "pw=true" field, or else FAIL.
13. On the iTunes server that is connected to the Apple Base Station, select the newly added speaker and
then click play.
14. The speaker should be able to be selected without an error, user should be asked for the password. Once
the user provides the previously set password, the audio should begin playing within 15 seconds, or else
FAIL.
319
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
2. Connect the DUT to the network using Wi-Fi Accessory Configuration (WAC). Ensure that the AirPlay
Password has been entered during the WAC setup process. (Refer to WAC Compliance Test documentation
for more details)
3. Verify the accessory that has just been added to the network appears as a speaker on the Apple device
within 60 seconds, or else FAIL.
4. On the iTunes server connected to the Base Station, issue the following command in a Terminal:
dns-sd -B _raop
11. On the iTunes server connected to the Base Station, issue the following command in a Terminal:
● dns-sd -L Instance Name _raop local.
● (Example: dns-sd -L 78CA3901C341@AirTunes _raop local.)
12. Verify that the Bonjour record contains "pw=true" field, or else FAIL.
13. On the Apple device that is connected to the Apple Base Station, select the newly added speaker and then
click play.
14. The speaker should be able to be selected without an error, user should be asked for the password. Once
the user provides the previously set password, the audio should begin playing within 15 seconds, or else
FAIL.
[Link] Play/Pause:
1. Power on the DUT.
2. Connect the DUT to the network. There are two options here, either Ethernet or Wireless. If the device
supports both interfaces then the test must be done for both. For Wireless only use WPA2-PSK with a
Passphrase of 12345678.
320
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
3. On the iTunes server select DUT as the speaker and select a song in the main music library and click Play.
4. Using either the buttons on the device or on a remote click the "Pause" button.
5. The music should pause immediately on the DUT and the pause button in iTunes should have changed
to the play symbol and progress should stop moving. If all of this is true, PASS.
6. Wait 60 seconds.
7. The speaker should not disconnect.
8. Using either the buttons on the device or on a remote click the "Play" button.
9. The music should start playing immediately on the DUT and the play button in iTunes should have changed
to the pause symbol and progress should be moving. The metadata information (Artwork, Artist and Song
title) should be the same as what is displayed in iTunes. If all of this is true, PASS.
[Link] Stop:
If the accessory has a "Stop" button on the accessory or on a remote, continue from the Play/Pause test with
the following:
1. Using either the buttons on the device or on a remote click the "Stop" button.
2. The music should stop immediately on the DUT and the pause button in iTunes should have changed to
the play symbol and progress should stop moving and the progress indicator should have moved back
to 0:00. If all of this is true, PASS.
3. Wait 60 seconds.
4. The speaker should not disconnect.
5. Using either the buttons on the device or on a remote click the "Play" button.
6. The music should start playing immediately on the DUT and the play button in iTunes should have changed
to the pause symbol and progress should be moving. The metadata information (Artwork, Artist and Song
title) should be the same as what is displayed in iTunes. If all of this is true, PASS.
7. Using either the buttons on the device or on a remote click the "Stop" button.
8. The music should stop immediately on the DUT and the pause button in iTunes should have changed to
the play symbol and progress should stop moving and the progress indicator should have moved back
to 0:00. If all of this is true, PASS.
321
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
3. On the iTunes server select DUT as the speaker and select a song in the main music library and click play.
4. Using either the buttons on the device or on a remote click the "Next Track" button and release the button
immediately.
5. The current song should have moved to the next song in the playlist and should have started playing. The
metadata information (Artwork, Artist and Song title) should be the same as what is displayed in iTunes.
If all of this is true, PASS.
6. Using either the buttons on the device or on a remote click the "Previous Track" release the button
immediately. The button must be pressed within 2 secs of the song starting.
7. The current song should have moved to the previous song in the playlist and should have started playing.
The metadata information (Artwork, Artist and Song title) should be the same as what is displayed in
iTunes. If all of this is true, PASS.
322
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
13. On the sniffer verify an HTTP Get Request is sent from the DUT IP to the iTunes server's IP with a payload
that indicates a value between -30 and 0. This value must be in a floating-point format and be close to
the middle of the scale, i.e. plus or minus 5 db from -15. This value should be less than the reference
volume.
[Link] Mute:
If the accessory has a "Mute" button on the accessory or on a remote, continue from the Volume Up/Volume
Down test with the following:
1. Using either the buttons on the device or on a remote click the "Mute" button and release the button
immediately.
2. No volume should be heard coming from the speaker and the slider bar in iTunes should have moved to
the far left, indicating 0 volume. However the progress bar for the song should still be moving forward. If
true, PASS.
3. On the sniffer verify an HTTP Get Request is sent from the DUT IP to the iTunes server's IP with a payload
that indicates a value of -144. This value must be in a floating-point format.
4. Using either the buttons on the device or on a remote click the "Mute" button and release the button
immediately.
5. The volume coming out of the speaker should go back to the reference volume.
6. On the sniffer verify that a HTTP Get Request is sent from the DUT IP to the iTunes server's IP with a payload
that indicates a value that is the same as what was sent when setting the reference volume.
7. Using either the buttons on the device or on a remote click the "Mute" button and release the button
immediately.
8. No volume should be heard coming from the speaker and the slider bar in iTunes should have moved to
the far left, indicating 0 volume. However the progress bar for the song should still be moving forward. If
true, PASS.
9. On the sniffer verify an HTTP Get Request is sent from the DUT IP to the iTunes server's IP with a payload
that indicates a value of -144. This value must be in a floating-point format.
10. Using either the buttons on the device or on a remote click the "Volume Down" button and release the
button immediately.
11. The volume should go to slightly a lower volume than the reference volume.
12. On the sniffer verify an HTTP Get Request is sent from the DUT IP to the iTunes server's IP with a payload
that indicates a value slightly lower than the reference volume. This value must be in a floating-point
format. If the value is not lower or if it is more than 5 db less, FAIL.
323
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
13. Using either the buttons on the device or on a remote click the "Mute" button and release the button
immediately.
14. No volume should be heard coming from the speaker and the slider bar in iTunes should have moved to
the far left, indicating 0 volume. However the progress bar for the song should still be moving forward. If
true, PASS.
15. On the sniffer verify an HTTP Get Request is sent from the DUT IP to the iTunes server's IP with a payload
that indicates a value of -144. This value must be in a floating-point format.
16. Using either the buttons on the device or on a remote click the "Volume Up" button and release the button
immediately.
17. The volume coming out of the speaker should go back to the reference volume.
18. On the sniffer verify that a HTTP Get Request is sent from the DUT IP to the iTunes server's IP with a payload
that indicates a value that is the same as what was sent when setting the reference volume.
19. Using either the buttons on the device or on a remote click the "Mute" button and release the button
immediately.
20. The volume coming out of the speaker should go back to the reference volume.
21. On the sniffer verify that a HTTP Get Request is sent from the DUT IP to the iTunes server's IP with a payload
that indicates a value that is the same as what was sent when setting the reference volume.
22. On the iTunes server, adjust the volume to about 50%; this does not need to be exact.
23. The DUT should come out of the mute state and play the music with approximately 50% volume.
[Link] Repeat/Shuffle:
Note: Only run these tests if the DUT supports Repeat/Shuffle functionality.
1. Power on the DUT.
2. Connect the DUT to the network. There are two options here, either Ethernet or Wireless. If the device
supports both interfaces then the test must be done for both. For Wireless only use WPA2-PSK with a
Passphrase of 12345678.
3. On the iTunes server select DUT as the speaker and select a song in the main music library and click play.
4. Using either the buttons on the device or on a remote click the "Repeat" button and release the button
immediately.
5. Verify in iTunes the Repeat icon changes from grey to blue and appears highlighted. If true, PASS.
6. The music should never stop playing.
7. Using either the buttons on the device or on a remote click the "Repeat" button and release the button
immediately.
324
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
8. Verify in iTunes the Repeat icon changes from blue to blue with a little "1" on the icon and appears
highlighted. If true, PASS.
9. The music should never stop playing.
10. Using either the buttons on the device or on a remote click the "Repeat" button and release the button
immediately.
11. Verify in iTunes the Repeat icon changes from blue with a little "1" on the icon to grey. If true, PASS.
13. Using either the buttons on the device or on a remote click the "Shuffle" button and release the button
immediately.
14. Verify in iTunes the Shuffle icon changes from grey to blue and appears highlighted. If true, PASS.
16. Using either the buttons on the device or on a remote click the "Shuffle" button and release the button
immediately.
17. Verify in iTunes the Shuffle icon changes from blue to grey. If true, PASS.
[Link] Play/Pause:
For the Test Environment, refer to Figure 14-6 (page 287).
1. Power on the DUT.
2. Connect the DUT to the network. There are two options here, either Ethernet or Wireless. If the device
supports both interfaces then the test must be done for both. For Wireless only use WPA2-PSK with a
Passphrase of 12345678.
3. On the Apple device select the DUT as the speaker and select a song in the main music library and click
play.
4. Using either the buttons on the device or on a remote click the "Pause" button.
5. The music should pause immediately on the DUT and the pause button in iOS should have changed to
the play symbol and progress should stop moving. If all of this is true, PASS.
6. Wait 10 seconds. Using either the buttons on the device or on a remote click the "Play" button.
7. The music should start playing immediately on the DUT and the play button in iTunes should have changed
to the pause symbol and progress should be moving. The metadata information (Artwork, Artist and Song
title) should be the same as what is displayed in iOS. If all of this is true, PASS.
325
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
[Link] Stop:
If the accessory has a "Stop" button on the accessory or on a remote, continue from the Play/Pause test with
the following:
1. Using either the buttons on the device or on a remote click the "Stop" button.
2. The music should stop immediately on the DUT and the pause button in iTunes should have changed to
the play symbol and progress should stop moving and the progress indicator should have moved back
to 0:00. The metadata information (Artwork, Artist and Song title) should be the same as what is displayed
in iOS. If all of this is true, PASS.
326
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
[Link] Mute:
If the accessory has a "Mute" button on the accessory or on a remote, continue from the Volume Up/Volume
Down test with the following:
1. Using either the buttons on the device or on a remote click the "Mute" button and release the button
immediately.
2. No volume should be heard coming from the speaker and the slider bar in iTunes should have moved to
the far left, indicating 0 volume. However the progress bar for the song should still be moving forward. If
true, PASS.
3. Using either the buttons on the device or on a remote click the "Mute" button and release the button
immediately.
4. The volume coming out of the speaker should go back to the reference volume.
5. Using either the buttons on the device or on a remote click the "Mute" button and release the button
immediately.
6. No volume should be heard coming from the speaker and the slider bar in iTunes should have moved to
the far left, indicating 0 volume. However the progress bar for the song should still be moving forward. If
true, PASS.
327
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
7. Using either the buttons on the device or on a remote click the "Volume Down" button and release the
button immediately.
8. The volume should go to slightly a lower volume than the reference volume.
9. Using either the buttons on the device or on a remote click the "Mute" button and release the button
immediately.
10. No volume should be heard coming from the speaker and the slider bar in iTunes should have moved to
the far left, indicating 0 volume. However the progress bar for the song should still be moving forward. If
true, PASS.
11. Using either the buttons on the device or on a remote click the "Volume Up" button and release the button
immediately.
12. The volume coming out of the speaker should go back to the reference volume.
13. Using either the buttons on the device or on a remote click the "Mute" button and release the button
immediately.
14. No volume should be heard coming from the speaker and the slider bar in iTunes should have moved to
the far left, indicating 0 volume. However the progress bar for the song should still be moving forward. If
true, PASS.
15. On the iTunes server, adjust the volume to about 50%; this does not need to be exact.
16. The DUT should come out of the mute state and play the music with approximately 50% volume.
[Link] Repeat/Shuffle:
For the Test Environment, refer to Figure 14-1 (page 285) and/or Figure 14-2 (page 285).
1. Power on the DUT.
2. Connect the DUT to the network. There are two options here, either Ethernet or Wireless. If the device
supports both interfaces then the test must be done for both. For Wireless only use WPA2-PSK with a
Passphrase of 12345678.
3. On the Apple device select the DUT as the speaker and select a song in the main music library and click
play.
4. Using either the buttons on the device or on a remote click the "Repeat" button and release the button
immediately.
5. Verify in iOS the Repeat icon changes from grey to blue and appears highlighted. If true, PASS.
6. The music should never stop playing.
7. Using either the buttons on the device or on a remote click the "Repeat" button and release the button
immediately.
328
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
8. Verify in iTunes the Repeat icon changes from blue to blue with a little "1" on the icon and appears
highlighted. If true, PASS.
9. The music should never stop playing.
10. Using either the buttons on the device or on a remote click the "Repeat" button and release the button
immediately.
11. Verify in iTunes the Repeat icon changes from blue with a little "1" on the icon to grey. If true, PASS.
13. Using either the buttons on the device or on a remote click the "Shuffle" button and release the button
immediately.
14. Verify in iTunes the Shuffle icon changes from grey to blue and appears highlighted. If true, PASS.
16. Using either the buttons on the device or on a remote click the "Shuffle" button and release the button
immediately.
17. Verify in iTunes the Shuffle icon changes from blue to grey. If true, PASS.
These tests only needs to run if DUT can be put into a standby state, however only choose the applicable test
if the DUT supports a full network while in standby state or not. These tests need to be rerun for both wired
and wireless if the device contains both interfaces.
329
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
10. A/R should have "Add" below it, if this is true, PASS.
11. Service Type should have "_raop._tcp." below it, if this is true, PASS.
12. Instance should have "MACADDRESS@DeviceName" below it, if this is true, PASS. (Example:
78CA3901C341@AirTunes)
11. A/R should have "Rmv" below it, if this is true, PASS.
330
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
12. Service Type should have "_raop._tcp." below it, if this is true, PASS.
13. Instance should have "MACADDRESS@DeviceName" below it, if this is true, PASS. (Example:
78CA3901C341@AirTunes)
14. On the iTunes server connected to the Base Station ping the IP address that was collected from Step 2.
15. If all the pings are unsuccessful, then PASS, else FAIL.
16. Verify the green link light is off on the Ethernet port that the DUT is plugged into, if not, FAIL.
10. A/R should have "Rmv" below it, if this is true, PASS.
11. Service Type should have "_raop._tcp." below it, if this is true, PASS.
12. Instance should have "MACADDRESS@DeviceName" below it, if this is true, PASS. (Example:
78CA3901C341@AirTunes)
13. On the iTunes server connected to the Base Station ping the IP address that was collected from Step 2-3.
14. If all the pings are unsuccessful, then PASS, else FAIL.
15. In the Apple AU, go to Advanced->Logs and Statistics->Wireless Clients. In list box look for the MAC address
that was collected from Step 2-3. The MAC address should not be present, if it is, FAIL.
331
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
This section is only required if the DUT has a way to put itself into a low power standby state or sleep state. If the
device always stays in an active state, then this section does not need to be tested.
1. Power on the DUT.
2. Using an Ethernet wire, connect the DUT to one of the LAN ports on the Base Station.
3. On the iTunes server connected to the Base Station, use iTunes and select the DUT as a Speaker that was
just added to the network. Once the speaker is selected attempt to start the stream.
4. Music should start playing within 15 seconds of clicking play.
5. Stop the audio stream and select the Computer as the speaker.
6. Music should stop playing within 15 seconds of clicking stop.
7. Put the DUT into its low power or sleep state.
8. The speaker should remain as a selectable speaker option.
9. On the iTunes server connected to the Base Station, use iTunes and select the DUT as a Speaker that was
just added to the network. Once the speaker is selected attempt to start the stream.
10. Music should start playing within 15 seconds of clicking play.
332
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
The web configuration interface must provide access to the following accessory settings: All settings must be
modifiable from the web interface.
11. The unit should indicate its new name, or else FAIL.
12. From Safari, select the DUT from the Bonjour list
13. The speaker should be able to be selected without and error, or else FAIL.
14. From Safari, verify that the proper name is indicated in the Web interface
15. The unit should indicate its new name, or else FAIL.
333
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
3. The DUT should begin beaconing 802.11 beacons and advertising as an 802.11b/g network with a SSID
that is descriptive of the DUT. At minimum the indication of the manufacturer should be present, with no
security enabled.
4. Using the iTunes server, associate wirelessly to the DUT.
5. The iTunes server should be able to associate on the 2.4 GHz band using 802.11b/g with no security and
receive a network that is on the same IPv4 network as the DUT. If the DUT does not have a DHCP server
and instead would like to use the IPv4 link local IP space, this must be specified in manufacturer's
documentation.
6. From Safari, select the DUT from the Bonjour list
7. The speaker should be able to be selected without and error, or else FAIL.
8. From Safari, configure the DUT to connect to the Wi-Fi network on the Apple Base Station. Minimally their
needs to be a way to manually specify the SSID and security passphrase, however there can also be a way
to select from a list obtained via scanning.
9. The DUT must have a way to manually enter the SSID for the Wi-Fi network and select a security mode.
Optionally it can create a list (scan list) for the user pick their network from, if desired. Once the device is
connected to the Base Station, there must be some indication on the DUT that device is connected.
10. Open the AU and verify the settings are correct.
11. In the Apple AU, go to Advanced->Logs and Statistics->Wireless Clients. In list box look for the MAC address
that was collected from Step 1. Verify that Type that is listed is one of the following options: 802.11b/g,
802.11g, 802.11a, 802.11a/n, 802.11b/g/n, or 802.11g/n. If any other Type is present, FAIL.
12. Next go to Advanced->Logs and Statistics->DHCP clients, and in the list box look for the MAC address that
was collected from Step 1. If the MAC address is not present, FAIL.
13. Open Safari on the iTunes Server and attempt to connect to the web server on the DUT with the address
it just received.
14. Safari should be able to navigate to the web server, or else FAIL. All of the settings that were entered in
previous steps should be reflected in the user interface.
334
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
3. Verify the device that has just been added to the network appears as a speaker in iTunes within 30 seconds,
or else FAIL.
4. Using the iTunes server, associate wirelessly to the DUT.
5. The iTunes server should be able to associate on the 2.4 GHz band using 802.11b/g with no security and
receive a network that is on the same IPv4 network as the DUT. If the DUT does not have a DHCP server
and instead would like to use the IPv4 link local IP space, this must be specified in manufacturer's
documentation.
6. From Safari, select the DUT from the Bonjour list
7. The speaker should be able to be selected without and error, or else FAIL.
8. From Safari, configure the DUT to connect to the Wi-Fi network on the Apple Base Station. Minimally their
needs to be a way to manually specify the SSID and security passphrase, however there can also be a way
to select from a list obtained via scanning.
9. The DUT must have a way to manually enter the SSID for the Wi-Fi network and select a security mode.
Optionally it can create a list (scan list) for the user pick their network from, if desired. Once the device is
connected to the Base Station, there must be some indication on the DUT that device is connected.
10. Open the AU and verify the settings are correct.
11. In the Apple AU, go to Advanced->Logs and Statistics->Wireless Clients. In list box look for the MAC address
that was collected from Step 1. Verify that Type that is listed is one of the following options: 802.11b/g,
802.11g, 802.11a, 802.11a/n, 802.11b/g/n, or 802.11g/n. If any other Type is present, FAIL.
12. Next go to Advanced->Logs and Statistics->DHCP clients, and in the list box look for the MAC address that
was collected from Step 1. If the MAC address is not present, FAIL.
13. Open Safari on the iTunes Server and attempt to connect to the web server on the DUT with the address
it just received.
14. Safari should be able to navigate to the web server, or else FAIL. All of the settings that were entered in
previous steps should be reflected in the user interface.
15. From Safari, select the DUT from the Bonjour list
16. The speaker should be able to be selected without and error, or else FAIL.
17. From Safari, turn off DHCP on the DUT. Manually configure the DUT to connect to the AP with a known
good IP address.
18. Open Safari on the iTunes Server and attempt to connect to the web server on the DUT with the address
it just received.
19. Safari should be able to navigate to the web server, or else FAIL. All of the settings that were entered in
previous steps should be reflected in the user interface.
335
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
All DUTs must be tested to ensure additional delay has not been introduced into the system. DUTs will be
tested by taking an oscilloscope trace with one channel connected to the line out audio jack of an AirPort
Express 802.11n (2nd Generation) and a second channel connected to a microphone input axially aligned with
the DUT's right speaker driver. Both the AirPort Express and the DUT shall be connected via Wi-Fi if available,
otherwise both shall be connected via ethernet directly to an AirPort Extreme Base Station.
A Mac will be used as an iTunes server with both the AirPort Express and DUT selected as speaker outputs. The
signal delay between the oscilloscope channels must measure no more than 5 ms between the DUT and the
AirPort Express.
11. Measure the time delay from the rising edge of the signal from the AirPort Express and the DUT.
336
14. AirPlay
14.12 Accessory Compliance Test Plan for Audio Streaming Devices
12. The time delay must be less than 5 ms, or else FAIL.
14. The audio should stop playing within 15 seconds, or else FAIL.
337
15. App Launch
An accessory that supports the App Launch feature can request that an Apple device launch an app on its
behalf.
Note: This message must only be sent in response to direct user action, such as pushing a button
on the accessory. Autonomous launch of apps is explicitly prohibited unless the accessory is an
automotive headunit.
338
15. App Launch
15.2 App Launch Usage
The launched app must communicate with the accessory via the External Accessory Protocol (page 535).
Accessories that establish an iAP connection via the Lightning connector may set LaunchAlert to 'no alert'.
All other accessories must set LaunchAlert to 'alert'.
Accessories must not assume that the app has launched, because the request may be denied by iOS or the
user. If positive confirmation of app launch is needed, the app must open an External Accessory Protocol (page
535) session with the accessory.
339
16. App Match
The App Match feature enables accessories that support the External Accessory Protocol feature (see External
Accessory Protocol (page 535)) to match with compatible apps on the App Store.
When connected for the first time, the Apple device will ask the user if they would like to visit the App Store
and view apps that work with the accessory. Subsequently, this action may be repeated by the user via Settings
> General > About > 'Accessory Name' > 'Find App for this Accessory' .
Matched apps are listed in alphabetical order with one exception. If the accessory will work with apps from
multiple development teams/companies, the accessory may provide a preferred Team ID that places apps
from that development team at the top of the list.
340
16. App Match
16.2 App Match Usage
● Must declare one or more supported External Accessory Protocols (see External Accessory Protocol (page
535)) that matches against one or more apps that are allowed to declare support for the same External
Accessory Protocol(s).
● May additionally declare a preferred Team ID that matches against one or more apps from a single app
development team.
Accessories may use the App Match feature with more than one External Accessory Protocol. If multiple protocols
are listed, the App Store will display a list of apps that support one or more of those protocols.
16.1.2 Team ID
● The Team ID used for App Match must belong to the accessory developer.
● A maximum of one Team ID can be declared for App Match purposes.
● The Team ID also must not change dynamically.
16.2.2 Team ID
Accessories may declare compatibility with apps by providing a AppMatchTeamID parameter in the
IdentificationInformation message (see IdentificationInformation (page 807)). The parameter's value must be
a valid iOS Developer Program Team ID.
The Team ID is supplied by Apple and is unique to a specific development team. More information on the
Team ID can be found in the iOS Developer Library (see [Link]
tion/General/Conceptual/DevPedia-CocoaCore/[Link]).
341
17. AssistiveTouch
The AssistiveTouch feature lets users generate iOS Multi-Touch gestures using one finger, a stylus, or a compatible
accessory. Accessory developers should consider supporting AssistiveTouch if the accessory is intended for
use by users with special needs who can see the display and manipulate more complex input peripherals, such
as joysticks or touchpads. If the user cannot see the display, consider supporting the VoiceOver feature instead.
When an AssistiveTouch-compatible accessory connects to an Apple device and the feature is enabled via the
iOS Settings app, an accessory-controlled virtual cursor is displayed. All AssistiveTouch interaction then proceeds
as if the user's own fingers were being used to interact with the device.
342
17. AssistiveTouch
17.2 AssistiveTouch Usage
All accessories that support the AssistiveTouch feature via iAP2 must send or receive the following iAP2 control
session message(s):
StartAssistiveTouch (page 820)
StopAssistiveTouch (page 821)
StartAssistiveTouchInformation (page 821)
AssistiveTouchInformation (page 821)
StopAssistiveTouchInformation (page 821)
After identification has been completed and accepted, the accessory must send a
StartAssistiveTouchInformation (page 821) message to the device. While these notifications are active, an
AssistiveTouchInformation (page 821) message will be sent from the device to inform the accessory whether
the feature is currently enabled or disabled. Accessories must be prepared to have the AssistiveTouch feature
disabled or enabled at any time, whether by the user or by another accessory.
The AssistiveTouch feature can be disabled and enabled via the StartAssistiveTouch (page 820) and
StopAssistiveTouch (page 821) messages while the accessory is still attached to an Apple device. This can be
useful if the accessory needs to enter a different operating mode that does not provide an external pointing
input to AssistiveTouch.
343
18. Bluetooth
Accessories that integrate Bluetooth technology must comply with the requirements stated in this chapter.
344
18. Bluetooth
18.1 Conformity With Bluetooth Specifications
Accessories that are compatible with Apple products must also use sniff mode as much as possible, especially
when there is little or no data being transmitted over the Bluetooth link. Besides its power consumption
advantages, sniff mode enables better antenna sharing with Wi-Fi.
The sniff mode parameters are specific to the usage model and Bluetooth Profile. The Apple product expects
the accessory to request sniff mode with appropriate parameters for a specific usage. If the accessory does not
send such a request, the Apple product may send a sniff mode request. When the Apple product sends a
request for sniff mode, the remote device must accept the request and its parameters without negotiation.
If the accessory sets the sniff mode parameters, the accessory must set the sniff interval to less than a third of
the Bluetooth baseband Link Supervision Timeout. This makes the Bluetooth link less susceptible to interference.
To improve link robustness, the accessory must use a shorter sniff interval instead of multiple sniff attempts.
Links with a sniff interval of 1 second or more make the slave device open up a large correlation window, which
has to be taken into account when calculating the number of sniff attempts. With sniff intervals shorter than
1 second, multiple sniff attempts can improve link robustness but will increase power consumption.
In a Bluetooth connection, one device is the master and the other the slave. The master can have multiple
slaves, thus forming a piconet. The master device can also be a slave role to another master, creating a scatternet.
345
18. Bluetooth
18.1 Conformity With Bluetooth Specifications
Such a scenario creates complications since the device has to alternate between the two piconets and thus
wastes valuable bandwidth. Managing the topology of the network is therefore important for maximum
performance. The Apple product may request a Role Switch, depending on its current topology, and the remote
device must accept the request. The Apple product may also reject a request for a Role Switch because of
topology concerns. Having a suboptimal topology may degrade the audio quality and the user's experience.
Only when it is maintaining multiple links, either Bluetooth or Wi-Fi, will the Apple product request or deny
role switches. Hence, it will grant a role switch if there is no reason for the Apple product to be master. It is
expected that the accessory will behave the same, only trying to be master when there is a legitimate reason.
The accessory must not always request to be master by default if there is no need in the system topology to
do so. If later the accessory needs to be master in order to maintain multiple links, it must ask to be master at
that time.
During the Bluetooth discovery process, the Apple product prefers to display the Friendly Name of discovered
accessories. Before the 2.1 version of the Bluetooth specification the Apple product would have to set up a
connection to the accessory and do a Remote Name Request, which takes power, antenna time, and user's
time. The Extended Inquiry Response feature, introduced in Bluetooth 2.1, lets an accessory send its Local
Name and other information as part of the Inquiry Response and thereby increase the speed and efficiency of
the discovery process.
The Local Name must match the accessory's markings and packaging and not contain ':' or ';'.
346
18. Bluetooth
18.2 Profiles
Secure Simple Pairing greatly increases security and is a mandatory security feature introduced in the Bluetooth
2.1 specification. To protect against a man-in-the-middle attack, the Numerical Comparison association model
must be used whenever feasible. See Volume 1, Section 5.4 in the Bluetooth Core Specification , Version 2.1 +
EDR.
18.2 Profiles
The Apple knowledge base article [Link]/kb/ht3647 provides a complete list of the Bluetooth
profiles that certain Apple devices support. The Bluetooth specifications are the starting point for designing
accessories that are compatible with these products. The following sections add information and requirements
for some profiles, which can help accessory developers achieve superior results.
The Device ID profile lets the Apple product identify the implementation of the remote accessory. This is
valuable information and can be used to bridge alternate interpretations of the Bluetooth specification when
communicating with a remote accessory. Therefore it is important that the information in the Device ID record
uniquely identify the implementation.
347
18. Bluetooth
18.2 Profiles
In the case of Bluetooth car kit devices, for instance, the same car kit might go into two different car models.
Ideally the two car kits must have different Product IDs. However, it is acceptable for them to have the same
ProductID as long as they have identical hardware, software, and features. If the implementations differ at all,
they must have different Product IDs. The accessory can also use a secondary Device ID to uniquely identify
the product ID or model number.
Remote accessories can use the Bluetooth Hands-Free Profile for phone communications. To achieve the best
user experience, the remote accessory must support the following features, which are optional in the Bluetooth
specification.
In some situations it is easier for the user to control the output volume through the Apple product instead of
directly on the remote accessory. For example, a passenger (or-if the car is parked-the driver) in a car could
use the volume slider on the phone to control the audio volume. Volume control synchronization is outlined
in Section 4.48.2 in the Bluetooth Hands-Free Profile specification version 1.5.
Apple products support all mandatory and optional indicators specified in HFP version 1.5 (service, call, callsetup,
callheld, signal, roam, battchg). To minimize unnecessary polling of status using the AT+CIND? command, the
remote accessory must enable indicator events reporting by sending an AT+CMER command. The Apple product
will then send a +CIEV event when there is a change in status of an indicator. The remote accessory must
request the initial status using the AT+CIND=? and AT+CIND? commands, according to the HFP specification.
348
18. Bluetooth
18.2 Profiles
Apple products support voice recognition initiated by remote (Hands-Free) accessories and iOS (Audio Gateway)
accessories.
Apple products support echo cancellation and noise reduction; these features are active by default. If a
Hands-Free accessory also does echo cancellation and noise reduction it needs to turn these features off on
the Apple product (the Audio Gateway). This avoids unnecessary degradation of audio quality due to double
audio processing.
The eSCO packet types offers retransmission of packets; traditional SCO packets are not retransmitted. This
improves audio quality and the user's experience. The eSCO packet types 2-EV3 and 3-EV3 offer a greater time
interval between packets, which can improve Wi-Fi performance and allow time for other concurrent Bluetooth
349
18. Bluetooth
18.2 Profiles
connections to send data. Apple strongly recommends the use of 2-EV3 and 3-EV3 packets for SCO connections.
Using HV3 packets is highly discouraged. HV3 packets require more link time and does not allow for
retransmission of audio packets which impacts the audio performance in presence of RF interference.
All Apple devices running iOS 5 or later support Wide Band Speech. If both the Apple device and the accessory
support Wide Band Speech then Wide Band Speech link will be used for eSCO connection for use cases like
cellular calls, FaceTime and Siri.
350
18. Bluetooth
18.2 Profiles
● Pause
● Fast Forward
● Rewind
● Forward
● Backward
[Link] Notifications
Every accessory that is compatible with an Apple product and supports AVRCP must register for notifications
and not perform repetitive polling to determine the status of the Apple product.
Every Apple device supports registering for notifications in the role of an AVRCP Target, as described in Section
6.7 of the Bluetooth Audio/Video Remote Control Profile specification version 1.4. The commands
RegisterNotification and GetPlayStatus are supported for these notifications:
● EVENT_PLAYBACK_STATUS_CHANGED
● EVENT_TRACK_CHANGED
● EVENT_NOW_PLAYING_CONTENT_CHANGED
● EVENT_AVAILABLE_PLAYERS_CHANGED
● EVENT_ADDRESSED_PLAYER_CHANGED
● EVENT_VOLUME_CHANGED
Accessories must use AVRCP notifications to present Apple device state to the user in accordance with the
requirements in Presentation of Apple Device Updates (page 61).
351
18. Bluetooth
18.2 Profiles
● If the Apple device has notified the accessory that it is playing, pressing the accessory's Play/Pause button
must send a Pause command.
● The accessory must not infer Apple device playback status based on the number of times the Play/Pause
button has been pressed.
Every Apple device supports volume handling in the role of AVRCP Controller.
[Link] Browsing
Every accessory that is compatible with an Apple product and supports Browsing (in controller role) as part of
AVRCP must:
● Not try to index or cache the entire library upon connection. The Apple product may contain tens of
thousands of media items, each present multiple times in the hierarchy.
● When browsing a specific folder, do not fetch all its items. Only fetch those that are displayed to the user.
It may prefetch a few items to improve the responsiveness of the user interface.
● Not reorder items (e.g. alphabetically).
● Not assume UIDs to be statically defined, especially in the root folder. The ordering and UIDs of folders
and items may change at any point in future releases.
● Send the SetBrowsedPlayer command after receiving an EVENT_UIDS_CHANGED notification.
● Not assume that the UID passed to the PlayItem command will result in the media player playing that UID.
Currently only the built-in Music app supports browsing. When switching between players, an
EVENT_AVAILABLE_PLAYERS_CHANGED notification and an EVENT_ADDRESSED_PLAYER_CHANGED notification
will be generated. The UI then needs to look at the feature bit mask of the listed player to determine whether
browsing is currently available.
All Apple devices running iOS 6.0 or later support AVRCP Browsing.
352
18. Bluetooth
18.2 Profiles
Element Value
Block Length 16
Subbands 8
Bitpool range 2 to 53. Accessories for Apple products must support 53.
Note: The following specifications provide details of Apple's implementation of the MPEG-2/4 AAC
codec. In case of conflicts, the A2DP specification governs.
The MPEG 2/4 AAC Codec Specific Information Elements, defined in Section 4.5 of the A2DP specification, that
are applicable to Apple devices are listed in Table 18-2 (page 353).
Table 18-2 MPEG-2/4 AAC Codec Information Elements for Apple devices
Element Value
353
18. Bluetooth
18.3 Audio Routing
Element Value
Channels 2
VBR 0
AAC audio stream packets in Apple devices have the structure shown in Table 18-3 (page 354).
The AAC Media Payload Format, as defined in Section 4.5.4 of the A2DP specification, is formatted using LATM,
as defined in Section 4 of IETF RFC 3016 . The following notes apply to the packet fields shown in Table 18-3 (page
354).
● The suggested L2CAP MTU value for each Apple device's AAC streaming channel is 885 bytes.
● The AVDTP Header is shown as the RTP header in Figure 4 of RFC 3016, and is the header defined in Section
7.2.1 of the Bluetooth Audio/Video Distribution Transport Protocol , Version 1.2.
● The AudioMuxElement is the same as the RTP payload in RFC 3016. It is defined in Section 1.7.3, Table
1.32 in ISO/IEC 13818-3:2005, subpart 1. The muxConfigPresent argument to the AudioMuxElement
is set to 1 (in-band mode), as recommended in Section 4.1 of RFC 3016. As recommended in Section 4.3
of RFC 3016, only one AudioMuxElement is put into each AVDTP packet.
● The audio payload is encoded using MPEG-4, as recommended in Section 4.5.4 of the A2DP specification.
● For AAC-LC support, the accessory must support VBR capability. The Apple device will be varying AAC bit
rate depending on the content and the accessory must be able to handle the variation without causing
gap in the audio.
354
18. Bluetooth
18.3 Audio Routing
An accessory can receive audio data from the Apple device via either of two Bluetooth profiles:
● HFP using eSCO channel
● A2DP using ACL channel
The Apple device picks which channel to use depending on how the audio content is used. An audio path
created for two way communication (such as phone calls or FaceTime) always uses the HFP (eSCO) route for
sending audio data. Music and similar content uses the A2DP route. In the absence of a defined route, audio
playback will default to the Apple device.
If the accessory is already connected to the Apple device using the Lightning or 30-pin connector, connecting
using Bluetooth must not pause any playing audio.
For any audio content that is being received via the HFP (eSCO) route, it is expected that both the speaker and
the microphone of the accessory are dedicated to the Bluetooth link and must not handle any other audio
content.
When an Apple device initiates audio playback over an A2DP channel for playing music content, an AVRCP
notification EVENT_PLAYBACK_STATUS_CHANGED is sent to indicate that playback status has changed to play
state. See Section 6.7.2 of the Audio/Video Remote Control Profile specification, version 1.4. This indicates that
audio data via the A2DP profile contains music. When an Apple device initiates audio playback over an A2DP
channel for playing system sound, no AVRCP notification is sent.
355
18. Bluetooth
18.3 Audio Routing
Figure 18-1 (page 356) and Figure 18-2 (page 356) show the difference between the notifications for music
playback and for system sounds.
AVDTP_Start_Req
Audio mlayback ptarts
AVDTP_Start_Cfm
iocal media is activeI prepare to mix in AOam audioK
EVENT_PLAYBACK_STATUS_CHANGED: Play
pwitch pource Audio to _luetooth Audio
keeds rf update to indicate _luetooth audio is playingK
AVDTP_Suspend_Req
Audio mlayback bnds
AVDTP_Suspend_Cfm
AVDTP_Start_Req
pystem pound ptarts
AVDTP_Start_Cfm
iocal media is activeI prepare to mix in AOam audioK
AVDTP_Suspend_Req
pystem pound bnds
AVDTP_Suspend_Cfm
ptop AOam audio mixingI continue local media playbackK
If audio data contains music, then it is expected that the accessory speakers are dedicated to audio data coming
via the Bluetooth link and any other audio playback is paused. If audio data contains system sound, then it is
expected that the accessory can render audio as desired. If the accessory is playing audio from a different
source, then system sound data can be mixed with the existing track for playback; it is not necessary to pause
existing audio playback on the device.
356
18. Bluetooth
18.4 iAP2
18.4 iAP2
Accessories that implement iAP2 over the Bluetooth transport must additionally meet the following requirements:
● The Bluetooth Service Discovery Protocol (SDP) must be supported.
● The SDP data Maximum Transmission Unit (MTU) must be at least 672 bytes.
● SDP records must not be fragmented.
● Extended Inquiry Response (EIR) must be supported.
● A Service Class UUID of 0xFFCACADEAFDECADEDEFACADE00000000 must be declared in both SDP and
EIR.
● The EIR Local Name must be the same as the Name parameter in the IdentificationInformation (page 807)
message.
Unlike iAP1, there is no requirement for a specific Class of Device (CoD) or Major Service.
Unlike wired transports, Apple devices will enter a hibernate state regardless of how many active Bluetooth
connections are present. Bluetooth traffic from the accessory to the device will cause the device to exit the
hibernate state. Therefore, accessories must generate Bluetooth traffic to an Apple device only in response to
a direct user action. Autonomous generation of Bluetooth traffic for the purpose of keeping an Apple device
out of hibernate is grounds for failure to pass self certification.
To re-establish a Bluetooth connection to the Apple device, the accessory must make a Bluetooth SDP query
to find the RFCOMM channel associated with the Service Class UUID of
0xFECACADEAFDECADEDEFACADE00000000, then connect to that channel. The accessory must not assume
that the channel will remain the same between connections.
The Apple device may refuse a Bluetooth connection under these circumstances:
● There are too many Bluetooth connections made to the Apple device. In this case, the accessory will receive
an error indicating that a resource is unavailable.
● There are too many RFCOMM protocol connections to the Apple device. In this case, the accessory will
receive a Resource Denied error.
357
18. Bluetooth
18.5 Test Procedures
The accessory must not expect that the Apple device will try to re-establish a broken Bluetooth connection.
Note: Service Class UUID and RFCOMM UUID are listed in little-endian order.
18.5.2 Reconnection
358
18. Bluetooth
18.5 Test Procedures
[Link] Range
1. Take Apple device out of range during active call. Return to BT range after 2 minutes and initiate BT
connection from Apple device/accessory.
2. Audio should be routed to Apple device after disconnection. Audio should be available in uplink and
downlink after reconnection.
18.5.3 Indicators
1. Check the Human Machine Interface (HMI) after BT connection.
2. Support indicators should display correct values for: Battery, Signal Strength, Roaming Indicator, and
Carrier Name.
359
18. Bluetooth
18.5 Test Procedures
2. Dialing tone should be heard over SCO/eSCO link before call is answered by the remote party. Audio
should be available in uplink and downlink once call is answered.
[Link] Caller ID
1. Make incoming call and check caller ID on accessory's HMI.
2. Caller ID should be displayed in a good format.
360
18. Bluetooth
18.5 Test Procedures
361
18. Bluetooth
18.5 Test Procedures
[Link] Conference
1. Join 2 calls from HMI. Make sure Hold/Resume/End functions work for conference calls.
2. Each party should be able to hear audio from the other two. Hold/Resume/End functions should work for
conference calls.
362
18. Bluetooth
18.5 Test Procedures
18.5.10 Siri
1. Trigger Siri from either Apple device or accessory.
2. Beeps should be complete and sound clear.
3. Ask Siri a question (time, weather, etc.).
4. Audio should be complete and sound clear. Virtual call should end soon after Siri provides the answer.
5. Ask Siri to call someone.
6. Transition from Siri to outgoing call should be smooth.
7. Ask Siri to play certain tracks.
8. Siri should find the right track to play.
9. Ask Siri for directions (Starbucks, Whole Foods, etc).
10. Siri should find the directions and start turn-by-turn navigation.
18.5.11 A2DP
363
18. Bluetooth
18.5 Test Procedures
[Link] Siri
1. Trigger Siri during A2DP.
2. Audio should be resumed after the Siri session.
18.5.12 AVRCP
[Link] Metadata
1. Switch between Music app, iTunes Radio and 3rd party apps.
364
18. Bluetooth
18.5 Test Procedures
2. Metadata should always work after each transition, no matter which app is being used.
18.5.14 Phonebook
[Link] Contacts
1. Download phonebook from accessory.
2. Size and contents of the downloaded phonebook should match with Apple device phonebook.
365
18. Bluetooth
18.5 Test Procedures
[Link] Update
1. Add/Delete a contact/call history from Apple device. Download again from accessory.
2. Updated should be seen in the downloaded phonebook/call history on HMI.
18.5.15 iAP
The following reviews how to setup and capture iAP-over-Bluetooth with ATS for MFi accessory audits. This
section covers only procedures and test cases for iAP1 and iAP2 over the Bluetooth transport. It does not cover
any additional Bluetooth profile testing.
[Link] Equipment
To run iAP-over-Bluetooth accessory audits, you will need the following:
● Mac with ATS 4.1 or later
● ATS Utility 1.1.1 or later installed on an Apple device running iOS 8.0 or later
● ComProbe BPA 100
● RF shielding cloth
● Prop or stand for RF shielding cloth
366
18. Bluetooth
18.5 Test Procedures
3. Make sure that the RF environment is free of noise by turning off other devices that may use the 2.4 GHz
frequency range such as Wi-Fi and other Bluetooth devices.
367
18. Bluetooth
18.5 Test Procedures
This behavior has been observed in automotive head units, speakers and receivers.
If you are unable to view a Link Key for an accessory which claims support for both iAP over Bluetooth and EA
Session, please attempt the following.
1. After connecting the device to the accessory, launch the associated application and use the app.
2. Reopen ATS Utility and check for a Link Key.
3. With the Link Key, proceed with BT audit as instructed above.
Note that, similar to the way you will not get a Link Key until the EA Session has been triggered, you will not
see iAP traffic until the application is launched.
368
18. Bluetooth
18.5 Test Procedures
369
19. Bluetooth Accessory Identification
This chapter describes Apple-specific Bluetooth commands that extend accessory capabilities beyond those
supported by standard Bluetooth profiles.
To enable Apple-specific features, the accessory must support HFP Command AT+XAPL (page 370), which
provides accurate information about the accessory's supported features. The Apple device will use the
information sent by this command to enable and disable custom commands.
The accessory must send the following AT+XAPL command after making a successful HFP Service Level
Connection (SLC) to the Apple device. The accessory must send an AT+XAPL command first, before sending
any of the additional Apple-specific commands described below.
Parameters:
● vendorID : A string representation of the hex value of the vendor ID from the manufacturer, without the
0x prefix.
● productID : A string representation of the hex value of the product ID from the manufacturer, without the
0x prefix.
● version : The revision of the software.
● features : A base-10 representation of a bit field. Available features are:
● Bit 0 = reserved
● Bit 1 = The accessory supports battery reporting (reserved only for battery operated accessories).
● Bit 2 = The accessory is docked or powered (reserved only for battery operated accessories).
● Bit 3 = The accessory supports Siri status reporting.
● Bit 4 = the accessory supports noise reduction (NR) status reporting.
370
19. Bluetooth Accessory Identification
19.1 HFP Command AT+XAPL
Response: +XAPL=iPhone,features
371
20. Bluetooth Connection
Accessories can automate the Bluetooth pairing process between an Apple device and any number of integrated
Bluetooth accessory components if they also have a wired connection to the Apple device.
Additionally, some Apple devices can report changes in the Bluetooth connection status for an accessory's
Bluetooth components. These notifications can be useful when the accessory wishes to determine whether it
is connected to a particular Apple device via both Bluetooth and a Lightning connector. Accessories must
implement this feature if they can maintain audio transport connections over both Bluetooth A2DP and other
transports (see Multiple Audio Connections (page 528)).
The accessory must send an initial BluetoothComponentInformation (page 822) message within 2 seconds of
receiving a IdentificationAccepted (page 816) message. Additionally, the accessory must also send a
BluetoothComponentInformation (page 822) message to the device whenever the state of an identified accessory
Bluetooth component changes. The accessory must report status for every identified Bluetooth component
and not just status for the changed component. Conversely, after the initial
BluetoothComponentInformation (page 822) message is sent, the accessory must not send additional ones
unless there is a state change in one of its identified Bluetooth components.
In the case of Bluetooth components, the accessory must report the ComponentIdentifier of the identified
component and ComponentEnabled parameter value of true if the Bluetooth component is ready for
connections. Conversely, the accessory must send a BluetoothComponentInformation (page 822) message with
ComponentEnabled set to false if the Bluetooth component is not ready for connections.
All accessories that support the Bluetooth Connection feature via iAP2 must send or receive the following iAP2
control session message(s):
BluetoothComponentInformation (page 822)
StartBluetoothConnectionUpdates (page 822)
BluetoothConnectionUpdate (page 823)
StopBluetoothConnectionUpdates (page 824)
372
20. Bluetooth Connection
20.2 Bluetooth Connection Usage
The accessory must send a StartBluetoothConnectionUpdates (page 822) message to start the generation of
component updates from the device. More than one component identifier may be specified if the accessory
has multiple Bluetooth components with different MAC addresses. If the accessory later wishes to stop receiving
component status notifications it may send a StopBluetoothConnectionUpdates (page 824) message to the
device.
When updates are first started, one or more initial BluetoothConnectionUpdate (page 823) messages will be
sent to the accessory to inform it of the starting connection state of all requested components. Subsequent
notifications for a particular component always completely override prior ones. It is possible for the device to
connect to the same component profile multiple times in a row. For example, this may occur when the device
temporarily moves out of range for a period of time that is not long enough to trigger an automatic device
disconnect and reconnects upon rediscovering the accessory component. Therefore, accessories must handle
duplicate BluetoothConnectionUpdate (page 823) messages gracefully.
Accessories must send StopBluetoothConnectionUpdates (page 824) when they no longer have a need for
them. For example, if an accessory makes use of Bluetooth connection updates purely to automate pairing of
the accessory's Bluetooth component, it must stop asking for updates and not start them again upon subsequent
connections to the Apple device.
373
21. Bluetooth Headset Battery Level Indication
Any Hands-Free Bluetooth headset accessory can show its battery level to the user as an indicator icon in the
Apple device status bar. This feature is supported on all Apple devices that support the Hands-Free Profile,
including iPhone, iPod touch, and iPad.
Headset battery indication is implemented by two Apple-specific Bluetooth HFP AT commands, HFP Command
AT+XAPL (page 370) and HFP Command AT+IPHONEACCEV (page 374)
Parameters:
● Number of key/value pairs : The number of parameters coming next.
● key : the type of change being reported:
● 1 = Battery Level
● 2 = Dock State
● val : the value of the change:
● Battery Level: string value between '0' and '9'
● Dock State: 0 = undocked, 1 = docked
Example: AT+IPHONEACCEV=1,1,3
374
22. Bluetooth Low Energy
The Bluetooth 4.0 specification introduces Bluetooth Low Energy, a new wireless technology targeted for
accessories with limited battery resources. If Bluetooth Low Energy is supported, the accessory must follow
the guidelines in this section.
22.1 Role
The accessory must implement either the Peripheral role as defined in the Bluetooth 4.0 specification, Volume
3, Part C, Section [Link] or the Broadcaster role, as defined in Section [Link].
ADV_DIRECT_IND must not be used. See the Bluetooth 4.0 specification, Volume 6, Part B, Section 2.3.1.
375
22. Bluetooth Low Energy
22.5 Advertising Interval
● TX Power Level
● Local Name
● Services
The Local Name must match the accessory's markings and packaging and not contain ':' or ';'.
The accessory may put the Local Name and the TX Power Level data in the SCAN_RSP PDU if, for example, it
needs to reduce power consumption or not all of the advertising data fit into the advertising PDU. Note that,
depending on its state, the Apple product may not always perform active scanning.
The primary services must always be advertised in the advertising PDU. Secondary services must not be
advertised. Services not significant to the primary use case of the accessory may be omitted if space is limited
in the Advertising PDU.
The advertising data and the scan response data in the SCAN_RSP PDU must comply with the formatting
guidelines in the Bluetooth 4.0 specification, Volume 3, Part C, Section 18: it starts with a length field, followed
by AD Type and AD Data.
To be discovered by the Apple product, the accessory must first use the recommended advertising interval of
20 ms for at least 30 seconds. If it is not discovered within the initial 30 seconds, Apple recommends using one
of the following longer intervals to increase chances of discovery by the Apple product:
● 152.5 ms
● 211.25 ms
● 318.75 ms
● 417.5 ms
● 546.25 ms
● 760 ms
● 852.5 ms
● 1022.5 ms
● 1285 ms
376
22. Bluetooth Low Energy
22.6 Connection Parameters
Note: Longer advertising intervals usually result in longer discovery and connect times.
Interval Min ≥ 20 ms
●
Slave Latency ≤ 4
●
connSupervisionTimeout ≤ 6 seconds
●
If Bluetooth Low Energy HID is one of the connected services of an accessory, connection interval down to
11.25 ms may be accepted by the Apple product.
The Apple product will not read or use the parameters in the Peripheral Preferred Connection Parameters
characteristic. See the Bluetooth 4.0 specification, Volume 3, Part C, Section 12.5.
22.7 Privacy
The accessory must be able to resolve a Resolvable Private Address in all situations. Due to privacy concerns,
the Apple product will use a Random Device Address as defined in the Bluetooth 4.0 specification, Volume 3,
Part C, Section 10.8.
22.8 Permissions
The accessory must not require special permissions, such as pairing, authentication, or encryption to discover
services and characteristics. It may require special permissions only for access to a characteristic value or a
descriptor value. See the Bluetooth 4.0 specification, Volume 3, Part G, Section 8.1, fifth paragraph.
377
22. Bluetooth Low Energy
22.9 Pairing
22.9 Pairing
The accessory must not request pairing until an ATT request is rejected using the Insufficient Authentication
error code. See the Bluetooth 4.0 specification, Volume 3, Part F, Section 4 for details.
If, for security reasons, the accessory requires a bonded relationship with the Central, the Peripheral must reject
the ATT request using the Insufficient Authentication error code, as appropriate. As a result, the Apple product
may proceed with the necessary security procedures.
Similarly, if the Apple device acts as a Central and a GATT server, it may reject an ATT request using the
Insufficient Authentication error code. The accessory must initiate the security procedure for pairing in response.
Pairing may require user authorization depending on Apple product. Once an accessory is paired with an Apple
product, it must retain the distributed keys of both central and peripheral for future use. If the pairing is no
longer required, the accessory must delete both sets of keys.
22.11 Services
The Apple product may use the Service Changed characteristic to determine if it can rely on previously read
(cached) information from the device. See the Bluetooth 4.0 specification, Volume 3, Part G, Section 7.1.
378
22. Bluetooth Low Energy
22.12 GATT Server
These services are not guaranteed to be available immediately after connection and the accessory must support
Characteristic Value Indication of the Service Changed characteristic (see Bluetooth 4.0 specification, Volume
3, Part G, Section 7.1) to be notified when the services become available. The Apple device will maintain a
connection to an accessory as long as it is paired and uses one of the available services.
The following services are implemented internally by iOS and must not be published by third party iOS
applications:
● Generic Attribute Profile Service
● Generic Access Profile Service
● Bluetooth Low Energy HID Service
● Battery Service
● Current Time Service
● Apple Notification Center Service
379
22. Bluetooth Low Energy
22.12 GATT Server
The Apple device implements the GAP Service Changed characteristic, because the database contents can
change at any time. The accessory must therefore support the Characteristic Value Indication of this characteristic
and, upon receiving indications, invalidate its database cache accordingly. See the Bluetooth 4.0 specification,
Volume 3, Part G, Section 7.1.
The accessory must minimize the use of ATT/GATT requests and commands and only send what is necessary.
For example, do not use GATT Discover All Services when the accessory is looking for specific services. Use
Discover Primary Service By Service UUID instead. Less airtime equals less power consumption and better
performance for both the accessory and the Apple device.
When third party iOS applications discover services on the accessory, the following services are used internally
by iOS and are filtered out from the list of discovered services:
● Generic Attribute Profile Service
● Generic Access Profile Service
● Bluetooth Low Energy HID Service
● Apple Notification Center Service
The accessory must be robust enough to handle any error gracefully. Pairing and Characteristic Value reads/writes
may fail if the application that owns the service is not in the foreground and is not entitled to run in the
background.
If an ATT Prepare Write Request is used, all queued attributes are contained within the same GATT Service.
380
23. CarPlay
This chapter defines how a vehicle infotainment system (head unit) may receive and interact with digital
content (audio, video, and metadata) streamed from an Apple device running iOS. It covers accessories that
can receive streamed digital content from Apple devices.
To work with Apple CarPlay™, accessories must support the CarPlay feature.
CarPlay is only allowed for dashboard-integrated vehicle infotainment systems. It is not intended for rear-seat
or non-vehicle integrations. The accessory must be connected to the vehicle audio system and must use an
external microphone.
CarPlay accessories must only be marketed in countries where the CarPlay feature is available. For a list of
countries where the CarPlay feature is available, see [Link]
applecarplay.
All CarPlay accessories must comply with the Apple CarPlay Identity Guidelines .
In the context of CarPlay, the term accessory is used to refer to either a vehicle and its head unit or an
after-market head unit.
After-market head units must be integrated systems with a built-in display with a minimum 6 inch diagonal
screen size. After-market head units that rely on the customer, an installer, or another third party to ensure
spec compliance should make those requirements clear in their installation manual, documentation, etc.
Examples of this include instructions on connecting vehicle speed sensors and external GNSS antennas,
microphone placement, and placement of the Apple device for thermal considerations.
381
23. CarPlay
23.1 Additional Specifications
● IETF RFCs
● 793 ([Link]
● 768 ([Link]
● 2460 ([Link]
● 2474 ([Link]
● 3966 ([Link]
● 5905 ([Link]
● "Internet Protocol (IP), DARPA Internet Program, Protocol Specification", RFC 791, September 1981
● "An Ethernet Address Resolution Protocol (ARP)", RFC 826, November 1982
● "Unique Local IPv6 Unicast Address", RFC 4193, October 2005
● "Dynamic Host Configuration Protocol (DHCP)", RFC 2131, March 1997
● "Internet Control Message Protocol (ICMP), DARPA Internet Program, Protocol Specification", RFC 792,
September 1981
● "Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification",
RFC 4443, March 2006
● "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, September 1007
● K. McCloghrie, "Management Information Base for Network Management of TCP/IP-based internets:
MIB-II", RFC 1213, March 1991
● F. Kastenholz, "Definition of Managed Objects for the Ether-like Interface Types", RFC 1398, January
1993
● IEEE 802.11 Standards
● Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specification, IEEE Std. 802.11-2012
● Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specification: Enhancements
for Very High Throughput in Bands below 6 GHz, IEEE 802.11ac-2013
● Wi-Fi Alliance Specifications
● Wi-Fi 802.11 with WPA2 System Interoperability Test Plan for IEEE 802.11a, b & g Devices, Version
2.4.2, March 2005
● Wi-Fi 802.11n System Interoperability Test Plan, Version 2.0.1
● Wi-Fi CERTIFIED(tm) ac Interoperability Test Plan, Version 1.0.0
● Wi-Fi WMM System Interoperability Test Plan, Version 1.3.2, June 2006
● Wi-Fi Voice Personal Interoperability Test Plan Version 2.3.3
● Bluetooth SIG Specifications
382
23. CarPlay
23.2 General Requirements
23.2.1 Overview
Apple CarPlay lets an Apple device stream interactive digital content to an accessory with one or more
audio/video endpoints and controls.
CarPlay is intended for use with a single front seat display. An accessory must not replicate digital video content
to multiple displays.
For more information on how to integrate the Apple CarPlay identity in vehicle hardware and software and in
marketing communications, refer to the Apple CarPlay Identity Guidelines .
383
23. CarPlay
23.2 General Requirements
[Link] Processing
The accessory must be capable of:
● Hardware decoding of H.264 video, see User Interface (UI) Stream (page 411).
● Running the Communication Plug-in and other software clients, see Software Clients (page 409).
● Providing different audio processing based on the audio mode, see Audio (page 413).
● Synchronizing the audio output and input sample clocks, see Synchronization (page 447).
The accessory must have a tactile button for Siri activation. The Siri button cannot be a soft button that appears
on a vehicle display. The Siri button is used to activate a Siri session and to continue a Siri session when there
is an on-going conversation. The Siri button must be accessible at all times. Immediately after the Apple device
has been connected to the accessory, users expect to be able to activate Siri at any time, regardless of what
state the vehicle is in and even if CarPlay is not showing on the display. There are some exceptions, such as
when the vehicle is performing a safety critical function or if there is already an active voice recognition session
using the accessory's built-in system.
The Siri button must be easily accessible. It is expected that the Siri button is located on the steering wheel,
although in some exceptional cases the Siri button may be located elsewhere. In many cases the Siri button
will be the same button that is used to activate the accessory's built-in voice recognition system. In this case,
a short press on the button should trigger the accessory's built-in voice recognition system and a long press
on the button should trigger Siri. The accessory is responsible for defining what constitutes a long press on
the button, but it must not be greater than 1000 ms. Apple recommends a period of 600 ms since it closely
384
23. CarPlay
23.2 General Requirements
mimics the behavior of the Apple device home button. Once the user activates Siri by holding down the button,
a Siri session is initiated. The accessory knows that a Siri session is active by observing the application state
which will be "Speech". While the Siri session is active, the accessory must send all Siri button events (every
time the Siri button is either pressed or released) to the Apple device. The Apple device monitors both button
press events and button release events and manages the Siri session accordingly. The accessory must send
raw events and should not attempt to interpret the button press and button release events. When the Siri
session is terminated, the accessory may stop sending button events and return to a default state.
If the Siri button is a dedicated hardware button used exclusively for Siri and is never used for built-in voice
recognition activation or for other features using other devices or systems, then you may choose to label the
button with Siri branding. In this case, please consult with Apple for guidelines on using the Siri brand. Otherwise
Siri should not appear on the button and it should be labeled with standard iconography, such as the icon
used for the built-in voice recognition system.
If the accessory supports CarPlay over wireless, the Siri button must also function as a trigger to start the pairing
process. When no device is connected, a long press on the Siri button must activate the accessory's wireless
pairing user interface and the accessory must immediately become discoverable by an Apple device. However,
if the accessory is actively connected to a second Bluetooth device, a long press on the Siri button may be
used to trigger voice recognition activation instead of activating the accessory's wireless pairing user interface.
The Apple CarPlay icon may be used on physical buttons that show the CarPlay UI. The label "Apple CarPlay"
should appear in text below the icon. If the icon is not used, the text-only label "Apple CarPlay" must be used.
The Apple CarPlay logo may be used on soft buttons and menu items that show the CarPlay UI. If color graphics
are featured in the accessory screen interface, the accessory should use the color version of the Apple CarPlay
logo. If black-and-white graphics or other monochromatic themes are featured in the accessory screen interface,
use either the white version or the black version of the Apple CarPlay logo, matching the visual style of the
interface. The logo must be accompanied by the label "Apple CarPlay". If the logo is not used, the text-only
label "Apple CarPlay" must be used.
Whenever the CarPlay session is not active, the Apple CarPlay logo and/or label should appear disabled or
should be hidden.
385
23. CarPlay
23.2 General Requirements
When using the label "Apple CarPlay", the accessory should match the font, size, style, and placement of other
text used in the interface; do not imitate Apple typography. For example, if all capital letters are used on other
items, then Apple CarPlay can also appear in all capital letters: "APPLE CARPLAY".
It is preferred that "Apple CarPlay" is placed on one line. If space is limited and other titles are stacked, "Apple
CarPlay" can be stacked, with "Apple" on one line and "CarPlay" on the next line.
Any use of the Apple CarPlay icon, logo, or trademark within native UI requires Apple review and approval.
[Link] Sensors
The accessory must provide location information to the Apple device as described in Location Information (page
637).
To connect to the Apple device wirelessly, the accessory must provide a Bluetooth connection and a wireless
access point, see CarPlay over Wireless (page 395).
Refer to the Apple CarPlay Identity Guidelines for labeling any receptacles or connectors.
23.2.3 Architecture
To support CarPlay, an accessory must support USB as a USB device where the Apple device is the host, see
USB Host Mode (page 712).
To support CarPlay over wireless, an accessory must support Bluetooth and Wi-Fi, see CarPlay over Wireless (page
395).
386
23. CarPlay
23.2 General Requirements
The accessory communicates with the Apple device using protocols defined by the Internet Protocol (IP) suite.
An IP model is employed to abstract data transport away from the chosen physical layer where possible,
although some aspects of the overall implementation will differ per transport. In addition, the accessory must
establish an iAP2 link with the Apple device for authentication, identification, and exchange of metadata.
The major building blocks of this architecture are illustrated in Figure 23-1 (page 387), with Apple-provided
software components highlighted in blue.
Rotary Wheels,
Buttons
Accessory
Decoder
Audio Video
Decoder
En/Decode Decode
CarPlay Client
iAP2 Client
Communication Plug-in
iAP2
Audio UI Stream Control
Authentication,
LPCM H.264 Authentication,
Metadata,
A/V control,
Accessory
User Actions
Data
Apple Device
Figure 23-1 (page 387) shows an automotive head unit and its associated instrument cluster and displays with:
● Digital content that is independently driven by an Apple device
● User interactions that are controlled by one or more discrete controllers
● Multichannel audio, both input and output
387
23. CarPlay
23.2 General Requirements
The accessory must also support the USB Host Mode feature (where the accessory is a USB device and the
Apple device is the host), as specified in USB Host Mode (page 712).
The accessory must establish the CarPlay session automatically upon physical connection to the Apple device.
For an accessory that normally acts as a USB host, the steps shown in Figure 23-2 (page 389) are required.
388
23. CarPlay
23.2 General Requirements
Authenticate
Authenticate
An accessory that presents directly as a USB device without undergoing the host-to-device role switch, will
require the use of a custom USB cable or dock solution, incorporating the Lightning (C10A), Lightning (C11A),
Lightning (C48A), or Lightning (C68A) connector (USB Host Mode). The standard Apple-provided white
USB-to-Lightning cable is incompatible with a USB accessory presenting directly as a USB device.
389
23. CarPlay
23.2 General Requirements
The accessory must proceed to establish an authenticated iAP2 Session as described in Accessory
Authentication (page 261).
Note: Until authentication is completed successfully, the Apple device will access the iAP2 interface
unless it is using control session version 2 (see Control Session (page 789)). With version 2, the Apple
device may access other USB interfaces whether or not authentication is complete.
Interface Number 0xNN Must be different from the iAP2 interface and USB NCM data
interface numbers. Must match the
USBHostTransportCarPlayInterfaceNumber (see Table 59-15 (page
812)).
The accessory must also publish the additional descriptors outlined in Table 23-2 (page 390).
390
23. CarPlay
23.2 General Requirements
Accessory MAC addresses must be properly assigned by the manufacturer, see [Link]
ments/ethernet-numbers/[Link]. The accessory must provide this MAC address for the Apple
device to use via the CDC Ethernet Networking functional descriptor. The accessory must not use the same
MAC address provided to the Apple device for its own network interface. The accessory may use a different
assigned MAC address, or it may modify the MAC address for its own use by setting the locally administered
bit of the Organizationally Unique Identifier (OUI) portion of the MAC address. The locally administered bit is
the second-least-significant bit of the most significant byte of the address, see [Link]
op/regauth/tut/[Link]. This will ensure that there are no collisions between the Apple device and the
head unit.
Interface Number 0xNN Must be different from the iAP2 interface and USB NCM control
interface numbers.
Number of Endpoints 2 (for Alternate Setting 1) 1 Bulk IN; and 1 Bulk OUT
The accessory must implement USB Hi-Speed NCM on this interface. The interface must support transfers of
encapsulated datagrams up to 64 KB (i.e., up to 40 1514-byte Ethernet frames) and 16-bit NCM Transfer Blocks
(i.e., NTB-16).
Accessories using the USB NCM interface for CarPlay must support at least 100 Mbps of bandwidth with a
latency less than 5 ms over both TCP and UDP protocols and a packet loss of less than 1% (as measured with
iperf ) over UDP.
When the Apple device is connected or disconnected, the accessory must reflect this change in the connection
state of the NCM interface. The network stack on the head unit must mark the NCM interface as available only
while the Apple device is connected.
391
23. CarPlay
23.2 General Requirements
An example configuration for an accessory implementing the USB Communications Class NCM Subclass
descriptors is as follows:
Class : 0xff
(Vendor-specific)
Subclass : 0x00
Protocol : 0x00
Configurations : 1
Configuration : 1 (Default
Configuration)
Attributes : 0xc0
(Self-powered)
Max Power : 0 mA
Interfaces : 3
Interface : 0 / 0 (iAP2
Interface)
Class : 0xff
Subclass : 0xf0
Protocol : 0x00
Endpoints : 2
Endpoint : 0x81
Attributes : Bulk/IN
Endpoint : 0x1
Attributes : Bulk/OUT
Interface : 1 / 0 (NCM
Communication Interface)
Class : 0x02
Subclass : 0x0d
Protocol : 0x00
Endpoints : 1
Endpoint : 0x82
Attributes : Interrupt/IN
392
23. CarPlay
23.2 General Requirements
Interval : 1 mframe
bcdCDC : v1.10
Control Interface : 1
Subordinate Interface : 2
iMacAddress : 7
Ethernet Statistics : 0
Interface : 2 / 0 (NCM
Data Interface Alternate 0)
Class : 0x0a
Subclass : 0x00
Protocol : 0x01
Endpoints : 0
Interface : 2 / 1 (NCM
Data Interface Alternate 1)
Class : 0x0a
Subclass : 0x00
Protocol : 0x01
Endpoints : 2
Endpoint : 0x83
Attributes : Bulk/IN
Endpoint : 0x3
Attributes : Bulk/OUT
393
23. CarPlay
23.2 General Requirements
[Link] Authentication
CarPlay is an authenticated solution, requiring the use of an MFi authentication coprocessor (2.0 B or later)
obtained through Apple. Apple devices will stream only to authorized accessories.
Communication over both the iAP2 and CarPlay interfaces requires authentication and each interface provides
a discrete authentication API. To expedite these dual authentication steps, local caching of the X.509 Certificate
provided by the Apple Authentication Coprocessor is permitted.
All authenticated accessories are required to be certified under the Apple MFi program. The CarPlay accessory
must successfully pass compliance tests to assure that all digital content from an Apple device will be correctly
decoded and displayed and that all electrical requirements described in this specification are met.
The accessory must not send a 'Play' command automatically upon connection of a CarPlay enabled device.
See Media Library Playback Requirements (page 650).
For more information on setting up a CarPlay session refer to Setup and Control (page 427).
The accessory must be able to establish a CarPlay session within 3 seconds of Apple device connection.
When the accessory also supports CarPlay over wireless (see CarPlay over Wireless (page 395)), if the Apple
device is disconnected, the accessory must follow the requirements outlined in USB to Wireless (page 409).
394
23. CarPlay
23.2 General Requirements
Setup for CarPlay over wireless begins with Bluetooth discovery between the Apple device and the accessory.
The user initiates pairing on the accessory either through a long press on the accessory's Siri button, or by
using the accessory's user interface. On the Apple device, the user initiates pairing on the Apple device through
Settings. The accessory and the Apple device may choose to show all detected Bluetooth devices, or they may
choose to show only devices that support CarPlay over wireless by querying the Bluetooth Extended Inquiry
Response (EIR). A Bluetooth Classic pairing flow generates a record of trust between the Apple device and the
accessory.
After Bluetooth pairing is complete, the Apple device requests the accessory's Wi-Fi credentials using iAP2
over Bluetooth. The Apple device uses the Wi-Fi credentials and the Apple Device Information Element provided
by the accessory's access point to associate with the accessory's Wi-Fi network.
Once associated with the network, the Apple device advertises a CarPlay Control Bonjour Service to indicate
that CarPlay is available. The accessory is responsible for requesting initiation of the CarPlay session using
CarPlay Control. Once the CarPlay session starts, the user can interact with CarPlay through the accessory's
controls. Finally, the accessory transitions from iAP2 over Bluetooth to iAP2 over CarPlay client.
Once initial pairing is completed, Apple CarPlay reconnects seamlessly the next time the user enters the vehicle.
Reconnection starts with the accessory reestablishing the Bluetooth connection. This is used as a trigger for
the Apple device to associate with the already known Wi-Fi network and to start advertising the CarPlay Control
Bonjour service. Once the accessory discovers a CarPlay-enabled device though the CarPlay Control Bonjour
service, it requests a CarPlay session from that device.
For accessories that support multiple Apple devices with CarPlay, including CarPlay over USB and CarPlay over
wireless, the user selects which Apple device to use for CarPlay from a list presented in the accessory’s user
interface. The accessory can add a CarPlay device to the list by following the same steps to reconnect each
previously paired Apple device: a Bluetooth connection is established, the Apple device associates with the
Wi-Fi network, the Apple device advertises CarPlay availability through the CarPlay Control Bonjour service. If
an Apple device is connected over USB and over wireless, it appears only once in the list.
[Link] Bluetooth
CarPlay over wireless requires the accessory to provide Bluetooth connection, service discovery, and pairing.
During initial pairing, the accessory must support standard Bluetooth Secure Simple Pairing using Numeric
Comparison. Once a secure Bluetooth link is established, the accessory must negotiate the iAP2 profile and
establish an iAP2 session for exchanging the Wi-Fi credentials, see iAP2 Client over Bluetooth (page 409).
395
23. CarPlay
23.2 General Requirements
After starting iAP2, the accessory may negotiate all of the relevant Bluetooth profiles such as HFP, A2DP, AVRCP,
etc. However, once a CarPlay session is established, the Apple device will notify the accessory to disconnect
all active profiles, see disableBluetooth (page 478).
If CarPlay over wireless is available on the Apple device as indicated by the Bluetooth EIR then the accessory
must start iAP2 prior to any additional Bluetooth profiles.
Accessories may use the WirelessCarPlayUpdate (page 842) message to receive notifications about the availability
of CarPlay over wireless on an Apple Device. If legacy Bluetooth profiles, such as HFP, A2DP, etc. are supported
and not already connected, the accessory must re-establish the connection when CarPlay over wireless is no
longer available on the Apple device.
Once the accessory is discoverable, it must run periodic inquiry scans and respond to an inquiry from the Apple
device with an FHS packet with the BT EIR bit set as defined in the Core Specification Supplement, Part A . It
must then return an Extended Inquiry Response packet 1250 microseconds after the FHS of the packet.
The EIR packet must include a 128-bit CarPlay Service UUID, 0xEC884348CD4140A29727575D50BF1FD3, in
one of the following EIR data types:
● Incomplete List of 128-bit Service Class UUIDs
● Complete List of 128-bit Service Class UUIDs
The Extended Inquiry Response may contain additional data as defined in the Core Specification Supplement,
Part A . DM1 or DM3 packets, which support FEC, are recommended for transmitting the EIR data for maximizing
the range and increasing the robustness of the packet.
For more information on Bluetooth EIR, see Additional Specifications (page 381).
396
23. CarPlay
23.2 General Requirements
Accessories may use this information to distinguish between devices with Apple CarPlay enabled and general
Bluetooth devices.
During initial pairing, the Apple device requests the Wi-Fi access point's Wi-Fi credentials (SSID and Passphrase)
using iAP2 over Bluetooth, see iAP2 Client over Bluetooth (page 409). These Wi-Fi credentials are stored on the
Apple device and will be used to join the Wi-Fi access point automatically during reconnection. To speed up
the reconnection scenario, the Apple device will initiate Wi-Fi scanning based on a re-connect of any Bluetooth
profile.
The CarPlay accessory must ensure that the Wi-Fi access point is fully operational before it initiates pairing or
reconnection of the device over Bluetooth.
Once the Apple device joins the Wi-Fi access point, it advertises the CarPlay Control Bonjour service and waits
for the accessory to establish the CarPlay session, see Networking and Service Discovery (page 402).
The accessory Wi-Fi access point implementation must transmit a de-authentication packet to the Apple device
before the Wi-Fi access point goes offline (accessory is being turned off ).
The accessory must not implement any policy that tracks or filters Apple devices based on Wi-Fi MAC addresses.
The Wi-Fi access point must support at least 25 Mbps of bandwidth (as measured with iperf ) with a latency
less than 16 ms (as measured with the ping command) over both TCP and UDP protocols and a packet loss of
no more than 1% on a 25 Mbps UDP uplink stream.
The Wi-Fi access point may support multiple Wi-Fi connected devices for other applications, but those
connections must not impact the required CarPlay performance.
The Wi-Fi access point must be configured for a power save operation using a DTIM value of one (1).
397
23. CarPlay
23.2 General Requirements
It is recommended that the accessory supports the 802.11ac VHT20, VHT40, or VHT80 physical level data rates
and modulations as defined in the IEEE 802.11ac-2013 standard.
For more information on the IEEE 802.11-2012 and 802.11ac-2013 standards, see Additional Specifications (page
381).
When hosting a wireless network in the 2.4 GHz frequency band, the Wi-Fi access point must operate on one
of the channels in Table 23-4 (page 398).
Channel Frequency
1 2.412 GHz
6 2.437 GHz
11 2.462 GHz
When hosting a wireless network in the 5 GHz frequency band, the Wi-Fi access point must operate on one of
the channels in Table 23-5 (page 398).
398
23. CarPlay
23.2 General Requirements
It is highly recommended that the accessory Wi-Fi access point operate in the 5 GHz frequency band. Operating
in the 5 GHz frequency band will avoid interference and coexistence with Bluetooth traffic that only exists in
the 2.4 GHz frequency band.
Wi-Fi operation in the 5 GHz frequency band depends on regulatory domain rules and regulations. It is
understood that some regulatory domains may prohibit operation in the 5 GHz frequency band, therefore the
accessory Wi-Fi access point will have to operate in the 2.4 GHz frequency band.
Channel switching should be limited as it increases connection time. Channel switching should be avoided
across accessory power cycles and should not change during a CarPlay over wireless session.
The accessory must support the following frame reception and transmission functionality:
399
23. CarPlay
23.2 General Requirements
The accessory may implement the mandatory tallies and counters defined in the IEEE 802.11 Management
Information Base (MIB) .
The accessory must support standard power management and power save functions as defined in the IEEE
802.11-2012 standard, see Additional Specifications (page 381).
The accessory may support short guard interval (400 ns) for the defined Data Rates and MCS indices.
The accessory must support at least the following OFDM Data Rates: 6, 9, 12, 18, 24, 36, 48, and 54 Mbps.
The CarPlay protocol uses AC_VO for Voice data traffic, AC_VI for Screen data traffic, and AC_VO for Control
data traffic.
The accessory may support Universal Advanced Power Save Delivery (U-APSD) as defined in the IEEE 802.11-2012
standard, see Additional Specifications (page 381). It is strongly recommended that implementations support
this power save mode in order to optimize power consumption on the Apple device.
When the Apple device transmits a null data packet with the PM Bit set (entering 802.11 power save mode),
the accessory must ACK the null data packet and must flush the Tx hardware queue for that wireless client
(STA) therefore not transmitting any additional packets to the Apple device.
[Link].5 Security
The accessory must use the WPA2 Personal security mode as defined by the Wi-Fi Alliance and IEEE.
The accessory may support the mandatory security related tallies/counters defined in the IEEE 802.11
Management Information Base (MIB) .
All support encryption algorithms/functions must be executed in hardware unless otherwise described and
approved by Apple.
400
23. CarPlay
23.2 General Requirements
The AES/CCMP encryption may comply with the Government Security Requirements for Cryptographic Modules
FIPS PUB 140-2 .
[Link].6 Performance
The following table defines recommended throughput performance targets for the different IEEE 802.11
MAC/PHY modes for the TCP and UDP protocols.
The CarPlay accessory Wi-Fi implementation must be in compliance with the mandatory to implement
requirements defined in the Wi-Fi 802.11n System Interoperability Test Plan .
401
23. CarPlay
23.2 General Requirements
For more information on the Interworking IE, see Additional Specifications (page 381).
The accessory must include the Apple Device IE in Beacon, Probe response, and Association response frames
at all times during the operation of the Wi-Fi access point.
The Features flags must set the flags as specified in Table 23-7 (page 402) (see Table 55-8 (page 746)):
Flag Value
Supports 2.4 GHz Wi-Fi networks 1 if the 2.4 GHz frequency band is supported and used for CarPlay.
Supports 5 GHz Wi-Fi networks 1 if the 5 GHz frequency band is supported and used for CarPlay.
402
23. CarPlay
23.2 General Requirements
IP connectivity must be provided by IPv4 DHCP addressing and the accessory must support TCP and UDP
transmission modes; see IETF RFC 2131, Dynamic Host Configuration Protocol (DHCP) , IETF RFC 793, Transmission
Control Protocol (TCP) and IETF RFC 768, User Data Gram Protocol (UDP) . In addition, the accessory must support
the following networking protocols: ARP and ICMP; see IETF RFC 826, Address Resolution Protocol (ARP) and
IETF RFC 792, Internet Control Message Protocol (ICMP) .
The accessory must support Apple Bonjour zero-configuration networking over this interface; see the Apple
Bonjour Support Site . The accessory will be identified uniquely by its MAC address and by a TXT record with
additional data needed to resolve or use the service. For more details, see Discovery (page 424).
In order to reduce reconnection time, the accessory must store the DHCP IP address lease information across
multiple reboots. The DHCP IP address lease time must be at least 3 days with an address pool size of at least
100; a lease time of 7 days with a pool size of 250 is recommended.
Based on availability of Internet data connection, the accessory must update the following fields:
● "Access Network Options" flag in the Interworking IE, see Interworking Information Element (IE) (page 401)
● "Provides Internet Access" flag in the Apple device IE, see Apple Device Information Element (IE) (page
402)
● DHCP server gateway IP address - a valid DHCP server gateway IP address if Internet connectivity is provided,
otherwise the gateway IP address must be set to [Link]
Once the CarPlay session is successfully initiated, if the accessory Wi-Fi access point is operating in 2.4 GHz,
Bluetooth link with the Apple device must be disconnected and the Bluetooth subsystem must be disabled
(see disableBluetooth (page 478)). If the accessory Wi-Fi access point is operating in 5 GHz, Bluetooth link with
the Apple device must be disconnected and the Bluetooth subsystem must go into idle mode, available for
connections with other devices.
403
23. CarPlay
23.2 General Requirements
Figure 23-3 (page 404) defines the message flow when using Bluetooth and iAP2 over Bluetooth as the initial
connection and pairing mechanism.
Figure 23-3 Initial Connection and Pairing using Bluetooth and iAP2
EIR EIR
Bluetooth Bluetooth
(CarPlay UUID, iAP UUID) (CarPlay UUID, iAP UUID)
WiFi Scan( )
WiFi Associate( )
IP Link established
404
23. CarPlay
23.2 General Requirements
The accessory must initiate reconnection to a previously paired Apple device using Bluetooth. The accessory
Wi-Fi access point must be fully operational before initiating reconnection. Once the Bluetooth link is established,
the Apple device will scan and attempt to associate to the accessory's Wi-Fi access point using the Wi-Fi
credentials mapped to the BD_ADDR of the accessory in question. Just like with the Initial Connection and
Pairing procedure, the accessory must exchange the Wi-Fi credentials using iAP2 over Bluetooth.
Once the CarPlay session is successfully initiated, if the accessory Wi-Fi access point is operating in 2.4 GHz,
Bluetooth link with the Apple device must be disconnected and the Bluetooth subsystem must be disabled
(see disableBluetooth (page 478)). If the accessory Wi-Fi access point is operating in 5 GHz, Bluetooth link with
the Apple device must be disconnected and the Bluetooth subsystem must go into idle mode, available for
connections with other devices.
Figure 23-4 (page 405) defines the message flow when using Bluetooth for reconnection.
EIR EIR
Bluetooth Bluetooth
(CarPlay UUID, iAP UUID) (CarPlay UUID, iAP UUID)
WiFi Scan( )
iAP2 (WiFi Parameters Update)
WiFi Associate( )
IP Link established
405
23. CarPlay
23.2 General Requirements
For discovery and connection establishment, the reconnect latency must be 8 seconds or less. Reconnect
latency is defined as the period from the when the accessory's Bluetooth subsystem transmits the first Bluetooth
connection packet (Bluetooth Connection and SDP Setup) to the Apple device to when the Apple device starts
the CarPlay session (CarPlay Session Start).
In the event the Apple device with the active CarPlay session is disconnected, the accessory must enable the
Bluetooth subsystem and attempt to reconnect to the Apple device. This requirement is meant to re-establish
the CarPlay session with an Apple device when a sudden Wi-Fi disconnect occurs.
Upon ignition, the accessory must scan for all previously paired Apple devices. When Apple devices are
discovered, the accessory must attempt to reconnect to the last device used for CarPlay, or to the preferred
device that is set up by the user. If neither is found, the accessory must connect an available Apple device.
When there is an active CarPlay session, the accessory must never switch to another Apple device without
explicit user action. If the active CarPlay device is disconnected for any reason, the accessory must rescan for
available devices and attempt to reconnect the previously active CarPlay device.
Accessories operating in the 2.4 GHz band must support only a single Apple device for CarPlay over wireless.
The accessory must not allow Bluetooth pairing while there is an active CarPlay session.
406
23. CarPlay
23.2 General Requirements
If the accessory Wi-Fi access point is operating in the 2.4 GHz frequency band, the Bluetooth subsystem must
be disabled. Once the Apple device has established a Wi-Fi connection and successfully initiated a CarPlay
session, the Bluetooth link must be terminated with the Apple device, the accessory's Bluetooth subsystem
must be disabled, and all Bluetooth connections to other devices must be terminated.
If the accessory Wi-Fi access point is operating in the 5 GHz frequency band, Bluetooth protocols and profiles
can be supported and enabled with other devices that are not engaged in an active CarPlay session. Once the
Apple device has established a Wi-Fi connection and successfully initiated a CarPlay session, the Bluetooth link
must be terminated with the Apple device. A Bluetooth connection and profiles may be established with other
devices that are not engaged in a CarPlay session.
If the accessory provides Internet sharing services and uses LTE on Band 40 as the WWAN communication,
then the accessory Wi-Fi access point must use the operating channels in Table 23-8 (page 407).
Channel Frequency
6 2.437 GHz
11 2.462 GHz
If the accessory can demonstrate a minimum of 30 dBm of isolation between the Wi-Fi antenna and Cellular
antenna, then the accessory Wi-Fi access point may use any 2.4 GHz channels specified in Table 23-4 (page
398).
407
23. CarPlay
23.2 General Requirements
Other RF technologies operating in the vehicle must not interfere with the Wi-Fi access point providing CarPlay
over wireless services since they may cause a performance degradation.
Other Wi-Fi access points must not interfere with the Wi-Fi access point providing CarPlay over wireless service
since they may cause a performance degradation.
If other Wi-Fi access point(s) are configured with a different SSID and WPA2 passphrase, the non-CarPlay Wi-Fi
access points must operate in a different channel.
The non-CarPlay Wi-Fi access points must operate in 2.4 GHz and 5 GHz channels that are not used by the
CarPlay Wi-Fi access point.
If the device has CarPlay enabled and there is no active CarPlay session over wireless, the accessory must initiate
USB role switch to start CarPlay. See Role Switch (page 389).
If a CarPlay session over wireless is already established with the Apple device, the accessory must perform USB
role switch and initiate an iAP2 session for charging only. The accessory must complete accessory authentication
and declare their capability to provide power, see Providing Power to the Apple Device (page 661).
408
23. CarPlay
23.2 General Requirements
If a CarPlay session over wireless is already established with another Apple device, or if CarPlay is not enabled
on the device, the accessory may connect to the device for music browsing.
Portions of both clients are provided as reference source code by Apple, namely:
● An iAP2 link layer
● A CarPlay Communication Plug-in, see CarPlay Communication Plug-in (page 485)
The location information will be used to augment the Apple device's built-in location services and help conserve
device power.
Additionally, the iAP2 interface enables transfer of metadata and state information to the accessory from select
iOS apps running in CarPlay, such as Music and Telephony. This information may be used to complement the
CarPlay experience on an additional accessory screen that is not the primary CarPlay screen; for instance, to
display call information on a vehicle instrument cluster display.
Accessories may also provide sensor data and other vehicle status to the Apple device, see Vehicle Status (page
718).
409
23. CarPlay
23.2 General Requirements
The iAP2 client over Bluetooth is used only to provide Wi-Fi credentials and must be disconnected once the
CarPlay session is established.
Payload data for the CarPlay client may be encoded according to a variety of standards dependent on the
content type, as described in Media Types and Formats (page 411), but the underlying transport layer employed
by the Communication Plug-in will consist of one or more channels implementing either Transmission Control
Protocol (TCP) or User Datagram Protocol (UDP). For TCP, see IETF RFC 793, Transmission Control Protocol ,
September 1981. For UDP, see IETF RFC 768, User Datagram Protocol , August 1980.
The Communication Plug-in will open a number of additional UDP and TCP channels in parallel to handle
synchronization, retransmission requests, usage reports for user actions and other custom commands and
controls.
The accessory must provide a networking stack that supports multiple concurrent UDP and TCP channels for:
● audio/video transfer
● command and control
● clock synchronization and retransmission
410
23. CarPlay
23.2 General Requirements
● Location Information (page 637) and provide location information from GPS and other sensor data
For CarPlay over wireless, the accessory must provide location information using GNSS Mode, see Global
Navigation Satellite System (GNSS) Mode (page 638), as the Apple device may be positioned in a location
without any satellite visibility.
Additionally, the iAP2 interface enables transfer of metadata and state information to the accessory from select
iOS apps running in CarPlay, such as Music and Telephony. This information may be used to complement the
CarPlay experience on an additional accessory screen that is not the primary CarPlay screen; for instance, to
display call information on a vehicle instrument cluster display.
Accessories may also provide sensor data and other vehicle status to the Apple device, see Vehicle Status (page
718).
All control and video data packets are encrypted (AES-128). The task of encryption/decryption is abstracted
for the accessory maker within the Apple-provided Communication Plug-in code.
Apple devices will not stream content subject to DRM (Digital Rights Management) over CarPlay.
The AVCC Format is specified in ISO/IEC STANDARD 14496-15 (AVC file format) section [Link].1. If the accessory
decoder does not natively support AVCC format, but instead requires Annex-B format, a set of utility functions
are provided in the Communication Plug-in to assist with format conversion. Note however, that this conversion,
if required, is software based, not hardware accelerated, and may impact performance and latency.
The H.264 Sequence Parameter Set (SPS) and Picture Parameter Set (PPS) are only sent once, at the beginning
of the stream.
In order to minimize video encoding and decoding latency, no frame reordering is used (i.e. no B-frames). The
accessory must support the SPS Video Usability Information (VUI) header with the bitstream_restriction_flag
set, max_num_reorder_frames of 0, and max_dec_frame_buffering set to the maximum Decoded Picture Buffer
(DPB) size.
Video is encoded using full range Y'CbCr, black is 0, white is 255. The accessory must support the SPS
video_full_range_flag to reflect this. See Annex E of the H.264 specification for more information.
411
23. CarPlay
23.2 General Requirements
The accessory's target resolution, max frame rate, and physical dimensions for the CarPlay content must be
reported via the Info Message (page 430). Resolutions natively supported by the Apple device and its set of
CarPlay compatible applications are listed in Table 23-9 (page 412).
The accessory must implement an H.264 decoder capable of supporting at least High Profile 3.1 and content
with a 800 x 480 resolution at 30 fps using YCbCr 4:2:0 chroma subsampling, but higher frame rates are strongly
recommended. The decoder must be capable of supporting the H.264 level corresponding to the resolution
and frame rate reported to CarPlay. See Table 23-10 (page 412).
H.264 Level Max Bit Rate Wired Max Bit Rate Wireless Examples
The accessory's digital video display must natively support one of the standard resolutions encoded by the
Apple device and display the CarPlay content in a full screen configuration. The accessory may optionally use
a larger display with a resolution higher than one of the standard resolutions and display the CarPlay content
in a windowed configuration. Windowed configurations may have additional design requirements and must
be reviewed by Apple. The CarPlay content must always be rendered pixel for pixel without resorting to scaling
or stretching. See High Resolution Display (page 383) for display requirements.
412
23. CarPlay
23.2 General Requirements
Accessory makers wishing to offer different target resolutions for the UI stream and/or nonsquare pixel displays
must first consult with Apple for compatibility.
The CarPlay UI must appear on the accessory display within 500 ms of either:
● The accessory receiving a screen stream setup request.
● The accessory receiving a session configuration that includes a screen stream.
[Link] Audio
The accessory must support audio input and output streams encoded in the form of uncompressed LPCM.
Volume control and display of volume control UI are the responsibility of the accessory because the Apple
device provides only unattenuated line-level audio output.
See Volume Management (page 423) for specific requirements and recommendations.
The accessory must support one main (input and output) and one alternate audio stream from the Apple
device as described in Resources (page 448). Alternate audio must be mixed with main audio regardless of
whether the source of main audio is the Apple device (for example, the iOS Music app) or the accessory (for
example, the FM tuner on a vehicle head unit). In some use cases output on alternate audio might be
accompanied by a request to duck the main audio channel (see Ducking (page 423)).
The audio sample rates supported by the accessory must be reported using the Info message, see Info
Message (page 430).
Accessories that implement the CarPlay feature must respect the requirements from Multiple Audio
Connections (page 528). In addition, they must use the CarPlay audio stream when using the feature and cannot
use USB Host Mode Audio Transport in parallel.
The Apple device will at times simultaneously employ different sample rates for the main (input and output)
and alternate audio streams, or may require sample rate transitions, for instance when transitioning main audio
from music to a phone call. Main and alternate audio must be capable of maintaining independent sample
rates. For example, if the main audio channel is operating at 16 kHz for telephony, alternate audio should
continue to operate at a higher sample rate, e.g. 44.1 kHz, to preserve the fidelity of alerts and other alternate
audio that would mix with phone call audio. All sample rate transitions will be communicated to the accessory
by the Apple device using the Setup Message (page 440).
CarPlay over USB uses LPCM for audio. CarPlay over wireless uses raw AAC-LC for high latency audio (Main
High Audio) and either OPUS or raw AAC-ELD for low latency audio (Main Audio except "media" and Alt Audio).
Accessories supporting CarPlay over wireless must support multiple decode instances and concurrent
decode/encode instances.
413
23. CarPlay
23.2 General Requirements
Also, the Apple device will communicate the intended use of the audio stream to allow the accessory to: (i)
adjust its microphone audio processing (such as noise reduction, echo cancellation, frequency response, and
gain), and (ii) suppress or eliminate additional noise sources (for example, temporarily turning down the
defroster in a vehicle to reduce ambient noise).
After the Apple device sends a Setup Message (page 440) to request main (input and output) or alternate audio
streams, the accessory must reply to the setup message within 100 ms and only after:
● It is ready to begin receiving and outputting audio samples (if main audio with input and output was
requested). For output, the accessory must output all samples given to it after an acknowledgement of
the setup message. For input the accessory must be ready to send audio samples to the Apple device after
the acknowledgment of the setup message.
● It is ready to begin to continuously receive audio from the Apple device (if main or alternate audio output
was requested). For output, the accessory must output all samples given to it after an acknowledgement
of the setup message.
The accessory must support full-duplex audio on the main audio stream at the same sample rate in both input
(microphone) and output directions. In addition, input and output must be driven from the same clock to avoid
the need for asynchronous sample rate conversion.
The accessory must not buffer more than 10 ms of audio at a time to ensure that transfer delays do not cause
gaps in the audio stream.
At no time during interaction with the Apple device must any popping, clicking, or other audible artifacts occur
on the accessory, whether it be during transitions between shared resource ownership or mode changes,
starting and stopping IO, initiation or cessation of ducking, or any other circumstance. Additionally, volume
changes and ducking must be free any zippering or other audible artifacts. The output to the DAC for an
unencoded LPCM audio signal sent from the Apple device should be bit-identical to that of an audio signal
sent from other sources, assuming those sources allow direct digital transfer.
Sample Rate
Table 23-11 (page 415) details the audio stream requirements. The accessory must support both 44.1 kHz 16-bit
and 48 kHz 16-bit audio. At least one of these two sample rates must be natively supported, that is, a sample
rate at which the accessory can perform its audio processing without sample rate conversion. See Table
23-28 (page 435) for a list of audio configurations.
414
23. CarPlay
23.2 General Requirements
Latency
Latency from the receipt of a buffer of LPCM audio by the accessory from the CarPlay Communication Plug-in
to the time it is emitted by the accessory's speaker must not exceed 35 ms.
Proof of compliance with the ITU-T P.1100 and ITU-T P.1110 specifications must be submitted to Apple as part
of the self-certification audit process.
Sample Rate
Table 23-12 (page 415) details the audio stream requirements. The accessory must accept and provide the
required sample rates with equal or higher bit depth.
Apple recommends implementing support for 32 kHz sampling. This is a key feature of VoLTE. Future voice
communication standards may incorporate 48 kHz sample rates and stereo.
Audio Processing
The accessory must perform echo cancellation and noise processing tuned for telephony and provide full-duplex
audio that is free of echoes, noise, or other artifacts.
415
23. CarPlay
23.2 General Requirements
In the nominal test arrangement, the accessory must provide a constant average uplink output level to the
device. The use of automatic gain control (AGC) targeting the specified level is recommended. The nominal
level measured at the uplink output of the accessory must be A-weighted -30 dB ±2 dB root-mean-square
(RMS), expressed in units relative to full-scale (dBFS(A)). Alternatively, the nominal level may be 13 dB ±2 dB
SLR if using the ITU measurement procedure.
Signal-to-Noise Ratio
The accessory must maintain adequate signal-to-noise ratio (SNR) in its uplink output for voice communication
purposes. The absolute SNR must be over 12 dB in all typical driving conditions as specified in Annex D of ITU-T
P.1100 /ITU-T P.1110 . Higher values are preferred and the SNR should be much higher in a stationary vehicle
and at slow driving speeds.
Round-Trip Delay
The definition of the combined round-trip delay of the accessory and the device follows 3GPP TS 26.132 ,
consisting of the sum of uplink and downlink processing latency of all acoustic, analog, and digital components
of the accessory and the device, including any digital buffering. The round-trip path is illustrated in Figure
23-5 (page 416).
Artificial Loudspeaker
ear
Hands-free Mobile RF
ERP/ signal phone signal transmission
DRP processing processing & decoder
The combined round-trip delay of the accessory and the device must not exceed 275 ms for wired transports
and 415 ms for wireless transports. Smaller values are preferred and ideally the delay should be under 200 ms.
The send frequency response must meet the requirements in ITU-T P.1100 , Clause 11.4.1 for narrowband
telephony and ITU-T P.1110 , Clause 11.4.1 for wideband telephony.
416
23. CarPlay
23.2 General Requirements
Sample Rate
Table 23-13 (page 417) details the audio stream requirements. The accessory must accept and provide the
following sample rate with equal or higher bit depth.
In the future, even higher sample rates such as 32 kHz and 48 kHz and stereo may be used.
Audio Processing
The accessory must perform echo cancellation and noise processing tuned for telephony and provide full-duplex
audio that is free of echoes, noise, or other artifacts. Due to high-quality audio coding, it is important to preserve
the quality of the uplink signal. Less aggressive noise suppression than in telephony should be used if it results
in better speech quality in the send direction (see Clause 12.5.1 in ITU-T P.1110 ).
In the nominal test arrangement, the accessory must provide a constant average uplink output level to the
device. The use of an AGC targeting the specified level is recommended, but the device should preserve linear
operation for any constant speech level. The nominal level measured at the uplink output of the accessory
must be A-weighted -30 dB ±2 dB root-mean-square (RMS), expressed in units relative to full-scale (dBFS(A)).
Alternatively, the nominal level may be 13 dB ±2 dB SLR if using the ITU measurement procedure.
Signal-to-Noise Ratio
The accessory must maintain adequate signal-to-noise ratio (SNR) in its uplink output for voice communication
purposes. The absolute SNR must be over 12 dB in all typical driving conditions as specified in Annex D of ITU-T
P.1110 . Higher values are preferred and the SNR should be much higher in a stationary vehicle and at slow
driving speeds.
Round-Trip Delay
417
23. CarPlay
23.2 General Requirements
The round-trip delay must meet the same requirements as defined for Telephony (see Main Audio -
Telephony (page 415)).
The normalized send frequency response is measured from the mouth reference point (MRP) to the uplink
output of the accessory (input to the device). The normalized send frequency response must be within the
limits of the tolerance mask shown in Table 23-14 (page 418). The mask (see Figure 23-6 (page 419)) is drawn
by straight lines between the breaking points in the table on a linear (dB sensitivity) - logarithmic (frequency)
scale. Ideally, the response characteristics of the accessory should be flat in the frequency range of 100 Hz -
11 kHz. Extending the audio bandwidth to above 8 kHz is strongly recommended.
Table 23-14 Audio Tolerance Mask Limits For Send Frequency Response
100 Hz 4 dB -∞ dB -∞ dB
200 Hz 4 dB -4 dB -4 dB
1,000 Hz 4 dB -4 dB -4 dB
6,300 Hz 9 dB -4 dB -7 dB
8,000 Hz 9 dB -4 dB -∞ dB
10,000 Hz 9 dB -7 dB -∞ dB
12,000 Hz 9 dB -∞ dB -∞ dB
* Note: The limits for intermediate frequencies lie on a straight line drawn between the given values on a linear
(dB) - logarithmic (Hz) scale. See Figure 23-6 (page 419)
418
23. CarPlay
23.2 General Requirements
Figure 23-6 Audio Tolerance Mask For Send Frequency Response (Sensitivity (dB) vs. Frequency (Hz))
10
−10
Upper limit
Recommended lower limit
Required lower limit
−20
100 1000 10000
Sample Rate
Table 23-15 (page 419) details the audio stream requirements. The accessory must accept and provide the
following sample rate with equal or higher bit depth.
Audio Processing
Directional microphones and linear beamforming with microphone arrays giving improved SNR are
recommended. Linear echo cancellation for reducing unwanted audio sources (such as audio output from the
system) without having any other effect on the speech signal are also recommended. However, single channel
noise reduction methods (such as spectrum subtraction) must not be applied, as they will be detrimental to
the speech recognition accuracy. Similarly, automatic gain control, residual echo suppression and attempts to
blank out non-speech periods in the waveform must not be applied.
419
23. CarPlay
23.2 General Requirements
In the nominal test arrangement, the accessory must provide a constant uplink output level to the device. The
use of an AGC is not recommended. If the accessory adjusts signal gain, the gain must be held constant across
each spoken utterance. The nominal level measured at the uplink output of the accessory must be A-weighted
-30 dB ±2 dB root-mean-square (RMS), expressed in units relative to full-scale (dBFS(A)). Alternatively, the
nominal level may be 13 dB ±2 dB SLR if using the ITU measurement procedure.
Signal-to-Noise Ratio
The accessory must maintain adequate signal-to-noise ratio (SNR) in its uplink output for speech recognition
purposes. To maintain high speech recognition accuracy, the absolute SNR should be over 20 dB and all
reasonable efforts should be made to maintain high SNR in all typical driving conditions as specified in Annex
D of ITU-T P.1110 . Values above 20 dB are recommended, and the SNR should be at least 25 dB in a stationary
vehicle and at slow driving speeds.
Latency
Latency from the reception of sound at the accessory's microphone and the receipt by the CarPlay
Communication Plug-in of a buffer of LPCM audio representing that sound must not exceed 60 ms. Likewise,
latency from the receipt of a buffer of LPCM audio by the accessory from the CarPlay Communication Plug-in
to the time it is emitted by the accessory's speaker must not exceed 35 ms.
The normalized send frequency response for Siri must meet the same requirements as defined for FaceTime.
See Main Audio - FaceTime Audio (page 417)
Sample Rate
Table 23-16 (page 420) details the audio stream requirements. The accessory must support at least one of 44.1
kHz 16-bit or 48 kHz 16-bit audio natively, that is, a sample rate at which the accessory can perform its audio
processing without sample rate conversion. See Table 23-28 (page 435) for a list of audio configurations.
44.1 kHz 16 bit mono or stereo n/a Required (if 48 kHz 16 bit audio is
not supported)
420
23. CarPlay
23.2 General Requirements
48 kHz 16 bit mono or stereo n/a Required (if 44.1 kHz 16 bit audio
is not supported)
Latency
Latency from the receipt of a buffer of LPCM audio by the accessory from the CarPlay Communication Plug-in
to the time it is emitted by the accessory's speaker must not exceed 35 ms.
Sample Rate
Table 23-17 (page 421) details the audio stream requirements. The accessory must accept and provide the
required sample rates with equal or higher bit depth.
Audio Processing
The accessory must not perform echo cancellation or noise processing and must provide full-duplex audio.
Latency
For full duplex audio, the accessory must meet the same latency requirements as defined in Main Audio -
Telephony (page 415) and Main Audio - FaceTime Audio (page 417).
421
23. CarPlay
23.2 General Requirements
Sample Rate
Table 23-18 (page 422) details the audio stream requirements. The accessory must support at least one of 44.1
kHz 16-bit or 48 kHz 16-bit audio natively, that is, a sample rate at which the accessory can perform its audio
processing without sample rate conversion. See Table 23-28 (page 435) for a list of audio configurations.
44.1 kHz 16 bit mono or stereo n/a Required (if 48 kHz 16 bit audio is
not supported)
48 kHz 16 bit mono or stereo n/a Required (if 44.1 kHz 16 bit audio
is not supported)
Latency
Latency from the receipt of a buffer of AAC-LC audio by the accessory from the CarPlay Communication Plug-in
to the time it is emitted by the accessory's speaker must not exceed 35 ms.
Table 23-19 (page 422) details the audio stream requirements. The accessory must support at least one of 44.1
kHz 16-bit or 48 kHz 16-bit audio natively, that is, a sample rate at which the accessory can perform its audio
processing without sample rate conversion. See Table 23-28 (page 435) for a list of audio configurations.
44.1 kHz 16 bit mono or stereo n/a Required (if 48 kHz 16 bit audio is
not supported)
48 kHz 16 bit mono or stereo n/a Required (if 44.1 kHz 16 bit audio
is not supported)
422
23. CarPlay
23.2 General Requirements
Latency
Latency from the receipt of a buffer of LPCM audio by the accessory from the CarPlay Communication Plug-in
to the time it is emitted by the accessory's speaker must not exceed 35 ms.
If the accessory supports maintaining separate volumes for different types of audio, it is recommended that
it does so using the following volume categories, with corresponding mappings to main audio stream audioTypes
(see Table 23-40 (page 443)), and alternate audio:
● Entertainment - main audio "media"
● Ringtone - main audio "alert"
● Phone Calls - main audio "telephony"
● Voice Prompts and Notifications - main audio "speech recognition" and alternate audio
● Other - main audio "default"
For example, were the user to change the volume while listening to music from the device, the accessory would
remember that volume for the Entertainment volume category, and subsequently restore that volume the
next time the main audio audioType was configured for "default" or "media".
[Link].10 Ducking
The accessory must support ducking, the process of ramping the main audio volume down so the user can
more clearly hear an announcement or alert from the alternate audio channel. This ramping must be free of
any zippering or other audible artifacts. For use cases where ducking is required, the device will send a
"duckAudio" command to the accessory. For example, if the user is listening to music and they are getting
close to their destination, the music may be ducked (attenuated) so that another stream can say "Arriving at
your destination." Ducking fades the main audio volume down to a lower level so it is not an abrupt change.
When the announcement is done, the original stream is unducked by fading back to the original level.
423
23. CarPlay
23.3 CarPlay Communication Protocol
volume
level
volume
t0 t1 t2 time
The duck/unduck ramp (t1 - t0) must start within a very short time after the message has been received. Typical
and recommended times are 10-20 ms; response within 75 ms is required.
Implementation of this protocol must incorporate the reference implementation provided in the CarPlay
Communication Plug-in.
The CarPlay communication protocol is flexible in its parsing of parameter values. CarPlay message parameters
that are numbers, enum values, or booleans may be provided as strings that parse as those data types.
23.3.1 Discovery
This section contains requirements for Apple device discovery by accessories as well as accessory discovery
by Apple devices.
424
23. CarPlay
23.3 CarPlay Communication Protocol
Accessories must use this service to discover CarPlay enabled devices and to initiate the CarPlay session to a
specific device. The accessory may use the service to display a list of CarPlay enabled devices to the user.
Note: Apple devices which do not support the CarPlay Control service (iOS 8.2 or older), will initiate
the CarPlay session automatically.
The CarPlay Communication Plug-in implements the Bonjour discovery and provides a command protocol to
the accessory. See CarPlay Control (page 425).
The name of the Bonjour service is the user-visible name of the Apple device (e.g. "Tim's iPhone"). The name
may contain any Unicode character and is encoded using UTF-8. It has a maximum length of 63 bytes (which
may be fewer than 63 characters as a single Unicode character may require multiple bytes). Additional metadata
needed at discovery-time is advertised via a TXT record as defined in Table 23-20 (page 425).
Key Description
srcvers Apple CarPlay source version assigned by Apple, in the form "x.y.z".
425
23. CarPlay
23.3 CarPlay Communication Protocol
link. Prioritizing link-local IPv6 addresses over IPv4 addresses often means a faster and more reliable
connection. Link-local addresses should not be used as they will not be able to wake an Apple device that
is in a sleep state.
4. Send the command using an HTTP request.
CarPlay Control requests look like normal HTTP requests. The request line of the request uses the following
format to specify the command:
Command Description
connect Requests that the Apple device begin a CarPlay session with the accessory issuing the
request.
All command requests must include the AirPlay-Receiver-Device-ID header field. This header field
specifies the accessory that the Apple device should connect to. The value of this field is the primary MAC
address of the accessory as a 48-bit integer.
For example, if an accessory wanted a Apple device to initiate a CarPlay session to it then it would send the
following HTTP request to the Apple device:
Host: [Link].
AirPlay-Receiver-Device-ID: 18838586676582
Additional metadata needed at discovery-time is advertised via a TXT record containing fields for feature
detection, model information, versions, etc. as defined in Table 23-22 (page 427). The CarPlay Communication
Plug-in will interface to the accessory's Bonjour implementation to configure and broadcast these values.
426
23. CarPlay
23.3 CarPlay Communication Protocol
deviceid Y Globally unique ID for the accessory; e.g., the primary MAC address, such
as "00:11:22:33:44:55".
features Y Internally defined for Apple CarPlay. Value must not be modified.
model Y Model name of the accessory; must be globally unique and uniquely
identify the product. This should be the model name of the vehicle for
OEM integrations or an aftermarket unit's model name.
protovers N Protocol version string <major>.<minor> (e.g., "1.0"). Missing key defaults
to "1.0".
srcvers Y Apple CarPlay source version assigned by Apple, in the form "x.y.z".
flags Y Status of an operation. Value must not be modified. See Table 23-23 (page
427).
The accessory must enable the Bonjour DirectLink optimization. This will optimize the Bonjour discovery process
and speed up the connection establishment time over the NCM interface.
427
23. CarPlay
23.3 CarPlay Communication Protocol
● Synchronizing shared resources such as the accessory's screen and speakers, plus determining which
media source currently has audio and/or video focus on those resources.
HTTP/RTSP is used to set up, control, and monitor a CarPlay session. When an Apple device discovers a
compatible accessory that is either already known by the Apple device or is user selected, the Apple device
initiates a connection to the accessory and starts a CarPlay session. The following summarizes a typical session
lifetime:
1. The Apple device establishes a TCP control connection to the accessory.
● This connects to the TCP port advertised via Bonjour.
2. The Apple device authenticates the accessory and sets up a secure channel.
● This process requires the accessory to perform the message exchange described in MFI-SAP (page
429).
● After this step, all subsequent control requests and responses are encrypted.
3. The Apple device sends an info request to provide its info and get the accessory's info.
● The request message is a plist providing the Apple device's model, version, etc.
● The response message is a plist returning the accessory's audio formats, display info, model, current
modes, etc.
● See Info Message (page 430).
4. The Apple device sends a setup request to set up streams for control and, if needed, audio, screen, etc.
● This describes each stream to set up, including any TCP/UDP port numbers, configuration options,
etc.
● The accessory responds with details about the streams it set up, such as listening TCP/UDP port
numbers.
● For input or output TCP streams, the accessory will start listening for TCP connections.
● For input UDP streams, the Apple device will start listening for UDP packets.
● For output UDP streams, the accessory will start listening for UDP packets.
● See Setup Message (page 440).
5. The Apple device makes a TCP connection to the accessory for each TCP-based stream.
● For both input and output streams, the Apple device initiates the connection.
● For output streams, the Apple device sends data to the accessory (e.g., music to play on the accessory).
● For input streams, the accessory will send data to the Apple device (e.g., HID reports). See Table
23-40 (page 443) and Table 23-43 (page 444).
6. The Apple device sends a record request to start a session on the accessory.
428
23. CarPlay
23.3 CarPlay Communication Protocol
● The accessory performs time sync negotiation with the Apple device. See Synchronization (page 447).
● The accessory starts corresponding streams, creating threads to process audio/video data, timers, etc.
7. The Apple device sends setup requests to set up streams for audio and/or screen, and makes TCP
connections as needed.
8. The Apple device and accessory exchange data.
● The Apple device sends audio and video output data to the accessory for playback.
● The accessory sends audio input data (if any) to the Apple device for input.
9. The Apple device sends a TEARDOWN requests to end one or more streams on the accessory.
● The accessory stops processing for specified streams and releases corresponding resources.
10. The Apple device sends a TEARDOWN request to end the session on the accessory.
● The accessory stops all audio and video processing and releases all session-specific resources.
11. The Apple device closes all TCP connections to the accessory.
● This resets the Apple device back to the point before it started the session.
[Link] MFI-SAP
Authentication over the CarPlay interface requires use of the MFi Authentication Coprocessor for authenticating
an encrypted channel. The protocol uses Curve25519 Elliptic-Curve Diffie-Hellman technology for key exchange,
as described in [Link]/[Link]. It also uses RSA for signing and verifying and AES-128 in counter mode for
encryption.
Authentication starts when the Apple device generates a new, random Curve25519 key pair and sends its
Curve25519 public key X to the accessory. The accessory responds by sending its public key Y to the Apple
device, followed by its MFi Certificate and an encryption of Signature(Y,X).
Messages are exchanged using RTSP/HTTP POST requests and responses to the /auth-setup URL. The content
of the message is delivered via the body of the RTSP/HTTP message.
429
23. CarPlay
23.3 CarPlay Communication Protocol
When the Apple device receives the response, it verifies that the accessory's MFi certificate is valid, decrypts
the accessory response and verifies that the signature was signed by that certificate. If the signature verifies,
the accessory is considered authenticated. The AES key derived from the Curve25519 shared secret is then
used to encrypt all future content.
All Curve25519 keys must be generated from cryptographically strong random numbers. New Curve25519
keys must be generated for each authentication attempt; reuse of keys by the accessory is not permitted.
Each media stream must use a unique key and IV for encrypting content to avoid reusing the same key/IV for
different pieces of data. The following are used to derive stream keys and IVs:
● ekey = Bytes 0-15 of SHA-512("AirPlayStreamKey" + streamConnectionID + session key (master))
● eiv = Bytes 0-15 of SHA-512("AirPlayStreamIV" + streamConnectionID + session key (master))
The steam connection ID is contained in Table 23-43 (page 444), and the ekey, eiv, and encryption type are
contained in Table 23-36 (page 441). Table 23-24 (page 430) details the values used to specify the encryption
type.
Value Description
0x00 Invalid.
0x01 Unencrypted.
430
23. CarPlay
23.3 CarPlay Communication Protocol
qualifier array N Array of property strings from Table 23-26 (page 431) to request
from the accessory. If this key is missing, the accessory must
return all of its properties. If this key is empty, the accessory must
not return any properties.
431
23. CarPlay
23.3 CarPlay Communication Protocol
432
23. CarPlay
23.3 CarPlay Communication Protocol
433
23. CarPlay
23.3 CarPlay Communication Protocol
434
23. CarPlay
23.3 CarPlay Communication Protocol
type enum Y The stream type to which the input and/or output
formats apply. One of Table 23-45 (page 444).
audioInputFormats bitfield Y (*) The audio input formats supported by the given
type. See Audio (page 413) for requirements.
(*) Not required if the stream type does not
support input. Combination of Table 23-28 (page
435).
audioType string N The audio type to which the format(s) apply. See
Table 23-46 (page 445).
The audio formats for wired and wireless transports must be combined in a single entry. PCM formats must
be used for wired and compressed formats must be used for wireless. Multiple compression type (e.g. AAC-ELD
and OPUS) must not be offered simultaneously.
The audio input formats supported by the accessory must be a subset of the audio output formats supported.
When using full-duplex audio, the Apple device will use the same format for both directions and will choose
from the supported input formats.
435
23. CarPlay
23.3 CarPlay Communication Protocol
0x00001000 12 Reserved
0x00002000 13 Reserved
0x00010000 16 Reserved
0x00020000 17 Reserved
0x00040000 18 Reserved
0x00080000 19 Reserved
0x00100000 20 Reserved
0x00200000 21 Reserved
0x80000000 31 Reserved
436
23. CarPlay
23.3 CarPlay Communication Protocol
The PCM formats must be only used for CarPlay over USB. For CarPlay over wireless, the AAC-LC compression
must only be used for the high latency "main high audio - entertainment" stream, whereas AAC-ELD or OPUS
compression must be used for the low latency "main audio" streams (except for "entertainment" audio) and
alternate audio. See Audio (page 413).
437
23. CarPlay
23.3 CarPlay Communication Protocol
The display features value is a bitmask, so combinations are possible. It is required to set the appropriate bit
for all input devices supported by the accessory.
To claim support for high-fidelity touch, the time between a user touch input to the time a frame updates on
the display must be less than 140 ms.
Value Description
Note that the choice of the primary input device, along with the display features supported by the accessory,
will directly impact the look and feel of the user interface presented by the Apple device on the accessory's
display:
● An accessory that reports supporting low-fidelity touch (display feature bit 2) with touchscreen as the
primary input device (value 0x01) will be presented with a limited touch interface with other input methods
as secondary inputs. For instance, the user interface for a map will be augmented with soft arrow-keys as
overlays to enable panning.
438
23. CarPlay
23.3 CarPlay Communication Protocol
● An accessory that reports supporting high-fidelity touch (display feature bit 3) with touch as the primary
input device (value 0x01) will be presented with a touch interface that allows for scrolling and panning
gestures with other input methods as secondary inputs.
● An accessory that reports touchpad (display feature bit 4) as primary input device (value 0x02) will be
presented with a user interface that may be interacted with primarily via the use of touchpad, select, and
back buttons with other input methods as secondary inputs.
● An accessory that reports knob (display feature bit 1) as primary input device (value 0x03) will be presented
with a user interface that may be interacted with primarily via the use of knob, select, and back buttons
with other input methods as secondary inputs.
Value Description
"enhancedRequestCarUI" Indicates accessory support for the "url" request key of the requestUI
command. See requestUI (page 483).
"vocoderInfo" Provides the native sample rate of the telephony output stream. As an
optimization, the Apple device may prefer to encode the stream at a
sample rate other than that used by the cellular network. The accessory
may use this parameter to optimize telephony audio playback to the
appropriate sample rate. Required when accessory supports CarPlay over
wireless.
Value Description
439
23. CarPlay
23.3 CarPlay Communication Protocol
imageData data Y PNG data for an icon. Icon can be either a mask or a
full-bleed image. Mask icons should be solid white with
a transparent, alpha channel background. Full-bleed icons
should be 8 bits per channel and must not include
an alpha channel. Avoid including icon outlines, shine,
or other effects. The Apple device will clip the icon to the
appropriate shape and provide any additional styling
required to match the design principles of the current
version of iOS. The icon should follow the design
principles of the current version of iOS. For example, see
the Mail envelope icon.
prerendered boolean Y Indicates if the icon is full-bleed. False if the icon is a mask
icon.
The /info URL may also be used via an HTTP GET to read accessory information. The URL may contain a query
string to limit the properties being requested (for example, GET /info?deviceID&model to get the accessory's
device ID and model properties).
The initial setup message after the device connects to the accessory contains information to set up the control
stream. If needed, it may also setup the audio and screen streams.
Table 23-36 (page 441) lists the specifics of the initial setup request keys sent by the Apple device to the
accessory.
440
23. CarPlay
23.3 CarPlay Communication Protocol
ekey data Y AIS Encryption Key for the accessory. Encrypted with
master key from encryption setup. See MFI-SAP (page
429)
macAddress string Y MAC address of the iOS network interface used for the
connection.
sourceVersion string Y Apple device side CarPlay source version string (e.g.
"101.7").
streams array Y (*) Array of stream descriptions. See Table 23-40 (page
443) and Table 23-43 (page 444).
(*) The initial setup message may not include "streams"
if it only sets up the control stream.
timingPort number Y Port the Apple device is listening on for time sync
requests.
Table 23-37 (page 441) lists the specifics of the initial setup response keys sent by the accessory to the Apple
device.
keepAlivePort number Y UDP port number for session idle UDP keepalive.
441
23. CarPlay
23.3 CarPlay Communication Protocol
streams array Y (*) Array of stream descriptions. See Table 23-40 (page 443)
and Table 23-43 (page 444).
(*) The initial setup message may not include "streams"
if it only sets up the control stream.
timingPort number Y Port the Apple device is listening on for time sync
requests.
Once a session is established, the setup message is sent to set up and configure the audio and screen streams,
as they are required by the device.
Table 23-38 (page 442) lists the specifics of the setup request keys sent by the Apple device to the accessory
after a session has been started.
streams array Y Array of stream descriptions. See Table 23-40 (page 443) and Table
23-43 (page 444).
Table 23-39 (page 442) lists the specifics of the setup response keys sent by the accessory to the Apple device
after a session has been started.
streams array Y Array of stream descriptions. See Table 23-40 (page 443) and Table
23-43 (page 444).
[Link].1 Streams
Each stream is set up using a stream descriptor with a type, parameters, and behaviors associated with it, as
listed in Table 23-40 (page 443) for main/alternate audio stream and Table 23-43 (page 444) for screen stream.
The timestamp and sampleTime response parameters are used for media clock synchronization of the main
and alternate audio streams as described in Synchronization (page 447).
442
23. CarPlay
23.3 CarPlay Communication Protocol
audioFormat bitfield Y Format of the audio data (e.g. 44100 Hz, Stereo PCM).
For main audio applies to both input and output.
Combination of Table 23-28 (page 435).
audioLoopback boolean N True if audio output must be looped back and sent
as audio input. Debug use only.
audioType string Y (*) Type of audio content (e.g. telephony, media, etc.).
See Table 23-46 (page 445).
(*) Main audio only.
dataPort number Y (*) UDP port the Apple device is listening on for data.
(*) Only required when audio input is enabled (main
audio only).
input boolean N True if input must be enabled for the stream (main
audio only).
sampleRate number Y The native sample rate of the telephony output stream.
443
23. CarPlay
23.3 CarPlay Communication Protocol
dataPort number Y TCP or UDP port the accessory is listening on for data.
Main Audio 100 UDP Low-latency audio input/output. Value is also the RTP
payload type.
Alt Audio 101 UDP Low-latency UI sounds, alerts, etc., output. Value is also
the RTP payload type.
Main High Audio 102 UDP High-latency audio output. Value is also the RTP payload
type.
Screen 110 TCP/UDP H.264 screen output. Value is also the RTP payload type.
444
23. CarPlay
23.3 CarPlay Communication Protocol
"compatibility" Main Audio, Alt Audio Special value used only in the Info Message
response for specifying audio formats
compatible with older versions of iOS. Not a
valid audio type for stream descriptors.
Time Sync Client UDP dynamic CTL accessory to Audio time sync
device requests
Time Sync Server UDP dynamic CTL device to Audio time sync
accessory responses
445
23. CarPlay
23.3 CarPlay Communication Protocol
This message is used for media clock synchronization of the main and alternate audio streams as described in
Synchronization (page 447).
[Link] URLs
Table 23-50 (page 446) lists the URLs used with CarPlay. All URLs are accessed via HTTP/RTSP.
n/a OPTIONS Standard HTTP options message to return the supported methods,
etc.
446
23. CarPlay
23.3 CarPlay Communication Protocol
/auth-setup POST Performs MFi-SAP authentication; see MFI-SAP (page 429). Request
and response are opaque security data.
/command POST For performing command requests and their responses; see
Commands (page 477). Requests and responses are binary plists.
/info GET Exchanges information with the accessory; see Info Message (page
430). Requests and responses are binary plists.
/perf POST Performs network performance tests. Requests and responses are
binary plists.
[Link] Synchronization
The clocks between the Apple device and the accessory must be synchronized to present media data at the
correct time. The synchronization process is managed by the Communication Plug-in in the CarPlay Client and
includes:
● Synchronizing wall clocks so both entities have an accurate notion of absolute presentation times (for
example, when the user should hear an audio sample). Note that the synchronized clocks are maintained
internally and do not affect the system time of either the Apple device or the accessory.
● Mapping media clocks to wall clocks so that a media timestamp from one device can be mapped to a
media timestamp on another device. This allows the media production or consumption rate of one device's
media to be clocked off the other device.
The accessory must drive all audio streams, regardless of type (input or output) from the same media clock
that is used for synchronization with the Apple device.
447
23. CarPlay
23.3 CarPlay Communication Protocol
jitter). The interval is capped to allow it to adapt to real changes in the reference clock rate (for example, from
temperature changes affecting the rate). Offset synchronization tracks the absolute difference from the reference
clock. This is measured with each packet exchange and smoothed to minimize measurement noise.
The parameters exchanged in the Feedback message are calculated by the Communication Plug-in on behalf
of the accessory. To do so, the accessory must provide local and media clocks using a high resolution tick
counter to measure time intervals (such as a processor cycle counter). These counters must be stable (less than
50 PPM of variance) and precise (10 MHz or higher) with minimal and consistent overhead (less than 1
microsecond to sample each clock).
[Link] Keepalive
CarPlay uses a combination of methods to monitor the session status. When either screen stream or audio
stream is active, the controller uses feedback messages sent over the control channel as "keepalive" messages.
When the screen stream is active, the controller also sends screen-specific keepalive messages via the screen
data connection. If the accessory supports low power keepalive mode (as indicated by "keepAliveLowPower"
feature flag), the controller switches to UDP-only keepalive messages when there are no active media streams
to save power.
[Link] Resources
In its typical embodiment in an automobile, the CarPlay architecture includes three resources that must be
managed:
● Screen: The automotive head unit screen.
● Main Audio: The full-duplex (input and output) audio stream. There can be only one source (either accessory
or Apple device) for main audio. Voice control, Siri, telephony, and media are examples of audio that uses
this stream.
448
23. CarPlay
23.3 CarPlay Communication Protocol
● Alternate Audio: An output-only audio stream. There can be multiple sources of alternate audio, which
must be mixed together (possibly with Ducking (page 423)). UI sounds, alerts, and navigation prompts are
examples of audio that uses this stream.
Screen and main audio are managed as a shared resource and both the accessory and the device must request
an ownership (see Resource Ownership (page 450)), where as the alternate audio stream must be available to
the device at all times.
Both accessory and Apple device must distinguish between main and alternate audio, and route audio
accordingly. Figure 23-8 (page 449) illustrates conceptually the various audio sources and shows how they must
be mixed.
449
23. CarPlay
23.3 CarPlay Communication Protocol
● Turn-by-turn Navigation: An entity is performing turn-by-turn navigation. Only a single entity must be
in this state at a time.
Note that additional app states may be added in future versions of CarPlay. Also note that the values of the
app state properties are purely informative, to allow both the accessory and Apple device to make policy
decisions that improve the user experience. For example:
● While one entity is performing speech recognition, all audio from the accessory must be silenced to avoid
interfering with the speech recognition algorithms.
● While one entity is speaking to the user, other speech must be suppressed or conveyed as tones rather
than speech; multiple, simultaneous speakers can be confusing to the user.
● While one entity is engaged in a phone call, the other entity cannot initiate a phone call (first caller wins).
● If one entity starts performing turn-by-turn navigation, the other entity must stop doing its turn-by-turn
navigation, if applicable (last system wins).
The accessory must respect the current values of the app state properties. These properties must not be ignored
unless it is essential to give critical safety or emergency information to the user.
The accessory must set the borrow constraint to Anytime except for UI that requires direct user interaction or
is safety related.
450
23. CarPlay
23.3 CarPlay Communication Protocol
Take: Ownership of the resource is permanently transferred to the other entity. If the user switches from the
accessory's FM radio to the Apple device's Music app, for example, the Apple device would take the main audio
channel from the accessory.
Borrow: Ownership is temporarily transferred. When ownership is returned, the owner should resume whatever
it was doing with the resource. If the user is listening to the accessory's FM radio and starts a Siri session, for
example, the Apple device would borrow the main audio channel. When the Siri session ends, ownership
returns to the accessory and the FM radio must continue.
When a resource is borrowed, the other entity still retains ownership and must maintain its state. Maintaining
the original ownership state (with take constraints) is important to support the following three possible ways
for a borrow state to end:
● The entity borrowing the resource has finished using it and returns it to the owner. This is the typical case.
For example, when a phone call ends the main audio channel may return to the accessory, which continues
playing FM radio.
● The owner requires the resource and prematurely ends the borrowing state, using the take constraint of
the borrow state. For example, the Apple device may borrow the main audio channel to start a Siri session,
but the accessory prematurely ends the session because the main audio channel is needed for an incoming
call from a phone in the vehicle that does not support CarPlay.
● The entity borrowing the resource wishes to convert from borrowing to ownership, using the original
owner's take constraints. For example, the user may ask Siri to switch from FM radio to the Apple device's
music player. The Siri session initially borrows the main audio channel, but when the music player starts
it will want to own it.
Taking a resource with a constraint of Never is not recommended. Instead, the accessory should borrow the
resource with an unborrow constraint of Never and then unborrow the resource when finished with it.
23.3.4 Modes
Modes provide a mechanism to manage shared resources (e.g. the main screen), and state (e.g. on a phone
call) during a CarPlay session. They are represented by the values in the following tables:
451
23. CarPlay
23.3 CarPlay Communication Protocol
None 0 Only used for appStates to indicate that no entity is in one of the App States.
May not be used to describe ownership for a given resource (Main Screen or
Main Audio).
Controller 1 The Apple device owns the given resource (Main Screen or Main Audio) or is
in the given app state.
Accessory 2 The accessory owns the given resource (Main Screen or Main Audio) or is in
the given app state.
Main Audio 2 The main audio stream used for input, output, or full-duplex audio, used
by telephony and media. This mode requires exclusive access; either the
Apple device or the accessory may use it but not both at once.
Take 1 Acquire ownership of a resource permanently. For example, if the user switches
from the accessory's FM radio to the Apple device's music app, the Apple
device would "take" main audio.
452
23. CarPlay
23.3 CarPlay Communication Protocol
Borrow 3 Transfer ownership temporarily. For example, if the user is listening to the
accessory's FM radio and then starts a Siri session, the Apple device would
"borrow" main audio. When the Siri session ends, the Apple device would
"unborrow" main audio.
Nice to Have 100 Transfer succeeds only if constraint is Anytime. Must only be used with a
constraint of Anytime.
User Initiated 500 Transfer succeeds only if constraint is User Initiated or Anytime.
Speech 1 An entity is performing a speech operation. All audio output must be disabled
while speech is being recorded to prevent interference with recognition
algorithms. When an entity is speaking to the user, other entities must avoid
playing speech. During this time, navigation prompts, etc. can be replaced
with tones or other indicators.
PhoneCall 2 An entity is engaged in a phone call. Only a single entity must be in this
state at a time.
Recognizing Speech 2 An entity is recording audio to recognize speech from the user.
453
23. CarPlay
23.3 CarPlay Communication Protocol
An accessory must not take audio with a constraint of Never and should not take the screen with a constraint
of Never.
Synchronization of the Initial Mode may be required beyond just the start of a CarPlay session: the accessory
must be ready to respond to an Info message requesting an update of its current mode at any time.
The accessory must honor any updates to the current mode within 100 ms of receiving them from the Apple
device. For example, it must relinquish control of the screen within 100 ms if screen ownership is transferred
to the Apple device.
Main Screen:
● Transfer Type: Take, Untake, Borrow, or Unborrow
● Priority: Nice to Have or User Initiated
● Constraints: (1 or 2 constraints, depending on the Transfer Type)
● For Transfer Type Take, Apple device may Take back Main Screen: Anytime or User Initiated or Never
● For Transfer Type Take, Apple device may Borrow back Main Screen: Anytime or User Initiated or Never
● For Transfer Type Borrow, Apple device may Unborrow Main Screen: Anytime or User Initiated or Never
454
23. CarPlay
23.3 CarPlay Communication Protocol
Main Audio:
● Transfer Type: Take, Untake, Borrow, or Unborrow
● Priority: Nice to Have or User Initiated
● Constraints: (1 or 2 constraints, depending on the Transfer Type)
● For Transfer Type Take, Apple device may Take back Main Audio: Anytime or User Initiated or Never
● For Transfer Type Take, Apple device may Borrow back Main Audio: Anytime or User Initiated or Never
● For Transfer Type Borrow, Apple device may Unborrow Main Audio: Anytime or User Initiated or Never
App States:
● Speech: Speaking, Speech Recognizing, or Neither
● Phone Call: True or False
● Turn-by-turn navigation: True or False
A change request must include at least one of the foregoing properties. If an action requires changes to multiple
properties of a mode, they should be sent in a single transaction.
Not all mode change requests will require changes to all properties, in which case unchanged properties can
be left out.
It is important that the accessory always update the Apple device with its current state, regardless of the current
mode. For example, if the user switches from FM radio to the CD player, ownership of the main audio will not
change. But the accessory should still send a mode change request indicating that it wants to take ownership
of main audio.
The accessory must specify whether it wishes to own or borrow a resource, as described in the Resource
Ownership (page 450). When the accessory has finished borrowing a resource, it must send a mode change
request to release it. Each successful borrow must have a matching unborrow, for example, if an accessory
borrows main audio 3 times, it must unborrow 3 times to release it to the previous owner. The release transfer
type indicates to the Apple device that the accessory no longer needs the resource, and the resource constraints
will be reset to "Other may take anytime". A successful taking or borrowing of a resource currently borrowed
by the other entity will terminate the borrow, as described in Resource Ownership (page 450).
The accessory can use a priority value to indicate to the Apple device how badly it wants a resource. A priority
of "nice to have" will succeed if the take/borrow constraint is "anytime." A priority of "user-initiated" will succeed
if the take/borrow constraint is "user-initiated" or "anytime."
455
23. CarPlay
23.3 CarPlay Communication Protocol
In the case of a non-routine safety or emergency situation (for example, a flat tire), the accessory should still
send a changeModes request, but it does not have to wait for a modesChanged notification before taking over
video or audio. In all other routine cases, the accessory must wait for the notification.
The accessory must be ready to handle setup or record events from the Apple device within 200 ms of the
time that the accessory issues the changeModes command (see changeModes (page 479)) or receives a
modesChanged command (see modesChanged (page 480)).
Note that if ownership of a resource is returned to the accessory when the accessory didn't explicitly ask for
it, the accessory should resume whatever it was last doing with that resource, if possible.
Each HID device dictionary contains a HID descriptor (see USB HID specification), device UUID, and a display
UUID directing the HID events to a specific display. Table 23-58 (page 456) lists the possible HID device description
keys stored in an HID device dictionary.
456
23. CarPlay
23.3 CarPlay Communication Protocol
[Link].1 Touchscreen
A touchscreen is a digitizer with an integrated display that allows the use of a finger for direct interaction with
a presented interface.
The touch surface must be sampled at the same rate as the refresh rate of the video stream on the integrated
display. A sampling and refresh rate of 60 Hz is recommended. See High Resolution Display (page 383) and
User Interface (UI) Stream (page 411).
[Link].2 Touchpad
A touchpad is a digitizer without an integrated display that allows the use of a finger for indirect interaction
with a presented interface.
457
23. CarPlay
23.3 CarPlay Communication Protocol
Figure Touchpad
23-10
Generally, reports originating from this class of device would entailed relative movements synonymous with
a mouse. These devices must only convey absolute transducer movement.
Accessories using a touchpad as the primary user interface must support the following:
● Single Touch as a touchpad, see Single Touch (page 459)
● Button 1 (Primary Button) to convey selection
● AC Back button
If the accessory supports character recognition, it must provide character input gesture support (see Character
Input Gesture Support (page 461)) using hidSetInputMode (see hidSetInputMode (page 482)).
The accessory must use touchpad as a primary input device only with supported iOS versions.
See hidSetInputMode (page 482) to configure the input mode of a HID device and hidSendReport (page 481)
for delivering HID reports.
458
23. CarPlay
23.3 CarPlay Communication Protocol
When the Apple device does not own the screen, the accessory must not send these HID usages.
In order to ensure proper detection, an accessory must declare an application collection using either one of
the following usages:
● Touch Screen
● Touch Pad
The accessory must declare a logical collection using the following usage:
● Finger
459
23. CarPlay
23.3 CarPlay Communication Protocol
The following is an example report descriptor and format for a single-touch screen:
460
23. CarPlay
23.3 CarPlay Communication Protocol
We are proposing the addition of support for the transmitting of character strings with alternate encodings
such as UTF8, UTF16 and UTF32.
461
23. CarPlay
23.3 CarPlay Communication Protocol
When the Apple device does not own the screen, the accessory must not send these HID usages.
In order for the Apple device to properly detect support for these gestures, the accessory must declare a logical
collection with the following usages:
● Character Gesture
● Character Gesture Data Length
● Character Gesture Data
Additionally, the accessory must also include string encoding information. If more than one encoding type is
supported, they must be placed in a selector array. Otherwise, the accessory may declare individual encoding
support via a static item. Use the following usages:
● Character Gesture Encoding
● UTF8 Character Gesture Encoding
● UTF16 Little Endian Character Gesture Encoding
● UTF16 Big Endian Character Gesture Encoding
● UTF32 Little Endian Character Gesture Encoding
● UTF32 Big Endian Character Gesture Encoding
462
23. CarPlay
23.3 CarPlay Communication Protocol
The Apple device will notify the accessory of the input mode using the hidSetInputMode as described in
hidSetInputMode (page 482).
The following is an example report descriptor and format for a single-touch touchpad with basic character
gesture recognition:
463
23. CarPlay
23.3 CarPlay Communication Protocol
Figure Example Input Report Layout for Single-Touch Touchpad with Basic Character Gesture Recognition
23-12
464
23. CarPlay
23.3 CarPlay Communication Protocol
When reporting character data, care must taken to ensure proper processing of repeated characters. This must
be accomplished by issuing a subsequent report that clears gesture data and data length for a given character
collection. Using the report format from the example above, the following sequence illustrates how this is
accomplished ignoring current finger touch and location states:
First HID report dispatched containing gesture event for the character 'A':
XX XX XX XX XX 41 00 00 00 01 65
XX XX XX XX XX 00 00 00 00 00 65
Each gesture item follows the requirements detailed in Basic Character Gesture Recognition, but must also
include a declaration for Character Gesture Quality in each logical collection. This will give the Apple device
additional qualitative information so that it can select the appropriate interpretation.
In addition, if no alternative interpretations are available, the recognition system must inform the Apple device
by ensuring that only the first character is populated and all subsequent characters are cleared.
The following is an example report descriptor and format for a single-touch touchpad with character gesture
recognition with alternate interpretations:
465
23. CarPlay
23.3 CarPlay Communication Protocol
466
23. CarPlay
23.3 CarPlay Communication Protocol
467
23. CarPlay
23.3 CarPlay Communication Protocol
Figure Example Input Report Layout for Single-Touch Touchpad with Character Gesture Recognition with Alternate
23-13 Interpretations
A multi-axis controller is similar to a joystick but minimally consists of three variable axes (X, Y and Z).
Additionally, rotational axes for X, Y, and Z may also be included.
468
23. CarPlay
23.3 CarPlay Communication Protocol
When the Apple device does not own the screen, the accessory must not send these HID usages.
The preferred state of the axes should signify that the knob rests at the center when not in use.
469
23. CarPlay
23.3 CarPlay Communication Protocol
The accessory must support either one of the following to convey selection:
● Z
● Button 1 (Primary Button)
When implementing the Z axis, the Apple device only requires movement in the +Z (down) direction and will
translated it to a primary button.
The accessory must support either one of the following to allow scrolling:
● Rz
● Dial
● Wheel
The following is an example report descriptor and format for a multi-axis controller:
470
23. CarPlay
23.3 CarPlay Communication Protocol
[Link] Buttons
The CarPlay feature supports various buttons commonly found within the center console or steering wheel of
a vehicle.
Page ID Page Name Usage ID Usage Name Usage Type Apple Function
471
23. CarPlay
23.3 CarPlay Communication Protocol
Page ID Page Name Usage ID Usage Name Usage Type Apple Function
0x0C Consumer 0xB5 Scan Next Track One Shot Scan Next Track
Control
472
23. CarPlay
23.3 CarPlay Communication Protocol
Page ID Page Name Usage ID Usage Name Usage Type Apple Function
0x0B Telephony 0xBA Phone Key Star Selector Phone Key Star
The following is an example report descriptor and format for a simple media buttons accessory:
473
23. CarPlay
23.3 CarPlay Communication Protocol
The following is an example report descriptor and format for a simple telephone buttons accessory with flash
and numeric keys:
474
23. CarPlay
23.3 CarPlay Communication Protocol
Prewarm 1 Indicate that the Apple device should begin preparing Siri. At this point,
no audio or video resources will be taken.
ButtonDown 2 Indicate to the Apple device that the Siri button has been depressed.
ButtonUp 3 Indicate to the Apple device that the Siri button has been released.
475
23. CarPlay
23.3 CarPlay Communication Protocol
Accessories may wish to overload their existing "speech recognition" button, where a short press activates the
accessory's native speech recognition system, while a longer press activates Siri. The recommended value for
the longer press timeout is 600 ms, but it must not be greater than 1000 ms. It is important that the accessory
prewarm Siri as early as possible (for example, when the physical button is pressed) to ensure the best possible
response time from Siri in the event that it is activated. After the inital Siri start up sequence, the accessory
must forward all physical button presses to the device without any additional delays. Once the Siri session is
finished, the accessory must return to the button's default behavior.
| |
+--------+------------------------------------------------------> time
For short presses, where the physical button is released before the accessory-determined timeout interval,
only the Prewarm action is sent to the Apple device, and the accessory's native speech recognition system is
activated.
| | |
+----------------+------------------------+------------------------> time
| | |
For long presses, where the physical button is held down past the accessory-determined timeout interval, the
Prewarm and ButtonUp actions are sent to the Apple device, just like in the previous scenario, but when the
timeout interval is reached, the accessory sends an additional ButtonDown action when the timeout interval
has elapsed.
476
23. CarPlay
23.3 CarPlay Communication Protocol
For accessories that have a dedicated Siri button, sending a Prewarm action is unnecessary and ButtonDown
/ ButtonUp actions are sent when the button is physically depressed and released.
23.3.7 Commands
Commands are messages exchanged between the Apple device and the accessory to perform an action. They
are sent as HTTP requests using the /command URL on the control stream. The Apple device sends its commands
over the Controller control channel while the accessory sends its commands over the Accessory control channel.
Each command receives an HTTP response. The request and response payloads are binary plists. Each request
contains a key, type, to indicate the command to perform. Additional keys may be included for command-specific
parameters.
For example, an hidSendReport command would look like this (in XML for readability, the actual request is a
binary plist):
"[Link]
<plist version="1.0">
<dict>
<key>hidReport</key>
<data>
ABEiM0Q=
</data>
<key>type</key>
<string>hidSendReport</string>
<key>uuid</key>
<string>cbb63f31-c020-4db9-ac16-2283dda2a079</string>
</dict>
</plist>
[Link] duckAudio
Sender: Apple device
477
23. CarPlay
23.3 CarPlay Communication Protocol
Description: Ramps volume down (for example, to fade down music to play a voice prompt). See Ducking (page
423). Table 23-64 (page 478) lists the specifics of duckAudio request keys.
[Link] unduckAudio
Sender: Apple device
Description: Ramps volume back to the pre-duck level. See Ducking (page 423). Table 23-65 (page 478) lists the
specifics of unduckAudio request keys.
[Link] disableBluetooth
Sender: Apple device
Description: Disable Bluetooth connectivity to specified device (i.e. the Apple device). If the accessory supports
Bluetooth, it must provide its bluetoothIDs (see Info Message (page 430)) in order to receive a disableBluetooth
command from the device. At a minimum, on receipt of this command, the accessory must immediately disable
any existing connections with the specified Apple device for the following Bluetooth profiles:
● Hands-Free Profile
● Advanced Audio Distribution Profile
● A/V Remote Control Profile
In addition, the accessory must not attempt to connect any of the above-listed Bluetooth profiles with the
same Apple device while the two are already connected over CarPlay (that is, a session is already in progress).
Table 23-66 (page 479) lists the specifics of disableBluetooth request keys.
478
23. CarPlay
23.3 CarPlay Communication Protocol
[Link] changeModes
Sender: Accessory
Description: Change resource states and/or app states. See Modes (page 451). Table 23-67 (page 479) lists the
specifics of changeModes request keys and Table 23-70 (page 480) lists the specifics of changeModes response
keys.
reasonStr string N A textual description of the reason for the mode change.
479
23. CarPlay
23.3 CarPlay Communication Protocol
params group N Updated modes if the mode change was successful, otherwise
absent. The modes dictionary uses the same keys as the
"changeModes" command.
status number Y Result of performing the mode change. If the value is nonzero,
the change failed.
[Link] modesChanged
Sender: Apple device
Description: Updates the accessory's current mode after a mode change by the Apple device. Table 23-71 (page
480) lists the specifics of modesChanged request keys.
480
23. CarPlay
23.3 CarPlay Communication Protocol
entity enum Y Value must not be 'None'. One of Table 23-51 (page 452).
[Link] forceKeyFrame
Sender: Accessory
Description: The accessory may force a key frame to be sent for the screen stream. This should only be used
to recover from a decoder problem and must not be sent periodically during normal operation.
[Link] hidSendReport
Sender: Accessory
Description: When an HID event occurs on the accessory, such as the user turning a knob, it sends it to the
Apple device over the control stream by sending a command with a type of hidSendReport to the /command
URL. The command contains the USB HID report and UUID of the HID device. Table 23-74 (page 481) lists the
HID event keys.
481
23. CarPlay
23.3 CarPlay Communication Protocol
[Link] hidSetInputMode
Sender: Apple device
Default 0 Default mode for non-character input (e.g. panning). See Single
Touch (page 459).
Character 1 Optimize for entering characters. See Single Touch (page 459)
and Character Input Gesture Support (page 461).
[Link] requestSiri
Sender: Accessory
The requestSiri command must only be sent as a result of direct user action on a physical or virtual control
surface. The behavior should match that of hidSendReport (page 481), see HID Requirements (page 580).
482
23. CarPlay
23.3 CarPlay Communication Protocol
[Link] requestUI
Sender: Either Apple device or accessory
Description: For the Apple device to ask for the accessory UI to be shown, or for the accessory to ask for the
CarPlay UI to be shown. The accessory must not send requestUI upon connection; the Apple device will send
requestUI, if appropriate.
The requestUI command must only be sent as a result of direct user action on a physical or virtual control
surface. The accessory must not send requestUI upon connection; the Apple device will request resources
based on the modes provided in the Info message. See HID Requirements (page 580).
Where the sender is the accessory, a URL request key (see Table 23-78 (page 483)) is available to specify the
desired CarPlay compatible app to be shown.
Note: Only URLs that do not require user interaction on the Apple device are allowed.
Where the sender is the Apple device, a URL request key (see Table 23-79 (page 484)) is available to specify the
desired accessory UI to be shown. This is only sent when the accessory supports the enhancedRequestCarUI
extendedFeatures. See Table 23-33 (page 439).
483
23. CarPlay
23.3 CarPlay Communication Protocol
[Link] setNightMode
Sender: Accessory
[Link] setLimitedUI
Sender: Accessory
Description: The accessory may indicate whether or not to limit certain UI elements. See Table 23-34 (page
439).
[Link] iAPSendMessage
Sender: Either Apple device or accessory
Description: Sends an iAP protocol message. This command must only be used for CarPlay over wireless
sessions.
484
23. CarPlay
23.3 CarPlay Communication Protocol
The accessory maker is not required to implement their own TCP and UDP channels for either setup and control
or audio and UI transfer. Instead, these are automatically created by the Communication Plug-in which also
manages authentication and encryption-decryption of all CarPlay channels.
For simplicity, the core info, setup and feedback messages are abstracted into a platform API, as they are any
commands and user event. Figure 23-18 (page 486) shows an architectural overview of the CarPlay
Communication Plug-in. To integrate the plug-in on a specific platform, a set of utility functions has been
provided:
● MFiServer provides integration with platform specific installation of an MFi authentication chip, e.g. over
I2C bus. The plug-in will automatically read out authentication data for encrypting the audio and video
streams.
● ScreenUtils provides integration with the platform specific video decoding interfaces. During setup, a
CarPlay client application can configure the specific screen properties. The plug-in will then directly send
video frames through the provided custom APIs.
● AudioUtils provides integration with the platform specific audio interfaces. On each audio stream setup
the plug-in will provide information about the audio formats and data, as well as forward requests to duck
the current audio playback.
● HIDUtils provides integration with the platform specific HID devices (touchscreens, knob-based controls,
etc.). A CarPlay client application can first register the available HID devices and then post HID reports to
the plug-in.
● AirPlayReceiverServer / AirPlayReceiverServerDelegate - A CarPlay client application can use the delegate
to send and receive server-level commands to the device, as well as obtain a reference to an active
AirPlayReceiverServerSession.
● AirPlayReceiverServerSession / AirPlayReceiverServerSessionDelegate - A CarPlay client application
can use the delegate to send and receive session-level commands to the device. Typical examples will be
notifications for modeChanged, or commands as requestUI.
485
23. CarPlay
23.4 Test Procedures
See the technical notes provided with the CarPlay Communication Plug-in for more details on this platform
abstraction and use cases.
486
24. Cases
Accessories that substantially enclose Apple devices must comply with the requirements stated in this chapter
unless the accessory supports other features in this specification whose requirements conflict with the
requirements in this chapter. For example, the requirements listed in Apple Lightning Connector (page 128)
may override some requirements listed in this chapter.
If the accessory has multiple user-detachable components that substantially enclose the Apple device, the
requirements and/or overrides must be applied to each component separately.
487
24. Cases
24.1 Product Design
The case must also provide unobstructed access to either the 30-pin connector or the Lightning connector.
If the case is for an Apple device with the Lightning connector, the opening must be at least 12.05 mm by 6.30
mm with full radii rounded edges. 13.65 mm by 6.85 mm is recommended for best compatibility with a range
of cables and docks.
In addition, the headset jack and 30-pin or Lightning connector openings must be designed with enough
margin to compensate for shifting or dimensional changes of the case material.
Specifically, exposed glass on the Apple device must not come within 1 mm of a flat surface, such as a table
or floor, in any orientation when the case is attached. This may be achieved by either covering the exposed
glass or creating features around it that will space the exposed glass at least 1 mm away from the flat surface.
488
24. Cases
24.2 Acoustics
24.1.8 Touchscreen
The case should permit water droplets to freely roll off the screen when the Apple device is held at a 30 degree
angle relative to the horizon.
Cases must allow a 120° opening along the edges of the active area of the touchscreen to ensure compatibility
with the Apple device touchscreen features. See Figure 24-1 (page 489) for more information on the keep-out
and Device Dimensional Drawings (page 880) device specific active display areas.
24.2 Acoustics
The case must not impair or degrade the acoustical performance of an Apple device.
489
24. Cases
24.3 Sensors
24.3 Sensors
Cases must be designed so they do not interfere with the operation of the sensors on an Apple device, such
as:
● ambient light sensor
● magnetic compass
● proximity sensor
● accelerometer
● three-axis gyroscope
Cases for Apple devices must not affect the device's built-in magnetic compass (if present).
490
24. Cases
24.4 Camera
Additionally, iPhone 6s Plus and iPhone 6 Plus have an autofocus rear camera equipped with optical image
stabilization that may be affected by magnets and metal components in cases and rear camera accessories.
Cases and rear camera accessories that claim compatibility with iPhone 6s Plus and iPhone 6 Plus must not
affect operation of the autofocus rear camera.
24.4 Camera
The field of view (FOV) of the camera and the illumination provided by the flash is designed for each Apple
product. It is imperative that manufacturers consult technical specifications released for each product and do
not assume these parameters are shared between products.
Images from the camera may be affected by the geometry, color and surface finish of the camera opening in
the case.
24.4.1 Geometry
The camera lens FOV must not be blocked. Making the case opening around the camera too small may block
the FOV of the lens. This may cause vignetting in the image, where the corners of are darker than the center.
Blocking marginal rays just outside the FOV of the lens may also reduce the sharpness of the image. See Device
Layouts and Dimensions for Apple Devices (page 487) for the detailed mechanical keep-out.
The case opening must not be designed in a way that directs stray light into the camera. If the opening is too
narrow or too steep, it may reflect light into the camera, washing out the image or adding an unwanted color
cast. Adding a chamfer to the case opening trim may help to direct stray light away from the camera.
Additionally, where the product is equipped with a flash, a narrow or steep opening may reflect light from the
case opening back into the camera or scene. This may cause the image to appear washed out or contain
unwanted artifacts. Designers should ensure that the mechanical keep-outs outlined in the device dimensional
drawings (Device Dimensional Drawings (page 880)) are maintained with worst-case X-Y placement tolerances.
24.4.2 Color
Any light reflected from the case may pick up the color of the case. Black material or black coating may help
avoid color bleeding into the camera from an external light source or the flash. The darker the color, the less
light may be reflected from the source into the camera.
491
24. Cases
24.4 Camera
Note: Apple recommends a semi-gloss black material or coating around the camera and flash
opening.
Reference
492
24. Cases
24.4 Camera
Reference Degraded
Reference Degraded
Reference Degraded
493
24. Cases
24.5 Reliability
24.5 Reliability
Cases for Apple devices must be tested to verify that they will withstand long-term use under typical use
conditions, and that they do not impair or degrade the functionality of the device, damage it or its immediate
surroundings, or adversely affect the user.
24.5.2 Colorfastness
Any dyes, inks, or coatings in or on the case must not bleed color onto either the device or its user, particularly
while the case is in contact with common substances such as water or sunscreen.
24.6 Environmental
Cases for Apple devices must comply with applicable environmental regulations in the regions in which such
cases are to be sold, and any applicable substance or material restrictions, including applicable restrictions on
the following substances:
● organic tin compounds, PFOS, PFOA, phthalates, azo dyes, polybrominated biphenyls (PBBs) and PAHs,
per requirements of the EU REACh regulation EC 1907/2006
● Nickel leach rate on surfaces in prolonged skin contact, per requirements of the EU REACh regulation EC
1907/2006
● Cadmium, lead, hexavalent chromium, and nickel, per requirements of EU Directive 2009/48/EC
● Natural rubber latex, per requirements of EU Directive EC 93/42/EEC
● Dimethylfumarate (DMFu), per requirements of EU Regulation 412/2012
● pH and Formaldehyde, per requirements of China GB 18401 for textiles and China GB 20400 for leather
● Endangered species of flora and fauna in products or packaging (US Lacey Act) Polybrominated diphenyl
ethers (PBDE)
494
24. Cases
24.7 RF
24.7 RF
24.8 Touchscreen
The touch interface in an Apple device senses the presence of one or more fingers on its surface. Any material
between the surface and the user's hand, even a very thin sheet of plastic, may affect the performance of the
touch interface.
24.8.1 Overlay
If a case design requires the Apple device's touchscreen to be covered with an overlay, the overlay must not:
495
24. Cases
24.9 Test Procedures
It is not possible for a case to claim compatibility with only the iPhone 6s Plus or only the iPhone 6 Plus.
496
24. Cases
24.9 Test Procedures
It is not possible for a case to claim compatibility with only the iPhone 6s or only the iPhone 6.
It is not possible for a case to claim compatibility with only the iPhone 5 or only the iPhone 5s.
[Link] iPhone 5c
The following tests must be run for cases that claim compatibility with iPhone 5c:
● Product Design (page 501) using an iPhone 5c.
● RF (OTA) (page 504) using an iPhone 5c for the following bands/channels:
● UMTS I, II, IV, V, VIII
● FDD-LTE 7, 17
● TD-LTE 40
● 2.4 GHz Wi-Fi 1, 7, 13
497
24. Cases
24.9 Test Procedures
498
24. Cases
24.9 Test Procedures
It is not possible for a case to claim compatibility with only the iPad mini or only the iPad mini 2 or only the
iPad mini 3.
499
24. Cases
24.9 Test Procedures
It is not possible for a case to claim compatibility with only the iPod touch (5th generation) or only the iPod
touch (6th generation).
Table 24-1 Required device configurations for accessory case test procedures
500
24. Cases
24.9 Test Procedures
[Link] Equipment
● Apple device. See Table 24-1 (page 500).
● Apple Lightning Digital AV Adapter
● Apple 30-pin to USB Cable
501
24. Cases
24.9 Test Procedures
● Vernier calipers
● 1.00 mm plastic feeler gauge
● Apple EarPods with Remote and Mic
● Touchscreen test block (3D CAD available for download at [Link]
[Link] Procedure
1. Insert the Apple device into the case.
2. Verify that the Apple device completely fits inside the case. The Apple device must not be loose.
3. Verify that all buttons are accessible.
4. Inspect for button feel. The buttons must not be too hard to press or take a lot of effort to press.
5. For Apple devices that have an Apple Lightning connector:
a. Insert the Apple Lightning Digital AV Adapter into the Lightning receptacle and verify that it fits.
b. Using vernier calipers, measure the Lightning connector opening on the case. Verify that the opening
is measured to be at least 12.05 mm by 6.30 mm.
6. For Apple devices that have an Apple 30-pin connector:
a. Insert the Apple 30-pin to USB Cable into the 30-pin receptacle and verify that it fits.
b. Using vernier calipers, measure the 30-pin connector opening on the case. Verify that the opening is
measured to be at least 22.1 mm by 2.8 mm.
7. Insert Apple EarPods with Remote and Mic into the headset jack of the Apple device and verify it fits.
8. Using vernier calipers, measure the headset jack opening on the case. Verify that the opening is measured
to be at least 6 mm in diameter and no more than 14 mm deep.
9. For Apple devices with Touch ID, use vernier calipers to verify that the case is at least 2 mm away from
the Touch ID sensor.
502
24. Cases
24.9 Test Procedures
10. Verify that the case is always proud of the feeler gauge when the gauge is placed at each corner of the
Apple device. See Figure 24-6 (page 503).
11. Set the Apple device flat on its face (screen facing down).
12. Roll the device towards any side that is not enclosed by the case until the gap between the Apple device's
exposed glass and flat surface is smallest.
13. Verify that the feeler gauge fits into the gap between the Apple device's exposed glass and flat surface.
503
24. Cases
24.9 Test Procedures
14. Place the touchscreen test block onto the touchscreen of the Apple device. Verify the test block is sitting
flush on the touchscreen.
15. If the case has an overlay, verify that there are no air gaps introduced between it and the touchscreen.
24.9.4 RF (OTA)
This section contains test procedures for accessory cases that contain a Lightning connector.
[Link] Definitions
● TRP: Total Radiated Power (dBm)
● TIS: Total Isotropic Sensitivity (dBm)
● EIS: Effective Isotropic Sensitivity (dBm)
● EIRP: Effective Isotropic Radiated Power (dBm)
[Link] Labs
Testing must be performed by CTIA Test Labs ([Link]
tion/ctia-authorized-test-labs) with the authorization and equipment needed for the following tests:
● EIRP Measurement for cellular (UMTS/LTE) and Wi-Fi (802.11a/b)
● EIS Measurement for cellular (UMTS/LTE)
● TRP for Wi-Fi (802.11a/b)
504
24. Cases
24.9 Test Procedures
505
24. Cases
24.9 Test Procedures
[Link].1 iPad
If the reference Apple device is an iPad, secure 3 layers of Post-It notes or equivalent on the top right front and
top left back. The paper must remain in place for all testing, both for reference data collection and during
testing of iPad cases. See Figure 24-11 (page 506).
506
24. Cases
24.9 Test Procedures
Table 24-2 EIRP/EIS Measurement Matrix for case OTA testing procedure
Band Channel EIRP with Case EIS with Case Intermediate Channel
L Y N N
Band IV M Y N N
H Y N N
L Y Y N
Band V M Y Y N
H Y Y N
L Y Y N
Band VIII M Y Y N
H Y Y N
L Y Y N
Band II M Y Y N
H Y Y N
Band I L Y Y N
507
24. Cases
24.9 Test Procedures
Band Channel EIRP with Case EIS with Case Intermediate Channel
M Y Y N
H Y Y N
L Y Y N
LTE 17 M Y Y N
H Y Y N
L Y Y N
LTE 7 M Y Y N
H Y Y N
L Y Y N
TD-LTE 40 M Y Y N
H Y Y N
Note: This measurement must be tested using the latest CTIA spec. No intermediate test is required.
● UMTS Band I/II/IV(TRP only)/V/VIII Mid channel TRP/TIS
● LTE 17/7 Mid channel TRP/TIS
● TD-LTE B40 Mid channel TRP/TIS
Table 24-3 TRP/TIS Measurement Matrix for case OTA testing procedure
L N N N
Band IV M Y N N
H N N N
Band V L N N N
508
24. Cases
24.9 Test Procedures
M Y Y N
H N N N
L N N N
Band VIII M Y Y N
H N N N
L N N N
Band II M Y Y N
H N N N
L N N N
Band I M Y Y N
H N N N
L N N N
LTE 17 M Y Y N
H N N N
L N N N
LTE 7 M Y Y N
H N N N
L N N N
TD-LTE 40 M Y Y N
H N N N
509
24. Cases
24.9 Test Procedures
Table 24-4 Required Apple device models for testing of specific OTA bands
iPhone 6s Plus Unlocked A1634 or Unlocked A1687 Unlocked A1634 or Unlocked A1687
510
24. Cases
24.9 Test Procedures
● Cellular for LTE B7, TD-LTE B40 must be tested using Type B
● Cellular for UMTS I/II/IV/V/VIII, LTE B17 must be tested using Type A
● Wi-Fi: Either Type A or Type B must be used
[Link] Setup
Note: If the case has multiple configurations (e.g. 'open' and 'closed', and/or 'off' and 'on' modes),
all modes must be tested and passed.
Case:
● The case and Apple device must be mounted using a material with a very low dielectric constant. Refer
to CTIA 3.1 Appendix A.1 for more information on free space mounts that may be used.
● The case and Apple device must be mounted in the same position (with respect to the measuring antenna)
as the corresponding reference Apple device free space setup.
● If the case has 'on' and 'off' operating modes, it must be 'off' or not operating during TRP testing.
● If the case has 'on' and 'off' operating modes, it must be 'on' or operating during TIS testing.
● If the case can provide power to the Apple device during a phone call, the Apple device must be charging
during TIS testing
Note: The link/communication antenna must be at least 3-5 feet away from the case and Apple
device.
[Link] Procedure
Apple device setup:
1. Turn on Apple device
2. Put Apple device into Airplane Mode
3. Turn off the Apple device
4. Attach case to Apple device
511
24. Cases
24.9 Test Procedures
512
24. Cases
24.9 Test Procedures
[Link].4 TRP/EIRP for FD-LTE Band 17/7 (10 MHz/QPSK modulation only)
EIRP measurements must be taken every 15° in the Theta and Phi axis to derive the TRP value. All equipment
settings must be set according to CTIA spec except for the following:
● Power meter/Spectrum analyzer may be used per CTIA spec
● UL RB allocation of 12
● UL RB start 0 for low channel, 20 for mid channel, 38 for high channel
● TS-RSP (RF Switch Setting)
● Pause after switching = 0 ms.
513
24. Cases
24.9 Test Procedures
[Link].6 TIS/EIS for UMTS Band I/II/IV/V/VIII (all bands that are supported by DUT)
All equipment settings must be set according to CTIA spec except for the following:
● Sensitivity Setting
● Sensitivity Search Algorithm = "Fast Probing" (RSCP Replacement is not allowed)
● Max/Min Frames = 82
● Power Settling Time = 0 ms
● Output Channel Power Settling time = 0 ms
● Initial Power Setting = -55 ~ -60dBm
● TPC Setting = "all 1"
● Probing Search Frames = 5
● Initial Probe retries = 3
● Probe Bias = 1
● Mobile PCL Settle Time = 0 ms
● Base Settle Time = 0 ms
● Max Step = 2dB
● Fine Step = 1dB
● Minimum Step = 0.5dB
● TS-RSP (RF Switch Setting)
● Pause after switching = 0 ms
[Link].7 TIS/EIS for FD-LTE Band 17/7 (10 MHz BW/QPSK modulation only)
All equipment settings must be set according to CTIA spec except for the following:
● Sensitivity Setting
● Max/Min Frames = 2000
514
24. Cases
24.9 Test Procedures
[Link].8 TIS for TD-LTE Band 40 (20 MHz BW/QPSK modulation only)
All equipment settings must be set according to CTIA spec except for the following:
● Sensitivity Setting
● Max/Min Frames = 2000
● Initial Power Setting = -55 ~ -60dBm
● Power Setting = "all 1"
● Max Step = 2dB
● Fine Step = 1dB
● Minimum Step = 0.5dB
● DL RB allocation of 50
● TS-RSP (RF Switch Setting)
● Pause after switching = 0 ms
515
24. Cases
24.9 Test Procedures
516
25. Communications
Note: Accessories that do not support CarPlay must not support the List Updates sub-feature.
CarPlay accessories must only use these messages to display and control telephony features on
displays not controlled by CarPlay such as an instrument cluster, HUD, or other screens.
All accessories that support the Communications Updates feature via iAP2 must send or receive the following
iAP2 control session message(s):
StartCommunicationsUpdates (page 827)
CommunicationsUpdate (page 828)
StopCommunicationsUpdates (page 830)
517
25. Communications
25.2 Communications Usage
All accessories that support the Call Controls feature via iAP2 must send or receive the following iAP2 control
session message(s):
StartCallStateUpdates (page 824)
CallStateUpdate (page 825)
StopCallStateUpdates (page 827)
All accessories that support the Call Controls feature via iAP2 may also send or receive the following iAP2
control session message(s):
InitiateCall (page 831)
AcceptCall (page 832)
EndCall (page 832)
SwapCalls (page 833)
MergeCalls (page 833)
HoldStatusUpdate (page 833)
MuteStatusUpdate (page 834)
SendDTMF (page 834)
All accessories that support the List Updates feature via iAP2 must send or receive the following iAP2 control
session message(s):
StartListUpdates (page 835)
ListUpdate (page 836)
StopListUpdates (page 838)
518
25. Communications
25.2 Communications Usage
One initial CallStateUpdate (page 825) message will be sent by the Apple device to the accessory for each call
at the time when the StartCallStateUpdates (page 824) message is received. If there are no calls at this time, a
CallStateUpdate (page 825) message will be sent with a State of Disconnected. Additional update messages
will be sent as the status of calls change on the Apple device. In some cases, you may receive duplicate
CallStateUpdate (page 825) messages with the same information. You must use the provided CallUUID to keep
track of the status of each call in progress.
519
25. Communications
25.2 Communications Usage
It is also recommended to use the StartPowerUpdates (page 864) and PowerUpdate (page 864) messages from
the Power feature (see Power (page 660)) to receive the battery level of the Apple device. It is suggested that
the battery level be displayed next to the signal strength of the device.
In some situations, certain call controls may not be possible. You must verify via Call State Updates that the
selected action has actually taken place before updating the accessory UI. If a call control message has been
sent to the device but the accessory does not receive a corresponding Call State Update, then the action was
not possible at that time.
● MuteStatusUpdate is global for the device.
● SendDTMF is only available for calls with the service type Telephony.
The accessory can register to receive the recents and favorites lists from the Apple device as well as an update
whenever these lists change.
When a list update is ready to be sent from the Apple device to the accessory, the device will first send a
message with only the Available and Count (if available) parameter(s). This allows the accessory to prepare for
the incoming list data by receiving the count (number of entries) in the list before the entries arrive in the
messages following. If the Available parameter is false, this means the list is currently unavailable and no list
entries will be sent to the accessory.
● RecentsList/RecentsListCount parameters will only be sent if the RecentsListProperties parameter was
included in the StartListUpdates (page 835) message and the list is available.
● FavoritesList/FavoritesListCount parameters will only be sent if the FavoritesListProperties parameter was
included in the StartListUpdates (page 835) message and the list is available.
520
25. Communications
25.3 Test Procedures
● RecentsList -> UnixTimestamp is the timestamp of the call in represented as the number of seconds that
have elapsed since 00:00:00 Coordinated Universal Time (UTC), Thursday, 1 January 1970.
● RecentsList -> Duration is the duration of the call in seconds. This parameter is only sent if RecentsList ->
Occurrences is 1.
● RecentsList -> Occurrences represents the number of consecutive calls to the same person that have been
combined. This parameter will always be 1 unless RecentsListCombine is True.
It is also recommended to identify for the DeviceTimeUpdate (page 841) message which will provide
TimeZoneOffsetMinutes and DaylightSavingsOffsetMinutes. These offsets can be used to correctly display the
timestamp of the recent call according to the Apple device's time zone.
The accessory may only cache list data while the Apple device has an active iAP session with the accessory.
The accessory must clear any cached data when the accessory is disconnected from the device. If the device
sends a list update where the Available parameter is False, the accessory must clear any cached list data and
display a message that the list is currently unavailable instead of any previously obtained list data.
The legacy definitions are CallStateUpdateStatusLegacy (see Table 59-50 (page 827)) and
CallStateUpdateDirectionLegacy (see Table 59-51 (page 827)) respectively.
To determine if the Apple device supports the legacy definitions, the accessory should claim that it supports
the SendDTMF message (see SendDTMF (page 834)) during Accessory Identification (see Accessory
Identification (page 265)).
● If identification succeeds, the accessory should not use the legacy parameter definitions.
● If identification fails, the accessory should re-identify without the SendDTMF message and use the legacy
parameter definitions.
521
25. Communications
25.3 Test Procedures
Communications Updates:
● StartCommunicationsUpdates (page 827)
● CommunicationsUpdate (page 828)
● StopCommunicationsUpdates (page 830)
Call Controls:
● StartCallStateUpdates (page 824)
● CallStateUpdate (page 825)
● StopCallStateUpdates (page 827)
● All Call Control messages supported by the accessory.
List Updates:
● StartListUpdates (page 835)
● ListUpdate (page 836)
● StopListUpdates (page 838)
522
26. Device Authentication
The Device Authentication feature is used to verify the authenticity and/or identity of an Apple device.
523
26. Device Authentication
26.3 Device Authentication Examples
RequestDeviceAuthenticationCertificate
DeviceAuthenticationCertificate
Read Status
Status:
molC_obpriqp=4
Read Status
Status:
molC_obpriqp=O
Challenge Data
<Challenge aata>
RequestDeviceAuthenticationChallengeResponse
DeviceAuthenticationResponse
Read Status
Status:
molC_obpriqp=P
DeviceAuthenticationSucceeded
524
26. Device Authentication
26.4 Test Procedures
RequestDeviceAuthenticationCertificate
DeviceAuthenticationCertificate
DeviceAuthenticationFailed
RequestDeviceAuthenticationCertificate
DeviceAuthenticationCertificate
RequestDeviceAuthenticationChallengeResponse
DeviceAuthenticationResponse
DeviceAuthenticationFailed
26.4.1 iAP2
Verify that the following iAP2 control session message(s) are sent or received:
● RequestDeviceAuthenticationCertificate (page 839)
● DeviceAuthenticationCertificate (page 839)
● RequestDeviceAuthenticationChallengeResponse (page 839)
● DeviceAuthenticationResponse (page 840)
● DeviceAuthenticationSucceeded (page 840)
● DeviceAuthenticationFailed (page 840)
525
27. Device Notifications
An accessory that supports the Device Notifications feature can register for messages from the Apple device
that convey various parts of device state. Device information that can be provided includes:
● Human-readable name as set by the user (i.e. "John Doe's iPhone")
● Current UI language
● Current date/time information
After receiving DeviceTimeUpdate (page 841), the accessory must maintain its own clock. Subsequent notifications
will be sent when there is a significant change, e.g., a device time zone or daylight savings time change.
526
27. Device Notifications
27.2 Device Notifications Usage
The DeviceUUIDUpdate (page 842) can be used by accessories to determine if they are connected to the same
device over multiple transports. The UUID will remain constant as long as there are any iAP accessories connected
to the device (over any transport). The UUID will be changed no less than one minute after all iAP accessories
disconnect.
527
28. Digital Audio
Apple strongly recommends the use of digital audio paths to and from accessories. USB Host Mode audio is
the recommended approach; the USB Device Mode audio feature is being placed into a maintenance mode.
When an Apple device is in USB Host Mode, it can interact with accessories that are compliant with either the
USB Audio 1.0 or 2.0 specification. Version 2.0 is recommended, even for USB Full Speed accessories. USB High
Speed accessories must not implement the USB Audio 1.0 specification.
When an Apple device is in USB Device Mode, it can appear as a USB Audio 1.0 device for the purpose of
streaming audio to the accessory. The audio stream contains stereo PCM data and is synchronized using USB
1 ms Start-Of-Frame (SOF) packets. USB Device Mode audio does not support streaming audio from an accessory
to the device.
Note: All accessories must comply with TDMA noise requirements. See TDMA Noise (page 65).
528
28. Digital Audio
28.1 Digital Audio Requirements
If an accessory is capable of streaming audio to or from an Apple device via more than one audio transport
connection, it must shut down the active audio transport connection before starting the next one. The presence
or absence of audio on an audio transport connection has no bearing on the connection state. Shutdown and
startup actions for each audio transport connection are specified in the following table:
Lightning Audio Module Lightning Audio Module connect Lightning Audio Module
disconnect
If an accessory is capable of establishing a Bluetooth A2DP audio transport connection along with any other
audio transport connection to an Apple device, the accessory must satisfy all requirements stated in
Bluetooth (page 344).
Conversely, if the user takes direct action to switch the accessory's audio input source away from the Apple
device, the accessory must shut down the active audio transport connection (see Table 28-1 (page 529)) before
switching to the alternate source.
529
28. Digital Audio
28.1 Digital Audio Requirements
The following USB features are recommended for accessories implementing USB Host Mode Audio, but are
not required:
● Synchronous audio endpoints, particularly for input-only or output-only accessories.
● 24-bit linear PCM.
● Apple devices running iOS 5.0 or later support more than two channels of audio input in USB Host Mode.
Accessories that use this feature must bundle all audio input channels into a single audio streaming
interface.
530
28. Digital Audio
28.1 Digital Audio Requirements
● Apple devices running iOS 6.0 or later support more than two channels of audio output in USB Host Mode.
Accessories that use this feature must bundle all audio output channels into a single audio streaming
interface.
Accessories should be tested against the latest OS X Audio driver; the application Audio MIDI Setup, in the OS
X Applications/Utilities folder, can be used to verify compatibility. Additionally, the USB Prober application,
available with Xcode, should be used to inspect and verify the contents of USB descriptors.
Note: The Apple device USB isochronous audio data endpoint descriptor bmAttributes field
erroneously returns the Synchronization Type field (D3:2) as b00 (no synchronization) instead of the
correct value, b11 (synchronous). The Apple device supports synchronous data transfers, so the
accessory must ignore those erroneous attribute bits. The erroneous b00 value is retained for
backwards compatibility with older accessories.
When receiving USB Device Mode audio over a USB streaming interface, the accessory may buffer data to
achieve consistent audio playback. Since buffering introduces latency, it is recommended that this latency be
kept below 200 ms to ensure timely response to user input, such as a play/pause button.
All accessories that support the USB Device Mode Audio feature via iAP2 must send or receive the following
iAP2 control session message(s):
StartUSBDeviceModeAudio (page 866)
USBDeviceModeAudioInformation (page 867)
StopUSBDeviceModeAudio (page 867)
531
28. Digital Audio
28.2 Digital Audio Usage
When the accessory is ready for audio streaming output, it must send StartUSBDeviceModeAudio (page 866)
to the device. The device will inform the accessory of the stream properties via
USBDeviceModeAudioInformation (page 867) messages. Multiple update messages will be sent while streaming
is active to inform the accessory of changes in audio stream properties. When the accessory no longer wants
to consume audio streaming output, it must send StopUSBDeviceModeAudio (page 867) to the device.
532
28. Digital Audio
28.4 Test Procedures
Device Accessory
...
...
IdentificationInformation
KKK
rp_qransportComponentW
<qransportComponentfdentifier> M
<qransportComponentkame> aock Connector
qransportpupportsiAmOConnection
<rp_aevicepupportedAudiopampleoate>
PO kez ESF
44KN kez ETF
4U kez EUF
KKK
iAmOefaComponentW
<efaComponentfdentifier> M
<efaComponentkame> cront manel
<efaComponentcunction> jedia mlayback oemote ENF
KKK
IdentificationAccepted
StartHID:
KKK
<efaoeportaescriptor>
KKK
StartUSBDeviceModeAudio
USBDeviceModeAudioInformation:
<pampleoate> PO kez ESF
533
28. Digital Audio
28.4 Test Procedures
534
29. External Accessory Protocol
The iOS External Accessory framework provides accessories with the means to communicate with one or more
iOS apps via one or more External Accessory (EA) sessions. These sessions present a simple read/write bytestream
interface; it is up to the accessory developer to specify a custom protocol between the app and the accessory.
The design and maintenance of communication protocols between accessories and applications are entirely
the responsibility of the developers of these products. Apple makes no attempt to secure protocol name space
or provide for communication security between accessories and applications.
All accessories may implement this feature by defining and implementing an iAP2 EA session. Additionally,
accessories with a USB Host Mode transport component may choose to implement an EA Native Transport
(USB Host Mode). This will generally provide higher performance than the iAP2 EA session. Apple does not
guarantee reliable delivery and/or a minimum level of transfer speed.
535
29. External Accessory Protocol
29.1 External Accessory Protocol Requirements
Accessories must also either implement one iAP2 EA session or one EA Native Transport over a USB Host Mode
transport component. Accessories only need to implement one iAP2 EA session regardless of the number of
EA protocols supported using that session. Conversely, an EA Native Transport (USB Host Mode) can only
support a single EA protocol.
Accessories may implement both an iAP2 EA session for some protocols and use EA Native Transports for
others, but an EA protocol must not use both an iAP2 EA session and an EA Native Transport.
For more information on developing iOS apps that communicate with accessories, see External Accessory
Programming Topics in the iOS SDK documentation at [Link]
cles/ExternalAccessoryPT/Introduction/[Link].
To implement the iAP2 EA session, accessories must also declare the presence of that session during iAP2 link
synchronization. Details on the session implementation can be found in External Accessory Session (page 802).
All accessories that support the External Accessory Protocol feature via iAP2 may also send or receive the
following iAP2 control session message(s):
StatusExternalAccessoryProtocolSession (page 843)
If the accessory declares support for StatusExternalAccessoryProtocolSession (page 843), the Apple device will
allow multiple iAP2 EA sessions per protocol (excluding EA Native Transport).
536
29. External Accessory Protocol
29.1 External Accessory Protocol Requirements
Note: Accessories must not reuse the same USB Bulk In/Out endpoints for multiple purposes, such
as iAP2 and EA native transport. They also must not shut down the iAP2 connection once a EA Native
Transport session has been started.
Table 29-1 USB Interface Descriptor (Alternate Setting 1 - Active Session) for External Accessory Native Transport (USB
Host Mode)
Alternate Setting 1
Table 29-2 USB Interface Descriptor (Alternate Setting 0 - Zero Bandwidth) for External Accessory Native Transport
(USB Host Mode)
Number of Endpoints 0
Alternate Setting 0
537
29. External Accessory Protocol
29.2 External Accessory Protocol Usage
Conversely, the accessory must cease sending and receiving traffic for the specified session identifier when a
StopExternalAccessoryProtocolSession (page 843) message is received. Device-powered accessories may also
be required to transition to a low power state as specified in the Accessory Power feature.
EA Native Transport (USB Host Mode) performance will vary based on many factors including, but not limited
to:
● USB Full Speed versus USB High Speed.
● Bulk endpoint packet size.
● Depth of USB packet queues.
● Other concurrent USB traffic on the same bus/controller.
538
29. External Accessory Protocol
29.3 External Accessory Protocol Examples
SYN[100]
pession qypeW O Ebxternal Accessory pessionF
SYN[200] ACK[100]
ACK[200]
...
...
IdentificationInformation
KKK
jessagesoeceivedcromaeviceW
<ptartbxternalAccessorymrotocolpession> MxbAMM
<ptopbxternalAccessorymrotocolpession> MxbAMN
pupportedbxternalAccessorymrotocolsW
<bxternalAccessorymrotocolfdentifier> M
<bxternalAccessorymrotocolkame> comKcompanyKaccessory
<bxternalAccessorymrotocoljatchAction> N
KKK
IdentificationAccepted
StartExternalAccessoryProtocolSession
<bxternalAccessorymrotocolfdentifier> M
<bxternalAccessorymrotocolpessionfdentifier> M
...
...
StopExternalAccessoryProtocolSession
<bxternalAccessorymrotocolpessionfdentifier> M
539
29. External Accessory Protocol
29.4 Test Procedures
USB
Enumeration
...
...
IdentificationInformation
KKK
pupportedbxternalAccessorymrotocolsW
<bxternalAccessorymrotocolfdentifier> M
<bxternalAccessorymrotocolkame> comKaccessoryKprotocolname
<bxternalAccessorymrotocoljatchAction> N
<kativeqransportComponentfdentifier> M
KKK
rp_eostqransportComponentW
<qransportComponentfdentifier> M
<qransportComponentkame> aock Connector
qransportpupportsiAmOConnection
KKK
IdentificationAccepted
...
...
540
29. External Accessory Protocol
29.4 Test Procedures
541
29. External Accessory Protocol
29.4 Test Procedures
2. Verify that RequestAppLaunch is only sent in response to direct user action, such as pushing a button on
the accessory or connecting the accessory to the Apple device via Lightning or via Bluetooth. (Note that
this does not apply to automotive head units.)
542
30. Game Controller Module
Accessories may make use of the Game Controller Module to create game controllers for Apple devices and
Macintosh computers that work with all apps that make use of the Game Controller framework.
543
30. Game Controller Module
30.1 Overview
30.1 Overview
Key accessory-facing interfaces of the Game Controller Module are:
● Digital inputs for:
● Menu Button
● Hold Switch
● Bluetooth Pairing Button
● Analog inputs for:
● Joysticks
● Face Buttons
● L1/R1 Shoulder Buttons
● L2/R2 Shoulder Buttons
● Directional Pad
● 4x LED drivers
● Battery charger (and thermistor input)
● Factory configuration interface
Additional specifications and certain software for the Game Controller Module are available under license from
Qualcomm Technologies International, Ltd. (formerly known as Cambridge Silicon Radio Limited), "QTIL", and
can be requested by emailing requestmfi@[Link] with the following information:
● Email subject should contain "Software for Game Controller Module"
● Requesting Company's Full Name
● Requesting Company's Address
● Apple MFi License Number (6 digits)
● MFi Primary Contact (name, email address, phone number)
● CSRSupport ID or e-mail addresses for users requiring access
544
30. Game Controller Module
30.3 Authentication
The module supports firmware update via Bluetooth from iOS using the External Accessory Protocol.
30.3 Authentication
Accessories that integrate the Game Controller Module do not need to integrate a separate Apple Authentication
Coprocessor.
30.4 Bluetooth
Accessories that integrate the Game Controller Module must connect to the Apple device using Bluetooth (see
Bluetooth (page 344)).
Accessories that integrate the Game Controller Module do not need to integrate a separate Lightning Receptacle
Controller.
30.6 Mechanical
The Game Controller Module has the following mechanical characteristics:
● 20 mm x 20 mm LGA package
● Pad diameter of 0.75 mm
● Pad spacing of 1.5 mm
● Pickup is offset to the CSP surface
● A1 pad has a fiducial mark that may be used as a reference
● Designed to withstand a standard reflow profile with a peak reflow temperature below 250 °C for 20
seconds maximum
545
30. Game Controller Module
30.7 Electrical
For the best antenna performance, the module must protrude 6.25 mm beyond the edge of the PCB that it is
mounted on. The antenna pattern must have a clearance of 2 mm in all directions. The host PCB must have a
ground plane below the module which extends along its edge for 15 mm to either side of the module. The
antenna should be placed at the front edge of the controller (pointing away from the user) and should not be
placed in close proximity to a user's hands during normal use. Avoid metallic objects in the area surrounding
the antenna.
30.7 Electrical
The module includes the following:
● Microcontroller
● Bluetooth radio
● Bluetooth antenna
● Apple Authentication Coprocessor 2.0C (see Apple Authentication Coprocessor 2.0C (page 66))
● Apple Lightning Receptacle Controller (see Apple Lightning Receptacle Controller (page 208))
● Power supply
546
30. Game Controller Module
30.7 Electrical
30.7.1 Battery
The module supports rechargeable lithium-ion and lithium-ion polymer batteries.
30.7.2 I/O
The module supports the following outputs:
● 4x LED drivers
The LED drivers support variable brightness and animation sequences in accordance with game controller
specifications in LED Array (page 603).
The module supports device reset and clearing Bluetooth pairings using a combination of the menu button
and the Bluetooth pairing button, see Bluetooth Button (page 606).
547
30. Game Controller Module
30.7 Electrical
30.7.4 Joysticks
The module supports all two-axis analog controls listed in Joysticks (page 602).
548
31. Headsets
Accessories may implement headset components. Apple devices treat accessory headsets differently from
accessories with integrated speakers. Headsets are expected to help provide the user with a personal audio
experience.
Note: All accessories must comply with TDMA noise requirements. See TDMA Noise (page 65).
If connected via the headset jack, headsets must support the Headset Remote and Mic feature (see Headset
Remote and Mic (3.5 mm) (page 559).
If connected via the Lightning connector, headsets must integrate a Lightning Audio Module (see Apple
Lightning Audio Module (page 93)).
If connected via Bluetooth, the headsets must support iAP2 and identify themselves as headsets to the Apple
device by declaring the presence of a HID Headset Remote component (see Accessory Identification (page
265).
549
31. Headsets
31.3 Remote Controls
If the headset connects to the Apple device via the Lightning connector or Bluetooth, additional remote control
buttons/control surfaces may be implemented to control media playback and interact with Apple features like
iTunes Radio.
550
31. Headsets
31.5 Extension Cables and Adapters
Additionally, the headset jack extension cable or adapter should be as short as possible.
551
31. Headsets
31.6 Test Procedures
31.6.3 Lightning
If the headset connects to the Apple device via the Lightning connector:
1. Verify that it integrates a Lightning Audio Module.
552
31. Headsets
31.6 Test Procedures
31.6.4 Bluetooth
If the headset connects to the Apple device via Bluetooth:
1. Verify that it supports iAP2.
2. Verify that it implements 3 buttons that mimic the behavior of the Apple Headset Remote.
3. Verify that it identifies a HID Headset Remote component to the Apple device over iAP2.
4. Execute Bluetooth Test Procedures (page 358).
31.6.5 Controls
For all headsets:
1. Verify that there is a button for Volume Up and that it increases the volume on the Apple device.
2. Verify that there is a button for Volume Down and that it decreases the volume on the Apple device.
3. Verify that there is a button that has the same Center button behavior as on the Apple Headset Remote.
a. Verify Play and Pause works for songs and video tracks when pressing Center button.
b. Verify Next Track works when pressing Center button twice quickly.
c. Verify Fast Forward works when pressing then press-and-holding the Center button.
d. Verify Previous Track works when pressing Center button 3 times quickly.
e. Verify that pressing Center button once will answer incoming phone call.
f. Verify that pressing Center button once will end phone call.
g. Verify that holding down Center button will decline an incoming phone call. Verify you hear 2 low
beeps to confirm that you declined the call.
h. After the Apple device hibernates, launch Siri through pressing and holding either home button or
headset Center button. Verify that the Siri double beep prompt is heard in full.
i. After the Apple device hibernates, send an iMessage to the hibernating device to trigger notification.
Confirm notification sound is heard in full.
If the Volume Up and Volume Down buttons are implemented as part of a HID Headset Remote component:
553
31. Headsets
31.6 Test Procedures
1. Verify that pressing the Volume Up button results in a button press usage immediately followed by a
button released usage even if the button is pressed and held. It must not be possible to ramp the Apple
device to full volume by pressing and holding the button.
2. Verify that pressing the Volume Down button results in a button press usage immediately followed by a
button released usage even if the button is pressed and held. It must not be possible to ramp the Apple
device to zero volume (mute) by pressing and holding the button.
554
32. Headset Plug (3.5 mm)
Each Apple device contains a standard stereo headset jack supporting microphone input and control buttons.
Most dimensions of the headset jack conform to the JEITA standard RC 5325A, 4-Pole Miniature Concentric
Plugs and Jacks .
The following requirements apply to all accessory connectors intended for insertion into an Apple device's
headset jack:
555
32. Headset Plug (3.5 mm)
32.1 Pin Assignments
● The connector plug length and diameter dimensions must match those specified in Figure 32-1 (page
555).
● The connector's cable shell diameter must not exceed (B) 5.9 mm for a minimum length of (A) 11 mm
from where the flange starts as shown in Figure 32-2 (page 555).
● The connector's cable shell must not have any bends, curves, or protrusions for a minimum length of (A)
11 mm from where the flange starts as shown in Figure 32-2 (page 555).
Additionally, every accessory connector with 4 conductors intended for insertion into an Apple device's headset
jack must not have a conductive flange as specified in Figure 32-1 (page 555).
Any accessory headset jack that can accept the Apple EarPods with Remote and Mic and is electrically connected
to the headset jack on an Apple device must support full functionality of the Apple Earphones with Remote
and Mic.
Pin Description
3 Signal Return
4 Microphone Input
Note: Some Apple devices will apply and then measure a voltage across Pin 3 and Pin 4 in order to
determine whether the headset is wired as specified in Table 32-1 (page 556) or not. The measured
voltage must be greater than 1.5 V.
Some Apple devices will also apply a reverse bias voltage across Pin 3 and Pin 4 and then measure
the response for the same purpose. The measured voltage must not be less than -0.75 V.
556
32. Headset Plug (3.5 mm)
32.2 Example Circuitry
Headphones
1 2.7 V
Right channel
Microphone 2 R1
FET impedance 3
converter
Output
L01 4
C1
10 pF 33 pF VAR1 4-pin
SW 3.5mm plug
R2
Ground
shield case L02
Table 32-2 Recommended component values for typical circuitry in a headset accessory
Component Value
C1 1 µF
R1 2.21 kΩ ±1%
SW Action Button
VAR1 12 V varistor
Note: The value given for L01 and L02 is typical. These ferrite chokes reduce time division multiple
access (TDMA) noise; their exact values depend on the specific accessory design.
557
32. Headset Plug (3.5 mm)
32.3 Test Procedures
Switch SW shorts the microphone signal to ground. The Apple device treats its closure as a headset button
press and initiates a context-specific action (for example, answering a phone call). The microphone bias current
must be between 210 and 500 µA, measured into a circuit pulled up to 2.7 V through 2.21 kΩ , to ensure button
press detection. The recommended microphone sensitivity is -44 dBV with a maximum impedance of 2.2 kΩ
at the output of the equivalent circuit shown above, measured under test conditions of Vs = 2.0 V, RL = 2.2 kΩ
, Ta = 20 °C, and relative humidity = 65%.
558
33. Headset Remote and Mic (3.5 mm)
Apple devices can receive button press information from accessory headsets that incorporate the headset
remote and mic feature via the Apple device's 3.5 mm headset jack (see Headset Plug (3.5 mm) (page 555).
Accessory headsets that support the Headset Remote and Mic feature must integrate the following components:
● The Apple-provided transmitter chip from Table 33-1 (page 564).
● A MEMS digital microphone from Table 33-10 (page 577).
559
33. Headset Remote and Mic (3.5 mm)
33.1 Headset Remote and Mic Requirements
Accessory headsets must also implement one of the following configurations with one exception. The
microphone may be located on either the left or right side of the headset.
560
33. Headset Remote and Mic (3.5 mm)
33.1 Headset Remote and Mic Requirements
561
33. Headset Remote and Mic (3.5 mm)
33.1 Headset Remote and Mic Requirements
562
33. Headset Remote and Mic (3.5 mm)
33.2 Headset Remote Transmitter Chip Usage
The transmitter sends button-press information over the microphone bias line in either of two modes: button
mode or tone mode. If the voltage on the microphone bias line is less than 2.35 V, indicating that the microphone
is not in use, the transmitter enters button mode and sends button-press information as discrete voltage levels.
563
33. Headset Remote and Mic (3.5 mm)
33.2 Headset Remote Transmitter Chip Usage
If the microphone bias voltage is greater than 2.35 V, indicating that the microphone is in use, the transmitter
enters tone mode and sends the same button-press information as ultrasonic tone sequences in the range of
99 to 300 kHZ.
Subjective listening tests with the newest Apple device are recommended to determine which chip produces
the best user experience.
MFI353S2429 Noise-occluding headsets. These are headsets that block or cancel outside sound.
564
33. Headset Remote and Mic (3.5 mm)
33.2 Headset Remote Transmitter Chip Usage
Dimension Value in mm
W 0.95/0.85
D 1.45/1.35
H 0.50 max
H1 0.19/0.15
e 0.50
e1 0.25
565
33. Headset Remote and Mic (3.5 mm)
33.2 Headset Remote Transmitter Chip Usage
Dimension Value in mm
g 1.00
g1 0.50
s 0.25/0.21
y 0.015
z 0.05
All voltages are measured with respect to ground. All input and output clamp-current ratings must be observed.
566
33. Headset Remote and Mic (3.5 mm)
33.2 Headset Remote Transmitter Chip Usage
The values in the "Typical" column of the tables are measured at 25 °C.
567
33. Headset Remote and Mic (3.5 mm)
33.2 Headset Remote Transmitter Chip Usage
Note: This current is pulled through RVSHUNT between MIC and VSHUNT and is the minimum current
to keep VSHUNT regulated at 1.56 V. Excess current through RVSHUNT is available to the load at
MICPWR. Excess current not used by the load at MICPWR is internally shunted to GND.
fTONE1 Button 1 Frequency RREM = 6.81 kΩ 109 kHz 130 kHz 159 kHz
fTONE2 Button 2 Frequency RREM = 9.42 kΩ 138 kHz 165 kHz 200 kHz
568
33. Headset Remote and Mic (3.5 mm)
33.2 Headset Remote Transmitter Chip Usage
The controller in the Apple device provides regulated downstream power (nominally 2.7 or 2.0 V) to the
transmitter chip and microphone through the microphone bias line. Figure 33-6 (page 570) illustrates the
functional components of the transmitter chip. In this diagram, a latch drives the configuration of switches A
and B. The power-on reset monitors voltage on the MIC pin to ensure that there is a enough power before
initiating the turn-on sequence; it shuts the chip down if there is insufficient voltage.
569
33. Headset Remote and Mic (3.5 mm)
33.2 Headset Remote Transmitter Chip Usage
Switch A
VSHUNT MICPWR
1.56V
MIC
Latch
2.3V
Power-on
Reset REM
Switch B
TONE Tone Impedance
Generator Detector
GND
Button events are sent from the transmitter to the controller in one of two modes, button mode or tone mode.
When a microphone is not present or is not in use, the transmitter is put in button mode by the controller in
the Apple device, and button events are detected using discrete voltage levels. These discrete voltage levels
are a percentage of a regulated output voltage on the microphone bias line. When a microphone is in use, the
controller puts the transmitter into tone mode by placing more than 2.35 V on the microphone bias line, and
the transmitter then sends button events using tone sequences of discrete frequencies in the range 99 kHz to
300 kHz.
S0 0.000 V ±1%
S1 1.510 V ±1%
S2 1.603 V ±1%
570
33. Headset Remote and Mic (3.5 mm)
33.2 Headset Remote Transmitter Chip Usage
When the transmitter chip is in button mode (VMIC has never reached 2.35 V), it shorts the MIC and REM pins
together and disables all other inputs and outputs. When a button event occurs, the DC voltage on the
microphone bias line changes. Table 33-8 (page 570) shows the DC voltage corresponding to a given button
press when using the R1 and R4 resistor values listed in Table 33-9 (page 576). This DC level is then detected
by the controller in the Apple device. Switch S0 is a unique switch that shorts the VMIC line to ground.
When the VMIC line is shorted to ground, power is removed from the transmitter chip. When power recovers,
the transmitter chip enters button mode or tone mode, depending on the voltage detected at the MIC pin.
In tone mode the transmitter chip has two functions. First, it turns on the MEMS microphone by forcing a FET
switch to ground. Second, it detects button events and places a discrete tone sequence onto the microphone
bias line. The tone frequencies in each sequence are unique to each button press. The controller detects the
tones on the bias line and determines the corresponding button event.
The transmitter chip's startup timing when it enters tone mode is shown in Figure 33-7 (page 572). Values for
the timing parameters are given in Table 33-6 (page 568).
571
33. Headset Remote and Mic (3.5 mm)
33.2 Headset Remote Transmitter Chip Usage
2.5V
VREM
0V
2.5V
VMICPWR
0V
2.5V
VSHUNT
0V
2.5V
VTONE
0V
t OFFB
tCAL tACK
tONA
tREG
TM2T
2. After a delay of tREG after VMIC > 2.35 V, the SHUNT pin and the MICPWR pins are shorted. The microphone
is enabled by turning on the FET switch through the MICPWR pin.
3. Once the noise prevention process has settled, the transmitter chip sends a preset acknowledge (ACK)
tone sequence.
4. The controller detects the ACK sequence (see Figure 33-8 (page 573)) and authenticates the presence of
the transmitter chip.
572
33. Headset Remote and Mic (3.5 mm)
33.2 Headset Remote Transmitter Chip Usage
VMIC
tCAL tACK
The tone generation circuit of the transmitter chip internally detects each button press and sends a high
frequency tone sequence between 99 kHz and 300 kHz. The high frequency tone sequence is unique to each
button. The controller detects the frequency of each tone and translates it into a predetermined button event.
A button release has a different frequency than a button press.
For accuracy, the transmitter chip sends two tones for each button press as shown in Figure 33-9 (page 573).
The first tone, lasting 1 ms, is a calibration frequency and the second, lasting 2 ms, is the unique frequency for
the selected button. The ratio of these two frequencies is calculated and translated into button press information.
This provides a very accurate result that is independent of clock frequency variation.
De-bounced TX
button press or
TX power-up
RX Tone
pulses
1.67ms 2.89 ms
tCAL tCAL
Tone pulse
counter
Count Tone Count ‘n’
Tone frequency Tone activity sampled here.
pulses to Tone pulses
decoded here If still active, TX ACK Tone
set tCAL over tCAL
from ‘n’ value received. If not, Button Tone
received.
INT output
573
33. Headset Remote and Mic (3.5 mm)
33.3 Button Detection Circuitry Usage
The transmitter chip remains in tone mode until the MIC pin is pulled below 0.8 V. When power recovers, the
transmitter chip enters button mode or tone mode depending on the voltage detected at the MIC pin.
These circuits are designed to produce a tone amplitude between the microphone bias line and the microphone
return, at the end of a cable 1 meter long, of at least 30 mV peak-to-peak into a 2000-ohm load. If necessary,
the value of R3 must be adjusted to achieve this result. Figure 33-11 (page 575) shows how a voltage on the
Microphone Power line from the transmitter chip enables the MEMS microphone chip through Q1. It also shows
components R7, C4, and R8, which control the microphone's frequency response. The equation that determines
the values of these components is given in Button Detection Circuitry Adjustments (page 576).
Figure 33-10 (page 575) and Figure 33-11 (page 575) are two parts of one circuit. The two Microphone Return
lines shown in these sub-circuits must be connected at the component locations. Their common return line
and the return lines for each of the two drivers must then be routed separately through the cable that goes
to the Apple device, being tied together only at the headset connector. This configuration is required to
minimize crosstalk between the separate driver channels and the microphone.
Note: With the exception of the MEMS digital microphone listed in Table 33-9 (page 576), symbol
U2, components of equal or better specifications may be substituted for the components called out
below.
574
33. Headset Remote and Mic (3.5 mm)
33.3 Button Detection Circuitry Usage
R6
B1
MIC Microphone Bias
R2 C2
C1
VSHUNT
C1 R3
A1
TONE
U1
C2
MICPWR Microphone Power
R1
B2
REM
R4 D1
GND
A2
S1 S2 S0
Microphone Return
U2
R7 R8
GND
2, 3
Microphone Power
3
Q1
D
1 G
S
R5
2
Microphone Return
575
33. Headset Remote and Mic (3.5 mm)
33.3 Button Detection Circuitry Usage
D1 ESD protection diode, 5 pF, 6.1 V ST Micro ESDALC6V1-1BU2; install as close to chip
pin B1 as possible
S0 Dome switch Center button; must not exceed 20Ω when closed.
S1 Dome switch Volume down; must not exceed 20Ω when closed.
S2 Dome switch Volume up; must not exceed 20Ω when closed.
576
33. Headset Remote and Mic (3.5 mm)
33.4 Test Procedures
The values of some of the components listed in Table 33-9 (page 576) may be adjusted to optimize the
performance of the headset accessory, using these formulas:
High-pass filter corner frequency in Hertz ≈ 1/(2π ⋅ R8⋅ C4), where R8 is the value of resistor R8 in ohms
●
and C4 is the value of capacitor C4 in Farads. This formula assumes that the value of R7 is greater than the
value of R8.
●
System sensitivity at 1 Pascal in Volts = (M0/R8)⋅ R2, where M0 is the microphone sensitivity in Volts per
Pascal, R8 is the value of resistor R8 in ohms, and R2 is the value of resistor R2 in ohms in parallel with 1.05
kΩ .
●
Maximum excursion of the microphone in Volts = (1/R7)⋅ R2, where R7 is the value of resistor R7 in ohms,
Note: If the microphone bias voltage drops below 1.6 V, the transmitter chip will begin to fail and
the microphone chip may produce indeterminate outputs.
577
33. Headset Remote and Mic (3.5 mm)
33.4 Test Procedures
Note: If the headset cabe is intended to loop around the ear (see Figure 33-12 (page 578)), measure
the distance as if the accessory is being worn.
33.4.2 Electrical
The following items are required:
● A precision power supply
● 4-pin headset jack, 3.5 mm diameter, such as Digikey SJ-43515RS-SMT
● An oscilloscope with measuring capabilities
●
A 2.21 kΩ 1% resistor
●
A 2 kΩ 1% resistor
● A 1 µF capacitor
578
33. Headset Remote and Mic (3.5 mm)
33.4 Test Procedures
2.7V
2.21k 1%
Take DC values here 1 uF
mic_bias 2k 1%
Take tone values here
DUT return/gnd
30mV p-p
Table 33-11 Headset Remote and Mic Expected mic_bias Voltages in Button Mode
S0 0.000 V ±1%
S1 1.510 V ±1%
S2 1.603 V ±1%
579
34. HID (Human Interface Device)
Some Apple devices can accept input from Human Interface Device (HID) accessories, such as external keyboards,
and also send HID reports to those accessories. This capability is then made available system-wide for all apps
on the device or certain features built into the device system software. If an accessory is designed to provide
human input events to a specific third-party app, it should consider implementing the External Accessory
Protocol feature instead.
Accessories supporting the HID feature over iAP2 or over native transports must comply with the following
requirements:
● The accessory must identify at least one Table 59-18 (page 813) or Table 59-23 (page 815) or Table
59-26 (page 816).
● Each identified HID component must have a unique HIDComponentIdentifier.
● Each identified HID component must declare one intended function.
Accessories supporting the HID feature over the CarPlay communication protocol must comply with the
following requirements:
● User events must be represented as Human Interface Device (HID) usage reports and must be transported
using the CarPlay communication protocol.
580
34. HID (Human Interface Device)
34.1 HID Requirements
● Accessories must not use iAP2 to transport HID events while using CarPlay, with one exception: accessories
supporting HID Media Playback Remote may send those commands (except for Voice Control / Siri) over
iAP2 (see HID Media Playback Remote (page 631)).
● When supporting CarPlay, the Voice Command / Siri usage must always be transported using the CarPlay
communication protocol. To send HID events over CarPlay use the command requestSiri as described in
requestSiri (page 482).
All accessories supporting the HID feature must comply with the following requirements:
● Unless otherwise specified, the accessory must be capable of generating and receiving all HID usages
declared in the component's HID descriptor.
● Unless otherwise specified, the accessory's declared HID usages must map directly to physical or virtual
control surfaces on a 1:1 basis. For example, a button labeled "Play/Pause" must send a Play/Pause HID
usage and not "Play" or "Pause" usages.
● Unless otherwise specified, physical or virtual control surfaces that generate accessory HID usage reports
must be labeled with appropriate iconography or text that corresponds to the resulting Apple device
behavior. For example, a Play/Pause button must be labeled with the text 'Play/Pause' or a Play/Pause
icon.
● Unless otherwise specified, one accessory HID usage report must be sent in response to each direct user
action on the corresponding physical or virtual control surface. For example, when the user presses a
button, one 'button pressed' usage report must be sent, and a separate 'button released' usage report
must be sent when the user releases the button.
● Accessories must only send HID reports for changes in physical or virtual control surfaces registered in the
HID descriptor.
● Each HID report must contain the correct number of bytes as described in its corresponding HID report
descriptor.
● The accessory must not anticipate or assume corresponding state changes in the Apple device after sending
HID usages. For further explanation, see Presentation of Apple Device Updates (page 61).
● Accessories must not send a HID report if there has not been any change in the state of the control
surface(s). For example, the accessory must never generate a "Play/Pause" event without the user pressing
a dedicated "Play/Pause" button.
581
34. HID (Human Interface Device)
34.1 HID Requirements
An accessory may also send or receive the following iAP2 control session messages:
● DeviceHIDReport (page 845)
● StopHID (page 846)
If accessory identification (see Accessory Identification (page 265)) is rejected due to the Bluetooth HID
component (Table 59-26 (page 816)), the accessory should attempt to identify as a HID over iAP2 accessory
(see HID over iAP2 Requirements (page 582)). The accessory must not attempt to simultaneously support both
HID over Bluetooth transport and HID over iAP2 over Bluetooth.
582
34. HID (Human Interface Device)
34.2 HID Usage
In between the StartHID (page 844) and StopHID (page 846) pairs for a particular component, the accessory
may send one or more AccessoryHIDReport (page 845) messages to the device. Each AccessoryHIDReport (page
845) message must reference a specific HID component in addition to the HID report itself. Similarly, the Apple
device may send one or more DeviceHIDReport (page 845) messages to the accessory with the same parameters.
Note: This section is a Developer Preview and is not intended for use in the development of Proposed
Products or Licensed Products under a MFi License. Although this content has been reviewed for
accuracy, it is not final. Apple is supplying this content to help accessory developers plan for the
adoption of the accessory interface features described herein. This information is subject to change,
and accessories implemented according to this content must be tested with final operating system
software and final documentation before going through self certification.
After receiving the StartNativeHID (page 846) message, an accessory may start HID on its Bluetooth native
transport.
34.3.1 iAP2
1. Verify that the accessory generates and receives all HID usages declared in the component's HID descriptor.
2. Verify that the accessory does not send a HID report if there has not been any change in the state of the
control surfaces (i.e., no polling of HID reports).
583
34. HID (Human Interface Device)
34.3 Test Procedures
3. Verify that if any accessory has physical or virtual control surfaces that generate accessory HID usages, the
controls are labeled with appropriate iconography or text that corresponds to the resulting Apple device
behavior (i.e., a Play/Pause button must be labeled with the text Play/Pause or a Play/Pause icon.
4. Verify HID usages map to physical or virtual controls on a 1:1 basis (e.g. Play button only sends Play
commands, not Play/Pause).
5. Verify that one accessory HID usage report is sent in response to each direct user action on the
corresponding physical or virtual control surface. For example, when the user presses a button, one 'button
pressed' usage report must be sent, and a separate 'button released' usage report must be sent when the
user releases the button.
6. Verify that the following iAP2 control session message(s) are sent or received:
● StartHID (page 844)
● AccessoryHIDReport (page 845)
584
35. HID Assistive Switch Control
The Assistive Switch Control feature permits users to operate Apple devices using one or more switches.
Accessory developers should consider supporting Assistive Switch Control if the accessory is intended for use
by users with special needs who can see the display and manipulate simple switch inputs. If the user cannot
see the display, consider supporting the VoiceOver feature instead.
A maximum of one HID component in an accessory may declare itself to be an Assistive Switch Control, and
the accessory must be intended for use by a user with special needs.
Assistive Switch Controls must have at least one button. Two are recommended. Up to 16 are supported.
● Button 1 must be labeled "Select" or its localized equivalent.
585
35. HID Assistive Switch Control
35.2 HID Assistive Switch Control Usage
If both Button 1 and Button 2 are present, the Apple device will automatically configure the Assistive Switch
Control feature to use the first button to select an onscreen element and only scan through onscreen elements
when the second button is pressed.
If more than two buttons are present, Button 1 and Button 2 are automatically configured and additional
buttons may be mapped to other actions by the user.
USAGE (Button 1) 09 01
COLLECTION (Application) A1 01
USAGE (Button 1) 09 01
COLLECTION (Physical) A1 00
INPUT (Data,Var,Abs) 81 02
586
35. HID Assistive Switch Control
35.4 Test Procedures
...
...
IdentificationInformation
KKK
perialqransportComponentW
<qransportComponentfdentifier> M
<qransportComponentkame> iightning Connector
qransportpupportsiAmOConnection
KKK
iAmOefaComponentW
<efaComponentfdentifier> M
<efaComponentkame> jyCompany Assistive pwitch Control
<efaComponentcunction> Assistive pwitch Control EMxMTF
KKK
IdentificationAccepted
StartHID
<efaComponentfdentifier> M
<sendorfdentifier> MRac
<mroductfdentifier> MMMM
<efaoeportaescriptor> Epee example aescriptorF
AccessoryHIDReport
<efaComponentfdentifier> M
<efaoeport> MP MM E_utton N and _utton O pressedF
AccessoryHIDReport
<efaComponentfdentifier> M
<efaoeport> NM M4 E_utton R and _utton NN pressedF
StopHID
<efaComponentfdentifier> M
587
36. HID AssistiveTouch Pointer
A maximum of one HID component in an accessory may declare itself to be an AssistiveTouch pointer. That
component must be a physical pointing device intended for use by a user with special needs.
The HID report descriptor for an AssistiveTouch pointer must declare support for the HID Generic Desktop
Page and the Mouse usage.
The following requirements apply to the generation of HID mouse reports from the accessory:
● All x and y movements must be reported in increments of 1, proportionally scaled to the physical movement
of the user. If the accessory is a joystick, for example, then a small movement of the joystick must report
a movement delta of 1, but a large movement of the joystick must report a larger movement delta.
● The accessory must send repeated HID pointer movement reports at a constant rate appropriate for the
accessory. The accessory must not perform its own scaling of the report rate; the AssistiveTouch feature
uses its own speed scaler setting for this purpose. If no movement has taken place, the accessory must
send a movement report of 0 in both x and y directions.
● The accessory must generate HID reports for two buttons, one for a touch event and the other for a
contextual menu trigger. Both button down and button up reports must be sent individually and must
match actual user actions on the accessory. When the user presses on the first button, a button1 'down'
report must be sent, and button1 events must not be sent until the user releases the button, after which
a button1 'up' report must be sent.
● The accessory must start sending HID reports to the Apple device as soon as the Apple device sends a
notification to the accessory indicating that the AssistiveTouch cursor has been enabled.
● The accessory must cease sending HID reports to the Apple device as soon as the Apple device sends a
notification to the accessory indicating that the AssistiveTouch cursor has been disabled.
● The accessory must be capable of interleaving pointer movement reports with button up and down reports.
The accessory must let the user hold a button down and move the pointer at the same time.
● The accessory must report relative, not absolute, pointer movement.
588
36. HID AssistiveTouch Pointer
36.2 HID AssistiveTouch Pointer Examples
See Appendix E.10: Report Descriptor(Mouse) in Device Class Definition for Human Interface Devices 1.11
(available from the USB-IF) for a sample HID descriptor.
USAGE (Mouse) 09 02
COLLECTION (Application) A1 01
USAGE (Pointer) 09 01
COLLECTION (Physical) A1 00
USAGE_PAGE (Button) 05 09
USAGE_MINIMUM (Button 1) 19 01
USAGE_MAXIMUM (Button 3) 29 03
LOGICAL_MINIMUM (0) 15 00
LOGICAL_MAXIMUM (1) 25 01
REPORT_COUNT (3) 95 03
REPORT_SIZE (1) 75 01
INPUT (Data,Var,Abs) 81 02
REPORT_COUNT (1) 95 01
REPORT_SIZE (5) 75 05
INPUT (Cnst,Ary,Abs) 81 01
USAGE (X) 09 30
USAGE (Y) 09 31
LOGICAL_MINIMUM (-127) 15 81
LOGICAL_MAXIMUM (127) 25 7F
REPORT_SIZE (8) 75 08
REPORT_COUNT (2) 95 02
INPUT (Data,Var,Rel) 81 06
END_COLLECTION C0
END_COLLECTION C0
589
36. HID AssistiveTouch Pointer
36.3 Test Procedures
...
...
IdentificationInformation
KKK
rp_qransportComponentW
<qransportComponentfdentifier> M
<qransportComponentkame> iightning Connector
qransportpupportsiAmOConnection
KKK
iAmOefaComponentW
<efaComponentfdentifier> M
<efaComponentkame> Assistiveqouch mointer
<efaComponentcunction> Assistiveqouch mointer EOF
KKK
IdentificationAccepted
StartHID
<efaComponentfdentifier> M
<sendorfdentifier> MRac
<mroductfdentifier> MMMM
<efaoeportaescriptor> Epee example aescriptorF
AccessoryHIDReport
<efaComponentfdentifier> M
<efaoeport> M4 MM MM E_utton P pressedF
AccessoryHIDReport
<efaComponentfdentifier> M
<efaoeport> MM MM MM Eko buttons pressedF
StopHID
<efaComponentfdentifier> M
590
37. HID Game Controller
iOS apps may take advantage of accessories that implement one or more HID Game Controller components
via the Game Controller framework. Two controller component types are defined in this specification:
● Form-Fitting Gamepad
● Non Form-Fitting Gamepad
Information on how to create iOS apps that make use of HID Game Controller accessories can be found at
[Link]
troduction/[Link].
Form-fitting controllers must physically enclose the Apple device (in landscape orientation) and allow the
user's thumbs to reach the Apple device's touchscreen. They must also comply with the requirements set forth
in Form-Fitting Accessories (page 167) and Cases (page 487). Specifically, the device's touchscreen must not be
occluded in any way.
If an accessory has multiple physical configurations that would allow it to be both a form-fitting gamepad and
a non form-fitting gamepad, it must terminate the iAP2 connection, re-connect, and appropriately identify
itself to the Apple device whenever it enters a new physical configuration. Such accessories must not always
claim to be a non form-fitting gamepad.
Note: Controllers that claim compatibility with Apple TV (4th generation) must integrate a Game
Controller Module (page 543).
591
37. HID Game Controller
37.1 HID Game Controller Requirements
Non form-fitting controllers must not physically enclose the Apple device and must comply with gamepad
requirements. One accessory may implement up to 4 physically separate non form-fitting controller components.
592
37. HID Game Controller
37.1 HID Game Controller Requirements
Form-fitting controllers can be made for any Apple device supporting this feature such as the iPad mini (see
Figure 37-3 (page 594)).
593
37. HID Game Controller
37.1 HID Game Controller Requirements
Each HID component that declares itself as a game controller must implement a prescribed configuration of
physical control surfaces. All HID reports sent from the controller must occur in response to direct user action,
i.e. depressing one of the control surfaces.
Controllers must not implement additional physical control surfaces other than those required by the gamepad
definition except for the following:
● Hold switch to disable control surfaces and to power off the controller. See Hold Switch (page 604)
● Charging on/off button or switch for a controller with integrated battery that provides power to the Apple
device.
● Button to initiate Bluetooth pairing. See Bluetooth Button (page 606).
594
37. HID Game Controller
37.1 HID Game Controller Requirements
Controller accessories must be serialized, i.e. the SerialNumber parameter in their IdentificationInformation (page
807) message must be unique for a given Manufacturer and ModelIdentifier pairing.
Controllers must sample the state of all control surfaces at a rate of 120 Hz.
When the state of any control changes, the controller must send a complete HID report containing the state
of every control surface to the Apple device. Partial updates are not allowed. Controllers must not send HID
reports if control state has not changed.
Battery powered controllers must be able to operate for a minimum of 20 hours of continuous operation (i.e.,
sending continuous HID reports at the controller sampling rate). 40 hours of continuous operation is
recommended.
Controllers should allow users to adopt comfortable postures during normal use, namely grip, reach, and finger
placement on input buttons. Children and females with small hands (5th percentile), as well as large males
(95th percentile) should be considered during the design process. Apple recommends taking advantage of
resources such as AnthroKids ([Link] the U.S. Army Anthropometry Survey
([Link] and the Civilian American and European Surface
Anthropometry Resource ([Link]
All controllers must be capable of field-deployable firmware updates from Apple devices running iOS and/or
Macintosh computers running OS X.
Controllers must not implement alternate operating modes that emulate keyboards or any other type of Human
Interface Device besides a gamepad.
37.1.1 Gamepad
To support the Gamepad definition, an accessory must implement the following control surfaces:
● Menu button
● Face button group
● Directional pad
● Top left shoulder button (L1)
● Top right shoulder button (R1)
● Bottom left shoulder button/trigger (L2)
595
37. HID Game Controller
37.1 HID Game Controller Requirements
The layout and labeling of the control surfaces must match that of Figure 37-4 (page 597), except in four cases:
● Form-fitting gamepads may position the menu button on either the left or right side of the controller axis.
The right side is recommended.
● Non form-fitting gamepads must position the menu button on the controller axis, with one exception. If
there is a mechanical element along the controller axis, placing the menu button on the right side is
recommended.
● Gamepad joysticks may be swapped vertically with their corresponding face button group or directional
pad.
● Non form-fitting gamepads must also implement a LED array as defined in LED Array (page 603). Form-fitting
gamepads may implement the LED array.
596
37. HID Game Controller
37.1 HID Game Controller Requirements
597
37. HID Game Controller
37.1 HID Game Controller Requirements
Pressure sensitive switches and position encoders must report status using an unsigned n -bit integer, where
n is 8 or more. They must report a value of 0 when not depressed or 2n -1 when fully depressed to their
mechanical limit. They must report values between 0 and 2n -1 inclusive on a linear scale throughout the
control surface's range of motion.
Digital switches must report status using a 1-bit value. They must report 1 when fully depressed to their
mechanical limit and 0 otherwise.
Pressure sensitive switches must be sourced from specific contacts at Apple approved suppliers (see the MFi
Portal for more details). Those suppliers may provide customized designs, or standardized assemblies.
Table 37-1 HID Game Controller pressure sensitive switch mechanical requirements
Position encoders may be implemented using potentiometers, Hall effect sensors, or other means.
[Link] Surfaces
The contact surfaces of the controller (control surfaces, grips, etc.) should be designed for comfort during
extended use.
598
37. HID Game Controller
37.1 HID Game Controller Requirements
The menu button must use a digital switch. The actuation force of the menu button should be 1.2-3.5 N.
Bluetooth controllers must use the menu button to power on the controller, see Bluetooth (page 605).
The button group should be oriented within 5° of the controller axis. All of the button switches must be pressure
sensitive.
Buttons must comply with the layout, color, and labeling as illustrated in Figure 37-6 (page 600) or in Figure
37-7 (page 601).
599
37. HID Game Controller
37.1 HID Game Controller Requirements
The following color definitions are provided as reference for the face button group:
Table 37-2 HID Game Controller face button group color definitions
600
37. HID Game Controller
37.1 HID Game Controller Requirements
Figure 37-7 HID game controller face button group layout (alternate)
The directional pad must report its status using 4 pressure-sensitive switches, one for each cardinal direction
(up, down, left, and right).
Users must be able to smoothly, quickly, and accurately generate all positions within the minimum unit circle
using a directional pad.
The button must implement a raised cross-shaped region that covers each cardinal direction. Each endpoint
of the cross-shaped region must be labeled with a triangle oriented in the corresponding cardinal direction.
The cross-shaped region must be proud of the controller's surface, but the remainder of the button may be
flush or hidden from direct user contact.
The directional pad mechanical design must guarantee that opposing cardinal directions (i.e. up/down or
left/right) cannot be depressed simultaneously.
The directional pad must be oriented within 5° of the controller axis. Directional pads must comply with the
layout, color, and labeling as illustrated in Figure 37-8 (page 602).
601
37. HID Game Controller
37.1 HID Game Controller Requirements
Additionally,
● L1 and R1 on a gamepad must use pressure sensitive switches.
● L2 and R2 on a gamepad must use either pressure sensitive switches or position encoders.
37.1.8 Joysticks
Joysticks must be implemented using one of the following two-axis analog controls:
● Alps RKJXV1220001
● Alps RKJXY
● Alps RKJXU
The joystick must report a full range of movement between the unit circle and unit square using two signed
n -bit integers where n is 8 or more, one for the X axis and one for the Y axis. The joystick should exhibit a
positive centering force about both axes.
602
37. HID Game Controller
37.1 HID Game Controller Requirements
The joystick must rotate to at least 15° and up to 40° or translate at a minimum of 3 mm in all directions. The
force to reach maximum travel in any direction must be between 0.7N and 1.3N. The breakout force to initiate
values greater than (0,0) from rest state must be no greater than 30% of the force at maximum output. The
output values of the joystick must be linearly reported with respect to physical displacement or angular
displacement of the joystick. Extreme sensitivity or sluggishness in response to small control deflections or
force must be avoided.
At rest, the joystick must report (0,0) for the X and Y axes respectively. Additionally, each axis must report a
full range of values between -2n -1+1 and +2n -1-1 inclusive on a linear scale, where n is 8 or more. The maximum
displacement on any given cardinal direction must be symmetrical to its opposite cardinal direction. The joystick
dead zone must be a maximum of 5% of total joystick travel.
Users must be able to smoothly, quickly, and accurately generate all positions within the minimum unit circle
using a joystick.
Note: Joysticks must not 'click' or permit the user to depress the stick to generate an input event.
The LED array must be used to indicate controller state according to Table 37-3 (page 604) with only one LED
state indicated at a time (i.e. Battery Low temporarily overrides the Connected state). The LED array Connected
state is controlled by the Apple device and must map to 4 unsigned 1-bit values (usage IDs 0xFF00-0xFF03) in
the accessory's HID report descriptor. LED array state is not reported to the Apple device.
603
37. HID Game Controller
37.1 HID Game Controller Requirements
1 Error The LED array may be used for temporarily indicating error conditions.
2 Battery Low When powering on with low battery or when battery level drops
(<10%) below 10%, flash LED 1 for 10 seconds at 1 Hz.
4 Pairable When pairable, fade LEDs on and off together at 1 Hz. See
Bluetooth (page 605).
5 Connecting When connecting, fade LEDs on and off at 1 Hz each, cycling from
LED 1 to 4 and back to 1 (i.e. 1 to 4, 4 to 1).
6 Connected Turn on LEDs according to the HID report from the currently
connected Apple device. If no LEDs are set, turn on LED 1. The LEDs
should dim 5 seconds after any change.
7 Charging When charging, fade LEDs on and off at 1 Hz each, cycling from LED
1 to 4 continuously (i.e. 1 to 4, 1 to 4). Keep LED 1 on if battery level
>25%, LED 1-2 on if >50%, and LED 1-3 on if >75%.
Animations should complete before an LED state transition and should not terminate abruptly.
The hold position must be indicated by exposing a red surface when in the hold position. A text label of "HOLD"
in all capital letters may also be used to indicate the hold position. See Labels and Colors (page 599).
The controller may power off if the hold switch in the hold position, but must still be able to charge.
604
37. HID Game Controller
37.1 HID Game Controller Requirements
Controllers with a Bluetooth button must not implement a reset button, see Bluetooth Button (page 606).
37.1.12 Bluetooth
All controllers that utilize the Bluetooth transport must set their Major Device Class to 'Peripheral' and their
Minor Device Class to 'Gamepad'.
In addition to the requirements in Bluetooth (page 344) and HID (Human Interface Device) (page 580), the
controller:
● Should implement HID Native Transport (Bluetooth) Requirements (page 582).
● May support HID over iAP2.
Bluetooth controllers must use the menu button to turn the controller on according to the following behavior:
● Pressing and holding the menu button for 0.6 seconds must power on the controller from an off state.
A pairable mode can also be initiated using the Bluetooth button, see Bluetooth Button (page 606).
The controller must be able to remember at least 5 paired Apple devices. When the controller receives a pairing
request, if it has already remembered its maximum number of paired Apple devices, it must replace the pairing
entry for the least recently connected Apple device.
The controller may implement a mechanism to clear pairing memory using the Bluetooth button, see Bluetooth
Button (page 606).
605
37. HID Game Controller
37.1 HID Game Controller Requirements
● Always accept the most recent connection request it receives from previously paired devices.
The controller may power off if all of the above conditions are met and it does not have an active connection
with an Apple device.
The button must be labeled or visually treated with an official Bluetooth icon that makes its purpose apparent
to the end user.
Pressing and holding the button for 2 seconds must place the controller into a pairable mode.
Pressing and holding both the menu button and Bluetooth button simultaneously for 5 seconds should clear
all saved Bluetooth pairings. This may also function as a hardware reset.
To do so, the controller must identify support for an External Accessory Protocol (see Table 59-11 (page 810))
with the following parameters:
Parameter Value
ExternalAccessoryProtocolName '[Link]'
ExternalAccessoryProtocolMatchAction 1
This External Accessory Protocol must not be used for application data, firmware updates, or any other purpose.
A separate External Accessory Protocol may be declared for these uses. See External Accessory Protocol (page
535).
606
37. HID Game Controller
37.2 HID Game Controller Examples
USAGE (GamePad) 09 05
COLLECTION (Application) A1 01
USAGE (GamePad) 09 05
COLLECTION (Logical) A1 02
USAGE (DPadUp) 09 90
USAGE (DPadRight) 09 92
USAGE (DPadDown) 09 91
USAGE (DPadLeft) 09 93
INPUT (Data,Var,Abs) 81 02
INPUT (Data,Var,Abs) 81 02
// Menu button
607
37. HID Game Controller
37.2 HID Game Controller Examples
INPUT (Data,Var,Abs) 81 02
INPUT (Cnst,Var,Abs) 81 03
// LED array
OUTPUT (Data,Var,Abs) 91 02
OUTPUT (Cnst,Ary,Abs) 91 01
// Left/right joysticks
USAGE (Pointer) 09 01
COLLECTION (Physical) A1 00
608
37. HID Game Controller
37.3 Test Procedures
INPUT (Data,Var,Abs) 81 02
Note: When submitting samples to Apple for self-certification, include the necessary files and
instructions to verify the firmware update mechanism.
609
37. HID Game Controller
37.3 Test Procedures
12. Verify that the accessory does not connect to device "B" and does connect with device "A" and the other
paired devices.
13. Connect the controller to device "A". Initiate a connection from device "C" (or one of the other paired
devices). Verify that the controller disconnects from device "A" and connects to device "C".
610
37. HID Game Controller
37.3 Test Procedures
Menu button √
Directional pad √
Left joystick √
Right joystick √
2. Verify that the layout and labeling of the control surfaces match as shown in Figure 37-4 (page 597) along
with the following exceptions:
a. Form-fitting controllers may position the menu button on either the left or the right side of the
controller axis.
b. Gamepad joysticks may be swapped vertically with their corresponding face button group or directional
pad.
611
37. HID Game Controller
37.3 Test Procedures
3. Verify that all text labels are rendered in at least 10 point font.
4. Verify that label text is black or white for all buttons except the menu button (see Menu Button (page 612))
and face button group (see Face Button Group (page 612)).
5. Verify that the color of labels provides contrast against the surface (black text on light surface or white
text on dark surface).
612
37. HID Game Controller
37.3 Test Procedures
5. Verify that the layout and labeling of the directional pad matches Figure 37-8 (page 602).
[Link] Joystick
1. Using a caliper, verify that the joystick has a circular outline with a diameter of at least 10 mm.
2. Using a caliper, verify that the maximum displacement on any given cardinal direction is symmetrical to
its opposite cardinal direction.
3. Verify that the joystick does not "click" or translate in any axes other than up/down and left/right.
613
37. HID Game Controller
37.3 Test Procedures
614
37. HID Game Controller
37.3 Test Procedures
1. Using ATS 3.4 or greater, verify that the directional pad reports its status using 4 pressure-sensitive switches,
one for each cardinal direction (up, down, left, and right).
2. Using ATS 3.4 or greater, verify that opposing cardinal directions commands (i.e. up/down or left/right)
are not sent while the buttons are depressed simultaneously.
[Link] Joysticks
For each joystick:
1. Using a digital force gauge, verify that the joystick rotates to 30°±10° or translates at a minimum of 1.5
mm in all directions when a linear, horizontal force between 0.7 N and 1.3 N is applied.
2. Using ATS 3.4 or greater, verify that the joystick is implemented as a two-axis analog control using two
signed n -bit integers where n is 8 or more, one for the X axis and one for the Y axis.
3. Using ATS 3.4 or greater, verify that the joystick reports values of 0 for each axis when at rest.
4. Verify that the joystick reports a full range of movement between the unit circle and unit square.
a. Extend the joystick as far as possible in both directions of each cardinal direction (up, down, left, and
right) and verify that the values -2n -1+1 and +2n -1-1 are appropriately sent.
b. Extend the joystick as far as possible in both directions of each intracardinal direction (up-left, up-right,
615
38. HID Headset Remote
Accessories that support the HID Headset Remote feature may interact with Apple devices in a manner that
builds on top of the behaviors enabled by the Headset Remote and Mic feature.
Headset remote components must support the HID (Human Interface Device) (page 580) feature and comply
with all the requirements listed in HID Requirements (page 580).
Headset remotes that send a Volume Down or Volume Up HID button press usage must immediately follow
that usage with the corresponding button release usage even if the user has not released the button yet. The
result is that repeated volume ramping must not occur when the volume up or down buttons are pressed and
held, matching the behavior of Apple headset remotes.
The HID report descriptor for a headset remote must declare support for the HID Consumer and/or Telephony
pages and only send usages from the following tables:
Table 38-1 HID Consumer Page controls for use by headset remotes
616
38. HID Headset Remote
38.2 HID Headset Remote Examples
Table 38-2 HID Telephony Page controls for use by headset remotes
COLLECTION (Application) A1 01
LOGICAL_MINIMUM (0) 15 00
LOGICAL_MAXIMUM (1) 25 01
REPORT_SIZE (1) 75 01
REPORT_COUNT (2) 95 02
INPUT (Data,Var,Abs) 81 02
USAGE_PAGE (Telephony) 05 0B
REPORT_COUNT (1) 95 01
INPUT (Data,Var,Abs) 81 02
REPORT_SIZE (5) 75 05
REPORT_COUNT (1) 95 01
617
38. HID Headset Remote
38.2 HID Headset Remote Examples
END_COLLECTION C0
Each report is one byte, and each bit corresponds to one of the functions. For instance, the following sample
reports communicate that the referenced button has been pressed:
● Volume Up is 0x01
● Volume Down is 0x02
● Center is 0x04
COLLECTION (Application) A1 01
INPUT (Data,Var,Abs) 81 02
END COLLECTION C0
Each report is one byte, and each bit corresponds to one of the functions. For instance, the following sample
reports communicate that the referenced button has been pressed:
618
38. HID Headset Remote
38.2 HID Headset Remote Examples
38.2.3 Headset Remote Example HID Report Descriptor (Telephony and Media
Playback)
The following sample HID descriptor demonstrates how to implement all possible media playback controls
along with the same controls found on the Apple Headset Remote.
LOGICAL_MINIMUM (0) 15 00
LOGICAL_MAXIMUM (1) 25 01
REPORT_SIZE (1) 75 01
REPORT_COUNT (10) 95 0A
INPUT (Data,Var,Abs) 81 02
USAGE_PAGE (Telephony) 05 0B
REPORT_COUNT (1) 95 01
INPUT (Data,Var,Abs) 81 02
REPORT_SIZE (5) 75 05
REPORT_COUNT (1) 95 01
END COLLECTION C0
619
38. HID Headset Remote
38.2 HID Headset Remote Examples
Each report is two bytes. The bits are assigned top-to-bottom (from scan next track to select). For instance, the
following sample reports communicate that the referenced button has been pressed:
● Next Track is 0x0100
● Previous Track is 0x0200
● Mute usage is 0x0400
● Add To Wish List is 0x8000
● Volume Up is 0x0001
● Volume Down is 0x0002
● Center is 0x0004
620
39. HID Keyboard
iOS apps may accept user input from accessories that implement HID Keyboard components in place of the
onscreen keyboard.
Note: Accessory keyboards must not identify themselves as Apple-branded keyboards, e.g. use the
Apple Vendor ID and/or Product IDs.
Accessory keyboard keys that exhibit any of the following behaviors are explicitly prohibited:
● Send anything other than a 'key pressed' or 'key released' for the key that has physically been pressed
● Emulate combinations of other keys (e.g. macros like Command-C for Copy)
● Emulate timed user actions such as 'press-and-hold'
● Send different HID usages depending on the state of another control surface
Each HID component that declares itself as a keyboard must correspond to a physical keyboard on the accessory
that the user uses for tasks that might have otherwise been performed using the Apple device's onscreen
keyboard. All HID usages sent from the keyboard accessory must occur in response to direct user action, i.e.
pressing a key on the keyboard.
Conversely, any accessory that has physical or virtual user controls that appear to be a general purpose keyboard
must implement a keyboard HID component and send corresponding HID usages. Mapping those controls to
other iAP2 messages is grounds for failure to pass self certification.
Keyboards may integrate an LED to indicate the status of Caps Lock. Apple devices do not support any other
keyboard status LEDs. Keyboards must not incorporate any other keyboard status LEDs, with one exception.
Bluetooth keyboards may include a connection status LED.
Mechanical key layout must be based on the ISO/IEC 9995-2, ANSI-INCITS 154-1988, or JIS X 6002-1980 standards.
621
39. HID Keyboard
39.1 HID Keyboard Requirements
If the HID keyboard component is implemented using the HID Native Transport (USB Host Mode), its USB HID
descriptor must set the bCountryCode field to the appropriate country code as defined in Device Class Definition
for Human Interface Devices (HID) Version 1.11, section 6.2.1 HID Descriptor .
If the HID keyboard component is implemented using iAP2, the LocalizedKeyboardCountryCode parameter in
the StartHID (page 844) message must be set to the appropriate country code as defined in Device Class Definition
for Human Interface Devices (HID) Version 1.11, section 6.2.1 HID Descriptor .
The HID report descriptor for a keyboard must declare support for the HID Keyboard/Keypad Page. For efficiency,
the HID report descriptor may declare that it supports alphanumeric HID usages in the Keyboard/Keypad page
which are not sent.
Accessory keyboards must implement individual keys that emit the following HID Keyboard/Keypad page
usages:
Table 39-1 Required HID Keyboard/Keypad Page controls for use by keyboard components
622
39. HID Keyboard
39.1 HID Keyboard Requirements
623
39. HID Keyboard
39.1 HID Keyboard Requirements
624
39. HID Keyboard
39.1 HID Keyboard Requirements
JIS keyboards must also implement additional keys found on the Apple Wireless Keyboard (Japanese). Non-JIS
keyboards must not implement these keys.
Table 39-2 Required HID Keyboard/Keypad Page controls for use by JIS keyboard components
Accessory keyboards may implement individual keys that emit the following HID Keyboard/Keypad page
usages:
Table 39-3 Optional HID Keyboard/Keypad Page controls for use by keyboard components
625
39. HID Keyboard
39.1 HID Keyboard Requirements
Accessory keyboards may implement individual keys that emit the following HID Consumer page usages:
Table 39-4 HID Consumer Page controls for use by keyboard components
626
39. HID Keyboard
39.2 HID Keyboard Examples
Note: Some HID Usages, such as Siri, may only be allowed from authenticated accessories, see
Accessory Authentication (page 261).
USAGE (Keyboard) 09 06
COLLECTION (Application) A1 01
OUTPUT (Data,Var,Abs) 91 02
OUTPUT (Cnst,Var,Abs) 91 03
627
39. HID Keyboard
39.2 HID Keyboard Examples
INPUT (Data,Var,Abs) 81 02
INPUT (Data,Ary,Abs) 81 00
USAGE (Menu) 09 40
USAGE (Play/Pause) 09 CD
USAGE (Mute) 09 E2
USAGE (Volume Down) 09 EA
USAGE (Power) 09 30
INPUT (Data,Var,Abs) 81 02
INPUT (Cnst,Var,Abs) 81 03
END COLLECTION C0
628
39. HID Keyboard
39.3 Test Procedures
...
...
IdentificationInformation
KKK
rp_qransportComponentW
<qransportComponentfdentifier> M
<qransportComponentkame> iightning Connector
qransportpupportsiAmOConnection
KKK
iAmOefaComponentW
<efaComponentfdentifier> M
<efaComponentkame> rp_ heyboard
<efaComponentcunction> heyboard EMF
KKK
IdentificationAccepted
StartHID
<efaComponentfdentifier> M
<sendorfdentifier> MRac
<mroductfdentifier> MMMM
<efaoeportaescriptor> Epee example aescriptorF
AccessoryHIDReport
<efaComponentfdentifier> M
<efaoeport> MM MM MM MM MM MM OM MM EmlayLmause button pressedF
AccessoryHIDReport
<efaComponentfdentifier> M
<efaoeport> MM MM MM MM MM MM MM MM Eko buttons pressedF
StopHID
<efaComponentfdentifier> M
629
39. HID Keyboard
39.3 Test Procedures
5. Has a mechanical key layout based on the ISO/IEC 9995-2, ANSI-INCITS 154-1988, or JIS X 6002-1980
standards.
630
40. HID Media Playback Remote
Accessories that implement HID Media Playback Remote components must support the HID (Human Interface
Device) (page 580) feature and comply with all the requirements listed in HID Requirements (page 580).
Note: Use of the Play/Pause HID usage for the exceptions listed above is not allowed.
Conversely, any accessory that has physical or virtual user controls that map to the media playback remote
HID component must implement a media playback remote HID component and send corresponding HID
usages. Mapping those controls to other iAP2 messages is grounds for failure to pass self certification.
The HID report descriptor for a media playback control must declare support for the HID Consumer Page and
only send usages from the following table:
Table 40-1 HID Consumer Page controls for use by media playback remote components
631
40. HID Media Playback Remote
40.2 HID Media Playback Remote Examples
If a user presses and holds the accessory control surface corresponding to the Scan Next Track or Scan Previous
Track HID usage, Apple devices may scrub forwards or backwards within the current playing media item.
Accessories must not present a separate 'Fast-Forward' or 'Reverse' control surface to the user for the same
feature.
632
40. HID Media Playback Remote
40.2 HID Media Playback Remote Examples
COLLECTION (Application) A1 01
USAGE (Play/Pause) 09 CD
INPUT (Cnst,Var,Abs) 81 03
END COLLECTION C0
...
...
IdentificationInformation
KKK
rp_qransportComponentW
<qransportComponentfdentifier> M
<qransportComponentkame> iightning Connector
qransportpupportsiAmOConnection
KKK
iAmOefaComponentW
<efaComponentfdentifier> M
<efaComponentkame> pteering theel jedia mlayback oemote
<efaComponentcunction> jedia mlayback oemote ENF
KKK
IdentificationAccepted
StartHID
<efaComponentfdentifier> M
<sendorfdentifier> MRac
<mroductfdentifier> MMMM
<efaoeportaescriptor> Epee example aescriptorF
AccessoryHIDReport
<efaComponentfdentifier> M
<efaoeport> MxMN EmlayLmause button pressedF
AccessoryHIDReport
<efaComponentfdentifier> M
<efaoeport> MxMM Eko buttons pressedF
StopHID
<efaComponentfdentifier> M
633
40. HID Media Playback Remote
40.3 Test Procedures
634
40. HID Media Playback Remote
40.3 Test Procedures
7. With shuffle enabled, verify that the Album order is random, but that their tracks respect the order of the
track numbers. On the head unit, set Shuffle all albums to "on".
8. With shuffle enabled, verify that pressing the Next Track button on the head unit shuffles albums.
a. Navigate to Artists.
b. Play all tracks from an Album, then set shuffle Album.
9. Verify Shuffle behavior in each audio / video category.
10. Verify the track metadata on the head unit display matches the track title of the Now Playing track on the
Apple device when audio is set to Shuffle (mixed playlist, Podcasts, Audiobooks).
11. Verify "Repeat One" and "Repeat" All behaviors.
12. Verify "Repeat All" behavior with the first track in the playlist and last track in the playlist.
14. Verify that a track with special characters in song titles (such as Emoji) play and display as expected. Do
note that special characters may be displayed as a substitute character such as an open square.
15. Verify elapsed and remaining track time updates properly on accessory.
17. Verify if you can access the Playlists, Artists and Albums categories and select an audio track to play.
18. Verify a newly created playlist (on the Apple device) is accessible on the accessory.
19. Verify that there are no issues scrolling through long playlists (about 2000 songs) on the accessory.
20. Verify elapsed time shows correctly in long Audiobooks if te accessory supports it (i.e., hours, minutes,
seconds).
21. Verify that when switching from a playlist of 3 tracks to a playlist of 4 tracks that the correct track plays
and that the metadata is correctly displayed.
a. Attach Apple device to head unit.
b. Select a playlist containing 3 tracks.
c. Start playback.
d. On the Apple device, change to a playlist containing 4 tracks and select the last track in the playlist.
e. Verify that the correct track plays and that the metadata is correctly displayed on the head unit.
22. Verify that when switching from a playlist of 4 tracks to a playlist of 3 tracks the correct track plays and
that the metadata is correctly displayed.
a. Attach an Apple device to a head unit.
b. Select a playlist containing 4 tracks.
c. Start playback.
d. On the Apple device, change to a playlist containing 3 tracks and select the last track in the playlist.
635
40. HID Media Playback Remote
40.3 Test Procedures
e. Verify that the correct track plays and that the metadata is correctly displayed on the head unit.
40.3.3 iAP2
1. Verify that each HID component that declares itself as a media playback remote must correspond to a
physical set of media playback control surfaces. There are three exceptions:
● If a media playback remote wishes to start playback immediately upon connection with the Apple
device, it may send the Play HID usage.
● If a media playback remote wishes to start playback immediately upon changing audio sources to
the Apple device, it may send the Play HID usage.
● If a media playback remote wishes to stop playback immediately upon changing audio sources from
the Apple device, it may send the Pause HID usage.
Use of Play/Pause for these purposes is not allowed.
2. Verify that if the accessory sends an AccessoryHIDReport (page 845) to start playback directly after initial
connect, that the accessory sends Play.
3. Press and verify the functionality of all buttons corresponding to HID commands (Play, Pause, Play/Pause,
Scan Next Track, Scan Previous Track, etc.)
4. Verify that a HID media playback remote does not contain prohibited buttons.
5. Verify that the media being played on the Apple device matches the Now Playing metadata on the
accessory.
636
41. Location Information
The location feature provides compatible accessories with a means to provide external Global Navigation
Satellite System (GNSS) information and other sensor data (like speed, gyro) in the form of National Marine
Electronics Association (NMEA) sentences to Apple devices. Apple devices that support this feature can take
advantage of this additional information to augment their built-in location services. For example, some external
Location-enabled accessories can provide more accurate or more frequent position updates. Additionally,
Apple devices can conserve power by using location information from a self-powered external accessory instead
of using on-board positioning technologies.
637
41. Location Information
41.1 Location Information Requirements
Accessories must provide location information to the Apple device in the form of NMEA comma-separated
sentences at a minimum 1 Hz update rate.
All NMEA sentences provided to the Apple device must be NULL terminated.
Note: NMEA sentences supplied to the Apple device must be live data. Accessories that simulate
data are not permitted.
Three custom sentences in NMEA format are available: PASCD, PAGCD, and PAACD. For these sentences, the
recommended sensor update rate is 10-50 Hz. Data may be accumulated in a buffer for up to 1 second.
In this mode, it is recommended that accessories make use of inertial sensor and vehicle sensor technology
and that the GPGGA and GPRMC information provided is derived from GNSS coupled with data from those
sensors (e.g. wheel speed and gyro).
638
41. Location Information
41.1 Location Information Requirements
Latitude data from the accessory must fall within the range of -90 to +90 degrees, and longitude data from
the accessory must fall within the range of -180 to +180 degrees.
NMEA Sentence Fields (page 639) lists the fields of supported NMEA sentences.
In this mode, sensor data provided by the accessory enables the Apple device's GNSS to provide position and
velocity data.
For PAGCD & PAACD, the vehicle coordinate frame is defined as follows:
● X-axis pointing in the forward along-track direction of the vehicle.
● Z-axis pointing down (positive yaw rate is clockwise).
● Y-axis defined by a right-handed convention; positive pitch angle means the vehicle is driving up-hill.
NMEA Sentence Fields (page 639) lists the fields of supported NMEA sentences.
639
41. Location Information
41.1 Location Information Requirements
7 yes Fix Quality indicator (0=Invalid, 1=Valid GPS Fix, 2=Differential GPS Fix, 6=Dead
Reckoned Location)
16 yes Checksum, two characters: the bitwise exclusive OR of all characters in the
sentence between $ and *. All letters in the checksum must be uppercase.
Note: If the GPGGA Fix Quality indicator is 'invalid', the sentence will be discarded by the Apple
device.
640
41. Location Information
41.1 Location Information Requirements
3 yes Data status (A=OK, V=Navigation receiver warning, X=specific for a special case
of CarPlay)
12 no Magnetic variation (E or W)
14 yes Checksum, two characters: the bitwise exclusive OR of all characters in the
sentence between $ and *. All letters in the checksum must be uppercase.
5 no Satellite number
6 no Elevation (degrees)
7 no Azimuth (degrees)
641
41. Location Information
41.1 Location Information Requirements
9 no Satellite number
10 no Elevation (degrees)
11 no Azimuth (degrees)
13 no Satellite number
14 no Elevation (degrees)
15 no Azimuth (degrees)
17 no Satellite number
18 no Elevation (degrees)
19 no Azimuth (degrees)
21 yes Checksum, two characters: the bitwise exclusive OR of all characters in the
sentence between $ and *. All letters in the checksum must be uppercase.
2 yes Heading: the best estimate of the clockwise angle in degrees between True
North (i.e. Geodetic North) and the forward along-track direction of the vehicle
(range 0.0000-359.9999)
4 yes Checksum, two characters: the bitwise exclusive OR of all characters in the
sentence between $ and *. All letters in the checksum must be uppercase.
642
41. Location Information
41.1 Location Information Requirements
Note: It is possible for the GPHDT angle to differ from the vehicle direction of travel as indicated in
the GPRMC message. For example, if the vehicle is moving in reverse, these angles are different by
180 degrees.
3 sensorType char C = combined left and right wheel speed sensors. Other
types not supported.
U = unknown
P = park
D = driving forward
N = neutral
5 slipDetect uint 1 = a wheel speed slippage was detected within the interval
of this data sentence; 0 = no slip was detected
7 timeOffset_i float the time offset in seconds of the ith sensor sample set from
the reference timestamp, with a resolution of two decimal
places (for example, 0.12 seconds)
643
41. Location Information
41.1 Location Information Requirements
3 sampleCount uint the number of sensor samples included in this sentence (1-50)
4 timeOffset_i float the time offset in seconds of the ith sensor sample set from the
reference timestamp, with a resolution of two decimal places
(for example, 0.12 seconds)
8 Checksum hex Two characters: the bitwise exclusive OR of all characters in the
sentence between $ and *. All letters in the checksum must be
uppercase.
644
41. Location Information
41.2 Location Information Usage
3 gValue float reference gravity magnitude in meters per second per second
with a resolution of 5 decimal places (for example, 9.81001
m/s2)
4 sampleCount uint the number of sensor samples included in this sentence (1-50)
5 timeOffset_i float the time offset in seconds of the ith sensor sample set from the
reference timestamp, with a resolution of two decimal places
(for example, 0.12 seconds)
6 xAxisSample_i float ith x-axis sensor gravity reading with a minimum resolution of
4 decimal places (for example, 0.1234 g); this field can be left
empty if not available
7 yAxisSample_i float ith y-axis sensor gravity reading with a minimum resolution of
4 decimal places (for example, 0.1234 g); this field can be left
empty if not available
8 zAxisSample_i float ith z-axis sensor gravity reading with a minimum resolution of
4 decimal places (for example, 0.1234 g); this field can be left
empty if not available
9 Checksum hex Two characters: the bitwise exclusive OR of all characters in the
sentence between $ and *. All letters in the checksum must be
uppercase.
Once the accessory has successfully identified itself, the device will be aware that an external source of location
data is available. When the device is ready to accept location information, it will send a
StartLocationInformation (page 846) message to the accessory detailing what types of location data it will
accept.
645
41. Location Information
41.3 Location Information Examples
Once StartLocationInformation (page 846) has been received, the accessory must send LocationInformation (page
847) messages containing one or more of the specified NMEA sentences. Bundling multiple sentences into one
LocationInformation (page 847) message is recommended. The sentences must be sent to the device according
to the rate specifications in Table 41-1 (page 637).
Once the device no longer needs external location data, it will send a StopLocationInformation (page 848)
message to the accessory, and the accessory must cease sending LocationInformation (page 847) messages.
The accessory must be prepared to start and stop providing location data to the device at any time.
$GPGSV,3,2,11,23,38,285,32,16,17,147,15,11,17,210,34,13,12,268,33*74
$GPGSV,3,3,11,48,45,198,,51,44,156,,46,39,143,*4C
$GPHDT,359.9999,T*0A
646
41. Location Information
41.3 Location Information Examples
$PASCD,1000.001,C,D,0,10,0.00,0.123,0.10,1.123,0.20,2.123,0.30,3.123,0.40,
4.123,0.50,5.123,0.60,6.123,0.70,7.123,0.80,8.123,0.90,9.123*41
10 Hz sensor data sent at 1 Hz while accelerating in reverse from 0 to 10 m/s (1 sentence, 139 characters long):
$PASCD,1000.001,C,R,0,10,0.00,0.123,0.10,1.123,0.20,2.123,0.30,3.123,0.40,
4.123,0.50,5.123,0.60,6.123,0.70,7.123,0.80,8.123,0.90,9.123*57
10 Hz sensor data sent at 1 Hz while accelerating in reverse from 0 to 10 m/s with wheel slippage detected (1
sentence, 139 characters long):
$PASCD,1000.001,C,R,1,10,0.00,0.123,0.10,1.123,0.20,2.123,0.30,3.123,0.40,
4.123,0.50,5.123,0.60,6.123,0.70,7.123,0.80,8.123,0.90,9.123*56
50 Hz sensor data sent at 2 Hz while accelerating forward from 0 to 10 m/s (2 sentences, 304 characters each):
$PASCD,1000.001,C,D,0,25,0.00,0.123,0.02,0.323,0.04,0.523,0.06,0.723,0.08,
0.923,0.10,1.123,0.12,1.323,0.14,1.523,0.16,1.723,0.18,1.923,0.20,2.123,0.22,
2.323,0.24,2.523,0.26,2.723,0.28,2.923,0.30,3.123,0.32,3.323,0.34,3.523,0.36,
3.723,0.38,3.923,0.40,4.123,0.42,4.323,0.44,4.523,0.46,4.723,0.48,4.923*77
$PASCD,1000.501,C,D,0,25,0.00,5.123,0.02,5.323,0.04,5.523,0.06,5.723,0.08,
5.923,0.10,6.123,0.12,6.323,0.14,6.523,0.16,6.723,0.18,6.923,0.20,7.123,0.22,
7.323,0.24,7.523,0.26,7.723,0.28,7.923,0.30,8.123,0.32,8.323,0.34,8.523,0.36,
8.723,0.38,8.923,0.40,9.123,0.42,9.323,0.44,9.523,0.46,9.723,0.48,9.923*73
$PAGCD,20000.001,10,
0.00,,,12.1234,0.10,,,12.1234,0.20,,,12.1234,0.30,,,
647
41. Location Information
41.3 Location Information Examples
12.1234,0.40,,,12.1234,0.50,,,12.1234,0.60,,,12.1234,0.70,,,12.1234,0.80,,,
12.1234,0.90,,,12.1234*7C
50 Hz yaw-rate only (single axis) sensor data sent at 1 Hz, while turning at 12.1234 deg/s (2 sentences, 399
characters each):
$PAGCD,20000.002,25,0.00,,,12.1234,0.02,,,12.1234,0.04,,,12.1234,0.06,,,
12.1234,0.08,,,12.1234,0.10,,,12.1234,0.12,,,12.1234,0.14,,,12.1234,0.16,,,
12.1234,0.18,,,12.1234,0.20,,,12.1234,0.22,,,12.1234,0.24,,,12.1234,0.26,,,
12.1234,0.28,,,12.1234,0.30,,,12.1234,0.32,,,12.1234,0.34,,,12.1234,0.36,,,
12.1234,0.38,,,12.1234,0.40,,,12.1234,0.42,,,12.1234,0.44,,,12.1234,0.46,,,
12.1234,0.48,,,12.1234*43
$PAGCD,20000.502,25,0.00,,,12.1234,0.02,,,12.1234,0.04,,,
12.1234,0.06,,,12.1234,0.08,,,12.1234,0.10,,,12.1234,0.12,,,12.1234,0.14,,,
12.1234,0.16,,,12.1234,0.18,,,12.1234,0.20,,,12.1234,0.22,,,12.1234,0.24,,,
12.1234,0.26,,,12.1234,0.28,,,12.1234,0.30,,,12.1234,0.32,,,12.1234,0.34,,,
12.1234,0.36,,,12.1234,0.38,,,12.1234,0.40,,,12.1234,0.42,,,12.1234,0.44,,,
12.1234,0.46,,,12.1234,0.48,,,12.1234*46
$PAACD,40000.001,9.80665,10,0.00,0.0340,,1.0000,0.10,-0.0106,,
1.0000,0.20,0.0283,,1.0000,0.30,0.0298,,1.0000,0.40,0.0412,,
1.0000,0.50,-0.0302,,1.0000,0.60,-0.0165,,1.0000,0.70,0.0268,,
1.0000,0.80,-0.0222,,1.0000,0.90,0.0054,,1.0000*7B
648
42. Media Library Access
The media library feature allows accessories to download the metadata contents of an Apple device's media
libraries (not the media items themselves) and request playback of media items. The feature is divided into
three subfeatures: information, updates, and playback. Media library information informs the accessory about
available media libraries on the device. Media library updates provide an accessory with an updated view of
the contents of a particular media library. Media library playback allows the accessory to request playback of
one or more items from the media library.
Additionally, accessories must allow the user to access and request playback of items from multiple media
libraries, such as the device's main music library and the library that corresponds to iTunes Radio.
The accessory must implement and declare an iAP2 file transfer session as specified in File Transfer Session (page
795).
649
42. Media Library Access
42.1 Media Library Access Requirements
Additionally, the accessory must not request a full database update using the StartMediaLibraryUpdates (page
850) message more than once during an iAP2 connection. The accessory must be capable of processing
incremental media library updates from the device and persist its media library mirror across connections to
minimize the occurrence of full updates.
All accessories that support the Media Library Updates feature via iAP2 must send or receive the following
iAP2 control session message(s):
StartMediaLibraryUpdates (page 850)
MediaLibraryUpdate (page 852)
StopMediaLibraryUpdates (page 856)
All accessories that support the Media Library Playback feature via iAP2 may also send or receive the following
iAP2 control session message(s):
PlayMediaLibraryCurrentSelection (page 856)
PlayMediaLibraryItems (page 856)
PlayMediaLibraryCollection (page 857)
PlayMediaLibrarySpecial (page 858)
PlayMediaLibraryCurrentSelection (page 856) must only be sent by the accessory in response to a direct user
action, such as pressing a button on the accessory labeled 'iPod' or 'iPhone'. Similarly,
PlayMediaLibraryItems (page 856), PlayMediaLibraryCollection (page 857), and PlayMediaLibrarySpecial (page
858) must only be sent by the accessory in response to a direct user action such as selecting a specific group
of media items, or a media collection, and pressing a 'Play' or 'Select' button on the accessory.
All accessories must not assume that the playback queue is persistent on accessory detach.
Note: Accessories must not send Media Library Playback messages in response to any direct user
actions that map to Media Remote Control HID usages (see HID Media Playback Remote
Requirements (page 631)). For example, if an accessory has a 'Next Track' button, the accessory must
generate a 'Next Track' HID usage when that button is pressed, not a PlayMediaLibraryItems (page
856) message.
650
42. Media Library Access
42.2 Media Library Access Usage
Autonomous generation of these messages without being preceded by direct user action is grounds for failure
to pass self certification. If an accessory wishes to resume media playback upon initial connection to the Apple
device, it must send a Play HID usage as specified in HID (Human Interface Device) (page 580).
Note that Play must not be sent upon connection when the accessory and the Apple device both support
the CarPlay feature. See Session Establishment (page 394).
The accessory must send StopMediaLibraryInformation (page 849) when it stops displaying or making use of
media library information. For example, if an accessory supports multiple audio sources, including an Apple
device, the accessory must stop receiving media library information from the Apple device if the user takes
action to switch to another audio source.
Accessories must be prepared to receive duplicate MediaLibraryUpdate (page 852) messages. In such situations,
the accessory does not need to apply the duplicate update. Additionally, non-actionable update messages,
such as a message that instructs the accessory to delete a media item that is not present in the accessory's
media library, must be ignored by the accessory. Other actions taken by the user, other devices owned by the
user, or other accessories may result in those situations; the accessory must not treat them as error states.
651
42. Media Library Access
42.2 Media Library Access Usage
Accessories that register for media item and/or media playlist property updates via the
StartMediaLibraryUpdates (page 850) message must process media item and/or media playlist deletions when
present in received MediaLibraryUpdate (page 852) messages. Such deletions must be processed immediately
and reflected in any user-visible displays. Accessory selection of a deleted media item or media playlist for
playback after notice of the deletion has been received is grounds for failure to pass self certification.
The accessory must send StopMediaLibraryUpdates (page 856) when it stops displaying or making use of media
library updates. For example, if an accessory supports multiple audio sources, including an Apple device, the
accessory must stop receiving media library updates from the Apple device if the user takes action to switch
to another audio source.
Regardless of whether the accessory sends StopMediaLibraryUpdates (page 856) or disconnects from the Apple
device, the accessory must store the last received MediaLibraryRevision parameter value. When the
accessory next sends StartMediaLibraryUpdates (page 850) to the same Apple device it must set
LastKnownMediaLibraryRevision to that value to avoid having to retrieve a complete media library
update. If the accessory has limited storage capacity it may choose to only retain a media library snapshot
from one Apple device at a time.
Accessories may receive a percent completion of the current set of media library updates from the Apple
device. This may be useful for informing the user of progress when there are a large number of updates from
previous revision. For more information, see the MediaLibraryUpdateProgress parameter in
StartMediaLibraryUpdates (page 850) and MediaLibraryUpdate (page 852).
If an accessory does not recognize the media library type (see Table 59-107 (page 849)), the media library must
be ignored.
Accessories may receive media library updates indicating whether the Apple device's onscreen UI is not
presenting remotely stored media items (such as content from iTunes in the Cloud) in certain situations like
Airplane Mode. Additionally, accessories may choose to be informed whether a particular media item is resident
on the Apple device or not. For more information, see the MediaItemPropertyIsResidentOnDevice and
MediaLibraryIsHidingRemoteItems parameters in StartMediaLibraryUpdates (page 850),
MediaLibraryUpdate (page 852), Table 59-113 (page 853), and Table 59-110 (page 850). Accessories must not
assume that any particular media item is resident on the Apple device until a MediaLibraryUpdate message
has been received from the device explictily indicating that it is resident. If a media library item is resident on
the device, the accessory may choose to indicate that to the user it may be played in situations where the
Apple device may be unable to play other non-resident media library items, such as when the device has poor
network connectivity.
652
42. Media Library Access
42.3 Test Procedures
To start playback of specific media items or a media library collection, the accessory must send
PlayMediaLibraryItems (page 856) or PlayMediaLibraryCollection (page 857), respectively. The library's current
selection will be replaced with the new items or collection contents.
Music, Podcast, Audiobooks and iTunesU media items should not be mixed in the list of items to play using
PlayMediaLibraryItems (page 856).
The number of items that can be specified for playback in the PlayMediaLibraryItems (page 856) message is
bounded by the maximum possible size of an iAP2 message. Accessories should keep the list of media items
to a reasonable length.
To start playback of all songs in the media library, the accessory should use the PlayMediaLibrarySpecial (page
858) message using the AllSongs parameter. The library's current selection will be replaced.
Additionally, accessories that request playback of media items must not anticipate or assume corresponding
state changes by the Apple device. For further explanation, see Presentation of Apple Device Updates (page
61).
653
42. Media Library Access
42.3 Test Procedures
2. Verify that the accessory sends a StopMediaLibraryInformation message when switching to a non-Apple
device source.
654
42. Media Library Access
42.3 Test Procedures
3. Verify that the accessory allows the user to access and request playback of items from multiple media
libraries, such as the device's main music library and the library that corresponds to iTunes Radio.
4. Verify that the PlayMediaLibraryCurrentSelection message is only be sent by the accessory in response to
a direct user action, such as pressing a button on the accessory labeled 'iPod' or 'iPhone'.
5. Verify that the PlayMediaLibraryItems, PlayMediaLibraryCollection, and PlayMediaLibrarySpecial message
are only sent by the accessory in response to a direct user action such as selecting a specific group of
media items, or a media collection, and pressing a 'Play' or 'Select' button on the accessory.
6. Verify that the accessory does not send the Media Library Playback messages in response to any direct
user actions that map to Media Remote Control HID usages. For example, if an accessory has a 'Next Track'
button, the accessory must generate a 'Next Track' HID usage when that button is pressed, not a
PlayMediaLibraryItems (page 856) message.
7. Verify that the accessory does not send Media Library Playback messages without direct user action.
655
43. Musical Instrument Digital Interface (MIDI)
Starting with iOS 4.2.1, some Apple devices provide support for USB Host Mode MIDI. Compatible accessories
can interface directly with iOS apps that make use of the Core MIDI framework.
To support MIDI, accessories must follow the requirements in Universal Serial Bus Definition for MIDI Devices ,
Release 1.0, available at [Link]. Developers should test their accessory designs against the latest OS X
MIDI driver; the application Audio MIDI Setup, in the OS X Applications/Utilities folder, can be used to verify
accessory compatibility.
Every accessory that supports the USB Host Mode MIDI must implement a MIDI Streaming IN endpoint.
656
44. Now Playing Updates
The Now Playing feature enables an accessory to display information about the current "Now Playing" media
source and media item on an Apple device. Media sources include both the built-in Music and Video apps on
Apple devices and certain third-party iOS apps that support the generation of Now Playing metadata (see
MPNowPlayingInfoCenter in the iOS SDK documentation). Accessories must be prepared for the Now Playing
media source and media item to change at any time, whether the accessory requested the change or not.
All accessories that support this feature must demonstrate correct handling of Now Playing information from
the following Apple-developed iOS apps during self certification:
● Music
● Videos
● Podcasts
● iBooks
● iTunes U
If the accessory will register for album artwork associated with the now playing media item, the accessory must
implement and declare a file transfer session as specified in File Transfer Session (page 795). All album artwork
is transmitted to the accessory in JPEG format.
657
44. Now Playing Updates
44.2 Now Playing Updates Usage
The very first NowPlayingUpdate (page 860) message will be sent immediately after the Now Playing feature
is started, and will contain a complete list of media item attributes and playback engine states. All subsequent
messages will be sent only when one or more attributes or states change, and the message will only contain
the new values. Accessories must assume the last reported attribute or state value remains constant until it is
overwritten by a NowPlayingUpdate (page 860) message.
Accessories that interact with iTunes Radio must handle all associated media item attributes (see Table
59-126 (page 861)).
On average, NowPlayingUpdate (page 860) messages will be sent by the Apple device once a second. However,
this interval can vary and must not be relied on to drive accessory behavior such as display updates.
The accessory must send a StopNowPlayingUpdates (page 863) message to the device once it no longer needs
these updates.
658
44. Now Playing Updates
44.3 Test Procedures
● iTunes U
3. If the accessory registers for album artwork, verify that the accessory implements and declares a file transfer
session.
659
45. Power
Accessories that provide power to or draw power from an Apple device must connect to the Apple device
either through an integrated Lightning connector or a cable as described in Cables with USB Connectors (page
63) or Cables with Non-USB Connectors (page 63).
All accessories that do not have the potential for data communication with the Apple device must use a USB
Device Mode connector configuration and provide power to the Apple device. See Connector Pad/Pin
Configuration (page 139) for more details on the USB Device Mode connector configuration. See Providing
Power to the Apple Device (page 661)
Additionally, certain accessory interface features require the accessory to provide power to the Apple device.
Otherwise, accessories may provide power to the Apple device (Providing Power to the Apple Device (page
661)), draw power from the Apple device (Drawing Power From the Apple Device (page 667)), do both (in certain
situations), or do neither (Neither Providing Power nor Drawing Power (page 661)).
660
45. Power
45.1 Power Requirements
Apple strongly recommends providing power to the Apple device whenever possible for the best user
experience.
All accessories that support the Device Power Status feature via iAP2 may also send or receive the following
iAP2 control session message(s):
StartPowerUpdates (page 864)
PowerUpdate (page 864)
StopPowerUpdates (page 866)
Accessory power sources must provide power at all times unless direct user action (button press, power switch,
menu item selection, detach of external power supply, etc.) is taken to put the accessory into an 'off' state.
Failure to provide power at all times may result in the accessory being unable to charge an Apple device whose
battery level is too low for the device to boot and is grounds for failure to pass self certification.
Accessory power sources must establish an iAP2 connection over the Lightning connector and declare their
capability to provide power (see IdentificationInformation (page 807) the PowerProvidingCapability,
USBHostTransportComponent, USBDeviceTransportComponent, and SerialTransportComponent
parameters).
All accessories that support the Accessory Power Source feature via iAP2 must send or receive the following
iAP2 control session message(s):
StartPowerUpdates (page 864)
PowerUpdate (page 864)
StopPowerUpdates (page 866)
PowerSourceUpdate (page 866)
661
45. Power
45.1 Power Requirements
Note: Accessories must not manipulate an Apple device into drawing more power from the external
power source than the device would normally draw when directly connected to the external power
source.
Accessories that draw power from an external power source may inform the Apple device that power is not
available or available at a reduced level (such as from an internal battery) via a PowerSourceUpdate (page 866)
message when the user unplugs the accessory from the external power source (such as a wall socket). Power
to the Apple device must be restored (and a corresponding PowerSourceUpdate (page 866) message must be
sent) when the user re-connects the external power source.
See Integrated USB Receptacles (page 63) and User Supplied Cables and Power Supplies (page 64) for additional
requirements specific to external USB power supplies/cables.
662
45. Power
45.1 Power Requirements
If the AC adapter bridge diodes have large inherent reverse capacitance (greater than 100 pF, as many large
power diodes do), then the net impedance change due to diode switching may be acceptably small; it will not
adversely affect the touch sensor output. In more compact IC designs, however, the chip area of each diode
may be reduced in size and its reverse capacitance may become correspondingly smaller.
To stabilize the impedance of bridge diodes with unacceptably low reverse capacitance, follow the example
shown in Figure 45-1 (page 663). In this example, capacitors C1, C2, C3, and C4 have been placed in parallel
with diodes D1, D2, D3, and D4 to stabilize the bridge impedance. Their values are larger than the inherent
reverse capacitances of the diodes.
Resistors R1, R2, R3, and R4 are optional; if included, they can block noise at very high frequencies, which can
help with EMI compatibility. The suggested values of R1, R2, R3, and R4 shown were chosen to have trivial
levels of impedance relative to the impedances of C1, C2, C3, and C4 at power line frequencies.
C3
R1
R3
C1
D3 D1
D2 D4
C4
R2
R4
C2
Neutral
Table 45-1 Typical component values for an AC adapter diode bridge circuit
Component Value
663
45. Power
45.1 Power Requirements
664
45. Power
45.1 Power Requirements
● All captive cables must short the shields to the accessory's ground path.
Round-trip VBUS with shield shorted to GND at each end 200 mΩ (RGND||SHIELD)
If resistors are used, these resistors must be present on the D+ and D- pins at the time the Apple device is
connected without requiring user action such as moving a switch or pressing a button.
Additionally, all such connectors must supply between 4.9 V to 5.25 V on the VBUS (Device Power) pin when
there is no current being drawn.
Figure 45-2 USB D+/D- resistor networks for power-providing accessory connectors that do not implement iAP2
665
45. Power
45.1 Power Requirements
Note: All resistors used to implement the networks specified in Figure 45-2 (page 665) must have a
tolerance of 1% or better.
Table 45-3 USB D+/D- resistor values for power-providing accessory connectors that do not implement iAP2
Current R1 R2 R3 R4
If a USB vendor request is used, the accessory must enumerate and identify the presence of an Apple device
(see Enumeration (page 706)), then send the vendor request. The vendor request must be sent every time the
Apple device is enumerated by the accessory.
Table 45-4 USB Vendor Request for accessory USB Embedded Host connector that does not implement iAP2 to
communicate available power
wValue see comments Charging current available, expressed as an offset from 500
mA. Must be 500 (1000 mA charging current available), 1600
(2100 mA charging current available), or 1900 (2400 mA
charging current available)
666
45. Power
45.1 Power Requirements
Note: Every Apple device-compatible connector on an accessory that uses D+/D- resistors must
have its own set of resistors. The accessory must be capable of supplying the total current required
when all connectors are in use, regardless of whether the USB-A receptacles are compatible with
Apple devices or not.
If the accessory has standard USB-A receptacles supplying 500 mA in addition to Apple device-compatible
USB-A receptacles, then the following labeling requirements apply:
● The standard USB-A receptacles supplying 500 mA must be labeled using the USB icon.
● USB-A receptacles capable of identifying themselves to an Apple device as supplying 1000 mA must be
labeled, singly or in groups, with the text 'iPhone/iPod'.
● USB-A receptacles capable of identifying themselves to an Apple device as supplying 2100 mA or 2400
mA must be labeled, singly or in groups, with the text 'iPad'.
If the accessory has multiple Lightning connectors with different device compatibilities, then the iPad-compatible
connectors must be labeled with the text 'iPad' unless it is physically impossible to connect an iPad to the
iPhone/iPod compatible connectors.
Pad 5 (Accessory Power) on the Lightning connector can supply up to 100 mA at 2.9-3.4 V ±5% (2.71 V to 3.57
V).
The current drawn by the Apple Authentication Coprocessor does not count towards the current limits. The
Authentication Coprocessor must be put into a sleep state if it is not being used for accessory authentication.
667
45. Power
45.1 Power Requirements
All device-powered accessories must establish an iAP2 connection over the Lightning connector and declare
their maximum power draw during Accessory Identification (see IdentificationInformation (page 807)
MaximumCurrentDrawnFromDevice, USBHostTransportComponent, USBDeviceTransportComponent,
and SerialTransportComponent parameters).
All accessories that support the Device Powered Accessory feature via iAP2 must send or receive the following
iAP2 control session message(s):
StartPowerUpdates (page 864)
PowerUpdate (page 864)
StopPowerUpdates (page 866)
None 0 mA
Serial 5 mA
Bluetooth 0 mA
Accessories must maintain their transport connection to the Apple device while transitioning from Low Power
Mode to Intermittent High Power Mode or vice versa. For example, USB Host Mode accessories must not
simulate a USB disconnect and restart Accessory Identification/Authentication.
668
45. Power
45.2 Power Usage
The Apple device may send PowerUpdate (page 864) messages at any time.
Accessories may send a StopPowerUpdates (page 866) message only if they are no longer providing power to
or drawing power from the Apple device.
The accessory must send a PowerSourceUpdate (page 866) message to the device:
● Within 1 second after Accessory Identification (page 265) has completed successfully. The first
PowerSourceUpdate (page 866) message sent after identification must contain the
AvailableCurrentForDevice and DeviceBatteryShouldChargeIfPowerIsPresent parameters.
● Whenever the accessory power source state changes, for example:
● When power is not available or available at a reduced level (e.g., when the user unplugs the accessory
from the wall socket).
● When power is once again available or the level has increased (e.g., when the user plugs the accessory
back into a wall socket).
669
45. Power
45.2 Power Usage
The device may send PowerUpdate (page 864) messages to the accessory in response to
PowerSourceUpdate (page 866) messages indicating how much current the device intends to draw from the
accessory power source. If the accessory power source is providing more current than the device is drawing
then the accessory may use the extra power for its own purposes.
Accessories supporting Intermittent High Power Mode must include the AccessoryPowerMode parameter
when sending the StartPowerUpdates (page 864) message.
When an Apple device is in USB Host Mode, an attached accessory in Low Power mode may also enter
Intermittent High Power mode upon receipt of any of the following USB events:
Table 45-6 USB Events that permit Intermittent High Power Mode
EA Native Transport The Apple device selects a nonzero bandwidth interface setting
If an accessory receives permission to enter Intermittent High Power Mode via multiple mechanisms, the
highest power limit overall applies.
670
45. Power
45.3 Test Procedures
Similarly, if an Apple device is in USB Host Mode, an attached accessory in Intermittent High Power Mode must
re-enter Low Power Mode within 1 second after all of the USB events that permitted Intermittent High Power
Mode are negated by one or more of the following USB events:
Table 45-7 USB Events that exit Intermittent High Power Mode
EA Native Transport The Apple device selects a zero bandwidth interface setting
Pass/Fail criteria: For every combination of input voltage and output current, the output measured at the
dock connector of the power supplies listed in Table 45-8 (page 671) (for Lightning accessories) and Table
45-9 (page 672) (for non-Lightning accessories) must remain between the minimum and maximum voltages
shown.
1A 4.70 V 5.25 V
671
45. Power
45.3 Test Procedures
1A 4.90 V 5.25 V
Pass/Fail criteria: Periodic and Random Deviation (PARD) on each output pin must be less than 100 mV while
the power supply accessory is loaded to produce the following output currents: 0, 250, 500, 700, 1000, 1500,
2100, and 2400 mA. The accessory should be tested at all currents up to and including the maximum current
it supports.
672
45. Power
45.3 Test Procedures
● In all tests the load slew rate must not be less than 100 mA/usec.
The frequency of change must be set to give the most readable deviation and settling times. If the accessory
is a car charger, the input voltage must be 12 V DC. No load capacitors may be used to stabilize the output.
Pass/Fail criteria: With a decoupling capacitor of 10 uF and an ambient temperature of 25 °C, the power supply
accessory output, as measured at the dock connector, must not undershoot below the minimum output voltage
or overshoot above the maximum output voltage for each type of power supply listed in Table 45-8 (page 671)
and Table 45-9 (page 672)
Pass/Fail criteria: The accessory's power supply must survive the repeated applications of the input voltage
surge with no component damage. Voltages and logic signals must remain within specification limits during
and after the line transients (making it a "transparent surge"). Loss of function or performance must not occur.
Permanent damage must not occur. A fuse opening is a failure.
673
45. Power
45.3 Test Procedures
Pass/Fail criteria: The car charger output, as measured at the dock connector, must not undershoot below
4.75 V or overshoot above 5.25 V.
Pass/Fail criteria: The following measurements must all be within the limits stated:
1. Turn-on delay: The car charger output must settle to a value between 4.75 and 5.25 V within 4 seconds
after the DC input is applied.
2. Output rise time: The time between 10% and 90% of the nominal output voltage must be ≤ 20 ms.
3. Overshoot: The output voltage overshoot upon application or removal of the input voltage must be less
than 10% of the nominal voltage.
4. Voltage ramp: There must be a smooth and continuous ramp of the DC output voltage from 10% to 90%
of its final value within a range of 4.75 to 5.25 V, while the output is loaded as specified above under "Test
conditions." Voltages of opposite polarity must not be present on the output at any time during turn-on
or turn-off.
Equipment Required
● Programmable DC load
● USB break out board
● Digital multimeter
Load Test
1. Set the programmable DC load to the appropriate load.
● For accessories that claim compatibility with iPhone/iPod, set the DC load to 1.0 A.
● For accessories that claim compatibility with iPad, set the DC load to 2.1 A.
674
45. Power
45.3 Test Procedures
2. Connect the USB break out board to the accessory's USB-A receptacle.
3. Configure the digital multimeter to measure voltage, and connect it to the USB break out board at VCC
and GND.
4. Connect the DC load to the USB break out board at VCC and GND.
5. Read the voltage from the digital multimeter.
● For accessories that claim compatibility with iPhone/iPod, the voltage must be higher than 4.90 V.
● For accessories that claim compatibility with iPad, the voltage must be higher than 4.97 V.
675
45. Power
45.3 Test Procedures
If the accessory uses the USB Host Mode transport and is a MIDI device, verify that the accessory does not draw
more than 100 mA current from the Apple device when the Apple device starts polling a MIDI Streaming IN
endpoint.
If the accessory uses the USB Host Mode transport and is a MIDI device, verify that the accessory returns to
Low Power Mode with 1 second after the Apple device stops polling a MIDI Streaming IN endpoint.
676
45. Power
45.3 Test Procedures
If the accessory uses the USB Host Mode transport and supports an EA protocol session (Over iAP2 or Native),
verify that the accessory does not draw more than 100 mA current from the Apple device when the EA protocol
session is active.
If the accessory uses the USB Host Mode transport and is an Audio device, verify that the accessory does not
draw more than 100 mA current from the Apple device when the Apple device selects a nonzero bandwidth
interface setting.
If the accessory uses the USB Host Mode transport and is an audio device, verify that the accessory returns to
Low Power Mode with 1 second after the Apple device selects a zero bandwidth interface setting.
Verify that, if drawing power from the Apple device, the accessory does not charge its battery.
If the accessory implements an iAP2 connection that both draws power from a wall socket and draws current
from the Apple device, verify that a PowerSourceUpdate (page 866) message is sent when the unplugged
accessory is plugged back into power.
1. Connect the accessory and the Apple device to ATS.
2. If necessary, turn on the accessory.
3. Unplug the accessory from its power source.
4. Reconnect the accessory to its power source. In ATS, verify that the iAP2 PowerSourceUpdate (page 866)
message is sent from the accessory.
If an accessory is self-powered, draws power from an external power supply, and implements an iAP2 connection
that supplies power to the Apple device only when connected to that external power supply, then verify that
an appropriate PowerSourceUpdate (page 866) message is sent both when connected and disconnected from
the external power supply.
1. Confirm the self-powered accessory is not connected to an external power source.
2. Connect the accessory and the Apple device to ATS.
3. Confirm accessory sends a PowerSourceUpdate message with parameters: AvailableCurrentForDevice =
0; DeviceBatteryShouldChargeIfPowerIsPresent = YES.
4. Connect the accessory to an external power source.
5. Confirm accessory sends a PowerSourceUpdate message with parameters: AvailableCurrentForDevice =
<See USB Receptacle Load Test (page 674)>; DeviceBatteryShouldChargeIfPowerIsPresent = YES.
6. Disconnect the external power source.
7. Confirm accessory sends a PowerSourceUpdate message with parameters: AvailableCurrentForDevice =
0; DeviceBatteryShouldChargeIfPowerIsPresent = YES.
677
45. Power
45.3 Test Procedures
None 0 mA
Serial 5 mA
Bluetooth 0 mA
678
45. Power
45.3 Test Procedures
● For 30 pin/Lightning accessories providing 1.0 A charging, if the VBUS drops below 4.70 V, the test is
considered a failure.
● For 30 pin/Lightning accessories providing 2.1 A charging, if the VBUS drops below 4.50 V, the test is
considered a failure.
● For USB receptacle accessories providing 1.0 A charging, if the VBUS drops below 4.90 V, the test is
considered a failure.
45.3.5 Charging
Verify that the charging voltages are within specification if accessory power can be turned off. (Either 0 V or
4.75 V to 5.25 V.)
● Plug in accessory to wall outlet (if necessary).
● Turn off accessory power (if necessary).
● Attach ATS to the accessory.
679
46. Serial
The Serial transport may make sense for low-cost accessories that do not need to transmit audio, or for
device-powered accessories which emphasize low power draw over high data transmission rates. Otherwise,
the USB Host Mode transport is recommended.
Apple devices support serial communication based on the RS-232 serial specification with the exception of
signaling levels. For Apple devices, a mark is 2.500 V through 3.57 V and a space is 0 V through 0.8 V.
Table 46-1 Serial transport mark and space levels for Apple devices
Accessories must communicate over the serial transport at 57600 bps and maintain their baud rates within
±2% of the chosen rate over the entire temperature range of the accessory. Accessories must not change baud
rate once a Serial communication has started.
The accessory must not rely on the Apple device to hold the Device TX level to the mark state when the Serial
transport is idle. When idle, Device TX line must be pulled up to Accessory Power through a 100 kΩ resistor.
Accessories that use an open-collector or open-drain UART driver on Accessory TX must include a pull-up
resistor to Accessory Power. The pull-up resistor value must be chosen to meet the baud rate requirements
described above. The maximum mark voltage must be measured with the Apple device not connected, and
mark signals must be sent only after Accessory Power goes high.
680
46. Serial
All serial communications use 8 data bits, no parity bits, and one stop bit (8-N-1). Serial hardware flow controls
(RTS/CTS and DTR/DSR) are not used and will be ignored by the Apple device. In addition, the accessory must
not use software flow control (XON/XOFF). The accessory must not use bit averaging to produce a mean bit
rate not directly achievable from its system clock. All bits transmitted by the accessory must have the same
nominal duration.
681
47. Siri
To receive Siri status events, the accessory must send the AT+XAPL command after making a successful HFP
Service Level Connection (SLC) to the Apple device. The accessory must send an AT+XAPL command first,
before sending any of the additional Siri-specific commands described below.
Initiator: accessory
Format: AT+APLSIRI?
Response: +APLSIRI:value
Defined Values:
● 0 = Siri is not available on this platform.
● 1 = Siri is available and enabled.
● 2 = Siri is available but not enabled.
682
47. Siri
47.3 Initiating a Siri Session
Format: +APLSIRI:value
Defined Values:
● 1 = Siri is available and enabled.
● 2 = Siri is available but not enabled.
+APLSIRI:2
kotify that piri was disabled
by sending unsolicited HAmipfofWO
Esoice Control is active insteadF
+APLSIRI:1
kotify that piri was enabled
by sending unsolicited HAmipfofWN
683
47. Siri
47.3 Initiating a Siri Session
While a Siri session is active, the accessory must let the user continue the conversation and ask follow up
questions within the current context. In order to do so, the accessory must be able to send an AT+BVRA=1
command to the Apple device even after Siri has been already activated and before +BVRA:0 is received.
Figure 47-2 (page 684) shows an overview of the interaction when Siri is triggered from the accessory, the
running session was continued twice and once Siri was finished, the device dismissed the session.
AT+BVRA=1
ptart a piri session by sending AqH_soA=N
OK
ecm pCl connection is open
AT+BVRA=1
Continue a piri session by sending AqH_soA=N
OK
AT+BVRA=1
Continue a piri session by sending AqH_soA=N
OK
+BVRA:0
piri session finishesX notify by sending H_soAWM
ecm pCl connection is closed
684
47. Siri
47.3 Initiating a Siri Session
+BVRA=1
ptart a piri sessionX sending H_soA=N to notify
ecm pCl connection is open
+BVRA=0
bnd a piri sessionX sending H_soA=M to notify
ecm pCl connection is closed
685
47. Siri
47.4 Siri Eyes Free Mode
AT+BVRA=1
ptart a piri session by sending AqH_soA=N
OK
ecm pCl connection is open
AT+BVRA=1
Continue a piri session by sending AqH_soA=N
OK
AT+BVRA:0
bnd a piri session by sending AqH_soA=M
OK
ecm pCl connection is closed
The Apple device will listen for the HFP AT command AT+APLEFM to enable or disable Eyes Free mode.
This command is used by the Apple device to modify Siri responses that contain visual information or require
user interaction. Suitable audio feedback and voice commands will be available to the user based on the Siri
use case that was initiated.
Eyes Free mode is disabled by default. Once the accessory has enabled Eyes Free mode, it remains enabled for
all subsequent Siri sessions initiated from the accessory until the accessory disables it or the Bluetooth connection
is disconnected.
Initiator: accessory
Format: AT+APLEFM=value
Response: OK
686
47. Siri
47.5 Improving Voice Recognition
Defined Values:
● 0x00 = Disable Eyes Free mode.
● 0x01 = Enable Eyes Free mode.
● 0x02-0xFF = reserved
Example: AT+APLEFM=1
To provide the best possible audio quality as Siri input, the accessory must observe the following
recommendations:
● Echo cancellation and noise suppression (EC/NR): Directional microphones and linear beamforming with
microphone arrays giving improved SNR are recommended. Linear echo cancellation for reducing unwanted
audio sources (such as audio output from the system) without having any other effect on the speech signal
are also recommended. However, single channel noise reduction methods (such as spectrum subtraction)
must not be applied, as they will be detrimental to the speech recognition accuracy. Similarly, automatic
gain control, residual echo suppression and attempts to blank out non-speech periods in the waveform
must not be applied.
● Signal gain: When adjusting signal levels, the accessory must avoid artifacts, dropouts, and clipping in all
circumstances. Automatic Gain Control is not recommended. If the accessory adjusts signal gain, the gain
must be held constant across each spoken utterance. The nominal level measured at the uplink output of
the accessory must be A-weighted -30 dB ±2 dB root-mean-square (RMS), expressed in units relative to
full-scale (dBFS(A)). Alternatively, the nominal level may be 13 dB ±2 dB SLR if using the ITU measurement
procedure.
● Signal-to-noise ratio (SNR): An average SNR greater than 20 dB is recommended. Below 20 dB, recognition
rates will be impacted.
● Reverberation: Maintaining RT60 time at less than 200 msec is recommended.
687
47. Siri
47.6 Optimizing the Siri Experience
Vehicles with Bluetooth-enabled infotainment systems can also enable Siri Eyes Free Mode during initialization.
This is detailed in Figure 47-6 (page 689).
688
47. Siri
47.7 Common Siri Applications
AT+XAPL=ABCD-1234-0001,8
bnable custom piri commands
+XAPL=iPhone,8
Acknowledge reception
AT+APLSIRI?
lbtain piri availability
+APLSIRI=2
oespond with piriDs availabilityI
eKgK Eavailable and enabledF
AT+XAPL=ABCD-1234-0001,8
bnable custom piri commands
+XAPL=iPhone,8
Acknowledge reception
AT+APLSIRI?
lbtain piri availability
+APLSIRI=2
oespond with piriDs availabilityI
eKgK Eavailable and enabledF
AT+APLEFM=1
bnable piri byes cree mode
OK
The accessory must not force a change in the playback state after a Siri session is ended. If music was playing
before Siri was started, it must continue playing, if it was paused, it must remain paused.
689
47. Siri
47.8 User Interaction with Siri Eyes Free in a Vehicle
After Siri starts music playback the accessory must set its current audio route to match the audio source,
depending on how audio is being received from the Apple device (via Bluetooth or by a wired connection).
The available media playback notifications depend on the audio route being used:
● For a Bluetooth audio route, use the approach described in Notifications (page 351).
● For a wired audio route, use the iPod Accessory Protocol, specifically the iAP2 Now Playing Updates (page
657) feature, iAP1 Display Remote Lingo, or iAP1 Extended Interface Mode.
The Apple device will notify the accessory to play turn-by-turn directions only over Bluetooth. Detailed
information on how to distinguish between music playback and turn-by-turn notifications is available in
Notifications (page 351).
690
47. Siri
47.8 User Interaction with Siri Eyes Free in a Vehicle
(*) If the accessory wishes to indicate that Siri is active, it must do one of the following:
● Display the word 'Siri' (as capitalized) with no additional text or icon.
● Use generic text or icon that does not resemble the Siri microphone icon and does not infringe Apple
trademarks.
(**) If the vehicle is equipped with steering wheel controls, a dedicated button or a long-press on a button on
the vehicle's steering wheel is required to start, continue and end a Siri session. If no steering wheel controls
are available, a soft button must be available within the in-vehicle user interface to start, continue or end a Siri
session.
691
47. Siri
47.9 Enabling/Disabling Siri from the Apple Device
When a vehicle enables Siri Eyes Free mode, the Apple device will not display any onscreen Siri content. If the
device was locked at the time the Siri session was activated from the vehicle, it will remain locked and the
screen will not turn on. If the user unlocks or manually activates the device while in an Eyes Free Session there
will be a notification that the device is in an active Siri session but there will be no visual Siri content displayed.
692
47. Siri
47.10 Test Procedures
For the following spoken tests, the speaker should ideally be a native speaker of North American English. If
the tester's native language is not English, set Siri to your native language and translate the phrases to be
spoken below into your native language.
[Link] General
1. Pair and establish a Bluetooth Handsfree Profile (HFP) connection between the iPhone and the head unit.
Activate Siri from the vehicle steering wheel button (e.g. by press hold):
a. Observe that the iPhone screen remains inactive after a Siri session has started (a purple status bar
will be visible on the Apple device if the screen is activated manually).
b. Ensure that Siri opening chime is heard completely through the vehicle speakers.
c. Observe a visual notification in the in-car User Interface (UI) that a Siri session is active (textual
notification, on-screen UI, etc.).
2. Activate Siri from the vehicle steering wheel button and say "Send a message to Peter. How are you?".
While still saying the message press the vehicle steering wheel button to cancel Siri (e.g. by press hold):
a. Ensure that the Siri closing chime is heard completely through the vehicle speakers.
b. Ensure the iPhone screen remains inactive (if manually activated, the purple bar on the phone will
disappear).
c. Verify that the in-car UI for Siri interaction dismisses and the head unit resumes the state before Siri's
interaction.
3. Activate Siri from the vehicle steering wheel button and say "How is the weather in San Francisco?". Wait
for Siri to respond with the weather forecast. Once the weather forecast is complete, resume Siri from the
vehicle steering wheel button and say "What about New York?":
a. Observe that the purple bar is still active on the phone.
b. Listen for the Siri opening chime and closing chime.
c. The vehicle UI should be displaying an on-going Siri session.
d. Verify that Siri responds with the weather forecast for New York.
4. In case the vehicle UI offers on-screen controls to activate/cancel/resume Siri, repeat steps (1) to (3) for all
on-screen controls.
5. Activate Siri from the steering wheel button and say "What's the time". Listen to the current time and do
not interact with Siri or the iPhone. After 5 seconds have expired:
693
47. Siri
47.10 Test Procedures
694
47. Siri
47.10 Test Procedures
3. Start Siri from the vehicle's steering wheel button and say "Search the web for polar bears". Verify that
Eyes Free mode is on and that this use case is blocked by Siri. Note: In some implementations the vehicle
has to be in motion before Eyes Free is activated by the car kit.
4. Start Siri from the vehicle's steering wheel button and say "What is the current time in Munich?". After Siri
has answered but before ~5 seconds have elapsed, resume Siri (e.g. by a short press on the steering wheel
button) and verify that Siri is initiated again. Say "What about San Francisco?". Repeat (with a different
city) and verify that this can continue indefinitely as long as you short press on the steering wheel button
within 5 seconds of the last response.
[Link] Call
1. Activate Siri and call a contact with more than one phone number (home and mobile). Wait for Siri's
response to ask for which phone number to call. Answer with "home". Verify that call transition is handled
correctly by the head unit and any Siri UI displayed on the vehicle screen is dismissed.
2. While iPhone music is playing, activate Siri and say "Call insert contact name to call". Verify that call
transition is handled correctly by the head unit. Verify that iPhone music playback resumes after the call
has been answered and terminated on the far end. Verify that the Siri in-car UI is dismissed and the head
unit goes back to its initial state.
695
47. Siri
47.10 Test Procedures
3. While iPhone music is playing, start Siri and say "Call insert contact name to call". Verify that call transition
is handled correctly by the head unit. Verify that iPhone music playback resumes after the call has been
answered and terminated on the near end (i.e. on the head unit). Verify that the Siri in-car UI is dismissed
and the head unit goes back to its initial state.
4. While in a Siri session, receive an incoming call on the head unit. Verify that head unit handles call-signaling
correctly and transitions to phone UI once the call has been accepted. Verify that the Siri in-car UI is
dismissed and the head unit goes back to its initial state.
696
47. Siri
47.10 Test Procedures
8. Pause music playback on the head unit (via iAP commands). Start Siri and say "Call insert contact name
to call". Verify that call transition is handled correctly by the head unit. Verify that iPhone music playback
remains paused after the call has been answered and terminated on the far end. Verify that the Siri in-car
UI is dismissed and the head unit goes back to its initial state.
697
48. USB
Apple devices support both USB Device Mode (see USB Device Mode (page 706)) and USB Host Mode (see USB
Host Mode (page 712)) transports. USB Host Mode is recommended. Most, if not all, future development of
accessory interface features will occur on the USB Host Mode transport.
Accessories should use tunable USB PHYs to maximize their chances of passing the tests.
This test procedure must be performed using the configuration of a typical user. It must not be performed:
698
48. USB
48.3 Test Procedures
● On an incomplete system.
● On development hardware.
● Using custom connectors.
● Using short cables.
● Using a boosted signal.
These tests must be run by product developers or 3rd party test labs. The full test report must be submitted
in order to obtain certifications.
A proper interface to the USBIF-SMA board must be used to take eye diagrams.
All measurements must be done at the USB-A receptacle at test point TP2 near the host as shown in Figure
48-2 (page 700). See the USB 2.0 specification.
699
48. USB
48.3 Test Procedures
The transmit waveform from the USB host/hub at TP2 must meet the requirements in Figure 48-3 (page 700)
and Table 48-1 (page 701) (see the USB 2.0 specification). Table 48-2 (page 701) is a summary of pass/fail criteria
for a given host under test.
Level 1
+ 400mV
Differential
0 Volts
Differential
- 400mV
Differential
Level 2
700
48. USB
48.3 Test Procedures
Point 1 0V 7.5% UI
Point 2 0V 92.5% UI
SI_HS_04 Jitter 50 ps
The host must continuously transmit a test packet (see Table 48-3 (page 701)) within inter-packet gap limits of
88 bits and < 125 usec.
JKJKJKJK * 9 00000000 * 9 72
JJKKJJKK * 8 01010101 * 8 64
701
48. USB
48.3 Test Procedures
JJJJKKKK * 8 01110111 * 8 64
[Link] Test Procedure (HS Signal Quality EL_2, EL_3, EL_6, EL_7)
Perform the following steps:
1. Connect Host to USBIF-SMA board, set switch in "Init" mode.
2. Connect Scope differential probes to USBIF-SMA board with proper orientation.
3. Set the SW2 on Allion HSEHET board to position "4" Test Packet PID (0x0104).
4. Connect the Allion HSEHET board to the USBIF-SMA board. Wait 15 sec.
5. Set the switch on USBIF-SMA board to apply terminations.
6. Run the TDSUSB application on scope with near end setting.
7. Capture waveform and analyze with TDSUSB application.
8. Save the HS eye diagram, waveforms and USBIF report.
Accessories supporting USB Role Switch must be tested in both USB Host Mode and USB Device Mode. The
accessory should transmit test packets for 5 minutes, role switch, and transmit test packets for 5 minutes again.
An indicator such as an LED can be helpful to indicate this change.
HostName_Model#_FirmwareVersion_HSEHET_Date_PASS/FAIL_MFi_Report.html
Accessories supporting USB Role Switch must submit separate reports corresponding to USB Device Mode and
USB Host Mode.
702
48. USB
48.3 Test Procedures
Testing must be done at TP2 at the point where host provides a USB-A receptacle. The host must qualify the
FS USB TDSUSB compliance mask. See Figure 48-4 (page 703) and Table 48-4 (page 704).
703
48. USB
48.3 Test Procedures
The FS eye diagram must be taken at TP2 while the FS transmitter is sending SOF packets to the device. See
Start of Frame Packet (SOF) (page 704). The device must fully enumerate with the host for SOF packets to be
present.
704
48. USB
48.3 Test Procedures
The USB host must be connected to the device and an FS adjacent trigger device must be connected to the
scope USB bus. Channel connections are as follows:
● Channel 1: Apple device USBDP
● Channel 2: Apple device USBDM
● Channel 3: FS adjacent trigger device USBDP
The TDSUSB2 application running on compliance scope is configured for above channel settings and full speed
testing.
HostName_Model#_FirmwareVersion_FSSQ_Date_PASS/FAIL_MFi_Report.html
705
49. USB Device Mode
When this transport is active, the accessory is a USB host and the Apple device is a USB device. USB Device
Mode is not recommended for most accessories as the only features it supports are iAP2, Digital Audio (2
channel output only), and Power (to device only).
If the accessory integrates a USB-A receptacle that in turn connects to the Apple device via a detachable cable,
a valid Test ID issued by a USB-IF authorized lab (see [Link] must
be submitted to Apple as part of the self-certification audit process.
49.2 Power
All accessories that connect to an Apple device in USB Device Mode must provide power to the device as
specified in Power (page 660).
49.3 Enumeration
The initialization and configuration of an attached USB device is specified in the USB 2.0 specification. This
specification does not cover this topic in detail, but instead provides information specific to Apple devices. To
distinguish an Apple device in USB Device Mode, the accessory must check the device descriptor of attached
USB devices for the following fields:
● Vendor ID = 0x05AC
● Product ID = 0x12nn
706
49. USB Device Mode
49.4 Connecting Multiple Apple Devices to a Mac
Note: Accessories must not attempt to distinguish between different types of Apple devices based
on the least significant byte of the Product ID. Additionally, accessories must not use any other aspect
of the device descriptor, such as number of configurations, interfaces, of endpoints, to determine
whether an Apple device is connected. Use of additional parameters will cause the accessory to fail
self certification immediately.
707
49. USB Device Mode
49.5 iAP2 Configuration
Device Descriptor
bNumConfigurations = 2
OR
Interface Descriptor
bNumEndpoints = 2
bInterfaceClass = Mass Storage Device Class
Note: The Apple device USB isochronous audio data endpoint descriptor bmAttributes field
erroneously returns the Synchronization Type field (D3:2) as b00 (no synchronization) instead of the
correct value, b11 (synchronous). Apple devices support synchronous data transfers, so accessories
must override these attribute bits. The erroneous b00 value is retained for backwards compatibility
with older Apple device accessories.
The Apple device HID interface utilizes several vendor-specific HID reports, some of which are used to transport
data from the accessory (output reports) and some of which are used to transport data to the accessory (input
reports). To send data to an Apple device, the accessory must choose one or more appropriately sized HID
reports in which to embed the iAP2 link packet and send them to the Apple device HID interface using USB
SetReport commands. The Apple device reassembles the iAP2 link packet and processes it. The process is
repeated in reverse when the Apple device sends responses or iAP2 link packets to the accessory. In this case,
the data is sent on an interrupt endpoint associated with the HID interface.
The different HID report sizes, endpoint requirements, and particulars are all described in the USB descriptors
that accompany the interface.
708
49. USB Device Mode
49.6 HID Interface
Note: Accessories must always request and parse the HID report descriptor each time an Apple
device is connected or the accessory resets USB, because the HID Report ID and size descriptions
may change.
The HID Report ID indicates the type of report and implies the size of the report. Every report of a given type
is the same size. The Apple device specifies several different report types. The USB host must analyze the HID
report descriptor of the Apple device at runtime to determine which Report ID corresponds to the most
appropriate report type for each transfer. Note that the HID report descriptor may change in future Apple
devices.
Usage of a HID Report ID is defined by the USB specification and is not specific to Apple devices, in contrast
to the LCB and the rest of the payload.
The link control byte provides a mechanism for grouping sets of reports and is used by the HID interface to
manage the data flow.
709
49. USB Device Mode
49.6 HID Interface
Bit 0 Continuation 0 indicates that this HID report is the first in a set of one or more reports.
This also implies that any previous sets are completed. Any incomplete
iAP packets received prior to the arrival of this report are flushed and
lost. 1 indicates that this report is not the start of a set, but is a
continuing part of a set.
Bit 1 More to Follow 0 indicates that this report is the last in a set. Any following reports
must be part of another set. 1 indicates that the current report set is
not yet complete and there is at least one more report expected.
In general, iAP packets can be packed into HID reports in any manner, given the following limitations:
● All unused space within any HID report must be set to 0x00.
● If there is more than one iAP packet in the same HID report, there must be no unused space between
them.
● If an iAP packet is split across multiple HID reports, all component reports must be in the same logical set
of reports.
Zero-filled space within HID report that is not part of an iAP packet
710
49. USB Device Mode
49.7 Test Procedures
711
50. USB Host Mode
USB Host Mode is recommended for all new accessory designs other than simple chargers and charge/sync
cables. When this transport is active, the Apple device is a USB host.
Apple devices are capable of functioning as either a USB 2.0 High Speed or Full Speed host. Unless otherwise
overridden in this specification, the accessory must comply with the USB 2.0 specification, plus any applicable
device class-specific USB specifications that are available at [Link]
712
50. USB Host Mode
50.1 iAP2 Interface Descriptor
Note: Any iAP2 or EA native USB data being sent by the accessory which is an exact multiple of the
USB endpoint's maximum payload size must be followed by a USB zero length packet (ZLP).
713
51. USB Role Switch
Some Apple devices can enter USB Host Mode from USB Device Mode after receiving a specific USB Vendor
Request. Accessories that are normally USB hosts when not connected to an Apple device may choose to
implement USB Role Switch and take advantage of features that are only available to USB Host Mode accessories
while using a standard USB to Lightning cable.
714
51. USB Role Switch
51.2 USB Role Switch Usage
Figure 51-1 USB Role Switch Custom Vendor Request (Apple device is USB Device, Accessory is USB Host)
The sequence of events that takes place when an accessory is connected to an Apple device is as follows. For
Steps 1-5, the accessory is in USB Host Mode and the Apple device is in USB Device Mode. For Steps 6-7, these
roles are reversed.
1. The accessory (USB host) must detect and enumerate the Apple device (USB device).
2. The accessory may send the following USB Custom Vendor Requests to get enabled capabilities.
Table 51-1 USB Vendor Request for Apple Device to Get Supported Capabilities
715
51. USB Role Switch
51.2 USB Role Switch Usage
The data payload returned from the Apple device will be 4 bytes: a wValue (2 byte little endian bitfield,
see Table 51-2 (page 716)) followed by wIndex (2 byte little endian value). Note that wValue is encoded as
a bitfield, so all Reserved values must be ignored.
Table 51-2 USB Vendor Request for Apple Device to Host Mode Switch: wValues (bitfield)
Value Description
3. The accessory must send the following USB Custom Vendor Request, which asks for a USB role switch:
Table 51-3 USB Vendor Request for Apple Device to Host Mode Switch
4. If the Apple device supports this role switch request, it disconnects itself from the bus. If it does not, it
issues a STALL packet. See On-The-Go Supplement, Revision 2.0, version 1.1a , Section 5.2.1, Step B. If the
accessory receives a STALL packet, it must assume that the Apple device does not support this feature
and proceed accordingly. For example, the accessory may establish an iAP2 connection using USB Device
Mode instead.
5. The accessory must detect the bus disconnect and turn on D+ pull-up. See On-The-Go Supplement, Revision
2.0, version 1.1a , Section 5.2.1, Step C.
6. The Apple device will assert a bus reset signal to start using the bus. See On-The-Go Supplement, Revision
2.0, version 1.1a , Section 5.2.1, Step D.
7. The accessory (USB device) must wait at least 1000 ms for the Apple device (USB host) to start enumeration
of the accessory. See On-The-Go Supplement, Revision 2.0, version 1.1a , Section 7.1.5.
8. If 1000 ms passes without any traffic, the accessory must transition back to USB Host Mode.
716
51. USB Role Switch
51.3 Test Procedures
Note: In previous versions of this specification, a USB Vendor Request with the bRequest field set
to 0x50 was defined. That Vendor Request is now deprecated and must not be used in new accessory
designs.
The following two events take place when the cable connecting the Apple device to the accessory's USB-A
receptacle is unplugged from either or both ends:
● The Apple device detects loss of VBUS and switches back to USB Device Mode.
● The accessory detects a minimum of 200 ms of bus inactivity and transitions back to USB Host Mode. See
On-The-Go Supplement, Revision 2.0, version 1.1a , Section 7.1.6.
If the accessory claims the capability to re-charge an Apple device, it must do so at the required power levels
both before and after USB Role Switch has occurred.
If the accessory does not claim the capability to re-charge an Apple device, it must still provide 500 mA to the
Apple device whenever the controller is a USB Host and the Apple device is in USB Device Mode. After the
Apple device has started USB enumeration of the accessory, the accessory must:
● Stop providing 500 mA to the Apple device.
● Provide a USB configuration descriptor that declares no need for power (bMaxPower = 0) to the Apple
device.
● Set the PowerProvidingCapability parameter in its iAP2 AccessoryIdentificationInformation message to
'None'.
● Set the MaximumCurrentDrawnFromDevice parameter in its iAP2 AccessoryIdentificationInformation
message to 0 mA.
717
52. Vehicle Status
Accessories may use the Vehicle Status feature to send sensor data and other useful information from a vehicle
to an Apple device.
All accessories that support the VehicleStatus feature via iAP2 must send or receive the following iAP2 control
session message(s):
StartVehicleStatusUpdates (page 868)
VehicleStatusUpdate (page 868)
StopVehicleStatusUpdates (page 868)
If the Apple device can make use of some/all of the information, it will send a StartVehicleStatusUpdates (page
868) message to the accessory informing the accessory which information types send updates for in a
VehicleStatusUpdate (page 868) message.
The accessory must only send vehicle status updates to the Apple device:
718
52. Vehicle Status
52.2 Vehicle Status Usage
719
53. VoiceOver
VoiceOver is the screen reader feature built into both Apple's iOS and OS X operating systems. Users who are
blind or have low vision can interact with and control Apple devices and Macs simply by moving their finger
over the touchscreen or touch-sensitive trackpad. For more information on VoiceOver, see [Link]
[Link]/accessibility/voiceover/. In addition, when VoiceOver is paired with certain accessories users are able
to use VoiceOver even if they are unable to touch the display at all.
Most VoiceOver accessories interface with one or more switch-type inputs. Accessory developers should
consider supporting VoiceOver if the accessory is intended for users who cannot see the display or touch the
screen. If the user can see the display, consider supporting the AssistiveTouch or Assistive Switch Control
features.
All accessories that support the VoiceOver feature via iAP2 must send or receive the following iAP2 control
session message(s):
StartVoiceOver (page 869)
RequestVoiceOverMoveCursor (page 870)
RequestVoiceOverActivateCursor (page 870)
StartVoiceOverUpdates (page 872)
VoiceOverUpdate (page 872)
All accessories that support the VoiceOver feature via iAP2 may also send or receive the following iAP2 control
session message(s):
StopVoiceOver (page 869)
RequestVoiceOverScrollPage (page 870)
RequestVoiceOverSpeakText (page 871)
RequestVoiceOverPauseText (page 871)
RequestVoiceOverResumeText (page 872)
720
53. VoiceOver
53.2 VoiceOver Usage
The VoiceOver feature is started and stopped using the StartVoiceOver (page 869) and StopVoiceOver (page
869) messages. All compatible accessories must send the StartVoiceOver (page 869) message. Also, all VoiceOver
accessories must receive and process VoiceOverUpdate (page 872) messages to be notified when the feature
is enabled or disabled asynchronously. The StartVoiceOverUpdates (page 872) message will signal the device
to start generating and sending VoiceOverUpdate (page 872) messages to the accessory.
It is possible (and not uncommon) for more than one VoiceOver-compatible accessory to be connected to a
device at the same time. All of those accessories, or their users, may independently start or stop the VoiceOver
feature at any time, and a VoiceOver accessory must handle these use cases correctly.
Several additional VoiceOver messages deal with manipulation and selection of user interface elements. Basic
VoiceOver accessories will typically only send the RequestVoiceOverMoveCursor (page 870) and
RequestVoiceOverActivateCursor (page 870) messages.
Some accessories may choose to also receive VoiceOverCursorUpdate (page 874) messages; this message
provides additional information to the accessory about the currently selected user interface element if the app
provides it.
The accessory may send RequestVoiceOverConfiguration (page 873) to adjust the volume and/or speaking rate
after the feature is started. Additionally, accessories can request that the speech synthesizer be used to render
certain useful phrases specific to the accessory at key moments. The speech synthesizer volume is persistent
and will be saved and restored by the Apple device when VoiceOver is stopped and started.
721
53. VoiceOver
53.3 Test Procedures
722
54. Wi-Fi
54.1 Overview
All accessories that use Wi-Fi as a transport should test using the procedures in Test Procedures for the
Consumers (page 723).
723
54. Wi-Fi
54.2 Test Procedures for the Consumers
2. Device should be able to associate and get IP connectivity with the network.
3. Stay connected with the network until the group key renewal timer expires.
4. Device should stay connected to the AP and renew group keys.
724
54. Wi-Fi
54.2 Test Procedures for the Consumers
[Link] Basic throughput test with iperf with different traffic types
1. Configure an AP and Associate client with it. Run a iperf server/client on a wired host and start single iperf
traffic stream to/from client for 30s. Try each type of QoS traffic stream.
2. Client should deliver good uplink and downlink throughput number for TCP and UDP for each traffic type.
[Link] Ensure that WMM is enable when you have 11n+ Mode enabled
1. Check the WMM Mode by default on the AP.
2. If the default radio mode is 11n+, it should have WMM enabled by default.
3. Disable WMM mode and Associate the client with the AP.
4. When you disable WMM mode, it should disable 11n+ mode (HT Rates) on the AP.
5. Device should be able to associate with non-HT data rates.
725
54. Wi-Fi
54.2 Test Procedures for the Consumers
[Link] AirDrop
1. Setup an AP and connect two clients to the network. Have AirDrop enabled on both Apple devices for
everyone.
2. Device should be able to associate and get IP connectivity with the network.
3. Select a video file (50 MB) and choose to send it via AirDrop to the other client.
4. Client1 should be able to discover Client2 in AirDrop discovery and the file should be transferred with
acceptable throughput.
5. Reduce the signal strength (RSSI) for Device1 to the AP and Device1 to Device2 by moving Device1 further
away from both the AP and Device2.
6. Client1 should be able to discover Client2 in AirDrop discovery and the file should be transferred with
acceptable throughput.
726
54. Wi-Fi
54.2 Test Procedures for the Consumers
[Link] Longevity
1. Configure AP and associate the client to the network.
2. Device should be able to associate and get IP connectivity with the network.
3. Lock the screen on the client and stay idle for 30 mins or more. And run any kind of traffic after idle cycle.
4. You should stay connected to the network and should be able to do data transfer (download a file) after
waking up.
727
54. Wi-Fi
54.3 Test Procedures for the Enterprises
728
54. Wi-Fi
54.3 Test Procedures for the Enterprises
[Link] IPv6
1. Configure DHCP server with IPv6. Associate the Apple device with the network.
2. Device should be able to associate and get IPv6 connectivity with the network.
729
54. Wi-Fi
54.3 Test Procedures for the Enterprises
[Link] Basic throughput test with iperf with different traffic types
1. Configure an AP and Associate client with it. Run a iperf server/client on a wired host and start single iperf
traffic stream to/from client for 30s. Try each type of QoS traffic stream.
2. Client should deliver good uplink and downlink throughput number for TCP and UDP for each traffic type.
[Link] Ensure that WMM is enable when you have 11n+ Mode enabled
1. Check the WMM Mode by default on the AP.
2. If the default radio mode is 11n+, it should have WMM enabled by default.
3. Disable WMM mode and Associate the client with the AP.
4. When you disable WMM mode, it should disable 11n+ mode (HT Rates) on the AP.
5. Device should be able to associate with non-HT data rates.
730
54. Wi-Fi
54.3 Test Procedures for the Enterprises
7. You should be seeing the video from client on the TV screen with maintaining good quality.
8. There should be no visible or audible blips while mirroring animated content (e.g scrubbing in Safari,
playing iTunes Radio) for 2 minutes, minimum.
[Link] AirDrop
1. Setup an AP and connect two clients to the network. Have AirDrop enabled on both Apple devices for
everyone.
2. Device should be able to associate and get IP connectivity with the network.
3. Select a video file (50 MB) and choose to send it via AirDrop to the other client.
4. Client1 should be able to discover Client2 in AirDrop discovery and the file should be transferred with
acceptable throughput.
5. Reduce the signal strength (RSSI) for Device1 to the AP and Device1 to Device2 by moving Device1 further
away from both the AP and Device2.
6. Client1 should be able to discover Client2 in AirDrop discovery and the file should be transferred with
acceptable throughput.
[Link] AirPrint
1. Configure AP and associate client and a AirPrint capable printer.
2. Print a document from client to printer through share sheet.
731
54. Wi-Fi
54.3 Test Procedures for the Enterprises
732
54. Wi-Fi
54.3 Test Procedures for the Enterprises
[Link] 11r/11w/11v/11u
1. Configure AP with 11r/11w/11v/11u, if supported.
2. Attempt to associate client.
3. Device should be able to associate and get IP connectivity.
[Link] Remote AP
1. Configure AP in Remote AP mode on controller as supported and attempt to associate client.
2. Device should be able to associate and get IP connectivity.
733
54. Wi-Fi
54.3 Test Procedures for the Enterprises
734
54. Wi-Fi
54.3 Test Procedures for the Enterprises
[Link] Longevity
1. Configure AP and associate the client to the network.
2. Lock the screen on the client and stay idle for 30 mins or more.
3. Device should be able to associate and get IP connectivity with the network.
4. Device should stay connected to the network and should be able to do data transfer (download a file)
after waking up.
735
54. Wi-Fi
54.3 Test Procedures for the Enterprises
736
55. Wi-Fi Accessory Configuration
55.1 Introduction
Apple's Wi-Fi Accessory Configuration feature is designed to allow consumers to easily set up their wireless
accessories with the network credentials already stored on their iOS or OS X device.
Target wireless networks require an access point compatible with any of:
● 802.11b/g
● 802.11n
● 802.11ac
737
55. Wi-Fi Accessory Configuration
55.4 Wi-Fi required Accessory features
All Wi-Fi Accessory Configuration accessories must incorporate the following features and requirements.
Additionally, it is strongly recommended that the accessory not use proprietary wireless technologies in the
product that overlap with the international Wi-Fi spectrum.
When in Software AP mode, the accessory must have a DHCP server as well as an HTTP server that supports
persistent connections, i.e. multiple HTTP requests sent through the came TCP connection. When in STA mode,
the accessory must support link-local IPv4 addressing as specified in RFC 3927.
738
55. Wi-Fi Accessory Configuration
55.6 Wi-Fi Implementation requirements
Note that accessories that implement WAC functionality will not show up on iOS or OS X as regular Wireless
Access Points. This means that while in WAC mode, these accessories will not be able to offer Wireless Access
Point-based features to iOS and OS X devices. These features may include:
● Direct AirPlay streaming.
● Web Interface-based features such as Firmware Upgrade.
If the accessory wishes to offer support to iOS and OS X for these features while not connected to an
infrastructure network, it should provide a mechanism for exiting WAC mode and entering a Wireless Access
Point mode.
739
55. Wi-Fi Accessory Configuration
55.8 Wi-Fi Certification requirements
NOTE: Pre-existing MFi program certification on an accessory is not sufficient for Wi-Fi Accessory Configuration
accessory certification.
740
55. Wi-Fi Accessory Configuration
55.9 Wi-Fi Accessory Configuration Setup Experience
The accessory must not immediately apply the new configuration. Applying it at this point may interrupt
its connection to the controller. The accessory must send its response, disable the sending side of its socket
to signal it is done sending, then wait until it receives a FIN from the Configuring device (i.e. socket receive
returns 0).
8. Configuring device receives accessory response and waits for the accessory to close its connection
The controller must disable the sending side of its socket to signal it has received the response then waits
until it receives a FIN from the accessory (i.e. socket receive returns 0).
9. Accessory waits for controller to disconnect then deregisters its Bonjour service and increments its config
seed ID
10. Accessory applies configuration and joins new Wi-Fi network
The accessory must wait until it has fully joined the new Wi-Fi network before continuing to the next step.
11. Accessory re-registers with Bonjour with the new config seed
It's important to only advertise the new configuration seed after the configuration has completed and the
accessory has joined the new network. Otherwise, the controller may find a stale instance of the service
and prematurely assume success.
12. Configuring device re-joins its original Wi-Fi network
The controller browses for _mfi-config._tcp and matches the accessory by its Device ID (same one
saved off from the earlier step).
14. Configuring device sends an HTTP request to /configured on the accessory to indicate configuration is
complete
15. Configuring device reports success (or failure) to user
16. Configuring device prompts user to discover an application for the configured accessory if available
language 0x04 String BCP-47 language to configure the accessory for. See
[Link]
istry.
741
55. Wi-Fi Accessory Configuration
55.10 Bonjour
name 0x08 String Name that accessory should use to advertise itself to the
user.
playPassword 0x09 String Password used to start an AirPlay stream to the accessory.
wifiPSK 0x0B Data Wi-Fi PSK for joining a WPA-protected Wi-Fi network. If it's
between 8 and 63 bytes each being 32-126 decimal,
inclusive then it's a pre-hashed password. Otherwise, it's
expected to be a pre-hashed, 256-bit pre-shared key.
wifiSSID 0x0C String Wi-Fi SSID (network name) for the accessory to join. This
should be UTF-8.
55.10 Bonjour
The Bonjour service type for Wi-Fi Accessory Configuration is _mfi-config._tcp. The name of the Bonjour
service is the user-visible name of the accessory (e.g. "Basement Thermostat"). The name may contain any
Unicode character and is encoded using UTF-8. It has a maximum length of 63 bytes (which may be fewer than
63 characters as a single Unicode character may require multiple bytes). Additional data needed for
discovery-time metadata is advertised via a TXT record. This contains fields for feature detection, versions, etc.
Key Description
deviceid Globally unique ID for the accessory (e.g. the primary MAC address, such as
00:11:22:33:44:55).
features Feature flag bits (e.g. 0x3 for bits 0 and 1). See Table 55-3 (page 743).
flags Status flags (e.g. 0x04 for bit 3). See Table 55-4 (page 743).
742
55. Wi-Fi Accessory Configuration
55.11 Apple Device Information Element (IE)
Key Description
protovers Protocol version string <major>.<minor> (e.g. 1.0). Missing means 1.0.
seed Configuration seed number. This is 0-255 and updates each time the software configuration
changes.
srcvers Source version number. Populated directly by the source code. Valid version numbers are
1.14, 1.20 and 1.22.
55.11.2 Structure
This section defines a vendor-specific 802.11 IE using the OUI 00-A0-40 (registered to Apple Inc.). The payload
portion of the IE is composed of sub-IEs defined by this document.
743
55. Wi-Fi Accessory Configuration
55.11 Apple Device Information Element (IE)
OUI 3 0x00 0xA0 0x40 Apple Inc. OUI reserved for this IE.
Length 1 Number of bytes in the element payload (excludes element ID and length
bytes).
744
55. Wi-Fi Accessory Configuration
55.11 Apple Device Information Element (IE)
55.11.3 Payload
0x00 Flags n:bits Flags about the device: b0-b7, b8-b15, etc. See Table
55-8 (page 746).
Each flag is a bit. Bit numbering starts from the leftmost
bit of the first byte and uses the minimum number of
bytes needed to encode the bits. For example:
If only bit 1 is set, it would be 0x40.
If bit 1 (0x40) and bit 7 (0x01) are set, it would be 0x41.
If bit 1 (0x40), bit 7 (0x01), and bit 10 (0x0020) are set,
it would be 0x41, 0x20.
If only bit 10 (0x0020), it would be 0x00, 0x20.
0x06 Bluetooth MAC 6 bytes MAC address of the Bluetooth radio, if applicable.
745
55. Wi-Fi Accessory Configuration
55.11 Apple Device Information Element (IE)
0x0040 9 Reserved.
0x0020 10 Supports CarPlay over Wireless, see CarPlay over Wireless (page 395).
0x0008 12 Reserved.
746
55. Wi-Fi Accessory Configuration
55.12 Accessory Compliance Test Plan
0x0004 13 Reserved.
0x000080 16 Reserved.
Term Definition
IE Information Element.
AP Access Point.
AU AirPort Utility.
DS Distribution System.
747
55. Wi-Fi Accessory Configuration
55.12 Accessory Compliance Test Plan
Term Definition
Wi-Fi Accessory Configuration enabled DUTs will be tested on any and all wireless network interfaces that
allow for Wi-Fi Accessory Configuration.
The following are minimum requirements to complete the test suites that are included in this test plan.
● MacBook Pro running Mac OS X 10.9 or greater
● One of the following:
● Apple AirPort Extreme 802.11n (5th Generation) Base Station running 7.6.1 or greater
● Apple AirPort Express 802.11n (3rd Generation) Base Station running 7.6.2 or greater
● Apple AirPort Utility 6.3.1 or greater
The following test beds are designed and specified for each test case in this test plan. The minimum requirement
for every test bed is an OS X computer running the latest version of AirPort Utility (Test System) and a
simultaneous dual band Apple Base Station running the latest firmware (Access Point).
The following test cases must be completed successfully to ensure compliance with the Wi-Fi Accessory
Configuration specification and interoperability with Apple Base Station product lines. While it is possible
to implement Wi-Fi Accessory Configuration without an Apple Base Station, all tests will be done with an
Apple Base Station (AirPort Extreme or Time Capsule) product because certain features of the Base Station
are required to complete all of the testing.
Network connectivity is a requirement for Wi-Fi Accessory Configuration. Each DUT must, at minimum,
support 802.11g. All supported PHYs must be tested.
748
55. Wi-Fi Accessory Configuration
55.12 Accessory Compliance Test Plan
12. The DUT should begin beaconing 802.11 beacons including the Apple Device IE indicating it is unconfigured
and advertising as an 802.11 network with an SSID that is descriptive of the DUT. At minimum the indication
of the manufacturer should be present, with no security enabled.
13. The product mode indicator must show that the accessory is in WAC mode or else FAIL.
14. The DUT must show up in the AirPort Utility under "Other Wi-Fi Devices" as a "New Wi-Fi Device" indicating
it is an unconfigured accessory or else FAIL.
749
55. Wi-Fi Accessory Configuration
55.12 Accessory Compliance Test Plan
1. Power on the Base Station and connect to it via the Apple AirPort Utility. In the AirPort Utility select "Manual
Setup".
2. On the bar across the top of the AirPort Utility, select "Wireless"
3. Set Base Station to Network Mode "Create a wireless network".
4. Under the Section that says "Wireless Network Name:" change it to "Soundwave24€".
5. Under the section that says "Wireless Security:" change it to "None"
6. Click "Wireless Options".
7. Check the box that says "5 GHz Network Name" and the box should be come editable. Change the name
to "Soundwave5".
8. Then under the "Radio Mode:" pull down menu select, 802.11a - 802.11b/g.
9. Then click save on the AirPort Utility. The AirPort Utility may prompt for various errors and all of them can
be ignored. Be sure to click "Update" and wait for the Base Station to reboot.
10. Power on the DUT. Wait for DUT to complete booting. Note the MAC address of the DUT.
11. The DUT should begin beaconing 802.11 beacons including the Apple Device IE indicating it is unconfigured
and advertising as an 802.11 network with an SSID that is descriptive of the DUT. At minimum the indication
of the manufacturer should be present, with no security enabled.
12. The product mode indicator must show that the accessory is in WAC mode or else FAIL.
13. The DUT must show up in the AirPort Utility under "Other Wi-Fi Devices" as a "New Wi-Fi Device" indicating
it is an unconfigured accessory or else FAIL.
14. Select the DUT in the AirPort Utility.
20. Wait for DUT to complete booting and indicate that it has joined a network.
22. Using the AirPort Utility verify the DUT has joined the network.
23. In the AirPort Utility, select the Base Station. Verify that the DUT is present as a wireless client with the
Accessory Name "WAC DUT".
24. If the DUT is not present or if the MAC address is not present, FAIL.
25. Manually put the DUT into Wi-Fi Accessory Configuration mode according to the accessory's instructions.
750
55. Wi-Fi Accessory Configuration
55.12 Accessory Compliance Test Plan
26. The DUT should begin beaconing 802.11 beacons including the Apple Device IE indicating it is unconfigured
and advertising as an 802.11 network with an SSID that is descriptive of the DUT. At minimum the indication
of the manufacturer should be present, with no security enabled.
27. The product mode indicator must show that the accessory is in WAC mode or else FAIL.
28. The DUT must show up in the AirPort Utility under "Other Wi-Fi Devices" as a "New Wi-Fi Device" indicating
it is an unconfigured accessory or else FAIL.
If the DUT supports 802.11n (5 GHz) the following test must be run.
1. Power on the Base Station and connect to it via the Apple AirPort Utility. In the AirPort Utility select "Manual
Setup".
2. On the bar across the top of the AirPort Utility, select "Wireless"
3. Set Base Station to Network Mode "Create a wireless network".
4. Under the Section that says "Wireless Network Name:" change it to "Soundwave24€".
5. Under the section that says "Wireless Security:" change it to "None"
6. Click "Wireless Options".
7. Check the box that says "5 GHz Network Name" and the box should be come editable. Change the name
to "Soundwave5".
8. Then under the "Radio Mode:" pull down menu select, 802.11a/n - 802.11b/g/n.
9. Then click save on the AirPort Utility. The AirPort Utility may prompt for various errors and all of them can
be ignored. Be sure to click "Update" and wait for the Base Station to reboot.
10. Power on the DUT. Wait for DUT to complete booting. Note the MAC address of the DUT.
11. The DUT should begin beaconing 802.11 beacons including the Apple Device IE indicating it is unconfigured
and advertising as an 802.11 network with an SSID that is descriptive of the DUT. At minimum the indication
of the manufacturer should be present, with no security enabled.
12. The product mode indicator must show that the accessory is in WAC mode or else FAIL.
13. The DUT must show up in the AirPort Utility under "Other Wi-Fi Devices" as a "New Wi-Fi Device" indicating
it is an unconfigured accessory or else FAIL.
14. Select the DUT in the AirPort Utility.
751
55. Wi-Fi Accessory Configuration
55.12 Accessory Compliance Test Plan
20. Wait for DUT to complete booting and indicate that it has joined a network.
22. Using the AirPort Utility verify the DUT has joined the network.
23. In the AirPort Utility, select the Base Station. Verify that the DUT is present as a wireless client with the
Accessory Name "WAC DUT".
24. If the DUT is not present or if the MAC address is not present, FAIL.
If the DUT supports 802.11 (2.4 GHz) the following test must be run.
1. Power on the Base Station and connect to it via the Apple AirPort Utility. In the AirPort Utility select "Manual
Setup".
2. On the bar across the top of the AirPort Utility, select "Wireless"
3. Set Base Station to Network Mode "Create a wireless network".
4. Under the Section that says "Wireless Network Name:" change it to "Soundwave24€".
5. Under the section that says "Wireless Security:" change it to "None"
6. Click "Wireless Options".
7. Check the box that says "5 GHz Network Name" and the box should be come editable. Change the name
to "Soundwave5".
8. Then under the "Radio Mode:" pull down menu select, 802.11a/n - 802.11b/g/n.
9. Then click save on the AirPort Utility. The AirPort Utility may prompt for various errors and all of them can
be ignored. Be sure to click "Update" and wait for the Base Station to reboot.
10. Power on the DUT. Wait for DUT to complete booting. Note the MAC address of the DUT.
11. The DUT should begin beaconing 802.11 beacons including the Apple Device IE indicating it is unconfigured
and advertising as an 802.11 network with an SSID that is descriptive of the DUT. At minimum the indication
of the manufacturer should be present, with no security enabled.
12. The product mode indicator must show that the accessory is in WAC mode or else FAIL.
13. The DUT must show up in the AirPort Utility under "Other Wi-Fi Devices" as a "New Wi-Fi Device" indicating
it is an unconfigured accessory or else FAIL.
14. Select the DUT in the AirPort Utility.
752
55. Wi-Fi Accessory Configuration
55.12 Accessory Compliance Test Plan
20. Wait for DUT to complete booting and indicate that it has joined a network.
22. Using the AirPort Utility verify the DUT has joined the network.
23. In the AirPort Utility, select the Base Station. Verify that the DUT is present as a wireless client with the
Accessory Name "WAC DUT".
24. If the DUT is not present or if the MAC address is not present, FAIL.
12. Power on the DUT. Wait for DUT to complete booting. Note the MAC address of the DUT.
13. The DUT should begin beaconing 802.11 beacons including the Apple Device IE indicating it is unconfigured
and advertising as an 802.11 network with an SSID that is descriptive of the DUT. At minimum the indication
of the manufacturer should be present, with no security enabled.
753
55. Wi-Fi Accessory Configuration
55.12 Accessory Compliance Test Plan
14. The product mode indicator must show that the accessory is in WAC mode or else FAIL.
15. The DUT must show up in the AirPort Utility under "Other Wi-Fi Devices" as a "New Wi-Fi Device" indicating
it is an unconfigured accessory or else FAIL.
16. Select the DUT in the AirPort Utility.
22. Wait for DUT to complete booting and indicate that it has joined a network.
24. Using the AirPort Utility verify the DUT has joined the network.
25. In the AirPort Utility, select the Base Station. Verify that the DUT is present as a wireless client with the
Accessory Name "WAC DUT".
26. If the DUT is not present or if the MAC address is not present, FAIL.
If the DUT supports 802.11 2.4 GHz but not 5 GHz the following test must be run.
1. Power on the Base Station and connect to it via the Apple AirPort Utility. In the AirPort Utility select "Manual
Setup".
2. On the bar across the top of the AirPort Utility, select "Wireless"
3. Set Base Station to Network Mode "Create a wireless network".
4. Under the Section that says "Wireless Network Name:" change it to "Soundwave24€".
5. Under the section that says "Wireless Security:" change it to "None"
6. Click "Wireless Options".
7. Check the box that says "5 GHz Network Name" and the box should be come editable. Change the name
to "Soundwave5".
8. Then under the "Radio Mode:" pull down menu select, 802.11a - 802.11b/g.
9. Then click save on the AirPort Utility. The AirPort Utility may prompt for various errors and all of them can
be ignored. Be sure to click "Update" and wait for the Base Station to reboot.
754
55. Wi-Fi Accessory Configuration
55.12 Accessory Compliance Test Plan
10. Power on the DUT. Wait for DUT to complete booting. Note the MAC address of the DUT.
11. The DUT should begin beaconing 802.11 beacons including the Apple Device IE indicating it is unconfigured
and advertising as an 802.11 network with an SSID that is descriptive of the DUT. At minimum the indication
of the manufacturer should be present, with no security enabled.
12. The product mode indicator must show that the accessory is in WAC mode or else FAIL.
13. The DUT must show up in the AirPort Utility under "Other Wi-Fi Devices" as a "New Wi-Fi Device" indicating
it is an unconfigured accessory or else FAIL.
14. Select the DUT in the AirPort Utility.
For the Test Environment, please refer to Figure 55-1 (page 748).
1. Power on the Base Station and connect to it via the Apple AirPort Utility. In the AirPort Utility select "Manual
Setup".
2. On the bar across the top of the AirPort Utility, select "Wireless"
3. Set Base Station to Network Mode "Create a wireless network".
4. Under the Section that says "Wireless Network Name:" change it to "Soundwave24€".
5. Under the section that says "Wireless Security:" change it to "WPA/WPA2 Personal"
6. Click "Wireless Options".
7. Check the box that says "5 GHz Network Name" and the box should be come editable. Change the name
to "Soundwave5".
8. Then under the "Radio Mode:" pull down menu select, 802.11a/n - 802.11b/g/n.
9. Then click save on the AirPort Utility. The AirPort Utility may prompt for various errors and all of them can
be ignored. Be sure to click "Update" and wait for the Base Station to reboot.
10. Power on the DUT. Wait for DUT to complete booting. Note the MAC address of the DUT.
755
55. Wi-Fi Accessory Configuration
55.12 Accessory Compliance Test Plan
11. The DUT should begin beaconing 802.11 beacons including the Apple Device IE indicating it is unconfigured
and advertising as an 802.11 network with an SSID that is descriptive of the DUT. At minimum the indication
of the manufacturer should be present, with no security enabled.
12. The product mode indicator must show that the accessory is in WAC mode or else FAIL.
13. The DUT must show up in the AirPort Utility under "Other Wi-Fi Devices" as a "New Wi-Fi Device" indicating
it is an unconfigured accessory or else FAIL.
14. Select the DUT in the AirPort Utility.
20. Wait for DUT to complete booting and indicate that it has joined a network.
22. Using the AirPort Utility verify the DUT has joined the network.
23. In the AirPort Utility, select the Base Station. Verify that the DUT is present as a wireless client with the
Accessory Name "WAC DUT".
24. If the DUT is not present or if the MAC address is not present, FAIL.
756
55. Wi-Fi Accessory Configuration
55.12 Accessory Compliance Test Plan
11. The DUT should begin beaconing 802.11 beacons including the Apple Device IE indicating it is unconfigured
and advertising as an 802.11 network with an SSID that is descriptive of the DUT. At minimum the indication
of the manufacturer should be present, with no security enabled.
12. The product mode indicator must show that the accessory is in WAC mode or else FAIL.
13. The DUT must show up in the AirPort Utility under "Other Wi-Fi Devices" as a "New Wi-Fi Device" indicating
it is an unconfigured accessory or else FAIL.
14. Select the DUT in the AirPort Utility.
20. Wait for DUT to complete booting and indicate that it has joined a network.
22. Using the AirPort Utility verify the DUT has joined the network.
23. In the AirPort Utility, select the Base Station. Verify that the DUT is present as a wireless client with the
Accessory Name "WAC DUT". Take note of the DUT's IP Address.
24. If the DUT is not present or if the MAC address is not present, FAIL.
25. On the Test Machine connected to the Base Station ping the IP address that was just noted.
26. If all the pings are successful, then PASS, else FAIL.
27. Reboot the DUT and wait for it to come back up.
28. Once connected to the network, open the AirPort, select the Base Station. Verify that the DUT is present
as a wireless client with the Accessory Name "WAC DUT". Take note of the DUT's IP Address.
29. If the DUT is not present or if the MAC address is not present, FAIL.
30. On the Test Machine connected to the Base Station ping the IP address that was just noted.
757
55. Wi-Fi Accessory Configuration
55.12 Accessory Compliance Test Plan
31. If all the pings are successful, then PASS, else FAIL.
11. Then click save on the AirPort Utility. The AirPort Utility may prompt for various errors and all of them can
be ignored. Be sure to click "Update" and wait for the Base Station to reboot.
12. Power on the DUT. Wait for DUT to complete booting. Note the MAC address of the DUT.
13. The DUT should begin beaconing 802.11 beacons including the Apple Device IE indicating it is unconfigured
and advertising as an 802.11 network with an SSID that is descriptive of the DUT. At minimum the indication
of the manufacturer should be present, with no security enabled.
14. The product mode indicator must show that the accessory is in WAC mode or else FAIL.
15. The DUT must show up in the AirPort Utility under "Other Wi-Fi Devices" as a "New Wi-Fi Device" indicating
it is an unconfigured accessory or else FAIL.
16. Select the DUT in the AirPort Utility.
758
55. Wi-Fi Accessory Configuration
55.12 Accessory Compliance Test Plan
22. Wait for DUT to complete booting and indicate that it has joined a network.
24. Using the AirPort Utility verify the DUT has joined the network.
25. In the AirPort Utility, select the Base Station. Verify that the DUT is present as a wireless client with the
Accessory Name "WAC DUT". Take note of the DUT's MAC Address and IP Address.
26. If the DUT is not present or if the MAC address is not present, FAIL.
27. On the Test Machine connected to the Base Station ping the IP address that was just noted using ping6.
28. If all the pings are successful, then PASS, else FAIL.
29. Reboot the DUT and wait for it to come back up.
30. Once connected to the network, open the AirPort, select the Base Station. Verify that the DUT is present
as a wireless client with the Accessory Name "WAC DUT". Take note of the DUT's MAC Address and IP
Address.
31. If the DUT is not present or if the MAC address is not present, FAIL.
32. From a Terminal window of the Test System connected to the Base Station enter:
● arp -a -i $INTERFACE
● where $INTERFACE is the identifier for your AirPort card
33. If all the MAC address associated with the DUT is present and the IP address displayed is of the format
[Link], then PASS, else FAIL.
For the Test Environment, please refer to Figure 55-1 (page 748).
1. Power on the DUT.
2. Wait for DUT to complete booting.
3. On the Test System, issue the following command in a Terminal and leave it running.
dns-sd -B _mfi-config
759
55. Wi-Fi Accessory Configuration
55.12 Accessory Compliance Test Plan
5. Where $INTERFACE is the identifier for your AirPort card and $SSID is the DUT Network name.
6. A Bonjour record should appear with the following format:
Timestamp, A/R, Flags, if, Domain, Service Type, Instance Name
7. The A/R should have "Add" below it, if this is true, PASS.
8. The Service Type should have _mfi-config._tcp below it, if this is true, PASS.
9. The Instance should have "$INSTANCENAME- below it, which must be the Friendly Name of the DUT. If
this is true, PASS.
10. From the Terminal of the Test System enter:
● dns-sd -L $INSTANCENAME _mfi-config local
● where $INSTANCENAME is collected earlier.
11. The Bonjour record needs to contain a minimum of the following TXT records (a value is specified that is
the requirement for field):
● deviceid=<MAC address>
● features=<Feature flag bits>
● seed=<Configuration seed number>
● srcvers=<Source release version> See Bonjour TXT Records Tests for ADD and RMV (page 759) for the
list of valid POSIX Source release versions. (Populated by WAC source code.)
12. If all of the fields are present then PASS, else FAIL.
760
56. Wi-Fi Information Sharing
Wi-Fi configuration information can be exchanged between Apple devices and accessories through an iAP2
connection.
Apple devices can share Wi-Fi configuration information with an accessory. The accessory can initiate this
process, but the user must grant permission for the Apple device to share this information. The Apple device
can only share information about the currently connected Wi-Fi network, and this feature will not account for
other router-configured access control mechanisms such as RADIUS or MAC address filtering.
CarPlay accessories (see CarPlay (page 381)) can also share Wi-Fi configuration information with an Apple device.
This feature enables a user to quickly join a Wi-Fi network by connecting or pairing the Apple device to an
accessory over a wired or Bluetooth transport. The accessory can then notify the Apple device of the Wi-Fi
configuration information of an available Wi-Fi network. The accessory can initiate this process, but the user
must grant permission for the Apple device to join the new Wi-Fi network.
761
56. Wi-Fi Information Sharing
56.1 Wi-Fi Information Sharing Requirements
An accessory designed to use this feature must comply with the following requirements:
● It must let the user initiate Wi-Fi information sharing via either a physical button or an onscreen option.
● It must not be able to initiate Wi-Fi information sharing without an explicit user action via the means
described above.
● It must notify the user, visibly and/or audibly, when it has received Wi-Fi connection information.
● It must notify the user, visibly and/or audibly, when it has successfully established a Wi-Fi connection.
Apple devices will only ask CarPlay accessories for Wi-Fi information.
762
56. Wi-Fi Information Sharing
56.3 Test Procedures
The device will send WiFiInformation (page 876) when the user has responded to the request. The Wi-Fi network
SSID and passphrase are part of the WiFiInformation (page 876), and the network security information must be
determined by examining the Access Point's beacon frames per the 802.11 specification.
763
57. iAP2 Link
Every iAP2 connection starts with the establishment of a link between an accessory and a device over a
supported transport. The link protocol provides a transport-agnostic mechanism for reliable and ordered
delivery of packetized data belonging to one or more iAP2 sessions. The protocol is also configurable on a
per-connection basis and can be optimized for best performance on any particular transport and accessory
usage profile. Certain protocol features contribute towards these goals:
● Positive acknowledgement of received packets.
● Retransmissions only require the unacknowledged packets in a sequence to be resent.
● Explicit and efficient support for iAP2 sessions.
All devices support one or more transports that can be used to establish an iAP2 connection with an accessory.
Some transports are better suited for various features than others, so transport selection should be a high
priority early in the accessory design process.
Sample source code for an iAP2 link layer implementation may be found on the MFi Portal.
764
57. iAP2 Link
57.1 Packet Structure
Control Byte
Session Identifier
Header Checksum
...
Payload Data
...
Payload Checksum
765
57. iAP2 Link
57.1 Packet Structure
● The EAK bit is always set along with the ACK bit.
● The RST bit is never set in conjunction with any other bit.
● The SLP bit is never set in conjunction with any other bit.
● All unassigned bits must be set to 0.
iAP2 Session Payloads cannot be present when any of the SYN, EAK, or RST bits are set. Conversely, link packets
with iAP2 session payloads always have the ACK bit set.
6 ACK Packet Acknowledgement Number is valid, and iAP2 Session Payload may be present
In the rest of this specification, a link packet can be described in terms of its Control Byte bits and payload. For
example, a SYN packet refers to a link packet with the SYN bit set in the Control Byte, and a SYN+ACK packet
refers to a link packet with both the SYN and ACK bits set in the Control Byte.
766
57. iAP2 Link
57.1 Packet Structure
If ACK is set, the Packet Acknowledgment Number indicates to a sender the Packet Sequence Number of the
last in-sequence packet that was received. For example, if the Packet Sequence Numbers 1, 2, 3, and 5 were
received by the accessory, the accessory's next outgoing packet's Packet Acknowledgement Number would
be 3, because 5 was received out of sequence.
767
57. iAP2 Link
57.2 Link Synchronization Payload
uint8_t
uint16_t i;
uint8_t sum = 0;
sum += buffer[i];
768
57. iAP2 Link
57.2 Link Synchronization Payload
...
769
57. iAP2 Link
57.2 Link Synchronization Payload
770
57. iAP2 Link
57.3 iAP2 Session Payload
...
57.5 Reset
The RST bit in the Control Byte is used by the device to reset a connection. Such a link packet does not have
a payload and may only be sent by the device.
771
57. iAP2 Link
57.6 Sleep
57.6 Sleep
The SLP bit in the Control Byte is used by the device to signal that it is about to enter a sleep state. Such a link
packet does not have a payload and may only be sent by the device.
The device will stop supplying Accessory Power once it enters the sleep state. If the device exits the sleep state,
it will start supplying Accessory Power again.
If the accessory is capable of suspend and resume of the link layer, the accessory must wait 500 ms after
Accessory Power returns before re-initializing the link. During this time, the accessory may receive an ACK from
the device which signals a link layer resume and serves to synchronize the sequence number (last number
sent from the device) and ACK number (the last number received by the device).
If the accessory is not capable of suspend and resume of the link layer, the accessory must wait 80 ms after
Accessory Power returns before re-initializing the link.
Accessories using the Bluetooth transport will not receive a suspend packet when the Apple device enters a
sleep state.
57.7 Operation
57.7.1 Record
All link implementations must store the following variables in a record that is unique to the link. These variables
will be referred to in subsequent subsections describing iAP2 Link operation.
Variable Description
SentACKTimer A timer that keeps track of the elapsed time (ms) since the last
ACK packet was sent
InitialSentPSN The Packet Sequence Number used for the very first packet sent
LastReceivedInSequencePSN The Packet Sequence Number of the last packet received correctly
and in sequence
772
57. iAP2 Link
57.7 Operation
Variable Description
InitialReceivedPSN The Packet Sequence Number of the very first packet received
57.7.2 Initialization
Once the transport connection is established, the accessory must confirm the presence of a device that supports
iAP2 by sending the following byte sequence at 1 Hz (once a second) until a response is received from the
Apple device:
FF 55 02 00 EE 10
If the device supports iAP2, the accessory will receive the same byte sequence in return. If the device is not
compatible with this Specification but is compatible with the MFi Accessory Firmware Specification R46, the
accessory will receive one of the following:
● An iAP1 General Lingo iPodACK packet with a command status of 0x04 (ERROR: Bad Parameter): 55 04
00 02 04 EE 08
● An iAP1 General Lingo RequestIdentify packet: 55 02 00 00 FE
In either case, the packet may or may not be preceded by an 0xFF sync byte.
If the accessory is also backward compatible with the MFi Accessory Firmware Specification R46, it may proceed
to initiate communication with the older device using iAP1. The StartIDPS command must be sent within 500
ms of receiving confirmation that the Apple device supports iAP1.
If the accessory receives this message but is not backward compatible, the accessory must send the following
byte sequence to the device to indicate lack of backward compatibility:
FF 55 0E 00 13 FF FF FF FF FF FF FF FF FF FF FF FF EB
The accessory must treat any other response from the device as final; no retries or retransmissions are allowed.
57.7.3 Synchronization
One notable feature of the link is support for automatic negotiation of transmission parameters over any type
of transport. This permits the link to scale according to the capabilities of both device and accessory. Link
initialization has 3 main goals:
773
57. iAP2 Link
57.7 Operation
● Determines mutually acceptable link configuration parameters for both device and accessory.
● Searches for errors in configuration parameters.
● Terminates the link if no agreement can be reached.
A link is initiated when an underlying transport connection and device compatibility have been established.
When this occurs, the accessory first sends a SYN packet containing desired connection parameters in the Link
Synchronization Payload, along with a randomly generated Packet Sequence Number. The device will respond
with an SYN+ACK packet acknowledging receipt of the accessory's SYN packet, its own desired connection
parameters, and its randomly generated Packet Sequence Number. If the two sets of connection parameters
match, the accessory must send a final ACK packet of the most recent SYN+ACK from the device, and the
connection is considered to be established. Otherwise, SYN+ACK packets will continue to be exchanged up to
10 times until connection parameters are agreed upon. If 10 exchanges occur without agreement on connection
parameters then the device will stop responding to any further packets sent by the accessory.
Sometimes, a device will be unable to respond immediately to the receipt of a SYN packet from an accessory.
In that situation, the accessory may resend the SYN packet with the same Payload Data and the same Packet
Sequence Number. It may continue doing so every second until the device sends a SYN+ACK response
acknowledging the previously sent Packet Sequence Number. Once this response has been received, the
accessory must ignore any subsequent incoming SYN+ACK packets with the same Packet Sequence Number.
The device will send a RST packet to reset the link if the accessory's final Link Synchronization Payload contains
an invalid non-negotiable parameter.
During synchronization, the following default link configuration parameters are assumed until synchronization
is complete:
774
57. iAP2 Link
57.7 Operation
The following tables contain suggested link configuration parameters for some iAP2 transports. These values
are just starting points for development and must not be used without verifying suitability for a particular
accessory.
Table 57-7 Suggested link parameters for USB Host Mode transport (Full Speed)
Table 57-8 Suggested link parameters for USB Device Mode transport (Full Speed)
775
57. iAP2 Link
57.7 Operation
Table 57-10 Suggested link parameters for 57.6 kbps serial transport
57.7.4 Acknowledgements
To guarantee delivery of packets, the link protocol uses both positive acknowledgement and retransmission
of packets. Each packet with Payload Data and SYN packets are acknowledged when they are correctly received
and accepted by the receiver. ACK packets are not acknowledged. Damaged packets are discarded and not
acknowledged. Packets are retransmitted by the sender when they are not acknowledged by the receiver
within the time specified by the Retransmission Timeout.
There are two types of packet acknowledgements. A cumulative acknowledgement is used to acknowledge
receipt of all in-sequence packets up to a specified Packet Sequence Number. The extended acknowledgement
allows the receiver to acknowledge packets out of sequence. The type of acknowledgement used is simply a
function of the order in which packets arrive. Whenever possible, link implementations must use the cumulative
acknowledgement and use the extended acknowledgement only when packets are received out of sequence.
Receivers must generate and send an extended acknowledgement as soon as one or more out-of-sequence
packets are received.
776
57. iAP2 Link
57.7 Operation
57.7.5 Retransmissions
Packets can get lost in transmission because of loss or damage in the underlying transport. They can also be
discarded by the receiver. The positive acknowledgement of packets requires the receiver to acknowledge a
packet only when the packet has been correctly received and accepted.
To detect missing packets, the sender must use a retransmission timer for each outgoing packet. This timer is
set to the negotiated Retransmission Timeout value. When an acknowledgement is received for a packet, the
timer is cancelled for that packet. If the timer expires before an acknowledgement is received, that packet is
retransmitted and the timer is restarted, up to the Maximum Number of Retransmissions negotiated during
link synchronization.
The link employs the concept of a sequence number window for acceptable Packet Sequence Numbers. The
left edge of the window is the last in-sequence acknowledged Packet Sequence Number plus one. The right
edge of the window is equal to the last in-sequence acknowledged Packet Sequence Number plus the Maximum
Number of Outstanding Packets. The link sender sends packets until the receiver's Maximum Number of
Outstanding Packets is reached; once this limit is reached, the sender may only send a new packet for each
acknowledged packet.
When a received packet has a Packet Sequence Number that falls within the window, it is acknowledged. If
the Packet Sequence Number is equal to the left edge (i.e., it is the next expected Packet Sequence Number),
the packet is acknowledged with a cumulative acknowledgement (ACK), and the acceptance window's left and
right edges are incremented by one. If the received packet's Packet Sequence Number is within the window
but is out of sequence, it is acknowledged with an Extended Acknowledgement (EAK). The window is not
adjusted, and the receipt of the out-of-sequence packet is recorded. Received link packets with Packet Sequence
Numbers outside of the window must be discarded; they are a sign that the link is unstable and may need to
be reset.
When a sender receives Extended Acknowledgements (EAK), the sender must not transmit beyond the
acceptance window. This could occur if one packet is not acknowledged but all subsequent packets are received
and acknowledged. This requirement will fix the left edge of the window at the sequence number of the
unacknowledged packet. As additional packets are sent, the next Packet Sequence Number will approach and
eventually overtake the right edge. At this point, no more packets may be sent until the unacknowledged
packet is acknowledged.
777
57. iAP2 Link
57.8 Examples
57.7.7 Reset
The device may send a RST packet to the accessory at any time. Upon receipt of this packet, the accessory
must send a SYN packet to the device within 1 second of receiving the RST packet and proceed as specified
in Synchronization (page 773).
Accessories must terminate the underlying transport connection and reconnect if they wish to reset the link.
This is not possible when the serial transport is active without physically disconnecting and reconnecting the
accessory with the device's Lightning connector. Having to restart the link is a sign of poorly negotiated link
parameters and should not occur during typical operation.
57.8 Examples
FF 55 02 00 EE 10
FF 55 02 00 EE 10
SYN[100]
SYN[200] ACK[100]
ACK[200]
Authentication Certificate
Challenge Response
Authentication Result[PASS]
...
...
778
57. iAP2 Link
57.8 Examples
FF 55 02 00 EE 10
FF 55 02 00 EE 10
SYN[100]
SYN[100]
SYN[100]
SYN[200] ACK[100]
ACK[200]
SYN[200] ACK[100]
ACK[200]
Authentication Certificate
Challenge Response
...
...
779
57. iAP2 Link
57.8 Examples
Device Accessory
SYN[100]
SYN[200] ACK[100]
SYN[101] ACK[200]
SYN[201] ACK[101]
SYN[102] ACK[201]
SYN[202] ACK[102]
ACK[202]
Authentication Certificate
Challenge Response
Authentication Result[PASS]
...
...
SYN[100]
SYN[200] ACK[100]
SYN[101] ACK[200]
SYN[201] ACK[101]
SYN[102] ACK[201]
SYN[202] ACK[102]
SYN[103] ACK[202]
SYN[103] ACK[202]
SYN[103] ACK[202]
SYN[103] ACK[202]
780
57. iAP2 Link
57.8 Examples
At any time, a RST packet may be sent by the Device to the Accessory. Accessory must reset the connection
and start the connection sequence again by sending the SYN packet.
Device Accessory
DATA[100] ACK[???]
DATA[200] ACK[100]
DATA[101] ACK[200]
DATA[102] ACK[200]
DATA[201] ACK[102]
781
57. iAP2 Link
57.8 Examples
...
...
RST
SYN[100]
SYN[200] ACK[100]
ACK[200]
Authentication Certificate
Challenge Response
...
...
Device Accessory
DATA[100] ACK[???]
782
57. iAP2 Link
57.8 Examples
The accessory does not need to wait for Cumulative Acknowledgement Timeout to expire if it has additional
packets to send.
Device Accessory
DATA[200] ACK[???]
DATA[100] ACK[200]
DATA[101] ACK[200]
DATA[102] ACK[200]
DATA[103] ACK[200]
DATA[104] ACK[200]
DATA[105] ACK[200]
DATA[106] ACK[201]
DATA[107] ACK[201]
DATA[108] ACK[201]
DATA[109] ACK[201]
783
57. iAP2 Link
57.8 Examples
Device Accessory
DATA[99] ACK[???]
DATA[100] ACK[???]
DATA[200] ACK[100]
lost
DATA[101] ACK[200]
DATA[201] ACK[100]
DATA[102] ACK[201]
missing ACK[101]
ACK[100] EAK(102]
DATA[101] ACK[201]
DATA[202] ACK[102]
DATA[103] ACK[202]
lost
DATA[104] ACK[202]
DATA[105] ACK[202]
ACK[103] EAK(105]
DATA[104] ACK[202]
DATA[203] ACK[105]
DATA[106] ACK[203]
lost
DATA[107] ACK[203]
ACK[106]
Retransmission Timeout
DATA[107] ACK[203]
ACK[107]
Device Accessory
DATA[103] ACK[???]
DATA[105] ACK[???]
DATA[104] ACK[???]
ACK[105]
784
57. iAP2 Link
57.8 Examples
Table 57-11 iAP2 Link Packet Structure Example - Accessory SYN Packet
Payload Data
(01 05 10 00 04 0B 00 17 03 03 0A 00 01 0B 02 01)
785
57. iAP2 Link
57.9 Test Procedures
786
57. iAP2 Link
57.9 Test Procedures
787
58. iAP2 Sessions
Once an iAP2 link has been established, higher level communication between an accessory and an Apple
device is structured into one or more sessions. At the very minimum, all accessories must establish a control
session for the purposes of authentication and identification. Once initial authentication and identification are
complete, the accessory may use additional sessions.
Every session has a session identifier, session type, and session version. The session identifier is used to uniquely
identify a session within an iAP2 connection. The session identifier of 0 is reserved for link use, and all sessions
used by an accessory must have unique nonzero identifiers. The combination of both session type and session
version dictates which session protocol variant is used for all data traffic in that session. The session identifier
is part of every iAP2 link packet header.
58.1 Attributes
58.1.1 Type
0 Control session
All link implementations must have one control session. All other sessions are optional depending on the
features implemented. Multiple sessions of the same type are not permitted.
58.1.2 Version
The session version is used to distinguish between different variants of a particular session protocol. The exact
nature of these differences depends on the session type. See the sections in the specification on each session
type for more details.
788
58. iAP2 Sessions
58.2 Control Session
The control session protocol is a stateless protocol. Each message is an independent entity that has no
relationship to any prior message. The device does not retain any information or status about each attached
accessory from message to message. An accessory must behave the same way. Specifically, an accessory request
for a change in device state and/or configuration must be treated as a request and not a command. The device
may or may not choose to honor the request, and will either send an update message to confirm a change in
state/configuration or not send any message at all.
All accessories must use control session version 1 with one exception. Accessories supporting the CarPlay
feature (see CarPlay (page 381)) must advertise support for control session version 2.
Accessories that support control session version 1 must complete authentication (see Accessory
Authentication (page 261)) before sending any other messages.
Accessories that support control session version 2 may send identification messages (see Accessory
Identification (page 265)) before authentication completes, but must complete authentication before sending
any other messages. They must fall back to control session 1 if the Apple device does not support control
session 2 or not support those Apple devices.
Accessories must use control session messages for their specified purpose. Relying on unspecified behavior is
likely to cause incompatibilities with future Apple devices and/or iOS releases.
Accessories must rely on the iAP2 link layer to guarantee message delivery. Accessories should never resend
messages at the control session layer.
789
58. iAP2 Sessions
58.2 Control Session
7 6 5 4 3 2 1 0
Message ID MSB
Message Length:
Size of the whole message, in bytes, including the Start of Message field, Message Length field, Message
ID field and all Parameters.
Message ID:
Message Identifier
Parameter:
Parameters for this message (see below)
790
58. iAP2 Sessions
58.2 Control Session
7 6 5 4 3 2 1 0
Parameter ID MSB
Parameter ID LSB
..
.
Parameter Data
..
.
Parameter Length:
Length of parameter, in bytes, including the parameter length field, parameter ID and parameter data.
Parameter ID:
Interpretation is message specific.
Parameter Data:
Type of the data is determined by the parameter ID for this specific message ID.
[Link] Number
Only certain types of numbers are permitted in messages:
● int8 - signed 8-bit byte
● int16 - signed 16-bit word
791
58. iAP2 Sessions
58.2 Control Session
If a number parameter has a limited range of permitted values, the range will be specified in the parameter
notes. Otherwise, the full range of possible values is assumed to be valid.
[Link] Enumeration
Written in parameter lists as 'enum'. Unsigned 8-bit byte which corresponds to an exact listing of all of its
possible values.
[Link] Boolean
Written in parameter lists as 'bool'. Special type of Enumeration encoded as a one byte unsigned integer where
0 indicates NO and 1 means YES. All other enumeration values are invalid.
[Link] String
Written in parameter lists as 'utf8'. Null terminated UTF-8 string. Accessories that receive string parameters
must be prepared to handle any valid UTF-8 string, as Apple devices allow users to input strings in all supported
languages and character sets, such as Emoji.
[Link] Blob
Written in parameter lists as 'blob'. The contents of the binary blob will be defined in the parameter notes.
Typically, most blobs are arrays of custom data structures.
[Link] None
Written in parameter lists as 'none'. No parameter data. The mere existence or absence of the parameter in
the message has meaning.
792
58. iAP2 Sessions
58.2 Control Session
[Link] Group
Written in parameter lists as 'group'. Parameters maybe grouped together as a group. Group parameter data
consists of a number of sub-parameters each having a Format consisting of Sub-parameter Length, ID, and
Data. Sub-parameters may be present in any order within a group.
7 6 5 4 3 2 1 0
Sub-Parameter1 ID MSB
Sub-Parameter1 ID LSB
..
.
Sub-Parameter1 Data
..
.
Sub-Parameter2 ID MSB
Sub-Parameter2 ID LSB
..
.
Sub-Parameter2 Data
..
.
..
.
793
58. iAP2 Sessions
58.2 Control Session
7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
794
58. iAP2 Sessions
58.3 File Transfer Session
All file transfers are initiated by the sender and have a unique identifier that is also assigned by the sender. Up
to 128 simultaneous transfers in each direction are possible, and transfers may be paused and/or canceled
before they are complete by either the sender or the receiver.
All file transfer datagrams must fit within a single iAP2 link packet payload.
At this time, the only valid file transfer session version is version 1.
58.3.1 TransferIdentifier
Setup of a file transfer takes place in the control session. The following iAP2 messages can generate a file
transfer identifier parameter:
795
58. iAP2 Sessions
58.3 File Transfer Session
To support file transfers from the Accessory to the Device, every iAP2 connection must maintain a global
unsigned 8-bit FileTransferIdentifier that starts at 0 when the connection is established. The FileTransferIdentifier
must be incremented to the next inactive FileTransferIdentifer value once it has been used. Once the global
FileTransferIdentifier reaches 127 the accessory must immediately reset it to 0 or the lowest inactive
FileTransferIdentifier value, whichever is lower, before it initiates the next transfer.
Byte Value
0 FileTransferIdentifier
1 0x04
796
58. iAP2 Sessions
58.3 File Transfer Session
58.3.3 Start
Upon receiving the Setup datagram from the sender, the receiver may send a Start datagram back to the
sender to signify that it is ready to receive file data.
Byte Value
0 FileTransferIdentifier
1 0x01
58.3.4 FirstData
The sender may start sending file data once it receives a Start datagram. The first datagram is unique and must
take the following format:
Byte Value
0 FileTransferIdentifier
1 0x80
2 Data Byte 0
... ...
Only one FirstData datagram may be sent for any given assigned FileTransferIdentifier. The sender must switch
to Data datagrams for all subsequent file data until the end of the file.
58.3.5 FirstAndOnlyData
If the file is so short as to fit in one session datagram, the sender may send a FirstAndOnlyData datagram as
follows:
Byte Value
0 FileTransferIdentifier
797
58. iAP2 Sessions
58.3 File Transfer Session
Byte Value
1 0xC0
2 Data Byte 0
... ...
Only one FirstAndOnlyData datagram may be sent for any given assigned FileTransferIdentifier. The file transfer
is considered complete upon receipt of the FirstAndOnlyData datagram.
58.3.6 Data
Regular file data datagrams must take the following format:
Byte Value
0 FileTransferIdentifier
1 0x00
2 Data Byte 0
... ...
58.3.7 LastData
The last object data datagram is unique and must take the following format:
Byte Value
0 FileTransferIdentifier
1 0x40
2 Data Byte 0
798
58. iAP2 Sessions
58.3 File Transfer Session
Byte Value
... ...
58.3.8 Cancel
The Cancel datagram may be sent at any time by either the sender or receiver after the Setup datagram is sent
or received. The FileTransferIdentifier must be marked as inactive by both the sender and receiver after it is
transmitted.
The Cancel datagram must be sent by any accessory or device if any other File Transfer Session datagram is
received with an inactive FileTransferIdentifier.
Byte Value
0 FileTransferIdentifier
1 0x02
58.3.9 Pause
The Pause datagram may be sent at any time by the sender or receiver after the first Start datagram has been
sent by the receiver. Unlike the Cancel datagram, the FileTransferIdentifier remains active, but no FirstData,
Data, or LastData datagrams may be transmitted until the end that sent the Pause datagram sends a Start
datagram with the same FileTransferIdentifier. Data datagrams will resume from the point where the transfer
left off.
Byte Value
0 FileTransferIdentifier
1 0x03
58.3.10 Success
The Success datagram must be sent by the receiver after it has received and processed all file data. The sender
may choose to delete the file or otherwise dispose of it after receiving this datagram from the receiver.
799
58. iAP2 Sessions
58.3 File Transfer Session
The FileTransferIdentifier must be marked as inactive by both the sender and receiver after this datagram is
transmitted.
Byte Value
0 FileTransferIdentifier
1 0x05
58.3.11 Failure
The Failure datagram must be sent by the receiver if it has received all file data but is unable to store it. This
sender may choose to resend the file or not, depending on the circumstances.
The FileTransferIdentifier must be marked as inactive by both the sender and receiver after this datagram is
transmitted.
Byte Value
0 FileTransferIdentifier
1 0x06
58.3.12 Examples
In all examples, the device is playing the role of the file sender, and the accessory is the file receiver. These
roles can be reversed depending on the needs of a particular accessory interface feature
800
58. iAP2 Sessions
58.3 File Transfer Session
Device Accessory
Control Session
Message(0)
Setup(0)
Start(0)
FirstData(0)(XXX)
Data(0)(XXX)
Data(0)(XXX)
EndData(0)(XXX)
Success(0)
801
58. iAP2 Sessions
58.4 External Accessory Session
Device Accessory
Control Session
Message(0)
Setup(0)
Control Session
Message(1)
Setup(1)
Start(0)
FirstData(0)(XXX)
Data(0)(XXX)
Start(1)
Data(0)(XXX)
FirstData(1)(XXX)
EndData(0)(XXX)
Data(1)(XXX)
Data(1)(XXX)
Success(0)
EndData(1)(XXX)
Success(1)
At this time, the only valid external accessory session version is version 1.
802
58. iAP2 Sessions
58.5 Test Procedures
58.4.1 Setup
Setup of an EA session takes place in the control session. The accessory will receive a
StartExternalAccessoryProtocolSession (page 843) message with assigned
ExternalAccessoryProtocolIdentifier and ExternalAccessoryProtocolSessionIdentifier
parameters.
Accessories that declare an EA session during link synchronization must declare support for one or more
ExternalAccessoryProtocol parameters during accessory identification as specified in External Accessory
Protocol (page 535).
Accessories must not send any EA session datagrams with an unassigned transfer identifier. Conversely,
accessories must ignore any EA session datagrams with unassigned session identifiers.
Byte Value
0 ExternalAccessorySessionIdentifier Byte 0
1 ExternalAccessorySessionIdentifier Byte 1
All EA session datagrams must fit within a single iAP2 link packet payload.
803
58. iAP2 Sessions
58.5 Test Procedures
2. Authentication and Identification messages are not required to be listed as supported features in
IdentificationInformation; all accessories must use them. Some claimed messages are not required to be
seen. Exceptions include DeviceHIDReport, StopHID, StopPowerUpdates, StopNowPlayingUpdates,
StopUSBDeviceModeAudio and StopAssistiveTouch.
3. Verify that Confirm required fields (Name, brand, etc.) are correctly filled in (no "filler" entries, such as
ACME, 1234, etc.)
804
59. iAP2 Control Session Messages
59.1.1 RequestAuthenticationCertificate
Source ID
Device 0xAA00
59.1.2 AuthenticationCertificate
Source ID
Accessory 0xAA01
59.1.3 RequestAuthenticationChallengeResponse
Source ID
Device 0xAA02
805
59. iAP2 Control Session Messages
59.1 Accessory Authentication
59.1.4 AuthenticationResponse
Source ID
Accessory 0xAA03
59.1.5 AuthenticationFailed
Source ID
Device 0xAA04
59.1.6 AuthenticationSucceeded
Source ID
Device 0xAA05
806
59. iAP2 Control Session Messages
59.2 Accessory Identification
59.1.7 AccessoryAuthenticationSerialNumber
Source ID
Accessory 0xAA06
59.2.1 StartIdentification
Source ID
Device 0x1D00
59.2.2 IdentificationInformation
Source ID
Accessory 0x1D01
807
59. iAP2 Control Session Messages
59.2 Accessory Identification
808
59. iAP2 Control Session Messages
59.2 Accessory Identification
809
59. iAP2 Control Session Messages
59.2 Accessory Identification
Value Meaning
0 None
1 Reserved
2 Advanced
ExternalAccessoryProtocolName 1 utf8 1
Value Meaning
0 No Action. The device will not prompt the user to find a matching app, and there will not be
a Find App For This Accessory button in Settings > General > About > 'Accessory Name'
1 Optional Action. The device may prompt the user to find a matching app, and there will be
a Find App For This Accessory button in Settings > General > About > 'Accessory Name' . See
App Match (page 340) for more information.
2 No Alert. The device will not prompt the user to find a matching app, but there will be a Find
App For This Accessory button in Settings > General > About > 'Accessory Name' . See App
Match (page 340) for more information.
810
59. iAP2 Control Session Messages
59.2 Accessory Identification
Value Meaning
3 No Communication Protocol. The protocol is not intended for communication and does not
require StartExternalAccessoryProtocolSession (page 843) or
StopExternalAccessoryProtocolSession (page 843). The device may prompt the user to find a
matching app, and there will be a Find App For This Accessory button in Settings > General >
About > 'Accessory Name' . See App Match (page 340) for more information.
TransportComponentName 1 utf8 1
Value Meaning
0 8000 Hz
1 11025 Hz
2 12000 Hz
3 16000 Hz
4 22050 Hz
5 24000 Hz
6 32000 Hz
7 44100 Hz
8 48000 Hz
811
59. iAP2 Control Session Messages
59.2 Accessory Identification
TransportComponentName 1 utf8 1
TransportComponentName 1 utf8 1
TransportComponentName 1 utf8 1
812
59. iAP2 Control Session Messages
59.2 Accessory Identification
HIDComponentName 1 utf8 1
Name 1 utf8 1
DisplayName 6 utf8 1
Value Meaning
0 Gasoline
1 Diesel
2 Electric
3 CNG
Name 1 utf8 1
813
59. iAP2 Control Session Messages
59.2 Accessory Identification
Name 1 utf8 1
814
59. iAP2 Control Session Messages
59.2 Accessory Identification
HIDComponentName 1 utf8 1
Value Meaning
0 Keyboard
2 AssistiveTouch Pointer
3 Reserved
4 Gamepad (Form-Fitting)
8 Headset
815
59. iAP2 Control Session Messages
59.2 Accessory Identification
TransportComponentName 1 utf8 1
TransportSupportsiAP2Connection 2 none 1
TransportSupportsCarPlay 4 none 1
HIDComponentName 1 utf8 1
59.2.3 IdentificationAccepted
Source ID
Device 0x1D02
816
59. iAP2 Control Session Messages
59.2 Accessory Identification
59.2.4 IdentificationRejected
Source ID
Device 0x1D03
817
59. iAP2 Control Session Messages
59.2 Accessory Identification
818
59. iAP2 Control Session Messages
59.3 App Launch
59.2.5 CancelIdentification
Source ID
Accessory 0x1D05
59.2.6 IdentificationInformationUpdate
Source ID
Accessory 0x1D06
Name 0 utf8 1
ModelIdentifier 1 utf8 1
Manufacturer 2 utf8 1
SerialNumber 3 utf8 1
FirmwareVersion 4 utf8 1
HardwareVersion 5 utf8 1
CurrentLanguage 6 utf8 1
819
59. iAP2 Control Session Messages
59.4 AssistiveTouch
59.3.1 RequestAppLaunch
Source ID
Accessory 0xEA02
Value Meaning
59.4 AssistiveTouch
For more information, see AssistiveTouch (page 342).
59.4.1 StartAssistiveTouch
Source ID
Accessory 0x5400
820
59. iAP2 Control Session Messages
59.4 AssistiveTouch
59.4.2 StopAssistiveTouch
Source ID
Accessory 0x5401
59.4.3 StartAssistiveTouchInformation
Source ID
Accessory 0x5402
59.4.4 AssistiveTouchInformation
Source ID
Device 0x5403
IsEnabled 0 bool 1
59.4.5 StopAssistiveTouchInformation
Source ID
Accessory 0x5404
821
59. iAP2 Control Session Messages
59.5 Bluetooth Connection
59.5.1 BluetoothComponentInformation
Source ID
Accessory 0x4E01
59.5.2 StartBluetoothConnectionUpdates
Source ID
Accessory 0x4E03
822
59. iAP2 Control Session Messages
59.5 Bluetooth Connection
59.5.3 BluetoothConnectionUpdate
Source ID
Device 0x4E04
823
59. iAP2 Control Session Messages
59.6 Communications
59.5.4 StopBluetoothConnectionUpdates
Source ID
Accessory 0x4E05
59.6 Communications
For more information, see Communications (page 517).
59.6.1 StartCallStateUpdates
Source ID
Accessory 0x4154
RemoteID 0 none 1
DisplayName 1 none 1
Status 2 none 1
Direction 3 none 1
CallUUID 4 none 1
Service 8 none 1
IsConferenced 9 none 1
824
59. iAP2 Control Session Messages
59.6 Communications
ConferenceGroup 10 none 1
59.6.2 CallStateUpdate
Source ID
Device 0x4155
DisconnectReason 11 enum 0/1 See Table 59-49 (page 826); Will only be sent if Status
= Disconnected
825
59. iAP2 Control Session Messages
59.6 Communications
Value Meaning
0 Disconnected
1 Sending
2 Ringing
3 Connecting
4 Active
5 Held
6 Disconnecting
Value Meaning
0 Unknown
1 Incoming
2 Outgoing
Value Meaning
0 Unknown
1 Telephony
2 FaceTimeAudio
3 FaceTimeVideo
Value Meaning
1 Call Declined
826
59. iAP2 Control Session Messages
59.6 Communications
Value Meaning
2 Call Failed
Value Meaning
0 Disconnected
1 Active
2 Held
3 Ringing/Sending
Value Meaning
0 Incoming
1 Outgoing
2 Unknown
59.6.3 StopCallStateUpdates
Source ID
Accessory 0x4156
59.6.4 StartCommunicationsUpdates
Source ID
Accessory 0x4157
827
59. iAP2 Control Session Messages
59.6 Communications
59.6.5 CommunicationsUpdate
Source ID
Device 0x4158
828
59. iAP2 Control Session Messages
59.6 Communications
SignalStrength 0 enum 0/1 See Table 59-55 (page 829); Will not be sent
if CellularSupported is false
RegistrationStatus 1 enum 0/1 See Table 59-56 (page 830); Will not be sent
if CellularSupported is false
HoldAvailable 17 bool 0/1 You cannot place a call on hold if this is false.
You can un-hold a call if the status is held
even if this is false.
Value Meaning
0 0 bars
829
59. iAP2 Control Session Messages
59.6 Communications
Value Meaning
1 1 bar
2 2 bars
3 3 bars
4 4 bars
5 5 bars
Value Meaning
0 Unknown
1 Not Registered
2 Searching
3 Denied
4 Registered Home
5 Registered Roaming
59.6.6 StopCommunicationsUpdates
Source ID
Accessory 0x4159
830
59. iAP2 Control Session Messages
59.6 Communications
59.6.7 InitiateCall
Source ID
Accessory 0x415A
Service 2 enum 0/1 Required for Destination call. See Table 59-60 (page
831)
Value Meaning
0 Destination
1 Voicemail
2 Redial
Value Meaning
1 Telephony
2 FaceTimeAudio
3 FaceTimeVideo
831
59. iAP2 Control Session Messages
59.6 Communications
59.6.8 AcceptCall
Source ID
Accessory 0x415B
Value Meaning
0 Accept/HoldAndAccept
1 EndAndAccept
59.6.9 EndCall
Source ID
Accessory 0x415C
Value Meaning
0 End/Decline
1 EndAll
832
59. iAP2 Control Session Messages
59.6 Communications
59.6.10 SwapCalls
Source ID
Accessory 0x415D
59.6.11 MergeCalls
Source ID
Accessory 0x415E
59.6.12 HoldStatusUpdate
Source ID
Accessory 0x415F
HoldStatus 0 bool 1
833
59. iAP2 Control Session Messages
59.6 Communications
59.6.13 MuteStatusUpdate
Source ID
Accessory 0x4160
MuteStatus 0 bool 1
59.6.14 SendDTMF
Source ID
Accessory 0x4161
Value Meaning
0 Number 0
1 Number 1
2 Number 2
3 Number 3
4 Number 4
5 Number 5
6 Number 6
834
59. iAP2 Control Session Messages
59.6 Communications
Value Meaning
7 Number 7
8 Number 8
9 Number 9
10 Star (*)
11 Pound (#)
59.6.15 StartListUpdates
Source ID
Accessory 0x4170
RecentsListProperties 1 group 0/1 See Table 59-72 (page 835); Sending this
parameter will cause the device to send
RecentsListAvailable, RecentsListCount, and
RecentsList
FavoritesListProperties 6 group 0/1 See Table 59-73 (page 836); Sending this
parameter will cause the device to send
FavoritesListAvailable, FavoritesListCount, and
FavoritesList
Index 0 none 1
RemoteID 1 none 1
835
59. iAP2 Control Session Messages
59.6 Communications
DisplayName 2 none 1
Service 5 none 1
Type 6 none 1
Occurrences 9 none 1
Index 0 none 1
RemoteID 1 none 1
DisplayName 2 none 1
Service 5 none 1
59.6.16 ListUpdate
Source ID
Device 0x4171
836
59. iAP2 Control Session Messages
59.6 Communications
DisplayName 2 utf8 1
Occurrences 9 uint8 1
DisplayName 2 utf8 1
837
59. iAP2 Control Session Messages
59.6 Communications
Value Meaning
0 Unknown
1 Telephony
2 FaceTimeAudio
3 FaceTimeVideo
Value Meaning
0 Unknown
1 Incoming
2 Outgoing
3 Missed
59.6.17 StopListUpdates
Source ID
Accessory 0x4172
838
59. iAP2 Control Session Messages
59.7 Device Authentication
59.7.1 RequestDeviceAuthenticationCertificate
Source ID
Accessory 0xAA10
59.7.2 DeviceAuthenticationCertificate
Source ID
Device 0xAA11
59.7.3 RequestDeviceAuthenticationChallengeResponse
Source ID
Accessory 0xAA12
839
59. iAP2 Control Session Messages
59.8 Device Notifications
59.7.4 DeviceAuthenticationResponse
Source ID
Device 0xAA13
59.7.5 DeviceAuthenticationFailed
Source ID
Accessory 0xAA14
59.7.6 DeviceAuthenticationSucceeded
Source ID
Accessory 0xAA15
840
59. iAP2 Control Session Messages
59.8 Device Notifications
59.8.1 DeviceInformationUpdate
Source ID
Device 0x4E09
DeviceName 0 utf8 0/1 Device name as shown in Settings, i.e. "John Doe's iPhone"
59.8.2 DeviceLanguageUpdate
Source ID
Device 0x4E0A
DeviceLanguage 0 utf8 0/1 ISO 639-1 or ISO 639-2 designation for the current
device language. For a complete list of ISO 639-1 and
ISO 639-2 codes, see [Link]
dards/iso639-2/php/English_list.php
59.8.3 DeviceTimeUpdate
Source ID
Device 0x4E0B
841
59. iAP2 Control Session Messages
59.8 Device Notifications
59.8.4 DeviceUUIDUpdate
Source ID
Device 0x4E0C
UUID 0 utf8 1 This UUID will be the same over all transports as long as one iAP
accessory is connected. The UUID will be changed no less than one
minute after all iAP accessories disconnect.
59.8.5 WirelessCarPlayUpdate
Source ID
Device 0x4E0D
Value Meaning
0 Unavailable
1 Available
842
59. iAP2 Control Session Messages
59.9 External Accessory Protocol
59.9.1 StartExternalAccessoryProtocolSession
Source ID
Device 0xEA00
ExternalAccessoryProtocolSessionIdentifier 1 uint16 1
59.9.2 StopExternalAccessoryProtocolSession
Source ID
Device 0xEA01
ExternalAccessoryProtocolSessionIdentifier 0 uint16 1
59.9.3 StatusExternalAccessoryProtocolSession
Source ID
Accessory 0xEA03
ExternalAccessoryProtocolSessionIdentifier 0 uint16 1
843
59. iAP2 Control Session Messages
59.10 Human Interface Device
Value Meaning
0 SessionStatusOK
1 SessionClose
59.10.1 StartHID
Source ID
Accessory 0x6800
844
59. iAP2 Control Session Messages
59.10 Human Interface Device
59.10.2 DeviceHIDReport
Source ID
Device 0x6801
59.10.3 AccessoryHIDReport
Source ID
Accessory 0x6802
845
59. iAP2 Control Session Messages
59.11 Location
59.10.4 StopHID
Source ID
Accessory 0x6803
59.10.5 StartNativeHID
Source ID
Device 0x6806
59.11 Location
For more information, see Location Information (page 637).
59.11.1 StartLocationInformation
Source ID
Device 0xFFFA
846
59. iAP2 Control Session Messages
59.11 Location
59.11.2 LocationInformation
Source ID
Accessory 0xFFFB
847
59. iAP2 Control Session Messages
59.12 Media Library Access
59.11.3 StopLocationInformation
Source ID
Device 0xFFFC
59.12.1 StartMediaLibraryInformation
Source ID
Accessory 0x4C00
848
59. iAP2 Control Session Messages
59.12 Media Library Access
59.12.2 MediaLibraryInformation
Source ID
Device 0x4C01
MediaLibraryName 0 utf8 1
MediaLibraryUniqueIdentifier 1 utf8 1
Value Meaning
59.12.3 StopMediaLibraryInformation
Source ID
Accessory 0x4C02
849
59. iAP2 Control Session Messages
59.12 Media Library Access
59.12.4 StartMediaLibraryUpdates
Source ID
Accessory 0x4C03
MediaLibraryUniqueIdentifier 0 utf8 1
MediaItemPropertyPersistentIdentifier 0 none 1
850
59. iAP2 Control Session Messages
59.12 Media Library Access
MediaPlaylistPropertyPersistentIdentifer 0 none 1
851
59. iAP2 Control Session Messages
59.12 Media Library Access
59.12.5 MediaLibraryUpdate
Source ID
Device 0x4C04
MediaLibraryUniqueIdentifier 0 utf8 1
852
59. iAP2 Control Session Messages
59.12 Media Library Access
853
59. iAP2 Control Session Messages
59.12 Media Library Access
854
59. iAP2 Control Session Messages
59.12 Media Library Access
Value Meaning
0 MediaTypeMusic
1 MediaTypePodcast
2 MediaTypeAudioBook
3 MediaTypeiTunesU
855
59. iAP2 Control Session Messages
59.12 Media Library Access
59.12.6 StopMediaLibraryUpdates
Source ID
Accessory 0x4C05
MediaLibraryUniqueIdentifier 0 utf8 1+
59.12.7 PlayMediaLibraryCurrentSelection
Source ID
Accessory 0x4C06
59.12.8 PlayMediaLibraryItems
Source ID
Accessory 0x4C07
856
59. iAP2 Control Session Messages
59.12 Media Library Access
59.12.9 PlayMediaLibraryCollection
Source ID
Accessory 0x4C08
CollectionPersistentIdentifier 0 uint64 1
Note: CollectionStartingIndex parameter must only be used for Playlist collection types. Behavior
when used with other collection types is undefined.
Value Meaning
0 Playlist
1 Artist
857
59. iAP2 Control Session Messages
59.13 Now Playing
Value Meaning
2 Album
3 Album Artist
4 Genre
5 Composer
59.12.10 PlayMediaLibrarySpecial
Source ID
Accessory 0x4C09
MediaLibraryUniqueIdentifier 0 utf8 1
59.13.1 StartNowPlayingUpdates
Source ID
Accessory 0x5000
858
59. iAP2 Control Session Messages
59.13 Now Playing
859
59. iAP2 Control Session Messages
59.13 Now Playing
PlaybackAppName 7 none 1
PlaybackAppBundleID 16 none 1
59.13.2 NowPlayingUpdate
Source ID
Device 0x5001
860
59. iAP2 Control Session Messages
59.13 Now Playing
MediaItemAttributes 0 group 0/1 See Table 59-113 (page 853). Note that not all
MediaItem parameters are supported by the Now
Playing feature. See Table 59-123 (page 859)
861
59. iAP2 Control Session Messages
59.13 Now Playing
Value Meaning
0 Stopped
1 Playing
2 Paused
3 SeekForward
4 SeekBackward
Value Meaning
0 Off
862
59. iAP2 Control Session Messages
59.13 Now Playing
Value Meaning
1 Songs
2 Albums
Value Meaning
0 Off
1 One
2 All
59.13.3 StopNowPlayingUpdates
Source ID
Accessory 0x5002
59.13.4 SetNowPlayingInformation
Source ID
Accessory 0x5003
863
59. iAP2 Control Session Messages
59.14 Power
59.14 Power
For more information, see Power (page 660).
59.14.1 StartPowerUpdates
Source ID
Accessory 0xAE00
59.14.2 PowerUpdate
Source ID
Device 0xAE01
864
59. iAP2 Control Session Messages
59.14 Power
Value Meaning
0 Reserved
Value Meaning
0 Disabled
1 Charging
2 Charged
865
59. iAP2 Control Session Messages
59.15 USB Device Mode Audio
59.14.3 StopPowerUpdates
Source ID
Accessory 0xAE02
59.14.4 PowerSourceUpdate
Source ID
Accessory 0xAE03
59.15.1 StartUSBDeviceModeAudio
Source ID
Accessory 0xDA00
866
59. iAP2 Control Session Messages
59.16 Vehicle Status
59.15.2 USBDeviceModeAudioInformation
Source ID
Device 0xDA01
59.15.3 StopUSBDeviceModeAudio
Source ID
Accessory 0xDA02
867
59. iAP2 Control Session Messages
59.16 Vehicle Status
59.16.1 StartVehicleStatusUpdates
Source ID
Device 0xA100
59.16.2 VehicleStatusUpdate
Source ID
Accessory 0xA101
RangeWarning 6 bool 0/1 if True, the vehicle's low range warning indicator
is set
59.16.3 StopVehicleStatusUpdates
Source ID
Device 0xA102
868
59. iAP2 Control Session Messages
59.17 VoiceOver
59.17 VoiceOver
For more information, see VoiceOver (page 720).
59.17.1 StartVoiceOver
Source ID
Accessory 0x5612
59.17.2 StopVoiceOver
Source ID
Accessory 0x5613
869
59. iAP2 Control Session Messages
59.17 VoiceOver
59.17.3 RequestVoiceOverMoveCursor
Source ID
Accessory 0x5601
Value Meaning
0 Next
1 Previous
2 Escape
59.17.4 RequestVoiceOverActivateCursor
Source ID
Accessory 0x5602
59.17.5 RequestVoiceOverScrollPage
Source ID
Accessory 0x5603
870
59. iAP2 Control Session Messages
59.17 VoiceOver
Value Meaning
0 Left
1 Right
2 Up
3 Down
59.17.6 RequestVoiceOverSpeakText
Source ID
Accessory 0x5606
TextToSpeak 0 utf8 0/1 If not present, VoiceOver will read the currently visible
onscreen text starting from the top. Otherwise, VoiceOver
will read the text present in this parameter
59.17.7 RequestVoiceOverPauseText
Source ID
Accessory 0x5608
871
59. iAP2 Control Session Messages
59.17 VoiceOver
59.17.8 RequestVoiceOverResumeText
Source ID
Accessory 0x5609
59.17.9 StartVoiceOverUpdates
Source ID
Accessory 0x560B
59.17.10 VoiceOverUpdate
Source ID
Device 0x560C
872
59. iAP2 Control Session Messages
59.17 VoiceOver
59.17.11 StopVoiceOverUpdates
Source ID
Accessory 0x560D
59.17.12 RequestVoiceOverConfiguration
Source ID
Accessory 0x560E
873
59. iAP2 Control Session Messages
59.17 VoiceOver
59.17.13 StartVoiceOverCursorUpdates
Source ID
Accessory 0x560F
59.17.14 VoiceOverCursorUpdate
Source ID
Device 0x5610
Traits 3 blob 0/1 An array of uint16s. See Table 59-160 (page 875) (uint16[])
874
59. iAP2 Control Session Messages
59.17 VoiceOver
Value Meaning
0 Button
1 Link
2 Search Field
3 Image
4 Selected
5 Sound
6 Keyboard Key
7 Static Text
8 Summary Element
9 Not Enabled
10 Updates Frequently
12 Adjustable
13 Back Button
14 Map
15 Delete Key
59.17.15 StopVoiceOverCursorUpdates
Source ID
Accessory 0x5611
875
59. iAP2 Control Session Messages
59.18 Wi-Fi Information Sharing
59.18.1 RequestWiFiInformation
Source ID
Accessory 0x5700
59.18.2 WiFiInformation
Source ID
Device 0x5701
876
59. iAP2 Control Session Messages
59.18 Wi-Fi Information Sharing
Value Meaning
0 Success
1 User Declined
59.18.3 RequestAccessoryWiFiConfigurationInformation
Source ID
Device 0x5702
59.18.4 AccessoryWiFiConfigurationInformation
Source ID
Accessory 0x5703
877
59. iAP2 Control Session Messages
59.18 Wi-Fi Information Sharing
Value Meaning
0 None
1 WEP
2 WPA/WPA2 Personal
878
60. Accessory Test System
Some test procedures in this specification require the use of the Accessory Test System (ATS) Lightning box
(part number: MFIATS-R3-001). This box requires associated ATS software to function; this software may be
downloaded from the MFi Portal. Self certification activities must always use the most recent version of the
ATS software.
TotalPhase Beagle USB 480 Protocol Analyzer Part Number: TP320510. Required to capture iAP2 over
USB traffic.
879
61. Device Dimensional Drawings
880
61. Device Dimensional Drawings
881
61. Device Dimensional Drawings
882
61. Device Dimensional Drawings
61.1 Apple Watch 38 mm
883
61. Device Dimensional Drawings
61.2 Apple Watch 42 mm
884
61. Device Dimensional Drawings
61.3 iPhone 6s Plus
885
61. Device Dimensional Drawings
61.4 iPhone 6s
61.4 iPhone 6s
Figure 61-4 iPhone 6s Dimensional Drawing
886
61. Device Dimensional Drawings
61.5 iPhone 6 Plus
887
61. Device Dimensional Drawings
61.6 iPhone 6
61.6 iPhone 6
Figure 61-6 iPhone 6 Dimensional Drawing
888
61. Device Dimensional Drawings
61.7 iPhone 5s
61.7 iPhone 5s
Figure 61-7 iPhone 5s Dimensional Drawing
889
61. Device Dimensional Drawings
61.8 iPhone 5c
61.8 iPhone 5c
Figure 61-8 iPhone 5c Dimensional Drawing
890
61. Device Dimensional Drawings
61.9 iPhone 5
61.9 iPhone 5
Figure 61-9 iPhone 5 Dimensional Drawing
891
61. Device Dimensional Drawings
61.10 iPhone 4s
61.10 iPhone 4s
Figure iPhone 4s Dimensional Drawing
61-10
892
61. Device Dimensional Drawings
61.11 iPhone 4 (CDMA model)
893
61. Device Dimensional Drawings
61.12 iPhone 4 (GSM model)
894
61. Device Dimensional Drawings
61.13 iPhone 3G and iPhone 3GS
895
61. Device Dimensional Drawings
61.14 iPhone
61.14 iPhone
Figure iPhone Dimensional Drawing
61-14
896
61. Device Dimensional Drawings
61.15 iPad Pro Wi-Fi
!
!
!
!
!
!
897
61. Device Dimensional Drawings
61.16 iPad Pro Wi-Fi + Cellular
!
!
!
!
!
!
!
!
!
!
!
898
61. Device Dimensional Drawings
61.17 iPad mini 4 Wi-Fi
!
!
!
!
!
!
!
899
61. Device Dimensional Drawings
61.18 iPad mini 4 Wi-Fi + Cellular
!
!
!
!
!
!
!
900
61. Device Dimensional Drawings
61.19 iPad Air 2 Wi-Fi
901
61. Device Dimensional Drawings
61.20 iPad Air 2 Wi-Fi + Cellular
902
61. Device Dimensional Drawings
61.21 iPad mini 2 & 3 Wi-Fi
903
61. Device Dimensional Drawings
61.22 iPad mini 2 & 3 Wi-Fi + Cellular
904
61. Device Dimensional Drawings
61.23 iPad Air Wi-Fi
905
61. Device Dimensional Drawings
61.24 iPad Air Wi-Fi + Cellular
906
61. Device Dimensional Drawings
61.25 iPad mini with Wi-Fi
907
61. Device Dimensional Drawings
61.26 iPad mini with Wi-Fi + Cellular
908
61. Device Dimensional Drawings
61.27 iPad with Wi-Fi (4th generation)
909
61. Device Dimensional Drawings
61.28 iPad with Wi-Fi + Cellular (4th generation)
910
61. Device Dimensional Drawings
61.29 iPad with Wi-Fi (3rd generation)
911
61. Device Dimensional Drawings
61.30 iPad with Wi-Fi + 4G (3rd generation)
912
61. Device Dimensional Drawings
61.31 iPad 2 with Wi-Fi
913
61. Device Dimensional Drawings
61.32 iPad 2 with Wi-Fi + 3G
914
61. Device Dimensional Drawings
61.33 iPad with Wi-Fi
915
61. Device Dimensional Drawings
61.34 iPad with Wi-Fi + 3G
916
61. Device Dimensional Drawings
61.35 iPod touch (6th generation)
917
61. Device Dimensional Drawings
61.36 iPod touch (5th generation)
918
61. Device Dimensional Drawings
61.37 iPod touch (4th generation)
919
61. Device Dimensional Drawings
61.38 iPod touch (3rd generation)
920
61. Device Dimensional Drawings
61.39 iPod touch (2nd generation)
921
61. Device Dimensional Drawings
61.40 iPod touch
922
61. Device Dimensional Drawings
61.41 iPod nano (7th generation)
923
61. Device Dimensional Drawings
61.42 iPod nano (6th generation)
924
61. Device Dimensional Drawings
61.43 iPod nano (5th generation)
925
61. Device Dimensional Drawings
61.44 iPod nano (4th generation)
926
61. Device Dimensional Drawings
61.45 iPod nano (3rd generation)
(3rd Generation)
iPod nano
927
61. Device Dimensional Drawings
61.46 iPod nano (2nd generation)
928
61. Device Dimensional Drawings
61.47 iPod nano
929
61. Device Dimensional Drawings
61.48 iPod classic 160GB
930
61. Device Dimensional Drawings
61.49 iPod classic 80GB
iPod classic
931
61. Device Dimensional Drawings
61.50 iPod (5th generation) 60GB/80GB
932
61. Device Dimensional Drawings
61.51 iPod (5th generation) 30GB
iPod10-12 30 GB
933
61. Device Dimensional Drawings
61.52 iPod (4th generation)
934
61. Device Dimensional Drawings
61.53 iPod (3rd generation)
935
61. Device Dimensional Drawings
61.54 iPod photo 30GB/60GB
936
61. Device Dimensional Drawings
61.55 iPod photo
937
61. Device Dimensional Drawings
61.56 iPod shuffle (4th generation)
938
61. Device Dimensional Drawings
61.57 iPod shuffle (3rd generation)
939
61. Device Dimensional Drawings
61.58 iPod shuffle (2nd generation)
940
61. Device Dimensional Drawings
61.59 iPod shuffle
941
61. Device Dimensional Drawings
61.59 iPod shuffle
942
61. Device Dimensional Drawings
61.60 iPod mini
943
62. Revision History
Date Notes
Release R22
944
62. Revision History
Release R21
Added Round-Trip DC Resistance (DCR) with Overcurrent Protection (OCP) (page 233)
Added Support for Apple devices running iOS 8.2 or older (page 521)
945
62. Revision History
Release R20
946
62. Revision History
Updated Device Dimensional Drawings (page 880): Added dimensional drawings for
iPhone 6s Plus, iPhone 6s, iPad Pro, and iPad mini 4. Updated dimensional drawings for
iPhone 6 Plus and iPhone 6
Release R19
Merged and updated "General Requirements, iAP1" and "General Requirements, iAP2"
into iAP (page 57)
947
62. Revision History
948
62. Revision History
Release R18
949
62. Revision History
Added User Interaction with Siri Eyes Free in a Vehicle (page 690)
Release R17
950
62. Revision History
Updated Access to the Headset Jack and 30-pin or Lightning Connector (page 488)
951
62. Revision History
952
62. Revision History
Updated Device Dimensional Drawings (page 880): Added dimensional drawings for
iPhone 6 Plus and iPhone 6
Release R16
953
62. Revision History
Release R15
Removed "Accessory Test Procedures" and distributed its contents across feature chapters
Removed "Transports"
954
62. Revision History
955
62. Revision History
Release R13
Release R12
956
62. Revision History
Release R11
Release R10
2013-11-01 Release R9
957
62. Revision History
Release R8
958
62. Revision History
959
62. Revision History
Release R7
Release R6
Moved material from HID (Human Interface Device) (page 580) chapter into new chapters
HID AssistiveTouch Pointer (page 588), HID Keyboard (page 621), and HID Media Playback
Remote (page 631).
960
62. Revision History
Updated "Transports"
Release R5
Updated "Transports"
Release R4
961
62. Revision History
Release R3
Release R2
2012-09-23 Release R1
962
Apple Inc.
Copyright © 2015 Apple Inc.
All rights reserved.
For wired CarPlay sessions, authentication is typically faster due to direct USB connections, whereas wireless CarPlay requires initial Bluetooth pairing followed by Wi-Fi credential exchange. Service discovery over wireless is facilitated by Bonjour services, which optimizes connection time .
Critical components include memory for at least five paired devices, automatic replacement of the least recently used pairing, and a manual reset option via the Bluetooth button. These ensure that the game controller manages connections effectively, maintaining reliable connectivity with multiple devices .
Accessories using the Lightning connector must comply with specific USB 2.0 differential insertion loss and impedance requirements. These standards ensure that the transmission and reception of data remain stable and efficient, preserving signal quality and overall device performance .
The Bluetooth button, positioned between right shoulder buttons and the controller axis, is specifically designed to prevent accidental presses during operation. It is labeled with a Bluetooth icon, which clearly indicates its purpose, enabling users to confidently initiate pairing .
The Apple Authentication Coprocessor provides an X.509 Certificate that accelerates the iAP2 and CarPlay interface authentication processes by allowing local caching. This credential is essential for authorizing accessories to communicate with Apple devices, ensuring secure interactions between them .
The Lightning connector is significantly smaller and more compact compared to the older 30-pin connector. This reduction in size allows for slimmer device designs and improves portability .
Encapsulation of exposed contacts, solder joints, and PCB copper with an electrically nonconductive sealing compound is required to protect against moisture damage. This is essential for maintaining the longevity and reliability of the connections, especially in varying environmental conditions .
The reversibility of the Lightning connector means that it can be inserted into a device without regard to orientation, eliminating the need for users to check which way the connector should be inserted each time. This offers a more user-friendly experience compared to the 30-pin connector, which required correct alignment .
Test procedures involve verifying plug exposure under both insertion and extraction forces using a calibrated force gauge, ensuring the plug remains securely in place under pressure. This testing ensures that the mechanical design can withstand repeated use without physical failure .
Using encapsulation compounds such as Loctite 3703 UV Encapsulant is significant because they provide an essential barrier against environmental factors like moisture. It extends the life of the receptacle and protects against electrical failures, which is crucial for reliability in daily operations .