opentrace-community / opentrace-android

OpenTrace Android app. Reference implementation of the BlueTrace protocol.
https://bluetrace.io
GNU General Public License v3.0
577 stars 225 forks source link

Support for "external" Bluetooth Low Energy hardware #44

Open sjlongland opened 4 years ago

sjlongland commented 4 years ago

Hi all,

A silly thought… I have an older mobile device which is too old to run OpenTrace (or its "branded" variants, TraceTogether, COVIDSafe…) on a count of its OS (Android 4.1) and its hardware (Bluetooth 3.0 radio). It's not worth me buying a new phone just to run this application, however, it would seem BLE-capable microcontrollers (e.g. ESP32, nRF52832, nRF52840) are cheap and readily available.

I had a quick read of the BlueTrace whitepaper, and I suspect it might be possible to "cleave" OpenTrace into two parts: the phone app that talks with the "cloud" server, and the radio part that does the BLE handshakes.

The thinking is we could make a hardware device that, independently of the phone, manages the contact tracing functions (thus neatly side-stepping problems like issue #31), and either just connects to the Internet via the phone in WiFi hot-spot mode, connects to the Internet via the phone using Bluetooth LAP (for real old non-Android "feature" phones) or periodically connects to the phone app via Bluetooth RFCOMM.

If a firmware for commonly available BLE dev boards could be developed, these could be packaged and made available during this COVID-19 crisis, then once everything's over, those boards then sold onto the maker community to be re-purposed.

I have a couple of Nordic nRF52840 dev boards kicking around as well as an ESP32 board (Adafruit module if I recall correctly), there's a old phone (ZTE T84) with a dickey battery that I can perhaps try running OpenTrace on for interoperability checks and I'll look into getting a test set-up going with the "cloud" server.

I'd love to hear from others who'd be interested in assisting with this.

Regards, Stuart Longland