Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions CHANGELOG.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
Changelog file for Structures extra.
https://github.com/mctechnology17/zmk-nice-oled/blob/main/CHANGELOG.txt

# UNRELEASED
=======================================
# FIXES
- [x] **CONFIG_NICE_OLED_WIDGET_WPM_LUNA_ANIMATION_MS and CONFIG_NICE_OLED_WIDGET_WPM_BONGO_CAT_ANIMATION_MS are now honored** Both were documented in docs/OPTIMIZE.md but the widgets used hardcoded cycle times (200ms walk/run). Luna derives all states from the option (idle at 3x the base), Bongo Cat uses it for the fast state. Effective default changes from 200ms to the Kconfig default of 300ms.


# FEATURES v0.0.3 (Jan 09, 2026)
=======================================
# NEW FEATURES
Expand Down
4 changes: 3 additions & 1 deletion boards/shields/nice_oled/widgets/bongo_cat.c
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,9 @@ const lv_img_dsc_t *mid_imgs[] = {
&bongo_cat_tap2_03,
};

#define ANIMATION_SPEED_FAST 200
// The fast state dominates CPU usage while typing, so it is the one exposed
// through Kconfig (see docs/OPTIMIZE.md).
#define ANIMATION_SPEED_FAST CONFIG_NICE_OLED_WIDGET_WPM_BONGO_CAT_ANIMATION_MS
const lv_img_dsc_t *fast_imgs[] = {
&bongo_cat_double_tap2_02,
&bongo_cat_double_tap1_03,
Expand Down
20 changes: 13 additions & 7 deletions boards/shields/nice_oled/widgets/luna.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,28 +30,34 @@ LV_IMG_DECLARE(dog_run2_90);
LV_IMG_DECLARE(dog_sneak1_90);
LV_IMG_DECLARE(dog_sneak2_90);

// #define ANIMATION_SPEED_IDLE 10000
#define ANIMATION_SPEED_IDLE 960
// Base cycle time comes from Kconfig so CPU usage is tunable (see
// docs/OPTIMIZE.md). Idle runs at 3x the base so the sitting dog stays calm.
// The Kconfig symbol only exists on central; peripheral builds with
// NICE_OLED_WIDGET_ANIMATION_PERIPHERAL_WPM fall back to the same default.
#ifdef CONFIG_NICE_OLED_WIDGET_WPM_LUNA_ANIMATION_MS
#define ANIMATION_SPEED_BASE CONFIG_NICE_OLED_WIDGET_WPM_LUNA_ANIMATION_MS
#else
#define ANIMATION_SPEED_BASE 300
#endif
#define ANIMATION_SPEED_IDLE (ANIMATION_SPEED_BASE * 3)
const lv_img_dsc_t *idle_imgs[] = {
&dog_sit1_90,
&dog_sit2_90,
};

// #define ANIMATION_SPEED_SLOW 2000
#define ANIMATION_SPEED_SLOW 200
#define ANIMATION_SPEED_SLOW ANIMATION_SPEED_BASE
const lv_img_dsc_t *slow_imgs[] = {
&dog_walk1_90,
&dog_walk2_90,
};

// #define ANIMATION_SPEED_MID 500
#define ANIMATION_SPEED_MID 200
#define ANIMATION_SPEED_MID ANIMATION_SPEED_BASE
const lv_img_dsc_t *mid_imgs[] = {
&dog_walk1_90,
&dog_walk2_90,
};

#define ANIMATION_SPEED_FAST 200
#define ANIMATION_SPEED_FAST ANIMATION_SPEED_BASE
const lv_img_dsc_t *fast_imgs[] = {
&dog_run1_90,
&dog_run2_90,
Expand Down