The Raspberry Pi Pico is so prevalent in the electronics hacker scene that it seems just about everyone has a couple on their desk or in a drawer. There are many different options for programming them: you can use MicroPython, C/C++, CircuitPython, and of course the Arduino environment. But if you want to program your Pico at the lowest level (programming a bootloader, or using the Pico SDK with C/C++) then you need to connect to the SWD port on the RP2040. There are two nifty programming/debug probes developed by 8086 Consultancy: the PiProbe and the PicoProbe Sled.
The PiProbe attaches to any Raspberry Pi and gives you UART, SWD and power outputs to make powering and programming any Pico/RP2040 product a breeze. Using OpenOCD you can both program and debug the Pico. GDB is used to debug, allowing you to single step, examine memory, set breakpoints, and pretty much have full control over the chip, which can be priceless when troubleshooting issues.
If you instead want to use your Pico as a programmer/debugger for another target Pico, then you can use the PicoProbe Sled. This breaks out the UART and SWD to similar JST connectors and also breaks out additional connections (including power) on the 0.1″ header. Both of these boards have the option to include compatible JST 3-wire cables in various lengths (10, 15 and 20cm), which you can use if the target board has a compatible connector.
Note: an earlier version of this post mistakenly assumed that the PiProbe and the PicoProbe Sled could be used in a debug->target setup; however, both boards are debug probes and you cannot program the Pico connected to the Sled from the SWD header.
8086 Consultancy has a range of other super cool products, including lots of adapters and boards to help you hack on USB as well as many other neat add-ons for Raspberry Pi products. Check them out if you want to learn more!