Herald was originally created to solve the problem of very variable and unreliable Bluetooth mechanisms on Android and iOS devices. Over 40 techniques and workarounds are present in how Herald works.
As it turns out these same problems are also applicable for a wide range of other applications.
An end-to-end Digital Contact Tracing (DCT) system is available from the Herald Project within OpenTrace, which is built on Herald. You can also use the Herald API within your own, custom, DCT application.
Herald supports over 98% of phones worldwide - this includes phones that do not support advertising their presence themselves. Many contact tracing protocols in use today fail to take this scenario in to account, meaning they miss around 35% of all Android phone users.
Reliability of the Bluetooth stacks within Android and iOS is also very questionable, requiring exact protocol use and testing to workaround. This takes application developers away from solving medical and epidemiological problems. By using Herald, these teams can again concentrate on their residents and patients and leave the reliable Bluetooth messaging and range finding to Herald.
Other Digital Contact Tracing (DCT) protocols don’t often checked for nearby devices. When they do check, then often don’t make regular calculations using all available data for distance estimation. Even when they do, some then don’t provide this raw estimate to a DCT app - instead providing very rough buckets of exposure.
For digital contact tracing this can lead to devices not being recorded at all, or under and over estimating risk by large amounts. If a DCT app is being used to advise people to self-isolate in case of exposure this high ‘false positive’ rate will lead to the loss of trust in, and compliance to, pandemic health advice.
Thankfully with Herald there’s a much better way. Herald uses every single advertisement each device sends out. These range from 5 times a second to once every 5 seconds. Most other applications only scan for devices at best every two minutes! This means Herald picks up a lot more of detections allowing us to provide data sooner and more accurately.
Herald also tunes which devices to talk to. If its a device it has exchanged the payload with before then it doesn’t do so again. It also filters out non-Herald devices, reducing the amount of battery used and preventing interference with your Apple TVs, smartwatches, or car stereo systems.
Please see the Contact tracing introduction for a discussion of the many issues with manual and mobile contact tracing.
The API itself provides a reliable Protocol for exchanging information. You can either use your own or one of our suggested Payload specifications on top of the Herald protocol.
By adopting the Herald envelope for your contact tracing app (supported by all our suggested payloads) you will ensure that wherever your country’s residents travel to, their application can be used as-is internationally. We recommend the Secured payload in this instance.
Using the new Herald Beacon Payload a phone supporting the detection of Herald Beacons (but using ANY contact tracing protocol) can build up a diary of check-ins and check-outs from venues.
This means people don’t have to remember to scan QR codes for locations which is error prone. Multiple beacons can be placed in big venues, hospitals, or company campusses with specific area names to provide more fine-grained exposure notifications.
Herald Beacons also track the full time from check-in to check-out to minimise false exposure notifications to wrong people who happened to turn up on the same day, but at different times and areas within a venue, to people who were ill.
For younger school children without phones, or for the elderly too, a contact tracing solution is needed. A cheap Bluetooth enabled wearable is a good solution here. This may or may not be backed up by a local Bluetooth mesh network to reduce the cost of the end device.
We are implementing Herald in C++ for Windows and Embedded use cases. Our first target platform will be Nordic Semiconductor nRF52840 usb dongles for our reference implementation. This uses the Zephyr open source real time operating system (RTOS). This is currently in Alpha development.
We currently have the following sample applications that can be used as inspiration for your own digital contact tracing applications:-
Note: These are NOT production quality applications with full functionality as that would require an appropriate PHA-controlled backend set of services.
To help you get started, see the documentation.