- hardware/: KiCad files for the PCB
- firmware/: Rust firmware for the nRF52840 module
- ui/: Web-based UI (just an index.html file)
The board has 1.27mm/0.05" pitch 2x5 pads which can be connected to using something like https://www.adafruit.com/product/5434. For anyone wanting to develop something similar, a 10 pin connector is unnecessary; all you need is 4 pins: SWCLK, SWDIO, GND, and VCC.
To build and debug, run cargo run --release
from the firmware
directory. Note: the CPU seems to hardfault after some time if running without the --release
flag. I haven't figured out why yet; I'm guessing it has to do with a stack overflow.
To flash the device, run sh flash.sh
from the firmware
directory.
The UI is just a single index.html file. WebBluetooth requires an https connection, so development-server.py is included for running a simple HTTP server with TLS support. It requires that mkcert
be installed or that you manually generate cert.pem
and key.pem
.
- On/off button logic hasn't been implemented yet in the firmware
- USB connector is currently unused in firmware