I am doing the following on my Fedora Linux system (Fedora 38)
git clone https://github.com/raspberrypi/pico-sdk.git cd pico-sdk git submodule update --init Submodule 'lib/btstack' (https://github.com/bluekitchen/btstack.git) registered for path 'lib/btstack' Submodule 'lib/cyw43-driver' (https://github.com/georgerobotics/cyw43-driver.git) registered for path 'lib/cyw43-driver' Submodule 'lib/lwip' (https://github.com/lwip-tcpip/lwip.git) registered for path 'lib/lwip' Submodule 'lib/mbedtls' (https://github.com/Mbed-TLS/mbedtls.git) registered for path 'lib/mbedtls' Submodule 'tinyusb' (https://github.com/hathach/tinyusb.git) registered for path 'lib/tinyusb' Cloning into '/u1/Projects/rp2040/pico-sdk/lib/btstack'... Cloning into '/u1/Projects/rp2040/pico-sdk/lib/cyw43-driver'... Cloning into '/u1/Projects/rp2040/pico-sdk/lib/lwip'... Cloning into '/u1/Projects/rp2040/pico-sdk/lib/mbedtls'... Cloning into '/u1/Projects/rp2040/pico-sdk/lib/tinyusb'...The "submodule update" thing was new to me. It pulls in some dependencies (so it seems) which include support for the TinyUSB submodule (if not the module itself). If you don't do this, you get warned by the Pico Probe build that it will not include USB support (which would make it pretty much useless, eh?).
git clone https://github.com/raspberrypi/picoprobe.git cd picoprobe git submodule update --init (This gets CMSIS_5 and freertos) export PICO_SDK_PATH=/u1/Projects/rp2040/pico-sdk mkdir build cd build cmake .. makeIf you don't define the PICO_SDK_PATH you get a warning:
SDK location was not specified. Please set PICO_SDK_PATH or set PICO_SDK_FETCH_FROM_GIT to on to fetch from git.If you have not done the submodule update thing in the SDK you will get a warning:
TinyUSB submodule has not been initialized; USB support will be unavailable hint: try 'git submodule update --init' from your SDK directory (/u1/Projects/rp2040/pico-sdk).Once make finishes, you will see a bunch of lame warnings from FreeRTOS then:
[100%] Linking CXX executable picoprobe.elf [100%] Built target picoprobe
[tom@trona build]$ ls -l *.uf2 -rw-r--r-- 1 tom tom 83456 Aug 11 11:48 picoprobe.uf2
mount | grep RPI /dev/sdd1 on /run/media/tom/RPI-RP2 type vfat cp picoprobe.uf2 /run/media/tom/RPI-RP2After this, the LED on the board comes on and I see these messages in my system log:
Aug 11 12:29:04 trona kernel: usb 1-1: new full-speed USB device number 4 using xhci_hcd Aug 11 12:29:04 trona kernel: usb 1-1: New USB device found, idVendor=2e8a, idProduct=000c, bcdDevice= 1.01 Aug 11 12:29:04 trona kernel: usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 Aug 11 12:29:04 trona kernel: usb 1-1: Product: Picoprobe (CMSIS-DAP) Aug 11 12:29:04 trona kernel: usb 1-1: Manufacturer: Raspberry Pi Aug 11 12:29:04 trona kernel: usb 1-1: SerialNumber: E6616407E36C3227 Aug 11 12:29:04 trona kernel: cdc_acm 1-1:1.1: ttyACM0: USB ACM deviceThis looks promising. It presents iself as a USB to serial device.
Will it work with openocd also? This is a topic for another page.
(It does)
Probe Pico GND to Target Pico GND (perhaps pin 38?) Probe Pico GP2 to Target Pico SWclk Probe Pico GP3 to Target Pico SWdio Probe Pico GP4 (Tx) to Target Pico Uart0 Rx (perhaps pin 22, GP17) Probe Pico GP5 (Rx) to Target Pico Uart0 Tx (perhaps pin 21, GP16)Also, you can power the target Pico from the Probe Pico by connecting Vsys together.
Probe Pico Vsys to Target Pico Vsys (pin 39)
Tom's electronics pages / tom@mmto.org