This page provides setup and calibration instructions for the presence calibration requirements for devices running Android 14 and higher.
Background
To ensure that users' smart devices work well together, it's critical that all devices in the Android ecosystem can determine the relative proximity between devices. Android 14 introduces presence calibration requirements that outline the acceptable performance of available radio technologies such as UWB, Wi-Fi, and BLE that are used to determine proximity. This page describes the calibration standards that devices must follow to ensure interoperability between devices in the ecosystem.
Reference device
To calibrate your device to meet the presence requirements, use one of the following reference devices for all calibrations.
- (Recommended) A Pixel phone
- If not using a Pixel phone, use the same make and model device as the device being tested.
Form factors
Presence calibration is important for Android devices of all form factors. For form factors other than mobile phones, to determine the appropriate calibration setup for the device, consider how a user holding a mobile phone (reference device) would be positioned when interacting with the device under test (DUT). For example, when calibrating a TV, place the TV and the mobile phone at an appropriate distance from each other and orient the mobile device so it's facing the front center of the TV screen.
UWB requirements
This section describes how to calibrate your device to meet the following UWB requirements in the CDD.
If device implementations include UWB hardware, then they:
- [C-1-6] MUST ensure the distance measurements are within +/-15 cm for 95% of the measurements in the line of sight environment at 1m distance in a non-reflective chamber.
- [C-1-7] MUST ensure that the median of the distance measurements at 1m from the reference device is within [0.75m, 1.25m], where ground truth distance is measured from the top edge of the DUT held face up and tilted 45 degrees.
UWB calibration setup
Use the following setup to calibrate your device to meet UWB requirements.
General setup requirements
Two devices with UWB hardware are required, one as the DUT and one as the reference device.
Two tripods to hold the devices are required.
The DUT and the reference device must be placed 1 meter apart in a line of sight environment in a nonreflective chamber. Both devices must be positioned in a portrait orientation with the screen facing away from each other.
An example of a UWB calibration setup is shown in Figure 1 and Video 1.
Figure 1. Reference setup for UWB calibration.
Video 1. Reference setup for UWB calibration.
Requirements [C-1-6] and [C-1-7]
To verify compliance with requirements [C-1-6] and [C-1-7], run the
RangingMeasurementTest#test_distance_measurement_accuracy
multi-device CTS
test case for distance measurement. This is a manual CTS test.
run cts -m CtsUwbMultiDeviceTestCase_RangingMeasurementTests -t RangingMeasurementTest#test_distance_measurement_accuracy
If you have more than two devices connected to the CTS host machine,
specify the DUT ID and reference device ID in the run cts
command.
run cts -m CtsUwbMultiDeviceTestCase_RangingMeasurementTests -t RangingMeasurementTest#test_distance_measurement_accuracy --shard-count 2
-s DUT_ID -s REFERENCE_DEVICE_ID
The multi-device CTS test case initiates a UWB ranging session between the DUT and the reference device, and takes 1000 measurements with the DUT. The test then automatically processes the measurements and determines whether the device passes or fails by doing the following:
- Sort the 1000 measurements in ascending order.
- Compute the range as [range = 975th measurement - 25th measurement].
- Report the range in the multi-device CTS test. To pass, the range must be less than 30 cm.
- Report the median value (500th) in the multi-device CTS test. To pass, the value must be within [0.75 m, 1.25 m].
Wi-Fi Neighbor Awareness Networking requirements
This section describes how to calibrate your device to meet the Wi-Fi Neighbor Awareness Networking (NAN) requirements in the CDD(snapshotted here):
If devices support WiFi Neighbor Awareness Networking (NAN) protocol by declaring
PackageManager.FEATURE_WIFI_AWARE
and Wi-Fi Location (Wi-Fi Round Trip Time — RTT) by declaringPackageManager.FEATURE_WIFI_RTT
, then they:
[7.4.2.5/H-1-1] MUST report the range accurately to within +/-1 meter at 160 MHz bandwidth at the 68th percentile (as calculated with the Cumulative Distribution Function), +/-2 meters at 80 MHz bandwidth at the 68th percentile, +/-4 meters at 40 MHz bandwidth at the 68th percentile, and distances of +/-8 meters at 20 MHz bandwidth at the 68th percentile at of 10 cm, 1 m, 3 m, and 5 m, as observed with the
WifiRttManager#startRanging
Android API.[7.4.2.5/H-SR] Are STRONGLY RECOMMENDED to report the range accurately to within +/-1 meter at 160 MHz bandwidth at the 90th percentile (as calculated with the Cumulative Distribution Function), +/-2 meters at 80 MHz bandwidth at the 90th percentile, +/-4 meters at > 40 MHz bandwidth at the 90th percentile, and +/-8 meters at 20 MHz bandwidth at the 90th percentile at distances of 10 cm, as observed with the
WifiRttManager#startRanging
Android API.
Requirement [7.4.2.5/H-1-1]
To verify compliance with requirement [7.4.2.5/H-1-1]:
Install (if not previously installed), and open the CTS Verifier app (CTS-V) on both the DUT and reference device. The CTS-V test for this requirement is found under Presence Test > NAN Accuracy Test.
Place the DUT at the test distance of 10 cm away from the reference device, with nothing in between the two devices.
On the test screen of the reference device, ensure that the Is reference device checkbox is checked, then tap Start publishing.
Select the test distance of 10 cm in the CTS-V activity on the DUT, and tap Start Test. The CTS Verifier then performs 100 ranging measurements, and computes and records the range of the measurements to the CTS-V logs. When the test is complete, verify whether the computed range is within the expected range in the CTS Verifier app on the DUT.
Repeat steps one through four for the other test distances of 1 m, 3 m, and 5 m. The test passes if the ranges for all the test distances are within the expected range. Otherwise, the test distances for which the test failed are displayed on the CTS-V screen.
BLE RSSI requirements
This section describes how to calibrate your device to meet these BLE RSSI requirements snapshotted from the CDD:
If device implementations declare
FEATURE_BLUETOOTH_LE
, they:
- [C-10-1] MUST have RSSI measurements be within +/-9 dBm for 95% of the measurements at 1m distance from a reference device transmitting at
ADVERTISE_TX_POWER_HIGH
in a line of sight environment.- [C-10-2] MUST include Rx/Tx corrections to reduce per-channel deviations so that the measurements on each of the 3 channels, on each of the antennas (if multiple are used), are within +/-3 dBm of one another for 95% of the measurements.
- [C-10-3] MUST measure and compensate for Rx offset to ensure the median BLE RSSI is -55 dBm +/-10 dBm at 1m distance from a reference device transmitting at
ADVERTISE_TX_POWER_HIGH
.- [C-10-4] MUST measure and compensate for Tx offset to ensure the median BLE RSSI is -55 dBm +/-10 dBm when scanning from a reference device positioned at 1 m distance and transmitting at
ADVERTISE_TX_POWER_HIGH
.
Calibration setup
Use the following setup to calibrate your device to meet the BLE RSSI requirements.
General setup requirements
- For optimal results, use an anechoic chamber to minimize interference with measurements. If not using an anechoic chamber, set up the two tripods holding the reference device and the DUT device 1.5 meters from the ground, with similar clearance from the ceiling.
- Two tripods attached to device holders are required.
- Use tripods that have as little metal in them as possible.
- Use device holders that have as little metal in them as possible. A small metal spring is fine.
- There MUST be no metal objects within 1 m of the DUT and of the reference device.
- The reference device and all DUTs MUST be charged enough to complete the tests.
- The reference device and the current DUT MUST be unplugged during testing.
- The reference device and the DUTs MUST NOT have cases, attached wires, or anything else attached that might affect radio frequency (RF) performance.
Figure 2. Reference setup for BLE calibration
Requirement [C-10-1]
To verify compliance with requirement [C-10-1]:
Install (if not previously installed), and open the CTS Verifier app (CTS-V) on both the DUT and reference device. The CTS-V test for this requirement is found under Presence Test > BLE RSSI Precision Test.
Place the DUT at the test distance of 1 m away from the reference device, following the BLE calibration setup.
Tap Start advertising on the reference device, then follow the instructions on the DUT's screen to input the device ID specific to the reference device, which is displayed on the reference device after advertising starts. Tap Start Test on the DUT.
When data collection is complete (1000 scans collected on the DUT), the test automatically passes or fails, depending on the computed range. To pass, the range must be less than or equal to 18 dBm.
Requirement [C-10-2]
To verify requirement [C-10-2]. The chip vendor can measure the channel flatness and identify the differences between cores and channels. The following are tips on how to identify issues with uncalibrated cores and uncalibrated channels, which are two possible causes of large RSSI spread.
Uncalibrated cores
If the BT antenna on a device has multiple cores, the cores might have different calibrations. Take some measurements (at least 1 minute worth) and check the scan data. If you see a pattern similar to the one shown in Figure 3, which has regular peaks (as indicated by the circles) due to scanning on multiple cores, there is likely to be an issue with uncalibrated cores and further investigation is required.
Figure 3. Example of scan data for a device with uncalibrated cores
Uncalibrated channels
Transmissions on classic BLE happen on three channels. Each channel might have differences associated with it. The channels are rotated at fixed intervals. Take some measurements (at least 1 minute worth) and check the scan data. If you see a pattern similar to the one shown in Figure 4, there is likely to be an issue with miscalibration on different channels and further investigation is required.
Figure 4. Example of scan data for a device with uncalibrated channels
Requirements [C-10-3] and [C-10-4]
Even when a BLE radio chip is perfectly calibrated, the RSSI that a particular device observes depends on the antenna quality and the antenna placement on that particular product (device model). This presents a problem for interoperability between devices.
For example, consider a car unlock use case. An app developer might want to unlock a car when the device is within 1 meter of the car. The developer chooses a threshold of -60 dBm based on their observations with a phone they have, but due to differences in antenna quality and antenna placement, this might not work well with another Android device even if both devices use the same chip.
For interoperability between all devices in the ecosystem, you must measure the
Rx offset for each device and adjust the RSSI reported on the device to ensure
that the BLE RSSI meets the standard of 1 m at ADVERTISE_TX_POWER_HIGH
.
Even when the BLE radio chips are perfectly calibrated, the ideal receiver reads different RSSI depending on the antenna quality and antenna placement on the advertising device. The Rx requirement ensures that all devices are able to advertise with the same resulting strength, all else being equal.
For devices running Android 14 and higher, to verify compliance with the Rx and Tx requirement:
Install (if not previously installed) and open the CTS Verifier app (CTS-V) on both the DUT and reference device. The CTS-V test for this requirement is found under Presence Test > BLE Rx/Tx Offset Precision Test.
Place the DUT at the test distance of 1 m away from the reference device, following the BLE calibration setup. We recommend devices be oriented such that they are parallel to each other with screens facing the same direction.
Tap Start advertising on the reference device, then follow the instructions on the DUT's screen to input the device ID specific to the reference device, which is displayed on the reference device after advertising starts.
Tap Start Test on the DUT. In this test, to verify the Rx requirement, the reference device performs scans in the background at the same time as when advertising is started.
When data collection is complete (1000 scans collected on both devices), the test passes if the computed median (500th measurement) for both Rx and Tx tests are between -65 dBm and -45 dBm. The test fails if the computed median for the Rx or Tx test isn't within the accepted range.
Calibrate the devices to compensate the Rx offset and Tx power to ensure a median RSSI of -55 dBm:
Rx: Adjust the RSSI by setting the
bluetooth.hardware.radio.le_rx_path_loss_comp_db
system property to the value (dB) that compensates the Rx offset to ensure a median BLE RSSI of -55 dBm at 1 m. The Bluetooth stack adjusts the RSSI to be RSSI plus the value ofbluetooth.hardware.radio.le_rx_path_loss_comp_db
. For details, seele_scanning_manager.cc
.Tx: Adjust the Tx power by setting the
bluetooth.hardware.radio.le_tx_path_loss_comp_db
system property to the value (dB) that compensates the Tx power to ensure a median BLE RSSI of -5 5dBm at 1 m. The Bluetooth stack adjusts the Tx power to be Tx power plus the value ofbluetooth.hardware.radio.le_tx_path_loss_comp_db
. For details, seele_advertising_manager.cc
.