Repository navigation
Releases: GSKang94/DS5-Linux-Bridge
Release list
v0.7.4
TV wake reliability fix. Controller wake immediately sends one WOL packet to the PC and optional TV target. TV control then sends one immediate HDMI input request through the helper, with a USB suspend-cycle latch preventing duplicate resume, mount, and re-enumeration commands.
v0.7.3
TV wake sequencing\n\n- Controller wake sends WOL only to the PC.\n- The helper owns the complete TV wake transaction: one WoL packet, bounded Android ADB readiness polling, then one HDMI input selection.\n- The helper serializes overlapping TV commands to protect against duplicate USB lifecycle events.\n- The Pico wait timeout covers the bounded TV boot wait.\n\nThis release prevents the double-TV-WoL race that could briefly enter HDMI 1 before the TV returned to Home.
v0.7.2
TV wake reliability\n\n- Coalesce USB resume and mount callbacks into one TV wake/input action.\n- Prevent duplicate HDMI input commands after a DualSense wakes the host.\n- Validate helper HTTP responses and report failed requests on UART.\n- Make the TV helper tolerate ADB/WoL failures and process concurrent requests.\n- Validate TV helper IPv4 addresses in both web interfaces.\n\nFirmware artifacts are built and attached by the release workflow. OTA clients will discover this release as v0.7.2.
v0.7.1 - Restore v0.5.2 + server timeout fix
Firmware: exact v0.5.2 state (DS5 wake + manual WoL both trigger TV). Server: only change is catching TimeoutExpired in ensure_connected() so it doesn't crash when TV is in standby.
v0.7.0 - Revert TV control to v0.1.0 (working state)
Reverts wake.cpp, tv_control.cpp, tv_control.h, and tv_server.py to their exact v0.1.0 state. No modifications to TV logic.
v0.6.0 - Proper TV control (no duplicates)
Fixes the DS5 wake → TV bouncing to home issue. Root cause: variant swap caused tud_mount_cb to fire tv_on_host_wake a second time, sending duplicate /tv/input commands.
Now:
- DS5 wake: wifi_wol_send_all() wakes TV instantly, tud_resume_cb sends one /tv/input
- Cold boot (WoL/power button): tud_mount_cb sends /tv/wake via server (only if no command already in flight)
- Variant swap mount: detected and skipped (pending_cmd already set by resume)
v0.5.5 - Revert to v0.5.2 firmware + server fix
Reverts firmware to v0.5.2 state (instant TV wake via direct WoL, server handles input switch only). Server updated with proper logging and timeout handling.
v0.5.4 - Fix TV wake duplication on DS5 path
Root cause: tv_on_host_wake() was sending a second WoL to the TV, but the DS5 button-press path already sent one via wifi_wol_send_all(). The duplicate WoL caused the TV to reset to home after switching input.
Fix: tv_on_host_wake() now only sends the /tv/input command (HDMI switch). TV WoL is sent from:
- DS5 path: wifi_wol_send_all() in request_host_wake() (unchanged)
- Cold boot (S5): directly in tud_mount_cb (non-DS5 external wake)
v0.5.3 - Fix duplicate TV input switch on DS5 wake
Debounce tv_on_host_wake() with a 10s window. The DS5 wake flow triggers both tud_resume_cb and tud_mount_cb (due to the MINIMAL→FULL variant swap), causing the TV input switch command to fire twice — the second one was bouncing the TV back to its home screen.
v0.5.2 - Instant TV wake
TV wake is now instant: Pico sends WoL magic packet directly to the TV on USB resume/mount (no server round-trip). The server only handles the HDMI input switch via ADB (TV is already awake by then).