VMware Pivotal Labs recently released Herald open source contact tracing for iOS and Android. Pivotal Labs was previously awarded three contracts worth £4.8m to develop a contact tracing app for the United Kingdom only for it to be abandoned for a new app based on the Google/Apple contact tracing mechanism.
Herald can’t be used for contact tracing unless you are a government agency because 3rd parties can’t publish such apps on the Apple app store. However, Pivotal Lab’s deep work in this area provides many insights into the use of Bluetooth on smartphones. The library itself also has other uses other than contact tracing:
- Communication apps
- File sharing between Android and iOS devices, reliably
- Local ‘same location’ peer to peer applications, such as instant messaging or gaming apps
- Safety apps
- Using beacons in high-risk areas, an employee exposure app could accurate record exact exposure to hazardous environments
- Also using beacons, know where to deep clean if an employee does fall ill at your large campus
- Check in app – Walk around and be let in to secure areas automatically
- Rescue app – e.g. for skiing/snowboarding avalanche rescue – find the hidden/non visible person. Could be fire in a large building, or rescue on a tube train
The documentation provides some useful information on technology approaches and OS specific issues.
- Using scanning for 1-3 seconds with a gap of a few seconds between scanning uses 6-11% battery over 8 hours
- Android phones’ speed when reading characteristics is significantly slower than write and acknowledge. Using write instead of read reduces the mean window times from above 8 seconds (minutes for some phones) to 0.5 – 4 seconds, depending on the handset. Use write characteristics wherever possible, and cache data to remove any redundant reads.
- Apple iOS has a bug with background Bluetooth advertising where applications on two backgrounded iOS devices are not notified about each other. Two backgrounded iPhones cannot detect one other.
- The background timer on Android sometimes gets stuck and might not wake for many minutes.
- The way smartphones interpret Bluetooth signals to determine RSSI varies across Bluetooth chipsets. Some such as the iPhone 7 use a log approach while others use an inverse distance-squared scale. This affects accuracy if you subsequently use a common formula to derive distance from RSSI.