A visual countdown timer sketch for M5Dial with a segmented ring UI.
- 20-segment visual ring timer
- Fast encoder handling (multi-step minute changes)
- Catch-up tick logic for better time accuracy under load
- Half-time notification with selectable sound pattern
- Non-blocking completion alarm sequence
- Optional auto-dim while in DONE state
- Optional auto-reset after DONE timeout
- Long-press mute toggle in READY state
- Persist last configured duration in NVS and restore on boot
- Optional preset stepping (5/15/25/50 minutes)
- Rotate: set time (READY/PAUSED)
- Short press:
- READY -> start
- RUNNING -> pause
- PAUSED -> resume
- DONE -> reset
- Long press:
- READY -> toggle mute (when
ENABLE_LONG_PRESS_MUTE_TOGGLEis enabled) - Other states -> reset
- READY -> toggle mute (when
Edit config.h. Key options include:
HALF_NOTIFY_PATTERNUSE_PRESET_STEPSPERSIST_LAST_DURATIONMUTE_MODE_DEFAULTDONE_DIM_START_MS,DONE_DIM_EVERY_MS,DONE_DIM_STEP,DONE_MIN_BRIGHTNESSDONE_AUTO_RESET_MS
Recommended workflow for sharing/reuse:
- Copy config.example.h to config.h
- Adjust values in config.h for your device/use case
- Optionally keep config.h out of version control
This project is licensed under the MIT License.
- Copyright: 2026 omiya-bonsai
- Details: LICENSE

