Parsec CouchLink lets a remote Parsec player use a real retro console as player 2.
The Windows host reads the Parsec virtual Xbox controller, sends the button state over Wi-Fi, and a Raspberry Pi Pico 2 W or Pico W presents that input as a wired Xbox 360 controller to a USB-to-console adapter such as USB4MAPLE.
Wiki | Quick Start | Troubleshooting
- Windows 10/11 PC running Parsec
- One of these Pico boards:
- Raspberry Pi Pico 2 W (RP2350 + Wi-Fi) -- the default target, ~$7
- Raspberry Pi Pico W or Pico WH (RP2040 + Wi-Fi) -- also fully supported, ~$5-6
- Micro-USB data cable
- 2.4 GHz Wi-Fi name and password (both boards use a 2.4 GHz-only radio)
- USB4MAPLE or another USB-to-console adapter that accepts a wired Xbox 360 controller
- The console and controller adapter you want to use
-
Download the latest
ParsecCouchLink-v*.zipfrom Releases. -
Extract the whole zip to a normal folder, such as
DownloadsorC:\Tools\ParsecCouchLink. -
Open PowerShell in the extracted folder.
-
Run:
powershell -ExecutionPolicy Bypass -File .\setup.ps1
-
Follow the prompts. The script flashes the Pico, provisions Wi-Fi, checks that the PC can find it, and can add
couchlink.exeto Windows startup. No controller is needed for setup.
After setup, have the remote player join through Parsec, run couchlink.exe, and choose Start streaming. The guided menu opens in a simple My Picos view that shows saved Picos, whether each one is on Wi-Fi, USB debug, or missing, and clear actions for Add new Pico or Add existing Pico. Advanced diagnostics are still available under Advanced tools. If a Pico is accidentally left in USB debug mode with saved Wi-Fi, Start streaming will try to reboot it back to Wi-Fi automatically.
| File | Purpose |
|---|---|
setup.ps1 |
First-run setup script. Start here. |
couchlink.exe |
Windows bridge. Runs at logon or manually. |
couchlink-pico2w.uf2 |
Firmware for the Pico 2 W (RP2350). |
couchlink-picow.uf2 |
Firmware for the Pico W / Pico WH (RP2040). |
doctor.ps1, bundle.ps1, logs.ps1, flash.ps1, bootsel.ps1, debug.ps1, configure-wifi.ps1 |
Convenience wrappers for common support and maintenance commands. |
README.txt |
Short release-folder instructions. |
LICENSE / NOTICE |
License text and release archive notes. |
Setup detects which Pico you have at BOOTSEL time and uses the matching UF2 automatically. Only one of the two firmware files is written to your Pico.
If you accepted the startup shortcut during setup, sign into Windows and leave the bridge running. If not, run couchlink.exe before the Parsec session starts.
Useful commands:
.\couchlink.exe doctor
.\couchlink.exe logs --tail
.\couchlink.exe configure-wifi
.\couchlink.exe recover
.\couchlink.exe debug --status
.\couchlink.exe debug --to-wifi --port COM3
.\couchlink.exe bootsel --port COM3
.\couchlink.exe test discover --ip 192.168.50.4
.\couchlink.exe test usb --all
.\couchlink.exe bundleIf configure-wifi finds a Pico already running on Wi-Fi, it can reboot that
Pico into setup-mode USB before asking for new credentials. If the existing
Wi-Fi is still correct after a firmware update, keep the current Wi-Fi and
start streaming.
If something went wrong, the fastest path is:
.\couchlink.exe bundle- Open an issue at https://github.com/RealWhyKnot/ParsecCouchLink/issues
- Fill in the form and drag the generated ZIP into the comment box.
The bundle contains logs, doctor output, and firmware diagnostics when the Pico is reachable. It does NOT contain your Wi-Fi password.
If the bridge won't run at all, the setup transcript at
%LOCALAPPDATA%\ParsecCouchLink\data\logs\setup-*.log is the next-best
thing -- attach that instead.
See the wiki's Reporting-Bugs page for the full version.
bridge/- Rust Windows bridge and setup wizard.pico-bridge/- Pico firmware.setup.ps1- release entrypoint for first-run setup.doctor.ps1,bundle.ps1,logs.ps1,flash.ps1,bootsel.ps1,debug.ps1,configure-wifi.ps1- release-folder command wrappers.build.ps1- local build and release zip staging.wiki/- source-controlled GitHub Wiki pages.
The project is pre-release. Runtime protocol v1 and setup protocol v1 are documented in the Protocol wiki page.
Licensed under the GNU General Public License v3.0 or later. See LICENSE for the full text and NOTICE for release archive notes.