Loading 3D model… large boards can take a moment.
Munin helps you track time for different tasks during your work day. Each face represents a different activity — just flip the cube to start logging time for a specific task (ex. "Product support", "Emails", "Coding" etc). Add labels to each side if you want.
Depending on usage, battery time should be 2-8 weeks.
The device consists of a 3d printed translucent enclosure, a single board for control and connectivity, plus a battery.
Total cost of components is something like 40€ at the moment. Could be lowered significantly but that would make assembly much more cumbersome.
The internal LED provides status feedback:
The Munin time tracker has, besides its own firmware, a systray client app that handles connectivity, configuration and writes to a log file. The app is based on python and bleak and will work on macOS, Windows and Linux. It will not require root and will probably be distributed using something like pipx install munin-client. We shall see.
~/munin_time_log.csv
timestamp,face_id,face_label,duration_s
2025-08-20T15:59:15.847411,6,Off,8.0
2025-08-20T15:59:23.875021,5,Break,4.0
2025-08-20T15:59:27.901076,2,Coding,18.0
2025-08-20T15:59:45.933763,3,Meetings,30.0
2025-08-20T16:00:15.970091,2,Coding,2.0
2025-08-21T15:51:53.807371,2,Coding,1332.3
2025-08-21T16:14:06.146382,1,Emails,11.2
2025-08-21T16:15:44.557220,1,Emails,10.0
2025-08-21T16:35:39.860765,1,Emails,22.0
2025-08-21T16:36:01.859839,2,Coding,4.1
2025-08-21T22:15:41.733766,1,Emails,87.5
Face colors (and labels) can be configured via the tray Settings UI ("Settings…") or by editing ~/.munin/config.json directly. The client automatically sends the configured colors to the device when connecting.
Each face can be customized with any color and label. See config.example.json for the default configuration values.
The device will flash the configured color briefly when switching faces.
Client-side: Your color preferences are saved in the client configuration file (~/.munin/config.json) and persist across client restarts.
Device-side: The XIAO nRF52840 device stores color configurations in volatile RAM only. This means:
Open from the tray icon → "Settings…". Features:
Config writes are atomic; the running tray process detects external changes and pushes updates live without restart.
Run locally:
source .venv/bin/activate
python -m munin_client
Or with pipx:
pipx run --spec . munin-client
Using the xiao_ble_nrf52840_sense.dts board definition.
Build firmware:
cd ./zephyr_workspace && source zephyr/zephyr-env.sh && cd munin_app && west build -p always -b xiao_ble/nrf52840/sense .
Deploy firmware:
./zephyr_workspace/munin_app, Run: ./flash.sh (or drag build/zephyr/zephyr.uf2 to XIAO-SENSE drive)Battery life is more important than detecting a face change quickly and moreover the Munin should not change face that easily in case one accidentally rotate it or fiddle with it.
No comments yet. Be the first to ask about this board.