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