Ambient Workstation Intelligence — an always-on, fully offline keyword spotter running on an Arduino Nano 33 BLE Sense Rev2. Recognises five voice commands and manages a Pomodoro-based productivity state machine. No cloud. No network. 7 KB of flash.
This project pushes neural network inference to the absolute edge — a microcontroller with 256 KB SRAM and 1 MB flash. The device continuously listens for one of five voice commands using a PDM microphone, runs a 3-layer fully-connected network to classify them, and controls a Pomodoro-style state machine displayed on a 128×64 OLED.
The entire ML pipeline — from audio capture to classification — runs offline. There is no Wi-Fi, no cloud API, no latency beyond the microcontroller itself. The model weighs ~7 KB in FLOAT32 TFLite format and achieves 91.1% test accuracy on a held-out validation set.
Starts a 25-minute Pomodoro timer and transitions to FOCUS state.
Enters meeting mode — timer paused, display updated.
Ends the current session or exits meeting mode respectively.
Displays the current state, elapsed time, and session count.
| COMPONENT | DETAIL |
|---|---|
| Microcontroller | Arduino Nano 33 BLE Sense Rev2 — nRF52840, 64 MHz |
| Memory | 1 MB flash / 256 KB SRAM |
| Microphone | MP34DT06JTR PDM — 16 kHz mono |
| Display | SSD1306 128×64 OLED via I2C |
| Model size | ~7 KB (FLOAT32 TFLite) |
| Parameters | 1,266 total — 3-layer fully-connected |
| Test accuracy | 91.1% on held-out validation set |
| Classes | 6 — focus, meeting, done, leave, status, silence |