Developing a JavaScript SDK for a biometric sensor
Background
From 2015 to 2020, I designed and developed web applications for a clinical-grade biometric sensor. In 2020, my company introduced an open-source version of this sensor.
Problem
Because our biometric sensor had no user interface, it was difficult for third-party developers to configure it, debug it, or visualize data. We needed a great out-of-the-box developer experience that included a rich UI and “just worked.”
Solution
I developed a JavaScript SDK for the sensor and used it to build a browser-based developer console:
The console allowed developers to connect to a sensor right away, configure it, view high-fidelity data streams, and download sensor data to the desktop.
The Code
I developed three variants of the JavaScript SDK, all sharing a common API:
A browser version which powered the developer console and used Web Bluetooth and IndexedDB
A Node.js version which used a Bluetooth Low Energy (BLE) module and SQLite
A Node.js version for a BLE driver compatible with the sensor's hardware
In just a few lines of code, a developer could connect to a sensor and issue a command. Here, after connecting to a sensor, the sensor says “Hello, World!” by blinking its LED lights:
Conclusion
The developer console and the JavaScript SDK contributed to a great “unboxing” experience. What's more, the console exercised all the features of the SDK, an example of eating my own dog food.