Companion App

A phone and desktop application that serves two purposes. First, it is the research tool that allows interaction with the FaceBit sensor board. All evaluations utilize the FaceBit Companion Application for data collection. Second, the application serves as a proof-of-concept user interface for a Smart PPE platform.

View the Code on Github

Accounting Services


The FaceBit Companion Application is developed for iOS and macOS using the Swift Programming Language. The user interface is written with the SwiftUI framework and utilizes Mac Catalyst, which supports iOS applica- tions deployed on macOS. The app communicates with the FaceBit board via Bluetooth Low Energy (BLE) using a custom GATT profle. The application handles both high frequency time-series data stream for debugging, as well as low frequency computed metrics from the sensor board for actual deployment. Data is stored in a local SQLite database.

We designed three sections of the app to demonstrate consumer interaction with FaceBit and two additional sections to assist in research. The user interface is compartmentalized such that user interaction does not interfere with data collection or vice-versa. The figure above depicts the application’s home screen, sensor device details, and mask wear-time interface, the latter of which allows for tracking of the replacement of a mask via user logging and wear time detection. The homepage is a dashboard for at-a-glance information about the state of FaceBit. Notifcations can be displayed or pushed to the user, and goals set for the desired amount of wear time. Additionally, this time-tracking interface can assist other reminders such as hydration or break reminders, notifying the user the mask has been worn for continuous lengths of time. The vision is that a user will be able to customize the homescreen with desired widgets to receive timely information on the signals of interest. Additionally, developers will be able to easily add new widgets. Based on feedback from healthcare workers, we developed widgets for respiratory rate, heart rate, and wear time. We also included widgets for raw temperature and pressure readings for debugging purposes during development.