v0.3.0
Changelog
All notable changes are documented here.
[0.3.0] — 2026-06-20
Added
- Mini mode — compact 380×100 always-on-top window with Start/Stop and status pill (#11)
- Console Players — LAN IP picker in UDP Connection settings; lists all active network interfaces so you can point F1 25 at the right adapter without guessing (#25)
- Toast notifications — slide-up banner confirms when a profile is saved (#15)
- SVG icons in Manual Triggers — replaced all emoji placeholders with inline SVGs (Tabler / Lucide / Phosphor); no CDN dependency (#10)
Fixed
- Console Players: VPN detection now uses adapter name as primary signal;
10.x.x.xEthernet adapters no longer incorrectly flagged as VPN (#25) - Console Players: monospace font stack now matches the rest of the UI (
"SF Mono", Consolas, monospaceinstead of baremonospace) (#25) - UDP listen address: default changed from
127.0.0.1to0.0.0.0so the bridge receives packets without manual configuration (#17) - UDP listen address: pending address change now applied when restarting a stopped bridge (#17)
- UDP listen IP input: validates IPv4 format before saving (#21)
- Multizone strip detection: improved reliability for devices that sometimes report as a single bulb (#2)
- Light assignments: deferred push until after discovery and saved groups are loaded (#18)
- Nanoleaf: deferred startup API calls until
pywebviewreadyfires, eliminating spurious preview errors (#24) - Light list: added right-side padding to prevent content from sitting under the scrollbar (#4)
[0.2.0] — 2026-06-20
Added
- Nanoleaf integration — full support for Canvas, Shapes, Lines, Elements, and Light Panels
- All nine F1 race effects fire on Nanoleaf in sync with LIFX
- One-time pairing via local REST API (no cloud required)
- Discover button auto-fills device IP via SSDP
- Nanoleaf device shown as always-active entry in Light Assignment
- Panel Layout UI — visualise and rearrange physical panel positions
- Correct shape detection per device type (square, hexagon, triangle, etc.)
- Drag panels to match real-world arrangement
- Start lights sweep for Nanoleaf — panels light up by physical position (bottom→top or top→bottom), matching LIFX multizone behaviour
- Test Multizone button wired to Nanoleaf panels
- EXE build — PyInstaller spec (
f1_lifx_bridge.spec); distributable folder atdist/F1LifxBridge/
Fixed
- LIFX and Nanoleaf effects now fire in parallel (previously sequential, causing visible lag)
- Nanoleaf fade and timing: switched to static effect with
transitionTime=0for instant flashes - Nanoleaf silent failure: HTTP status now checked with fallback to
/stateendpoint - Nanoleaf colour accuracy: corrected
set_color()call signature; fixed invaliddurationon hue/sat calls - Nanoleaf master brightness: propagated from global brightness range setting
- Nanoleaf IP filtered from LIFX discovery results
- EXE bundle: resolved
lifxlanimport failures in frozen builds (bundledbitstringsubmodules) - Debug Timing toggle added to Settings for CMD-only performance profiling
[0.1.1] — 2026-06-19
Added
- Debug Timing toggle in Settings — logs per-effect latency to the terminal
- Log panel: text is now selectable; Copy All button copies the full log to clipboard
Fixed
- Effect lag with multiple lights:
set_color_allnow sends commands in parallel withrapid=True - Effect lag: event-driven effects bypass the stagger delay entirely
safe_labelwas making a blocking network call on every invocation — replaced with a cached lookup- Effect timings recalibrated after safe_label latency was removed
- UDP listen address ignored saved settings — IP and port now wired through to socket bind
set_listen_addressfailed to rebind socket on IP/port change- Blue flag and red flag now pulse instead of holding a static colour
[0.1.0] — 2026-06-19
Initial release.
Added
- UDP telemetry listener for F1 25 (port 20777)
- LIFX LAN discovery and control
- Nine race effects: Start Lights, Lights Out, Yellow Flag, Blue Flag, Red Flag, Fastest Lap, Chequered Flag, White Warning, Neutral
- Multizone strip support — start lights sweep fills zones left-to-right or right-to-left
- Stagger mode — fire each bulb with a configurable delay
- Master brightness range (min/max scaling)
- Idle mode — custom colour with optional slow pulse
- Profiles — save and switch complete configurations
- Light Assignment — assign specific lights to specific effects
- Identify button — flashes a single bulb to confirm which physical light it is
- UDP forwarding — relay packets to a second destination
- Live packet and event log
- Built-in tutorial overlay
- Persistent settings (
f1lifx_gui_settings.json,lifx_groups.json) - Fixed: localStorage wiped on every launch (setup flow re-ran on each start)