Contact Tracing Badges

Over the summer, I worked at Building Momentum, a training and prototyping startup in Alexandria, VA, and one of the primary projects I worked on was developing contact tracing badges as part of our COVID-19 response efforts. 

The goal of these badges was to make a wearable device that could automatically perform contact tracing in a closed environment, like a workplace or a school. They use an Adafruit board that features a nRF52840 Bluetooth chip and flash storage, and a custom PCB adds a real time clock as well as voltage and USB monitoring. The boards plus a lithium polymer battery all fit inside a small 3D printed container. 

A UUID is attached to each badge as the identifier, and the badges use bluetooth to communicate, recording the UUID, RSSI value, and UNIX time for badges within range on the flash storage. This provides a log of all badges the badge has been in contact with, the distance of those interactions, and the duration of them. At the end of each day, a Raspberry Pi pulls the data off of each badge, matches up the UUIDs with names, and analyzes the data to determine which people are doing the best and worst at social distancing, as well as determining who each person has been in contact with the most. This information is displayed to a webpage where the data is visualized and if someone got COVID, the webpage would provide a contacts list showing who is most at risk of getting COVID from them, identifying who needs to be tested or go into quarantine.   

The first version of these badges were made in June using XBee radios for communication, an improved second version was made in July that utilized Bluetooth and began being used at Building Momentum in early August. We created a third version shortly after that that used a more complex PCB to reduce the size, and in November received our first order, sending a production order of 50 badges to Grand Forks Air Force Base in December. 

My main responsibilities on this project were on the data collection, analysis, and visualization side. I wrote Python code to read data off the badges when they were plugged into the Raspberry Pi, wrote code that matched up names with UUIDs and processed the data to a usable format, managed the MySQL database that stored 15 million data points, and used PHP and HTML to create the webpages used at our company, as well as those used at Grand Forks Air Force Base.

I also took on significant responsibility in making our production order of 50 badges. I worked with one of my coworkers to create a custom data collection setup for Grand Forks AFB due to their specific requirements and created an instruction manual for their use. I also led the organization of producing the order, writing an assembly guide, organizing five different stations to produce the badges, and  teaching multiple coworkers who had not worked on this project to manufacture and program the badges.  

Finally, I designed and manufactured the custom printed circuit boards used in the V2 and V3 badges, manufactured about 30 badges V1 and V2 badges, assisted in writing the code that was programmed onto the badges and allowed them to function, and made a video that explained the badges and how they worked.