68eb547ec4
feat(espnow): add debug logging and channel diagnostics
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-29 16:00:54 +12:00
8403df531d
feat(espnow): improve bridge transport and driver sync
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-28 00:38:09 +12:00
088fe161a8
fix(main): blocking espnow rx loop and pass peer host
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-25 21:55:46 +12:00
c9895df512
fix(presets): phase-lock blink and one tick on re-select
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-25 21:55:46 +12:00
39a84696c3
feat(espnow): ping request/response with jittered delay
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-25 21:55:39 +12:00
c7560b2e87
fix(settings): default wifi channel to 5
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-25 21:55:36 +12:00
ea21563900
fix(controller): apply select when presets not in message
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-25 21:55:30 +12:00
a97f6c7c2c
feat(espnow): groups filter and v1 select list on driver
...
Apply group membership on RX, accept select as [preset_id, step?],
and fix identify/off plus presets layout for manual beat stepping.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-24 01:44:21 +12:00
1fdb2c9441
fix(espnow): handle binary and JSON RX in simplified main
...
Use init_espnow for channel alignment; route wire CMD/GROUPS and JSON
v1 payloads to process_data from the poll loop.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-23 22:45:13 +12:00
3e718f7432
feat(espnow): add wire transport and simplify broadcast main
...
Binary espnow_wire/espnow_transport modules plus a minimal main that
broadcasts a JSON hello and polls ESP-NOW while running presets.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-23 22:44:39 +12:00
85490a3bd0
feat(deploy): add file_hashes.json manifest on device
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-17 19:14:51 +12:00
94266d5a7c
feat(patterns): reverse animation direction via preset n8
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-17 18:32:01 +12:00
55a97ac51c
feat(patterns): merge pattern styles and add mode support
...
Consolidate legacy pattern ids into meteor, particles, sparkle, chase,
and colour_cycle with n6/mode style selection; add pattern_modes helper,
self-contained tests/all.py, and preset mode alias on wire.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-16 21:14:54 +12:00
794f1a2841
feat(patterns): add northern wave, candle glow, starfall, ice sparkle
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-16 15:11:32 +12:00
8f8bc894a9
feat(patterns): add icicles blizzard and rime winter effects
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-16 15:09:59 +12:00
2a768376d0
chore(release): beta-1.03
...
Co-authored-by: Cursor <cursoragent@cursor.com >
beta-1.03
2026-05-10 16:13:59 +12:00
170a0e05ab
feat(patterns): align manual and auto behaviour
...
Unify manual/auto timing semantics for key patterns, add preset background support, and improve runtime observability while keeping the driver responsive under beat-triggered selects.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-09 20:07:58 +12:00
4879fcfe90
fix(patterns): use preset background fallback across animations
...
Align pattern background rendering to use preset.background_or(...) and update pulse/radiate single-step behaviour to preserve visible frames and step progression.
2026-05-09 14:28:05 +12:00
fbebe9f4f9
fix(patterns): correct non-blocking timing and blink off phase
...
Co-authored-by: Cursor <cursoragent@cursor.com >
beta-1.01
2026-05-06 20:28:52 +12:00
a79c6f4dd3
fix(patterns): remove blocking sleeps from pattern loops
...
Replace sleep-based timing in pattern generators with non-blocking tick checks so long delays do not block the main loop and risk watchdog resets.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-04 22:37:33 +12:00
pi
2fcaf2f064
fix(driver): persist brightness when message includes save and b
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-03 22:15:23 +12:00
pi
3b38264b70
chore(wifi): log connecting while waiting for STA
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-03 21:27:29 +12:00
3ee89ce3b4
feat(driver): add HTTP routes, startup split, and binary envelope support
...
Wire controller messages through new modules (background tasks, runtime state,
startup) and add binary envelope handling.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-03 14:54:12 +12:00
74b4b495f9
feat(patterns): add expanded animation pack with smoke tests
...
Add a broad set of new pattern modules and matching pattern smoke scripts so the new effects can be validated directly on-device.
2026-04-23 20:10:01 +12:00
4575ef16ad
test(led-driver): add espnow peer and ap pm0 scripts
...
Made-with: Cursor
2026-04-21 21:48:42 +12:00
a342187635
feat(patterns): add twinkle pattern defaults
...
Made-with: Cursor
2026-04-21 21:48:42 +12:00
428ed8b884
feat(led-driver): add preset clear command and runtime debug
2026-04-21 00:44:28 +12:00
a22702df4d
feat(patterns): add radiate animation
2026-04-20 23:37:43 +12:00
5a8866add7
feat(esp32): pattern upload route and ws controller ip
...
Made-with: Cursor
2026-04-19 23:27:33 +12:00
a2cd2f8dc2
test(led-driver): add pattern smoke harness
...
Made-with: Cursor
2026-04-19 23:27:29 +12:00
c47725e31a
feat(patterns): add colour cycle, flicker, and flame
...
Made-with: Cursor
2026-04-19 23:27:19 +12:00
22b1a8a6d6
fix(led-driver): phase-lock pattern timers
...
Made-with: Cursor
2026-04-19 21:41:18 +12:00
45a38c05b7
fix(led-driver): persist default preset updates
2026-04-15 00:03:21 +12:00
87bd0338bd
fix(led-driver): stop loading patterns main and sync tick call
2026-04-14 23:13:16 +12:00
0a33f399e1
refactor(led-driver): simplify websocket runtime and test layout
2026-04-14 22:12:31 +12:00
pi
ded6e3d360
docs: align readme and driver api with tcp/wifi
...
Made-with: Cursor
2026-04-12 00:13:49 +12:00
pi
a64457a0d5
chore(led-driver): add http_poll client and UDP/mDNS test helpers
...
Made-with: Cursor
2026-04-11 15:19:07 +12:00
pi
fea4e69140
feat(led-driver): wifi default transport, lazy espnow import, dynamic patterns
...
Made-with: Cursor
2026-04-11 15:10:12 +12:00
pi
aaaf660e9d
feat(driver): discover controller via udp and rediscover on reconnect
...
Made-with: Cursor
2026-04-06 21:28:00 +12:00
pi
cef9e00819
feat(tcp): include type in wifi hello line
...
Made-with: Cursor
2026-04-06 00:21:43 +12:00
pi
7e3aca491c
refactor(led-driver): transport layout, fixed tcp port, server_ip settings
...
Made-with: Cursor
2026-04-05 20:59:30 +12:00
pi
7bfdcd9bee
feat(led-driver): wifi tcp transport, hex mac in utf-8 hello
...
Made-with: Cursor
2026-04-05 20:20:47 +12:00
pi
dc19877132
fix(dev): run mpremote from PATH or python -m
...
Made-with: Cursor
2026-04-05 16:41:23 +12:00
fb53f900fb
refactor(driver): simplify and harden espnow message handlers
2026-03-22 02:53:23 +13:00
044dd815dc
refactor(driver): harden preset parsing and refresh tooling
2026-03-22 02:00:13 +13:00
f3bcc89320
test(driver): cover default targets and color alias handling
2026-03-22 01:52:15 +13:00
4b74f3ef02
fix(driver): gate targeted default and normalize preset colours
2026-03-22 01:47:14 +13:00
8403f36a1f
fix(presets): normalize loaded colours before pattern math
2026-03-22 00:36:53 +13:00
4c7646b2fe
Adjust defaults and preset handling
...
- Switch startup_preset to default key
- Add built-in on/off presets and tweak device defaults
Made-with: Cursor
2026-03-14 02:41:07 +13:00
1616471859
Change startup_preset to default
2026-03-10 22:48:19 +13:00