Skip to content

Changelog

github-actions[bot] edited this page May 30, 2026 · 11 revisions

Changelog

Unreleased

  • couchlink test usb asks run-mode firmware over Wi-Fi for USB/XInput status, including mount/configuration state, descriptor counters, accepted IN reports, and host OUT traffic. The guided Fix a problem menu exposes the same check for console-adapter troubleshooting.
  • Release packaging describes only the current CouchLink setup, streaming, diagnostic, flashing, and Wi-Fi configuration tools. Protocol docs list the active setup and runtime commands.
  • Firmware writes one heartbeat line every 5 seconds while running, covering USB mount/suspend state, Wi-Fi state with IP and RSSI, peer presence, and tx/rx packet counters. A quiet system used to leave the diag ring with no recent entries; the heartbeat guarantees there is always state to reason about in pico-diag.txt.
  • Firmware fault context expanded. On HardFault / BusFault / UsageFault / MemManage the breadcrumb now captures the full hardware-stacked basic exception frame (R0-R3, R12, LR, PC, xPSR) plus SP and -- on Cortex-M33 / Pico 2 W -- the CFSR / HFSR / MMFAR / BFAR. The next boot's log names the cause directly (divide-by-zero, unaligned-access, precise-bus-error, etc.) rather than just an address.
  • Bridge writes a state-journal.log next to the rotating log: one short operator-readable line per high-signal event (wizard stage transitions, CDC open + line state, HELLO timeouts with byte counts, discovery, peer transitions, bundle outcomes). Included in couchlink bundle. Survives across program restarts.
  • couchlink bundle captures the last 15 minutes of Windows event log entries from the System and Kernel-PnP/Configuration logs, filtered to USB-relevant providers. Catches driver-bind failures, surprise removals, and descriptor-request timeouts that pnputil cannot show.
  • Setup-mode CDC HELLO probe in couchlink bundle now uses a 10-second read deadline instead of 3 seconds. The wizard's faster budget still applies during interactive setup; the bundle path is "something is wrong, gather everything" and waits longer for late-arriving bytes from a slow-booting firmware.
  • pico-diag.txt now leads with a Suggested next step block: a one-sentence root cause and an ordered "Try this (in order)" list specific to the failure shape (write / read+0bytes / read+somebytes / decode / get_log_buffer / no_setup_port / setup_open_failed / no_last_pico_in_config / udp_discovery_failed / udp_probe_failed / udp_unsupported). The raw captured fields follow in a Diagnostic details block so an operator reading top-down hits an action before they hit jargon.
  • Bridge log files are no longer empty by default. The tracing filter directive matched a crate-name prefix that the binary's actual crate identifier did not satisfy, so every info! / warn! / error! call dropped silently on both stderr and the rotating file. couchlink run is no longer a silent console window; bundles now carry readable bridge logs.
  • couchlink bundle can now pull the firmware's diag-log ring over UDP from a running Pico. The bundle tries setup-mode USB-CDC first and falls back to a unicast UDP probe against the last-known address. pico-diag.txt and the manifest now name which source produced the log (setup-cdc or run-udp).
  • When CDC capture fails, pico-diag.txt now names the specific step that broke -- port enumeration, port open, HELLO write, HELLO read, or frame decode -- with bytes-received count and a hex dump of any pre-magic bytes seen on the wire. The previous stub said "couldn't capture, see the bridge log" without distinguishing which path failed.
  • couchlink flash refuses to write a UF2 whose family ID does not match the detected BOOTSEL drive. The previous behavior was a warning that continued the copy, which produced a Pico that silently never re-enumerated when an RP2040 image was dropped onto an RP2350 (or vice versa).
  • couchlink setup stage 4 waits up to 120 s (was 60 s) for the setup-mode CDC port to appear and prints a progress line every 10 s while it waits. The previous 60 s budget was tight when the host went through USB passthrough (VM, WSL2) or a first-time driver bind.
  • couchlink setup stage 4 treats a port-disappeared event right after REBOOT_TO_RUN as success rather than a hard error. The firmware always reboots after handling that command, so a missing reply is the expected outcome of a fast reboot, not a failure.
  • Firmware CDC bcdDevice follows the generated firmware build date, so Windows re-binds usbser.sys after a CDC-protocol break instead of reusing a cached binding from an older interface layout.
  • Release zip stages setup.ps1, couchlink.exe, and both board-specific UF2 files together.
  • Wiki pages now hold setup, flashing, troubleshooting, build, and protocol notes.

Clone this wiki locally