- Please submit Fast Pair device proposal here for Google’s review and proposal. Once it is approved, you can move on to the next step. Someone on our team will reach out to you if we have questions on your proposal.
- After the proposal has been approved, please register your device at Fast Pair console here. After registration, you’ll get a model ID for your device, and then please follow the spec here or contact your SoC partner for enabling Fast Pair. During enabling, if you have any questions, please feel free to contact your Partner Eng TAM, or email@example.com if you do not have a TAM contact yet.
- When you finish your implementation, please follow Fast Pair certification guidelines and run self-test using the Fast Pair Validator app to ensure the implementation is correct and meets our certification criteria (please contact us to obtain the certification and self-test guideline). Once you pass all the tests in the Validator app, please send the test report to us. Meanwhile, if you experience any issues, feel free to contact us.
You’ll need to send a total of 9 sample units for QA testing and certification, including 3 to Google Taiwan, 3 to Google US, and 3 to a 3rd party certification lab. Please arrange certification service with one of the following accredited labs:
Pegatron, Taiwan (available)
Ann Lin, Ann_Lin@pegatroncorp.com
Gayle Yang, Gayle_Yang@pegatroncorp.com
UL Verification, United States (coming soon)
Lenny Hantz, Lenny.Hantz@ul.com
The certification cost involved is to be discussed between OEM and the labs. Below are the shipping addresses for the devices sent to Google:
Google Taiwan Engineering Limited
No.88, Sec 3, Zhongxing Rd., Xindian District,
New Taipei City, 23144, Taiwan
Phone number: +886 963365747
Google Mountain View
1600 Amphitheatre Parkway
Mountain View, CA, USA, 94043 Phone number: (650) 253-0000
Certification results will be shared in 2-4 weeks. If passed, your device’s Fast Pair functionality will be turned on immediately. Otherwise, we will contact you with a list of issues and you can re-submit the firmware once the issues have been addressed.
We recommend that you start Fast Pair certification around the starting date of your product PVT. But if you don’t think that is the best plan for you, feel free to discuss your schedule with us.
Visit our Partner Marketing Hub for guidance on branding and messaging. If you are an existing partner, you have been granted access based on your company domain. If you are a new partner, please apply to request for access.
Verifying Fast Pair
Fast Pair quickly identifies Bluetooth devices near an Android mobile device and lets users connect devices with a quick tap on a notification. This document describes how to verify that Fast Pair is working correctly. The examples in this document use a Google Pixel 2 as a model Android device to test Fast Pair headsets with.
Enabling Google Play services notifications
Fast Pair requires Google Play services notifications to be enabled. If the notifications are disabled, Fast Pair notifications used to connect the Bluetooth device to your phone will not appear.
Google Play services notifications are enabled by default. If notifications are disabled, you can enable them in Settings > Apps & notifications > Google Play services > Notifications.
Debug model ID
Register your device in the console to receive a model ID. After registration, the ID will be in debug mode until it is approved for production use. To enable notifications for a debug mode ID, ensure that developer mode is on for your Android device and go to Settings > Google > Devices > > Include debug results.
Fast Pair UI Flows
The UI flows below illustrate the pairing flow when a Bluetooth headset is registered with its model ID and there is an associated companion app linked. If the headset does not have a companion app, then the pairing will still complete normally.
The initial pairing flows show when a Fast Pair device is in pairing mode (discoverabe) and is going to pairing with a phone with a registered Google account.
The subsequent pairing flows show when a Fast Pair device is not in pairing mode (not discoverable). In subsequent pairing, the Fast Pair device has already been paired with a phone with a registered Google account and you are trying to pair the Fast Pair device with another phone that is logged into the same Google account.
Shorten BLE connection interval
To improve building GATT connection performance, the Provider is expected to make the connection interval as short as possible. The expected optimal value is 7.5 ms which is applied to most Seekers.
BLE advertisement and headset connection state
Whether a Fast Pair headset advertises the model ID or account data depends on the headset's BR/EDR discoverable mode, not the connected or disconnected state. Refer to the Fast Pair Service Spec from the links below:
- "When the Provider device is in BR/EDR discoverable (that is, in pairing mode), it shall advertise Fast Pair Model ID Data over BLE." - link
- "When not discoverable (that is, not in pairing mode), the Provider shall advertise Fast Pair Account Data" - link
As defined in the specification, the Seeker estimates the distance by the RSSI based on the given TxPower level. The estimated distance is the key factor to determine whether or not to show the notification. So the checklist of the TxPower is:
- Measure the actual output of the device using an Android phone at 1 meter away, and then add 41 dBm to that.
- Include this value in the BLE advertisement.
- Fill in this value when registering the model.
- Include this value with testing phone information in the self-test report.
As defined in the specification, the Provider can include battery information in the advertisement. The Seeker will decide to show or hide the battery notification according to the type, either 0b0011 to show battery notification or 0b0100 to hide it. Here are some guidelines on when to include the battery information in the advertisement and which type to be used:
- Include the battery information in the advertisement with show battery notification (0b0011) for at least 8 seconds when the case is opened and both buds are docked.
- Include the battery information in the advertisement with hide battery notification (0b0100) for at least 5 seconds when case is closed and both buds are docked.
- To be responsive in showing or hiding battery notifications, the advertisement should reflect the real state within 2 seconds.
- There are 2 ways to hide the battery notification:
- Stop including battery information in the advertisement, the Seeker will hide the notification after a while (, which is set to 20 seconds for now).
- Include the battery information in the advertisement with hide battery notification(0b0100), the Seeker will hide the notification immediately upon getting the advertisement.
- It is optional to include the battery information in the advertisement if there is just one bud docked when case open/close.
- It is optional to include the battery information in the advertisement when the buds are being removed from the case or being docked at the case.
- To prevent tracking, the Provider should only include raw battery data in the advertisement when needed (not all the time).
The implementation should be described in the self-test result for the Certification.
Testing and debugging Fast Pair
This document explains how to test and debug a Fast Pair device with an Android device. The examples in the document use a Google Pixel 2 for testing.
Fast Pair test guideline
- Two Android 6.x or higher phones
- Connected to the internet and have Bluetooth and Location turned on
- Logged into the same Google Account
- Fast Pair-enabled Bluetooth device
Test case 1: First-time pairing
- Make sure the Bluetooth device has not paired with the phone before. If the devices have paired before, go to Bluetooth settings on the phone and select Forget Device. If needed, toggle airplane mode on and off to help reset Bluetooth states.
- Make sure the Bluetooth device has not associated with the Google Account on the phone before.
- Enable pairing mode on the Bluetooth device.
- Place the Bluetooth device within 60 cm (24 in) of the Android phone.
When the Android phone detects the Fast Pair-enabled Bluetooth device, an initial pairing notification appears.
Tap the notification to start Fast Pairing.
When pairing completes, the Android device displays a Device connected notification. If the Bluetooth headset device has a companion app, then tapping on the notification will take you to the Play Store to download the app.
If pairing fails, then the Android device displays an Unable to connect notification.
Test case 2: Pairing a Google-account associated device with a new phone
- Make sure the Bluetooth device has not paired with the phone before. If the devices have paired before, go to Bluetooth settings on the phone and select Forget Device. If needed, toggle airplane mode on and off to help reset Bluetooth.
- Make sure the Bluetooth device has been associated with the Google account
registered on the device. You can check for a previous association by doing
- On the Android device that was used for the initial pairing, go to Settings > Google > Devices > Saved devices. The paired Bluetooth device should appear under the account.
NOTE: Fast Pair will turn on Automatically save devices after users click the initial pairing notification the first time.
- Check the second Android phone for a subsequent pairing. If the paired
device synced to the second phone, then a subsequent pairing notification
will appear in Settings > Google > Devices > Saved devices. If the
paired device does not appear under Saved devices after 20 minutes,
there may be an issue with your test account. Try registering new test
accounts to your devices and try again.
- If registering new test accounts does not work, try running Test Case 1 on another device that is signed into the original Google Account.
- Place the Bluetooth device within 60 cm (24 in) of the Android phone.
When the Android phone detects the Fast Pair-enabled Bluetooth device, a pairing notification for a previously-associated device appears.
Tap the notification to start subsequent pairing.
When the fast pair completes, the Android device displays a Device connected notification.
If fast pairing fails, then the Android device displays an Unable to connect notification.
Debugging with a bug report
Before reproducing the bug
Before starting testing and debugging, make sure you have enabled Bluetooth HCI snoop log for debugging. For instructions on enabling Bluetooth HCI snoop logs, see “Debugging with logs” on Verifying and Debugging Bluetooth.
To make logging easier, run the following commands after every device reboot, before you begin testing. These commands turn on logging and let you grab the bug report.
$ adb logcat -G 16M $ adb shell setprop log.tag.NearbyMessages VERBOSE $ adb shell setprop log.tag.NearbyDiscovery VERBOSE $ adb shell setprop log.tag.FastPair VERBOSE
Leave the phone next to the Bluetooth device for a few minutes before generating the bug report zip file.
After reproducing the bug
$ adb bugreport to generate a zip file that should contain all of the
data. The zip file generation may take several minutes.
Depending on the Android version, run one of the following commands to get
- For Android 8.x and higher:
shell $ adb pull data/misc/bluetooth/logs logs
- For Android 7.x:
shell $ adb pull sdcard/btsnoop_hci.log
Advertising other protocols alongside Fast Pair
Some devices may want to support additional features on top of Fast Pair, such as Google Assistant or Eddystone, that require additional advertisement space. In those cases, there are two options depending on how many bytes are currently being advertised and their contents:
- Move some data to the scan response.
- Rotate advertisements at a set interval.
Moving data to scan response
Moving data such as manufacturer name, tx power or other details to the scan response is the preferred option as that data will always be available to anyone scanning around the device. Scan response allows you to double your packet size with the downside that it may be advertised less frequently than the main packet information, meaning slightly longer discovery time.
Scan response is best suited for information outside of the service data where Fast Pair needs to be included at. See the advertising section of the spec for specific information about Fast Pair's advertising requirements.
If both the primary and scan response packets no longer have room for data, another option can be to rotate the advertisement data. However, the Fast Pair advertisements should still be advertised within the Advertising interval according to the discoverable mode and not discoverable mode.
The rotation of these advertisements will be tested during the Fast Pair certification process. If a rotating scheme is used, be sure to verify it with the Fast Pair Validator app, otherwise certification may be delayed.