-
Notifications
You must be signed in to change notification settings - Fork 0
Changelog
github-actions[bot] edited this page May 31, 2026
·
11 revisions
- The no-argument guided menu now opens in a simple My Picos view. Saved Picos show their current state when detected, and the main flow separates Add new Pico from Add existing Pico while keeping diagnostics under Advanced tools.
- Start streaming and direct
couchlink runnow auto-recover setup-mode USB Picos that already have saved Wi-Fi by rebooting them back to Wi-Fi/controller mode and retrying discovery. The tools hub also exposes Auto recover for streaming, andcouchlink recoverruns the same check directly. - Guided menus now include short inline hints for each choice. The Advanced tools hub adds firmware update, Wi-Fi setup, a quick status dashboard, Wi-Fi finder/manual-IP probe, Windows controller check, Pico recovery, USB adapter diagnostics, logs, and support bundles. The advanced command page is grouped by setup, streaming, recovery, and diagnostics.
-
couchlink debugadds a guided Pico recovery menu and direct mode-switch commands for Wi-Fi/controller mode, USB debug mode, and BOOTSEL firmware mode.couchlink bootselis the fast direct command for moving a setup-mode USB Pico into BOOTSEL. -
couchlink test usbasks 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 Advanced tools 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.lognext 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 incouchlink bundle. Survives across program restarts. -
couchlink bundlecaptures 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 bundlenow 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.txtnow leads with aSuggested next stepblock: 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 aDiagnostic detailsblock 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 runis no longer a silent console window; bundles now carry readable bridge logs. -
couchlink bundlecan 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.txtand the manifest now name which source produced the log (setup-cdcorrun-udp). - When CDC capture fails,
pico-diag.txtnow 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 flashrefuses 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 setupstage 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 setupstage 4 treats a port-disappeared event right afterREBOOT_TO_RUNas 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
bcdDevicefollows the generated firmware build date, so Windows re-bindsusbser.sysafter 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.