Simmel Project


Simmel is a wearable platform that enables COVID-19 contact tracing while preserving user privacy.

View the Project on GitHub simmel-project/frontpage


Simmel is a platform that enables COVID-19 contact tracing while preserving user privacy. It is a wearable hardware beacon and scanner which can broadcast and record randomized user IDs. Contacts are stored within the wearable device, so you retain full control of your trace history until you choose to share it.

Simmel diagram

The Simmel design is open source, so you are empowered to audit the code. Furthermore, once the pandemic is over, you are able to recycle, re-use, or securely destroy the device, thanks to the availability of hardware and firmware design source.

The contact tracing algorithm is programmed using CircuitPython, to facilitate ease of code audit and community participation. The Simmel project does not endorse a specific contact tracing platform, but it is inherently not compatible with contact tracing proposals that rely on the constant upload of data to the cloud.

Hardware Summary

The hardware design source for Simmel can be found here. The EVT version is based around the Nordic NRF52833.

Simmel overview

Simmel is being developed on a very short timeframe. We have two paths being explored in parallel.

BLE is a proven, battle-tested technology with mature chipsets and protocol stacks. Thus it is plausible that a solution could be deployed at nation-state scales in a matter of months. However, BLE beacon signal strength is known to be a poor proxy for locality. Furthermore, running a BLE chipset constantly in scan mode is a relatively power hungry exercise, driving up battery requirements.

NUS is a novel proposal which relies on near ultrasound (18-22kHz) acoustically modulated transmissions to determine proximity. Ultrasound is fairly directional and does not penetrate walls, so it stands to reason that a signal detected on NUS is a good indicator of direct physical proximity. Furthermore, the power cost of sampling a microphone is less than that of BLE scanning. However, there is no established NUS protocol. Furthermore, NUS requires transducers that are expensive compared to BLE parts, and also requires the user to directly wear the device; we are assuming that e.g. a typical handbag would block the NUS signal. Thus while NUS may be preferable from a privacy and power standpoint, it is handicapped by a lack of maturity and higher cost.

Simmel provisions a 2MiB on-device SPINOR. We anticipate a contact record to consist of about 96 bytes, which should allow for about 20,000 contacts to be recorded in a circular buffer that expires over a period of 2-3 weeks (as set by the policy of the contact tracing application).

Simmel rear view

Firmware Summary

Simmel will run a port of CircuitPython. CircuitPython was chosen oven an embedded C RTOS for the following reasons:

Because of the open and easy nature of firmware update for Simmel, once the COVID-19 outbreak is over, users can re-use their Simmel devices for other applications. It is also easy to provision a script that securely erases the contact tracing ROM, allowing the devices to be donated to schools or other organizations for extended use after the outbreak.

Simmel USB connector

Application Code

Simmel does not endorse a specific contact tracing algorithm at this time; however, we are basing many of the system design assumption around support for protocols that are similar to Bluetrace. The Simmel hardware does not possess the ability to connect directly to the Internet, and is therefore incapable of sharing its logging data without user intervention.


Below are some images of the initial Simmel prototype as fabricated using a 3D printer.

Simmel prototype

In addition to being packed into a backpack, purse or briefcase, the simmel device can be hung from a lanyard.

Simmel lanyard

Simmel as worn

Here’s a photo of Simmel as plugged into a USB type C socket on a typical laptop.

Simmel plugged in

And here are some photos of the Simmel PCBA.

Simmel PCBA

Simmel PCBA

About the Simmel Project

The Simmel project was started on April 10, 2020 in response to a request for a hardware design proposal by NLNet. The simmel-project GitHub repository’s people page lists the developers that have elected to reveal their participation publicly.

The Simmel project name comes from Georg Simmel, an early researcher into sociology and social distance theory.

The administrative contacts for the Simmel project are:

The Simmel team is funded through the NGI0 PET Fund, a fund established by NLnet with financial support from the European Commission’s Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 825310.