717_Developing Wireless CarPlay Systems_03_D_TK

System Frameworks
#WWDC17
Developing Wireless CarPlay Systems
•
•
Session 717
Tanya Kancheva, CarPlay Engineering
© 2017 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple.
Wireless CarPlay
Wireless CarPlay
Using Wireless CarPlay
•
Getting Started
Getting Started
Pair by plugging in
Getting Started
Pair by plugging in
Pair without plugging in
Pair by Plugging In
Steps
Plug in
CarPlay starts
Enable wireless CarPlay
CarPlay Starts
Pairing Complete
Pairing Complete
CarPlay will work wirelessly the next time the user enters the car
Pairing Complete
CarPlay will work wirelessly the next time the user enters the car
Additional confirmation not required on the car’s display
Pair Without Plugging In
Steps
Start CarPlay setup
Select device to pair
CarPlay starts
Start CarPlay Setup
Start CarPlay Setup
Press and hold the voice control button on the steering wheel
Start CarPlay Setup
Press and hold the voice control button on the steering wheel
Use the car’s native UI
• Add a CarPlay device
• Add a Bluetooth device
My Car
Select Device to Pair
Selection initiated from iPhone
Open Bluetooth settings
on your device and select
“My Car.”
Select Device to Pair
Selection initiated from the car via CarPlay menu
List of discovered
CarPlay devices
Select Device to Pair
Selection initiated from the car via Bluetooth menu
List of discovered
Bluetooth devices
Select Device to Pair
Selection initiated from the car via Bluetooth menu
Use CarPlay with
“John’s iPhone?”
Use Bluetooth
Enable CarPlay
CarPlay Starts
Connecting
Check “John’s iPhone” to
complete pairing.
CarPlay Starts
Reconnecting
Developing CarPlay Systems, Part 1
WWDC 2016
Reconnecting
CarPlay starts automatically
Developing CarPlay Systems, Part 1
WWDC 2016
Reconnecting
CarPlay starts automatically
Last user mode
Developing CarPlay Systems, Part 1
WWDC 2016
Handling Multiple Devices
Handling Multiple Devices
Multiple devices
• Wireless devices
• Wired and wireless devices
Handling Multiple Devices
Multiple devices
• Wireless devices
• Wired and wireless devices
Allow the user to choose the active CarPlay device
Choosing the Active CarPlay Device
Choosing the Active CarPlay Device
Show all CarPlay devices
Choosing the Active CarPlay Device
Show all CarPlay devices
Indicate active CarPlay device
Choose CarPlay Device
John’s iPhone
Mani’s iPhone
Mariana’s iPhone
Choosing the Active CarPlay Device
Show all CarPlay devices
Indicate active CarPlay device
Don’t show USB or Wi-Fi symbols
Choose CarPlay Device
John’s iPhone
Mani’s iPhone
Mariana’s iPhone
Notifications when Devices are Connected
Show when first iPhone is connected, and CarPlay won’t be visible
Show when a second iPhone is connected over USB
Do not show when wireless devices join the network
Developing Wireless CarPlay Systems
•
Developing Wireless CarPlay Systems
•
Hardware requirements
•
Setup and pairing
•
Reconnecting
•
Wireless considerations
Developing Wireless CarPlay Systems
•
Hardware requirements
•
Setup and pairing
•
Reconnecting
•
Wireless considerations
Hardware Requirements
Bluetooth
Wi-Fi
Location
Bluetooth
Used for discovery and reconnection only
Support for communication protocols (SDP, iAP2), 2.1 + EDR
Bluetooth Extended Inquiry Response (EIR)
Wi-Fi
Used for video, audio, and CarPlay protocol, including iAP2
Wi-Fi Alliance certified access point
5 GHz, 802.11ac recommended
Apple Device Information Element
Interworking Information Element
Location
Required because iPhone could be in pocket or bag
GNSS receiver
Speed sensor
Dead reckoning
Developing Wireless CarPlay Systems
•
Hardware requirements
•
Setup and pairing
•
Reconnecting
•
Wireless considerations
Developing Wireless CarPlay Systems
•
Hardware requirements
•
Setup and pairing
•
Reconnecting
•
Wireless considerations
Head Unit Components for CarPlay Setup
Head Unit Components for CarPlay Setup
Head Unit
Head Unit Components for CarPlay Setup
Head Unit
USB
Head Unit Components for CarPlay Setup
Head Unit
Wi-Fi
USB
Head Unit Components for CarPlay Setup
Head Unit
Bluetooth
Wi-Fi
USB
Head Unit Components for CarPlay Setup
Head Unit
Plug-in
Bluetooth
Wi-Fi
USB
Boot Sequence After Head Unit Reset
Head Unit
Plug-in
Bluetooth
Wi-Fi
USB
Boot Sequence After Head Unit Reset
Head Unit
Plug-in
Bluetooth
Wi-Fi
USB
Boot Sequence After Head Unit Reset
Head Unit
Plug-in
Bluetooth
Wi-Fi
USB
USB On
Boot Sequence After Head Unit Reset
Head Unit
Plug-in
Bluetooth
Wi-Fi
USB
Wi-Fi On
USB On
Boot Sequence After Head Unit Reset
Head Unit
Plug-in
Bluetooth
Wi-Fi
USB
Wi-Fi On
USB On
DHCP
active
Boot Sequence After Head Unit Reset
Head Unit
Plug-in
Bluetooth
Wi-Fi
USB
BT On
Wi-Fi On
USB On
DHCP
active
Boot Sequence After Head Unit Reset
Head Unit
Plug-in
Bluetooth
Wi-Fi
USB
Launch
Bonjour
BT On
Wi-Fi On
USB On
DHCP
active
Boot Sequence After Head Unit Reset
Head Unit
Plug-in
Bluetooth
Wi-Fi
USB
Launch
Bonjour
BT On
Wi-Fi On
USB On
Launch
CarPlay
Plug-in
DHCP
active
Boot Sequence After Head Unit Reset
Head Unit
Plug-in
Bluetooth
Wi-Fi
USB
Launch
Bonjour
BT On
Wi-Fi On
USB On
Launch
CarPlay
Plug-in
DHCP
active
Ready for CarPlay
Getting Started
Getting Started
Pair by plugging in
Getting Started
Pair by plugging in
• Out-of-band pairing over USB
Getting Started
Pair by plugging in
• Out-of-band pairing over USB
Pair without plugging in
Getting Started
Pair by plugging in
• Out-of-band pairing over USB
Pair without plugging in
• Bluetooth pairing
Out-of-Band Pairing over USB
Head Unit
Car
Native UI
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
Out-of-Band Pairing over USB
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
User plugs in iPhone
Car
Native UI
iPhone
Out-of-Band Pairing over USB
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
User plugs in iPhone
Car
USB role switch
Native UI
iPhone
Out-of-Band Pairing over USB
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
User plugs in iPhone
Car
iPhone
USB role switch
Native UI
CarPlay
connected
Out-of-Band Pairing over USB
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
Car
iPhone
Native UI
CarPlay
connected
Out-of-Band Pairing over USB
Head Unit
Car
Native UI
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
iAP2 over USB
(Wireless & wired CarPlay
DeviceTransportIdentifier
OOBBTPairing)
iPhone
CarPlay
connected
Out-of-Band Pairing over USB
Head Unit
Car
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
iAP2 over USB
(Wireless & wired CarPlay
DeviceTransportIdentifier
OOBBTPairing)
iPhone
CarPlay session established over USB
Native UI
Use wireless
CarPlay?
CarPlay
connected
Yes
No
Out-of-Band Pairing over USB
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
CarPlay session active over USB
Car
iPhone
Use wireless
CarPlay?
Native UI
Yes
No
Out-of-Band Pairing over USB
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
CarPlay session active over USB
Car
CarPlay UI
Screen session setup
Audio session setup
iPhone
Use wireless
CarPlay?
Yes
No
Out-of-Band Pairing over USB
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
CarPlay session active over USB
Car
CarPlay UI
Screen session setup
Audio session setup
iPhone
Use wireless
CarPlay?
CarPlay
connected
Yes
No
User says yes
Out-of-Band Pairing over USB
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
CarPlay session active over USB
Car
iPhone
CarPlay UI
CarPlay
connected
Out-of-Band Pairing over USB
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
CarPlay session active over USB
Car
CarPlay UI
iAP2 over USB
(OOOBBTPairingLink
KeyInformation)
iPhone
CarPlay
connected
Out-of-Band Pairing over USB
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
CarPlay session active over USB
Car
CarPlay UI
iAP2 over USB
(OOOBBTPairingLink
KeyInformation)
DeviceName
DeviceTransportIdentifier
LinkKey
iPhone
CarPlay
connected
Out-of-Band Pairing over USB
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
CarPlay session active over USB
Car
iPhone
CarPlay UI
CarPlay
connected
Out-of-Band Pairing over USB
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
CarPlay session active over USB
Car
iPhone
Device stored
CarPlay UI
CarPlay
connected
Out-of-Band Pairing over USB
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
CarPlay session active over USB
Car
iPhone
Device stored
CarPlay UI
iAP2 over USB
(OOOBBTPairing
CompletionInformation)
CarPlay
connected
Out-of-Band Pairing over USB
Out-of-Band Pairing over USB
CarPlay session stays over USB
Out-of-Band Pairing over USB
CarPlay session stays over USB
No Bluetooth communication between head unit and iPhone
Out-of-Band Pairing over USB
CarPlay session stays over USB
No Bluetooth communication between head unit and iPhone
Store paired device as last connected device or preferred device
Out-of-Band Pairing over USB
CarPlay session stays over USB
No Bluetooth communication between head unit and iPhone
Store paired device as last connected device or preferred device
After ignition cycle, Bluetooth reconnection starts wireless CarPlay
Out-of-Band Pairing over USB
CarPlay session stays over USB
No Bluetooth communication between head unit and iPhone
Store paired device as last connected device or preferred device
After ignition cycle, Bluetooth reconnection starts wireless CarPlay
• Wireless CarPlay not started if iPhone is simply unplugged
Bluetooth Pairing
Bluetooth Pairing
Press and hold the voice control button on the steering wheel
Bluetooth Pairing
Press and hold the voice control button on the steering wheel
Use the car’s native UI
Bluetooth Pairing
Press and hold the voice control button on the steering wheel
Use the car’s native UI
• Add a CarPlay device
Bluetooth Pairing
Press and hold the voice control button on the steering wheel
Use the car’s native UI
• Add a CarPlay device
• Add a Bluetooth device
Discovering CarPlay Devices over Bluetooth
Head Unit
Car
User initiates
BT pairing
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
Discovering CarPlay Devices over Bluetooth
Head Unit
Plug-in
Bluetooth
Car
User initiates
BT pairing
BT
Discoverable
Wi-Fi
iOS
iPhone
Discovering CarPlay Devices over Bluetooth
Head Unit
Plug-in
Bluetooth
Car
User initiates
BT pairing
Wi-Fi
iOS
iPhone
iPhone
BT
Discoverable
User opens
Bluetooth Settings
Discovering CarPlay Devices over Bluetooth
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
Car
User initiates
BT pairing
iPhone
iPhone
BT
Discoverable
BT
Discoverable
and Scanning
User opens
Bluetooth Settings
Option 1) Selecting a Car to Pair to from iOS
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
iPhone
BT
Discoverable
BT
Discoverable
and Scanning
Bluetooth Settings
Option 1) Selecting a Car to Pair to from iOS
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
Car
Add new
device
Search for
My Car
on your device
iPhone
iPhone
BT
Discoverable
BT
Discoverable
and Scanning
Bluetooth Settings
Option 1) Selecting a Car to Pair to from iOS
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
Car
Add new
device
Search for
My Car
on your device
iPhone
iPhone
BT
Discoverable
BT
Discoverable
and Scanning
Bluetooth Settings
My Car
Option 1) Selecting a Car to Pair to from iOS
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
Car
Add new
device
Search for
My Car
on your device
iPhone
iPhone
BT
Discoverable
BT
Discoverable
and Scanning
Bluetooth Settings
My Car
User selects
a vehicle to pair
Option 2) Discovery Through Existing BT Menus
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
Car
Available Bluetooth
devices
John's iPhone
Mani's iPhone
iPhone
iPhone
BT
Discoverable
and Scanning
BT
Discoverable
and Scanning
Bluetooth Settings
My Car
Option 2) Discovery Through Existing BT Menus
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
Car
Available Bluetooth
devices
John's iPhone
Mani's iPhone
User selects
a device to pair
iPhone
iPhone
BT
Discoverable
and Scanning
BT
Discoverable
and Scanning
Bluetooth Settings
My Car
Option 2) Discovery Through Existing BT Menus
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
Car
Available Bluetooth
devices
John's iPhone
Mani's iPhone
iPhone
iPhone
BT
Discoverable
and Scanning
BT
Discoverable
and Scanning
Bluetooth Settings
My Car
Option 2) Discovery Through Existing BT Menus
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
Car
Available Bluetooth
devices
John's iPhone
iPhone
iPhone
BT
Discoverable
and Scanning
BT
Discoverable
and Scanning
Bluetooth Settings
My Car
Mani's iPhone
User selects
a vehicle to pair
Option 3) CarPlay Specific Discovery
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
Car
Available CarPlay
devices
John's iPhone
Mani's iPhone
iPhone
iPhone
BT
Discoverable
and Scanning
BT
Discoverable
and Scanning
Bluetooth Settings
My Car
Option 3) CarPlay Specific Discovery
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
Car
Available CarPlay
devices
John's iPhone
iPhone
iPhone
BT
Discoverable
and Scanning
BT
Discoverable
and Scanning
Bluetooth Settings
My Car
Mani's iPhone
Query for Apple CarPlay Bluetooth EIR to display only CarPlay-capable devices
Option 3) CarPlay Specific Discovery
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
Car
Available CarPlay
devices
John's iPhone
iPhone
iPhone
BT
Discoverable
and Scanning
BT
Discoverable
and Scanning
Bluetooth Settings
My Car
Mani's iPhone
User selects
a device to pair
Query for Apple CarPlay Bluetooth EIR to display only CarPlay-capable devices
Option 3) CarPlay Specific Discovery
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
Car
Available CarPlay
devices
John's iPhone
iPhone
iPhone
BT
Discoverable
and Scanning
BT
Discoverable
and Scanning
Bluetooth Settings
My Car
Mani's iPhone
Query for Apple CarPlay Bluetooth EIR to display only CarPlay-capable devices
Option 3) CarPlay Specific Discovery
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
Car
Available CarPlay
devices
John's iPhone
iPhone
iPhone
BT
Discoverable
and Scanning
BT
Discoverable
and Scanning
Bluetooth Settings
My Car
Mani's iPhone
User selects
a vehicle to pair
Query for Apple CarPlay Bluetooth EIR to display only CarPlay-capable devices
Bluetooth Pairing
Head Unit
Car
Bluetooth pairing
Secure Simple
Pairing
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
iPhone
Bluetooth Settings
My Car
connecting
Bluetooth Pairing
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
SSP Pairing
Car
Bluetooth pairing
Secure Simple
Pairing
iPhone
Bluetooth Settings
My Car
connecting
Connecting iAP2 over Bluetooth
Head Unit
Car
Bluetooth pairing
Connecting to
John's iPhone
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
iPhone
Bluetooth Settings
"My Car"
connecting
Connecting iAP2 over Bluetooth
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
Connect iAP2 over BT
(Wireless & wired CarPlay, DeviceTransportIdentifier,
WirelessCarPlayUpdate, AccessoryWiFiConfiguration )
Car
Bluetooth pairing
Connecting to
John's iPhone
iPhone
Bluetooth Settings
"My Car"
connecting
Connecting iAP2 over Bluetooth
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
Connect iAP2 over BT
(Wireless & wired CarPlay, DeviceTransportIdentifier,
WirelessCarPlayUpdate, AccessoryWiFiConfiguration )
Car
iPhone
Bluetooth pairing
Use wireless
CarPlay?
Bluetooth
Settings
Connecting to
John's iPhone
"My Car"
Yes
connecting
No
Connecting iAP2 over Bluetooth
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
Connect iAP2 over BT
(Wireless & wired CarPlay, DeviceTransportIdentifier,
WirelessCarPlayUpdate, AccessoryWiFiConfiguration )
Car
iPhone
Bluetooth pairing
Use wireless
CarPlay?
Bluetooth
Settings
Connecting to
John's iPhone
"My Car"
Yes
connecting
No
Connect additional Bluetooth profiles only if operating in the 5GHz band
Identifying a CarPlay-Enabled Device
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
Car
iPhone
Bluetooth pairing
Use wireless
CarPlay?
Connecting to
John's iPhone
Yes
No
Identifying a CarPlay-Enabled Device
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
iAP2 over BT (DeviceTransportIdentifier WirelessCarPlayUpdate)
Car
iPhone
Bluetooth pairing
Use wireless
CarPlay?
Connecting to
John's iPhone
Yes
No
Identifying a CarPlay-Enabled Device
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
iAP2 over BT (DeviceTransportIdentifier WirelessCarPlayUpdate)
Car
iPhone
Use CarPlay with
Bluetooth pairing
John’s iPhone
Use wireless
CarPlay?
Use Bluetooth
Connecting
to
John's iPhone
Enable CarPlay
Yes
Show CarPlay related UI only if the device supports CarPlay
No
Handling for a User-Consent Screen
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
Car
iPhone
Use CarPlay with
John’s iPhone
Use wireless
CarPlay?
Use Bluetooth
Yes
Enable CarPlay
No
Handling for a User-Consent Screen
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
Car
iPhone
Use CarPlay with
John’s iPhone
Use wireless
CarPlay?
Use Bluetooth
Yes
Enable CarPlay
No
User says yes
Handling for a User-Consent Screen
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
iAP2 over BT
(RequestAccessoryWiFiConfiguration)
Car
iPhone
Use CarPlay with
John’s iPhone
Use wireless
CarPlay?
Use Bluetooth
Yes
Enable CarPlay
No
User says yes
Handling for a User-Consent Screen
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
iAP2 over BT
(RequestAccessoryWiFiConfiguration)
Car
iPhone
Use CarPlay with
John’s iPhone
Use wireless
CarPlay?
Use Bluetooth
Yes
Enable CarPlay
No
User says yes
Do not provide the Wi-Fi credentials until the user has confirmed CarPlay
Handling for a User-Consent Screen
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
iAP2 over BT
(RequestAccessoryWiFiConfiguration)
Car
iPhone
Use CarPlay with
John’s iPhone
Use wireless
CarPlay?
Use Bluetooth
Yes
Enable CarPlay
No
User confirms
User says yes
Do not provide the Wi-Fi credentials until the user has confirmed CarPlay
Connecting to Wi-Fi
Head Unit
Car
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
iPhone
Apple CarPlay
Connecting to
John's iPhone
Home Screen
Connecting to Wi-Fi
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
iAP2 over BT (AccessoryWiFiConfiguration)
Car
iPhone
Apple CarPlay
Connecting to
John's iPhone
Home Screen
Connecting to Wi-Fi
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
iAP2 over BT (AccessoryWiFiConfiguration)
Car
iPhone
WiFi Scan
Apple CarPlay
Connecting to
John's iPhone
Home Screen
iOS device
joins the AP
Selecting a CarPlay Device
Head Unit
Car
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
iPhone
Apple CarPlay
Connecting to
John's iPhone
Home Screen
Selecting a CarPlay Device
Head Unit
Car
Plug-in
Bluetooth
Wi-Fi
Bonjour discovery
(CarPlay and CarPlay Control services)
iOS
iPhone
iPhone
Apple CarPlay
Connecting to
John's iPhone
Home Screen
Selecting a CarPlay Device
Head Unit
Car
Apple CarPlay
Connecting to
John's iPhone
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
Bonjour discovery
(CarPlay and CarPlay Control services)
iPhone
CarPlay Control Service connect (John’s iPhone)
Home Screen
Starting a CarPlay Session
Head Unit
Car
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
iPhone
Apple CarPlay
Connecting to
John's iPhone
Home Screen
Starting a CarPlay Session
Head Unit
Car
Plug-in
Bluetooth
Wi-Fi
CarPlay Session setup
iOS
iPhone
iPhone
Apple CarPlay
Connecting to
John's iPhone
Home Screen
Starting a CarPlay Session
Head Unit
Car
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
CarPlay Session setup
iPhone
iAP2 over CarPlay setup
Home Screen
Apple CarPlay
Connecting to
John's iPhone
Starting a CarPlay Session
Head Unit
Car
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
iPhone
Apple CarPlay
Connecting to
John's iPhone
CarPlay
connected
Starting a CarPlay Session
Head Unit
Car
Plug-in
Bluetooth
Wi-Fi
disableBluetooth()
iOS
iPhone
iPhone
Apple CarPlay
Connecting to
John's iPhone
CarPlay
connected
Starting a CarPlay Session
Head Unit
Plug-in
Bluetooth
disableBluetooth()
Car
Apple CarPlay
disable BT
Connecting to
John's iPhone
Wi-Fi
disconnect all BT profiles,
including iAP2
iOS
iPhone
iPhone
CarPlay
connected
Starting a CarPlay Session
Head Unit
Plug-in
Bluetooth
disableBluetooth()
Car
Apple CarPlay
disable BT
Connecting to
John's iPhone
Wi-Fi
disconnect all BT profiles,
including iAP2
iOS
iPhone
iPhone
CarPlay
connected
If operating in 2.4 GHz band, disallow all Bluetooth connections and scanning
Starting a CarPlay Session
Head Unit
Car
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
iPhone
Apple CarPlay
Connecting to
John's iPhone
CarPlay
connected
Starting a CarPlay Session
Head Unit
Plug-in
Bluetooth
Wi-Fi
iOS
iPhone
Car
Screen setup
iPhone
CarPlay UI
Audio setup
CarPlay
connected
Setup and Pairing
General considerations
Setup and Pairing
General considerations
After setup is complete, the CarPlay UI must be displayed
Setup and Pairing
General considerations
After setup is complete, the CarPlay UI must be displayed
CarPlay may request to play music playback after setup is complete
Setup and Pairing
General considerations
After setup is complete, the CarPlay UI must be displayed
CarPlay may request to play music playback after setup is complete
Store device as last connected device
Setup and Pairing
General considerations
After setup is complete, the CarPlay UI must be displayed
CarPlay may request to play music playback after setup is complete
Store device as last connected device
• Reconnect automatically when user returns to the car
Developing Wireless CarPlay Systems
•
Hardware requirements
•
Setup and pairing
•
Reconnecting
•
Wireless considerations
Developing Wireless CarPlay Systems
•
Hardware requirements
•
Setup and pairing
•
Reconnecting
•
Wireless considerations
Reconnecting
General considerations
Reconnecting
General considerations
On ignition, arbitrate between USB and wireless reconnection
Reconnecting
General considerations
On ignition, arbitrate between USB and wireless reconnection
Transport used for CarPlay depends on availability and connection sequence
Reconnecting
General considerations
On ignition, arbitrate between USB and wireless reconnection
Transport used for CarPlay depends on availability and connection sequence
Always check for CarPlay availability on device
Reconnecting
General considerations
On ignition, arbitrate between USB and wireless reconnection
Transport used for CarPlay depends on availability and connection sequence
Always check for CarPlay availability on device
After reconnection restore last user mode
Reconnecting
General considerations
On ignition, arbitrate between USB and wireless reconnection
Transport used for CarPlay depends on availability and connection sequence
Always check for CarPlay availability on device
After reconnection restore last user mode
Don’t interrupt active CarPlay session
Reconnecting
Common scenarios
Reconnecting
Common scenarios
Reconnecting
Common scenarios
When is iPhone plugged in?
Common scenario
Transport used for CarPlay
Reconnecting
Common scenarios
When is iPhone plugged in?
Single iPhone
Common scenario
Transport used for CarPlay
Reconnecting
Common scenarios
Single iPhone
When is iPhone plugged in?
Common scenario
Transport used for CarPlay
Never
Morning commute
Wireless
Reconnecting
Common scenarios
Single iPhone
When is iPhone plugged in?
Common scenario
Transport used for CarPlay
Never
Morning commute
Wireless
During drive
Charging during evening commute
Wireless
Reconnecting
Common scenarios
When is iPhone plugged in?
Common scenario
Transport used for CarPlay
Never
Morning commute
Wireless
During drive
Charging during evening commute
Wireless
Before ignition
Re-entering car at gas station
USB
Single iPhone
Reconnecting
Common scenarios
When is iPhone plugged in?
Common scenario
Transport used for CarPlay
Never
Morning commute
Wireless
During drive
Charging during evening commute
Wireless
Before ignition
Re-entering car at gas station
USB
When the driver sits down
Long trip
First available
Single iPhone
Reconnecting
Common scenarios
When is iPhone plugged in?
Common scenario
Transport used for CarPlay
Never
Morning commute
Wireless
During drive
Charging during evening commute
Wireless
Before ignition
Re-entering car at gas station
USB
When the driver sits down
Long trip
First available
Single iPhone
More than one iPhone
Reconnecting
Common scenarios
When is iPhone plugged in?
Common scenario
Transport used for CarPlay
Never
Morning commute
Wireless
During drive
Charging during evening commute
Wireless
Before ignition
Re-entering car at gas station
USB
When the driver sits down
Long trip
First available
When the driver sits down
Road trip with friends
First available
Single iPhone
More than one iPhone
Reconnecting
Bluetooth device connection flow
Reconnecting
Bluetooth device connection flow
Wait for Bluetooth and Wi-Fi to boot up
Reconnecting
Bluetooth device connection flow
Wait for Bluetooth and Wi-Fi to boot up
Confirm last connected device is a CarPlay device
Reconnecting
Bluetooth device connection flow
Wait for Bluetooth and Wi-Fi to boot up
Confirm last connected device is a CarPlay device
Confirm CarPlay is not already active
Reconnecting
Bluetooth device connection flow
Wait for Bluetooth and Wi-Fi to boot up
Confirm last connected device is a CarPlay device
Confirm CarPlay is not already active
• Compare to saved DeviceTransportIdentifier
Reconnecting
Bluetooth device connection flow
Wait for Bluetooth and Wi-Fi to boot up
Confirm last connected device is a CarPlay device
Confirm CarPlay is not already active
• Compare to saved DeviceTransportIdentifier
Reconnect iAP2 over Bluetooth
Reconnecting
Bluetooth device connection flow
Wait for Bluetooth and Wi-Fi to boot up
Confirm last connected device is a CarPlay device
Confirm CarPlay is not already active
• Compare to saved DeviceTransportIdentifier
Reconnect iAP2 over Bluetooth
Confirm CarPlay is available using WirelessCarPlayUpdate
Reconnecting
Bluetooth device connection flow
Wait for Bluetooth and Wi-Fi to boot up
Confirm last connected device is a CarPlay device
Confirm CarPlay is not already active
• Compare to saved DeviceTransportIdentifier
Reconnect iAP2 over Bluetooth
Confirm CarPlay is available using WirelessCarPlayUpdate
Wait for CarPlay control discovery and connect
Reconnecting
USB device connection flow
Reconnecting
USB device connection flow
Wait for the user to connect a device over USB
Reconnecting
USB device connection flow
Wait for the user to connect a device over USB
Confirm CarPlay is not already active
Reconnecting
USB device connection flow
Wait for the user to connect a device over USB
Confirm CarPlay is not already active
• Compare to saved DeviceTransportIdentifier
Reconnecting
USB device connection flow
Wait for the user to connect a device over USB
Confirm CarPlay is not already active
• Compare to saved DeviceTransportIdentifier
Confirm CarPlay is available on the device
Reconnecting
USB device connection flow
Wait for the user to connect a device over USB
Confirm CarPlay is not already active
• Compare to saved DeviceTransportIdentifier
Confirm CarPlay is available on the device
• USB Vendor Request GetSupportedCapabilities
Reconnecting
USB device connection flow
Wait for the user to connect a device over USB
Confirm CarPlay is not already active
• Compare to saved DeviceTransportIdentifier
Confirm CarPlay is available on the device
• USB Vendor Request GetSupportedCapabilities
USB Role Switch and iAP2 over USB
Reconnecting
USB device connection flow
Wait for the user to connect a device over USB
Confirm CarPlay is not already active
• Compare to saved DeviceTransportIdentifier
Confirm CarPlay is available on the device
• USB Vendor Request GetSupportedCapabilities
USB Role Switch and iAP2 over USB
Wait for CarPlay control discovery and connect
Reconnecting
Reconnecting
Multiple devices may be available
Reconnecting
Multiple devices may be available
• USB only
Reconnecting
Multiple devices may be available
• USB only
• Wireless only
Reconnecting
Multiple devices may be available
• USB only
• Wireless only
• Both USB and wireless
Reconnecting
Multiple devices may be available
• USB only
• Wireless only
• Both USB and wireless
Users can choose any available device
Reconnecting
Multiple devices may be available
• USB only
• Wireless only
• Both USB and wireless
Users can choose any available device
• Reconnect using available transport
Reconnecting after Disconnect
Reconnecting after Disconnect
Scenario
Expected car behavior
User unplugs USB
Explicit disconnect
No reconnect attempt
User disconnects using native UI
User walks away from car
Reconnect using CarPlay Control API, but if unsuccessful reconnect Bluetooth
iPhone no longer reachable
User turns off Wi-Fi on iPhone
Reconnecting after Disconnect
Scenario
Expected car behavior
User unplugs USB
Explicit disconnect
No reconnect attempt
User disconnects using native UI
User walks away from car
Reconnect using CarPlay Control API, but if unsuccessful reconnect Bluetooth
iPhone no longer reachable
User turns off Wi-Fi on iPhone
Reconnecting after Disconnect
Scenario
Expected car behavior
User unplugs USB
Explicit disconnect
No reconnect attempt
User disconnects using native UI
User walks away from car
Reconnect using CarPlay Control API, but if unsuccessful reconnect Bluetooth
iPhone no longer reachable
User turns off Wi-Fi on iPhone
Reconnecting after Disconnect
Scenario
Expected car behavior
User unplugs USB
Explicit disconnect
No reconnect attempt
User disconnects using native UI
User walks away from car
Reconnect using CarPlay Control API, but if unsuccessful reconnect Bluetooth
iPhone no longer reachable
User turns off Wi-Fi on iPhone
Reconnecting after Disconnect
Scenario
Expected car behavior
User unplugs USB
Explicit disconnect
No reconnect attempt
User disconnects using native UI
User walks away from car
Reconnect using CarPlay Control API, but if unsuccessful reconnect Bluetooth
iPhone no longer reachable
User turns off Wi-Fi on iPhone
Reconnecting after Disconnect
Scenario
Expected car behavior
User unplugs USB
Explicit disconnect
No reconnect attempt
User disconnects using native UI
User walks away from car
Reconnect using CarPlay Control API, but if unsuccessful reconnect Bluetooth
iPhone no longer reachable
User turns off Wi-Fi on iPhone
Reconnecting after Disconnect
Scenario
Expected car behavior
User unplugs USB
Explicit disconnect
No reconnect attempt
User disconnects using native UI
User walks away from car
Reconnect using CarPlay Control API, but if unsuccessful reconnect Bluetooth
iPhone no longer reachable
User turns off Wi-Fi on iPhone
Developing Wireless CarPlay Systems
•
Hardware requirements
•
Setup and pairing
•
Reconnecting
•
Wireless considerations
Developing Wireless CarPlay Systems
•
Hardware requirements
•
Setup and pairing
•
Reconnecting
•
Wireless considerations
Wireless Considerations
Wireless Considerations
Wireless performance depends on various characteristics
Wireless Considerations
Wireless performance depends on various characteristics
• Wi-Fi protocol (802.11n or 802.11ac)
Wireless Considerations
Wireless performance depends on various characteristics
• Wi-Fi protocol (802.11n or 802.11ac)
• Configuration (SISO or MIMO)
Wireless Considerations
Wireless performance depends on various characteristics
• Wi-Fi protocol (802.11n or 802.11ac)
• Configuration (SISO or MIMO)
• Frequency band (2.4 GHz or 5 GHz)
Wireless Considerations
Wireless performance depends on various characteristics
• Wi-Fi protocol (802.11n or 802.11ac)
• Configuration (SISO or MIMO)
• Frequency band (2.4 GHz or 5 GHz)
• Presence of other wireless technologies in same frequency band
Wireless Considerations
Wireless performance depends on various characteristics
• Wi-Fi protocol (802.11n or 802.11ac)
• Configuration (SISO or MIMO)
• Frequency band (2.4 GHz or 5 GHz)
• Presence of other wireless technologies in same frequency band
• Additional services (Internet data or others)
Wireless Considerations
Wireless performance depends on various characteristics
• Wi-Fi protocol (802.11n or 802.11ac)
• Configuration (SISO or MIMO)
• Frequency band (2.4 GHz or 5 GHz)
• Presence of other wireless technologies in same frequency band
• Additional services (Internet data or others)
Satisfy throughput and latency requirements in all possible coexistence scenarios
5 GHz Frequency Band
5 GHz Frequency Band
Highly recommended for wireless CarPlay
5 GHz Frequency Band
Highly recommended for wireless CarPlay
More channels for wireless usage
5 GHz Frequency Band
Highly recommended for wireless CarPlay
More channels for wireless usage
Less interference from other wireless systems
5 GHz Frequency Band
Highly recommended for wireless CarPlay
More channels for wireless usage
Less interference from other wireless systems
Less congested
2.4 GHz Frequency Band
2.4 GHz Frequency Band
Not recommended for wireless CarPlay
Highly congested
May be required for in-vehicle use in some regulatory domains
2.4 GHz Frequency Band
Not recommended for wireless CarPlay
Highly congested
May be required for in-vehicle use in some regulatory domains
If operating in this frequency band
2.4 GHz Frequency Band
Not recommended for wireless CarPlay
Highly congested
May be required for in-vehicle use in some regulatory domains
If operating in this frequency band
• Disable Bluetooth scanning and reconnections during active CarPlay sessions
2.4 GHz Frequency Band
Not recommended for wireless CarPlay
Highly congested
May be required for in-vehicle use in some regulatory domains
If operating in this frequency band
• Disable Bluetooth scanning and reconnections during active CarPlay sessions
• If providing LTE connectivity on Band 40, use channels 6 or 11
Multiple Wi-Fi Access Points
Multiple Wi-Fi Access Points
Use different channels if operating in same frequency band
Multiple Wi-Fi Access Points
Use different channels if operating in same frequency band
Provide same services on all access points with same SSID and password
• Use different SSID and password if offering different services
Multiple Wi-Fi Access Points
Use different channels if operating in same frequency band
Provide same services on all access points with same SSID and password
• Use different SSID and password if offering different services
Don’t use hidden SSIDs for CarPlay
Internet Data Connectivity
Internet Data Connectivity
Communicate status of Internet data connectivity
• Apple Device IE
• Interworking IE
Internet Data Connectivity
Communicate status of Internet data connectivity
• Apple Device IE
• Interworking IE
Notify iPhone of changes
Internet Data Connectivity
Communicate status of Internet data connectivity
• Apple Device IE
• Interworking IE
Notify iPhone of changes
• Module installed or removed
Internet Data Connectivity
Communicate status of Internet data connectivity
• Apple Device IE
• Interworking IE
Notify iPhone of changes
• Module installed or removed
• Connectivity no longer possible due to a failure
Internet Data Connectivity
Communicate status of Internet data connectivity
• Apple Device IE
• Interworking IE
Notify iPhone of changes
• Module installed or removed
• Connectivity no longer possible due to a failure
• Service contract expired or renewed
More Information
http://developer.apple.com/wwdc17/717
Related Sessions
Enabling Your App for CarPlay
WWDC 2017 Video
Developing CarPlay Systems, Part 1
WWDC 2016
Developing CarPlay Systems, Part 2
WWDC 2016
Labs
CarPlay Lab
Technology Lab D
Wed 4:00PM–6:00PM
Download PDF
Similar pages