Skip to content

Releases: onxtane/f1-lifx-bridge

v0.6.0 — F1 24 support & multi-title game selector

21 Jun 09:39

Choose a tag to compare

What's new

F1 24 support

F1 24 uses an identical UDP header to F1 25 — both titles are now accepted. Select F1® 25 / 24 in the game selector to use either game.

Multi-title game selector

The game selector now shows a coming-soon strip for upcoming titles:

  • Forza Horizon 5 / Motorsport
  • DiRT Rally 2.0 / EA WRC
  • Assetto Corsa
  • Project CARS 2
  • F1® Manager

These are locked until their UDP integrations ship. They reflect the active roadmap at #31.


Install

  1. Download and extract F1LifxBridge-v0.6.0.zip
  2. Run F1LifxBridge.exe inside the extracted folder
  3. No Python or dependencies required

Requires F1 25 or F1 24 with UDP telemetry enabled, and LIFX or Nanoleaf on the same network.

v0.5.0

21 Jun 07:43

Choose a tag to compare

What's new

Features

  • Missing device warning — amber toast alert when a saved group references lights that weren't found during discovery (#32)
  • Nanoleaf diagnostics toggle — debug switch in Settings to enable/disable [NANOLEAF DIAG] log output; was previously hardcoded on (#33)

Fixes

  • Auto-load group — consolidated two nearly identical auto-load code paths into a single canonical implementation; fixes a bug where on_selection_changed was not called after discover auto-load (#37)
  • Security — patched 3 XSS sinks in the UI layer

Full changelog: v0.4.0...v0.5.0

v0.4.0

21 Jun 03:56

Choose a tag to compare

What's new in v0.4.0

UI polish

  • Log view restyled — entries now show colour-coded badges (EVENT, GROUP, GUI, ERROR, WARNING, NANOLEAF, LAN) instead of raw terminal text
  • Auto-response icons — all event rows now use the same SVG icons as the Manual Triggers section; emojis removed

Bug fixes

  • Light list checkbox glitch — checkboxes no longer visually flicker during scroll (replaced native inputs with CSS-driven custom checkboxes)
  • Velocity scrolling — completely rewrote scroll handler; eliminates the jerky reset-on-each-tick behaviour by preventing native scroll and handling all movement via a single RAF loop with delta normalisation and a velocity cap

Known issue

  • Stagger Lights temporarily disabled — the setting is greyed out with a notice while the regression is investigated (#30)

v0.3.0

20 Jun 22:33

Choose a tag to compare

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.x Ethernet adapters no longer incorrectly flagged as VPN (#25)
  • Console Players: monospace font stack now matches the rest of the UI ("SF Mono", Consolas, monospace instead of bare monospace) (#25)
  • UDP listen address: default changed from 127.0.0.1 to 0.0.0.0 so 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 pywebviewready fires, 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 at dist/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=0 for instant flashes
  • Nanoleaf silent failure: HTTP status now checked with fallback to /state endpoint
  • Nanoleaf colour accuracy: corrected set_color() call signature; fixed invalid duration on hue/sat calls
  • Nanoleaf master brightness: propagated from global brightness range setting
  • Nanoleaf IP filtered from LIFX discovery results
  • EXE bundle: resolved lifxlan import failures in frozen builds (bundled bitstring submodules)
  • 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_all now sends commands in parallel with rapid=True
  • Effect lag: event-driven effects bypass the stagger delay entirely
  • safe_label was 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_address failed 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)