Raspberry Pi Pico
Raspberry Pi Pico.
SWDIO connector
SWCLK GND SWDIO
PicoProbe connections
picoprobe DUT (device under test) pin 3 GND GND pin 4 GP2 SWCLK pin 5 GP3 SWDIO pin 6 GP4 UART1 TX GP1 / UART0 RX pin 1 pin 7 GP5 UART1 RX GP0 / UART0 TX pin 2
back to microcontrollers page.
Links
Getting started with Raspberry Pi Pico (pdf), elf2uf2-rs, Picoprobe, YAPicoprobe,
projects
pico-rgb2hdmi, VT2040 - portable serial terminal, VersaTerm - A versatile DIY serial terminal, PicoTerm - VGA Terminal for RP2014, rp2040Term - VT100 Terminal with Parallel TFT LCD, Terminominal - VT100 terminal emulator for Raspberry Pi Pico, ELTerm, HackaDay ElTerm, ArduinoISP-pico,
software
local links
History
2024-07-11: starone - ok, the problem was user error (a very common thing). For the graphics crate, it seems that point 1,1 is the upper left corner, not the center. The repository with the code is here: rp2040-gc9a01a-test.
2024-07-11: starone - so I have my litte round display connected to a Pi Pico, and run my rust example on it. The display is supposedly 240 x 240 pixels, with point 1,1 in the center, but circles are not centered. Hm.
2024-01-14: c2 - probe-rs - the info command doesn't work, but this seems to be a bug (#1849):
tingo@kg-core2:~/personal/projects/2024/rust/embedded/rp2040 $ probe-rs info Probing target via JTAG Error identifying target using protocol JTAG: An error with the usage of the probe occurred Probing target via SWD Error showing ARM chip information: An error occurred in the communication with an access port or debug port. Caused by: Target device did not respond to request.
not with specified protocol either
tingo@kg-core2:~/personal/projects/2024/rust/embedded/rp2040 $ probe-rs info --protocol swd Probing target via SWD Error showing ARM chip information: An error occurred in the communication with an access port or debug port. Caused by: Target device did not respond to request.
you can get debug info too
tingo@kg-core2:~/personal/projects/2024/rust/embedded/rp2040 $ RUST_LOG=probe_rs=trace probe-rs info DEBUG list_cmsisdap_devices: probe_rs::probe::cmsisdap::tools: Searching for CMSIS-DAP probes using libusb TRACE list_cmsisdap_devices: probe_rs::probe::cmsisdap::tools: Could not read string for interface 0, skipping TRACE list_cmsisdap_devices: probe_rs::probe::cmsisdap::tools: Could not read string for interface 1, skipping TRACE list_cmsisdap_devices: probe_rs::probe::cmsisdap::tools: Could not read string for interface 2, skipping TRACE list_cmsisdap_devices: probe_rs::probe::cmsisdap::tools: Interface 0: CMSIS-DAP v2 Interface TRACE list_cmsisdap_devices: probe_rs::probe::cmsisdap::tools: Could not read string for interface 2, skipping TRACE list_cmsisdap_devices: probe_rs::probe::cmsisdap::tools: Picoprobe (CMSIS-DAP): CMSIS-DAP device with 3 interfaces TRACE list_cmsisdap_devices: probe_rs::probe::cmsisdap::tools: No HID interface for CMSIS-DAP found. TRACE list_cmsisdap_devices: probe_rs::probe::cmsisdap::tools: Could not read string for interface 0, skipping TRACE list_cmsisdap_devices: probe_rs::probe::cmsisdap::tools: Could not read string for interface 1, skipping DEBUG list_cmsisdap_devices: probe_rs::probe::cmsisdap::tools: Found 1 CMSIS-DAP probes using libusb, searching HID DEBUG list_cmsisdap_devices: probe_rs::probe::cmsisdap::tools: Found 1 CMSIS-DAP probes total DEBUG list_wlink_devices: probe_rs::probe::wlink: Searching for WCH-Link(RV) probes using libusb DEBUG list_wlink_devices: probe_rs::probe::wlink: Found 0 WCH-Link probes total TRACE probe_rs::probe::cmsisdap::tools: Attempting to open device matching 2e8a:000c:E660D4A0A70C5338 TRACE probe_rs::probe::cmsisdap::tools: Trying device Bus 001 Device 004: ID 046d:c52b TRACE probe_rs::probe::cmsisdap::tools: Trying device Bus 001 Device 005: ID 2e8a:000c TRACE probe_rs::probe::cmsisdap::tools: Interface 0: CMSIS-DAP v2 Interface TRACE probe_rs::probe::cmsisdap::tools: Could not read string for interface 2, skipping TRACE probe_rs::probe::cmsisdap::tools: Picoprobe (CMSIS-DAP): CMSIS-DAP device with 3 interfaces TRACE probe_rs::probe::cmsisdap::tools: No HID interface for CMSIS-DAP found. DEBUG probe_rs::probe::cmsisdap::tools: Opening 2e8a:000c in CMSIS-DAPv2 mode DEBUG probe_rs::probe::cmsisdap::commands: Draining probe of any pending data. DEBUG probe_rs::probe::cmsisdap::commands: Attempt 1 to find packet size TRACE probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 00, FF]... TRACE probe_rs::probe::cmsisdap::commands: Receive buffer: [00, 02, 40, 00]... DEBUG probe_rs::probe::cmsisdap::commands: Success: packet size is 64 DEBUG probe_rs::probe::cmsisdap::commands: Configuring probe to use packet size 64 TRACE probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 00, FE]... TRACE probe_rs::probe::cmsisdap::commands: Receive buffer: [00, 01, 02]... TRACE probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 00, F0]... TRACE probe_rs::probe::cmsisdap::commands: Receive buffer: [00, 01, 31]... DEBUG probe_rs::probe::cmsisdap: Detected probe capabilities: Capabilities { _swd_implemented: true, _jtag_implemented: false, swo_uart_implemented: false, swo_manchester_implemented: false, _atomic_commands_implemented: true, _test_domain_timer_implemented: true, swo_streaming_trace_implemented: false, _uart_communication_port_implemented: false, uart_com_port_implemented: false } Probing target via JTAG DEBUG attach: probe_rs::probe::cmsisdap: Attaching to target system (clock = 1000kHz) TRACE attach: probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 02, 02]... TRACE attach: probe_rs::probe::cmsisdap::commands: Receive buffer: [02, 00]... TRACE probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 03]... TRACE probe_rs::probe::cmsisdap::commands: Receive buffer: [03, 00]... TRACE probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 01, 00]... TRACE probe_rs::probe::cmsisdap::commands: Receive buffer: [01, 00]... Error identifying target using protocol JTAG: An error with the usage of the probe occurred Probing target via SWD DEBUG attach: probe_rs::probe::cmsisdap: Attaching to target system (clock = 1000kHz) TRACE attach: probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 02, 01]... TRACE attach: probe_rs::probe::cmsisdap::commands: Receive buffer: [02, 01]... INFO attach: probe_rs::probe::cmsisdap: Using protocol SWD TRACE attach: probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 11, 40, 42, 0F, 00]... TRACE attach: probe_rs::probe::cmsisdap::commands: Receive buffer: [11, 00]... TRACE attach: probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 04, 00, FF, FF, 00]... TRACE attach: probe_rs::probe::cmsisdap::commands: Receive buffer: [04, 00]... TRACE attach: probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 13, 00]... TRACE attach: probe_rs::probe::cmsisdap::commands: Receive buffer: [13, 00]... TRACE attach: probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 01, 00, 01]... TRACE attach: probe_rs::probe::cmsisdap::commands: Receive buffer: [01, 00]... TRACE debug_port_setup: probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 12, 33, FF, FF, FF, FF, FF, FF, 07]... TRACE debug_port_setup: probe_rs::probe::cmsisdap::commands: Receive buffer: [12, 00]... TRACE debug_port_setup: probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 12, 10, 9E, E7]... TRACE debug_port_setup: probe_rs::probe::cmsisdap::commands: Receive buffer: [12, 00]... TRACE debug_port_setup: probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 12, 33, FF, FF, FF, FF, FF, FF, 07]... TRACE debug_port_setup: probe_rs::probe::cmsisdap::commands: Receive buffer: [12, 00]... TRACE debug_port_setup: probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 12, 03, 00]... TRACE debug_port_setup: probe_rs::probe::cmsisdap::commands: Receive buffer: [12, 00]... DEBUG debug_port_setup: probe_rs::probe::cmsisdap: Adding command to batch: Read(port=DebugPort, addr=0) DEBUG debug_port_setup:process_batch: probe_rs::probe::cmsisdap: 1 items in batch DEBUG debug_port_setup:process_batch: probe_rs::probe::cmsisdap: Attempting batch of 1 items TRACE debug_port_setup:process_batch: probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 05, 00, 01, 02]... TRACE debug_port_setup:process_batch: probe_rs::probe::cmsisdap::commands: Receive buffer: [05, 00, 07]... DEBUG debug_port_setup:process_batch: probe_rs::probe::cmsisdap: 0 of batch of 1 items executed TRACE debug_port_setup:process_batch: probe_rs::probe::cmsisdap: Transfer status for batch item 0/1: NACK DEBUG probe_rs::architecture::arm::communication_interface: Selecting DP Default DEBUG debug_port_start: probe_rs::architecture::arm::dp: Writing DP register ABORT, value=0x0000001f DEBUG debug_port_start: probe_rs::probe::cmsisdap: Adding command to batch: Write(port=DebugPort, addr=0, data=0x0000001f DEBUG debug_port_start: probe_rs::architecture::arm::dp: Writing DP register SELECT, value=0x00000000 DEBUG debug_port_start: probe_rs::probe::cmsisdap: Adding command to batch: Write(port=DebugPort, addr=8, data=0x00000000 DEBUG debug_port_start: probe_rs::architecture::arm::dp: Reading DP register CTRL/STAT DEBUG debug_port_start: probe_rs::probe::cmsisdap: Adding command to batch: Read(port=DebugPort, addr=4) DEBUG debug_port_start:process_batch: probe_rs::probe::cmsisdap: 3 items in batch DEBUG debug_port_start:process_batch: probe_rs::probe::cmsisdap: Attempting batch of 3 items TRACE debug_port_start:process_batch: probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 05, 00, 03, 00, 1F, 00, 00, 00, 08, 00, 00, 00, 00, 06]... TRACE debug_port_start:process_batch: probe_rs::probe::cmsisdap::commands: Receive buffer: [05, 00, 07]... DEBUG debug_port_start:process_batch: probe_rs::probe::cmsisdap: 0 of batch of 3 items executed TRACE debug_port_start:process_batch: probe_rs::probe::cmsisdap: Transfer status for batch item 0/3: NACK Error showing ARM chip information: An error occurred in the communication with an access port or debug port. Caused by: Target device did not respond to request. INFO probe_rs::cmd::info: Debugging RISC-V-Targets over SWD is not supported. TRACE probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 03]... TRACE probe_rs::probe::cmsisdap::commands: Receive buffer: [03, 00]... TRACE probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 01, 00]... TRACE probe_rs::probe::cmsisdap::commands: Receive buffer: [01, 00]... DEBUG probe_rs::probe::cmsisdap: Detaching from CMSIS-DAP probe TRACE probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 03]... TRACE probe_rs::probe::cmsisdap::commands: Receive buffer: [03, 00]... TRACE probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 01, 00]... TRACE probe_rs::probe::cmsisdap::commands: Receive buffer: [01, 00]...
try with only the SWD protocol
tingo@kg-core2:~/personal/projects/2024/rust/embedded/rp2040 $ RUST_LOG=probe_rs=trace probe-rs info --protocol swd DEBUG list_cmsisdap_devices: probe_rs::probe::cmsisdap::tools: Searching for CMSIS-DAP probes using libusb TRACE list_cmsisdap_devices: probe_rs::probe::cmsisdap::tools: Could not read string for interface 0, skipping TRACE list_cmsisdap_devices: probe_rs::probe::cmsisdap::tools: Could not read string for interface 1, skipping TRACE list_cmsisdap_devices: probe_rs::probe::cmsisdap::tools: Could not read string for interface 2, skipping TRACE list_cmsisdap_devices: probe_rs::probe::cmsisdap::tools: Interface 0: CMSIS-DAP v2 Interface TRACE list_cmsisdap_devices: probe_rs::probe::cmsisdap::tools: Could not read string for interface 2, skipping TRACE list_cmsisdap_devices: probe_rs::probe::cmsisdap::tools: Picoprobe (CMSIS-DAP): CMSIS-DAP device with 3 interfaces TRACE list_cmsisdap_devices: probe_rs::probe::cmsisdap::tools: No HID interface for CMSIS-DAP found. TRACE list_cmsisdap_devices: probe_rs::probe::cmsisdap::tools: Could not read string for interface 0, skipping TRACE list_cmsisdap_devices: probe_rs::probe::cmsisdap::tools: Could not read string for interface 1, skipping DEBUG list_cmsisdap_devices: probe_rs::probe::cmsisdap::tools: Found 1 CMSIS-DAP probes using libusb, searching HID DEBUG list_cmsisdap_devices: probe_rs::probe::cmsisdap::tools: Found 1 CMSIS-DAP probes total DEBUG list_wlink_devices: probe_rs::probe::wlink: Searching for WCH-Link(RV) probes using libusb DEBUG list_wlink_devices: probe_rs::probe::wlink: Found 0 WCH-Link probes total TRACE probe_rs::probe::cmsisdap::tools: Attempting to open device matching 2e8a:000c:E660D4A0A70C5338 TRACE probe_rs::probe::cmsisdap::tools: Trying device Bus 001 Device 004: ID 046d:c52b TRACE probe_rs::probe::cmsisdap::tools: Trying device Bus 001 Device 005: ID 2e8a:000c TRACE probe_rs::probe::cmsisdap::tools: Interface 0: CMSIS-DAP v2 Interface TRACE probe_rs::probe::cmsisdap::tools: Could not read string for interface 2, skipping TRACE probe_rs::probe::cmsisdap::tools: Picoprobe (CMSIS-DAP): CMSIS-DAP device with 3 interfaces TRACE probe_rs::probe::cmsisdap::tools: No HID interface for CMSIS-DAP found. DEBUG probe_rs::probe::cmsisdap::tools: Opening 2e8a:000c in CMSIS-DAPv2 mode DEBUG probe_rs::probe::cmsisdap::commands: Draining probe of any pending data. DEBUG probe_rs::probe::cmsisdap::commands: Attempt 1 to find packet size TRACE probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 00, FF]... DEBUG probe_rs::probe::cmsisdap::commands: Attempt 2 to find packet size TRACE probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 00, FF]... TRACE probe_rs::probe::cmsisdap::commands: Receive buffer: [00, 02, 40, 00]... DEBUG probe_rs::probe::cmsisdap::commands: Success: packet size is 64 DEBUG probe_rs::probe::cmsisdap::commands: Configuring probe to use packet size 64 TRACE probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 00, FE]... TRACE probe_rs::probe::cmsisdap::commands: Receive buffer: [00, 01, 02]... TRACE probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 00, F0]... TRACE probe_rs::probe::cmsisdap::commands: Receive buffer: [00, 01, 31]... DEBUG probe_rs::probe::cmsisdap: Detected probe capabilities: Capabilities { _swd_implemented: true, _jtag_implemented: false, swo_uart_implemented: false, swo_manchester_implemented: false, _atomic_commands_implemented: true, _test_domain_timer_implemented: true, swo_streaming_trace_implemented: false, _uart_communication_port_implemented: false, uart_com_port_implemented: false } Probing target via SWD DEBUG attach: probe_rs::probe::cmsisdap: Attaching to target system (clock = 1000kHz) TRACE attach: probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 02, 01]... TRACE attach: probe_rs::probe::cmsisdap::commands: Receive buffer: [02, 01]... INFO attach: probe_rs::probe::cmsisdap: Using protocol SWD TRACE attach: probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 11, 40, 42, 0F, 00]... TRACE attach: probe_rs::probe::cmsisdap::commands: Receive buffer: [11, 00]... TRACE attach: probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 04, 00, FF, FF, 00]... TRACE attach: probe_rs::probe::cmsisdap::commands: Receive buffer: [04, 00]... TRACE attach: probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 13, 00]... TRACE attach: probe_rs::probe::cmsisdap::commands: Receive buffer: [13, 00]... TRACE attach: probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 01, 00, 01]... TRACE attach: probe_rs::probe::cmsisdap::commands: Receive buffer: [01, 00]... TRACE debug_port_setup: probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 12, 33, FF, FF, FF, FF, FF, FF, 07]... TRACE debug_port_setup: probe_rs::probe::cmsisdap::commands: Receive buffer: [12, 00]... TRACE debug_port_setup: probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 12, 10, 9E, E7]... TRACE debug_port_setup: probe_rs::probe::cmsisdap::commands: Receive buffer: [12, 00]... TRACE debug_port_setup: probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 12, 33, FF, FF, FF, FF, FF, FF, 07]... TRACE debug_port_setup: probe_rs::probe::cmsisdap::commands: Receive buffer: [12, 00]... TRACE debug_port_setup: probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 12, 03, 00]... TRACE debug_port_setup: probe_rs::probe::cmsisdap::commands: Receive buffer: [12, 00]... DEBUG debug_port_setup: probe_rs::probe::cmsisdap: Adding command to batch: Read(port=DebugPort, addr=0) DEBUG debug_port_setup:process_batch: probe_rs::probe::cmsisdap: 1 items in batch DEBUG debug_port_setup:process_batch: probe_rs::probe::cmsisdap: Attempting batch of 1 items TRACE debug_port_setup:process_batch: probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 05, 00, 01, 02]... TRACE debug_port_setup:process_batch: probe_rs::probe::cmsisdap::commands: Receive buffer: [05, 00, 07]... DEBUG debug_port_setup:process_batch: probe_rs::probe::cmsisdap: 0 of batch of 1 items executed TRACE debug_port_setup:process_batch: probe_rs::probe::cmsisdap: Transfer status for batch item 0/1: NACK DEBUG probe_rs::architecture::arm::communication_interface: Selecting DP Default DEBUG debug_port_start: probe_rs::architecture::arm::dp: Writing DP register ABORT, value=0x0000001f DEBUG debug_port_start: probe_rs::probe::cmsisdap: Adding command to batch: Write(port=DebugPort, addr=0, data=0x0000001f DEBUG debug_port_start: probe_rs::architecture::arm::dp: Writing DP register SELECT, value=0x00000000 DEBUG debug_port_start: probe_rs::probe::cmsisdap: Adding command to batch: Write(port=DebugPort, addr=8, data=0x00000000 DEBUG debug_port_start: probe_rs::architecture::arm::dp: Reading DP register CTRL/STAT DEBUG debug_port_start: probe_rs::probe::cmsisdap: Adding command to batch: Read(port=DebugPort, addr=4) DEBUG debug_port_start:process_batch: probe_rs::probe::cmsisdap: 3 items in batch DEBUG debug_port_start:process_batch: probe_rs::probe::cmsisdap: Attempting batch of 3 items TRACE debug_port_start:process_batch: probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 05, 00, 03, 00, 1F, 00, 00, 00, 08, 00, 00, 00, 00, 06]... TRACE debug_port_start:process_batch: probe_rs::probe::cmsisdap::commands: Receive buffer: [05, 00, 07]... DEBUG debug_port_start:process_batch: probe_rs::probe::cmsisdap: 0 of batch of 3 items executed TRACE debug_port_start:process_batch: probe_rs::probe::cmsisdap: Transfer status for batch item 0/3: NACK Error showing ARM chip information: An error occurred in the communication with an access port or debug port. Caused by: Target device did not respond to request. INFO probe_rs::cmd::info: Debugging RISC-V-Targets over SWD is not supported. TRACE probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 03]... TRACE probe_rs::probe::cmsisdap::commands: Receive buffer: [03, 00]... TRACE probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 01, 00]... TRACE probe_rs::probe::cmsisdap::commands: Receive buffer: [01, 00]... DEBUG probe_rs::probe::cmsisdap: Detaching from CMSIS-DAP probe TRACE probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 03]... TRACE probe_rs::probe::cmsisdap::commands: Receive buffer: [03, 00]... TRACE probe_rs::probe::cmsisdap::commands: Transmit buffer: [00, 01, 00]... TRACE probe_rs::probe::cmsisdap::commands: Receive buffer: [01, 00]...
2024-01-14: c2 - picoprobe - with a picoprobe connected, and given proper permissions (via devd) probe-rs works
tingo@kg-core2:~/personal/projects/2024/rust/embedded/rp2040 $ probe-rs list The following debug probes were found: [0]: Picoprobe (CMSIS-DAP) (VID: 2e8a, PID: 000c, Serial: E660D4A0A70C5338, CmsisDap)
2023-10-15: bb - picoprobe - I programmed another Pi Pico as a picoprobe by downloading picoprobe.uf2 from the Github repository and dragging it to a mounted Pico. As soon as I unmounted the Pico, I got this in /var/log/messages:
Oct 15 17:23:35 kg-bsbox kernel: ugen0.10: <Raspberry Pi Picoprobe (CMSIS-DAP)> at usbus0 Oct 15 17:23:35 kg-bsbox webcamd[51366]: webcamd: Cannot find USB device Oct 15 17:23:35 kg-bsbox kernel: umodem0 on uhub5 Oct 15 17:23:35 kg-bsbox kernel: umodem0: <CDC-ACM UART Interface> on usbus0 Oct 15 17:23:35 kg-bsbox kernel: umodem0: data interface 2, has no CM over data, has no break
and usbconfig reports
root@kg-bsbox:~ # usbconfig -d ugen0.10 ugen0.10: <Raspberry Pi Picoprobe (CMSIS-DAP)> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)
2023-10-15: Pi pico - if you need to power a DUT Pi Pico, take VSYS
picoprobe DUT pin 39 VSYS pin 39 VSYS
or VBUS (if DUT is USB Host). Only needed if the DUT Pico is using USB (to provide +5V on the usb connector)
picoprobe DUT pin 40 VBUS pin 40 VBUS
2023-07-04: picoprobe wiring is in Getting started with Raspberry Pi Pico, Appendix A. Basically with the microUSB connector up, pins on the left side
picoprobe DUT (device under test) pin 3 GND GND pin 4 GP2 SWCLK pin 5 GP3 SWDIO pin 6 GP4 UART1 TX GP1 / UART0 RX pin 1 pin 7 GP5 UART1 RX GP0 / UART0 TX pin 2
on the DUT Pico, the SWD connector (still with the microUSB connector up) is, from left to right:
SWCLK GND SWDIO
2023-07-03: I programmed a Raspberry Pi Pico as a picoprobe by mounting the UF2 disk and dragging the picoprobe.uf2 file there. Now it shows up in usbconfig as
ugen3.5: <Raspberry Pi Picoprobe CMSIS-DAP> at usbus3, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)
before it was
ugen3.5: <Raspberry Pi RP2 Boot> at usbus3, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (500mA)
create a devd access file
root@kg-core1:~ # cat /usr/local/etc/devd/picoprobe.conf # allow group (operator) to access the usb connection of Raspberry Pi picoprobe notify 100 { match "system" "USB"; match "subsystem" "INTERFACE"; match "type" "ATTACH"; match "vendor" "0x2e8a"; match "product" "0x000c"; action "usb_devaddr=`echo $cdev | sed 's#^ugen##'` && chmod g+rw /dev/usb/${usb_devaddr}.*"; };
restart devd
root@kg-core1:~ # service devd restart Stopping devd. Waiting for PIDS: 696. Starting devd.
unplug and re-plug the picoprobe, then check
root@kg-core1:~ # ll /dev/usb/3.5* crw-rw---- 1 root operator 0x1bd Jul 3 20:31 /dev/usb/3.5.0 crw-rw---- 1 root operator 0x1bf Jul 3 20:31 /dev/usb/3.5.1 crw-rw---- 1 root operator 0x1c1 Jul 3 20:31 /dev/usb/3.5.2 crw-rw---- 1 root operator 0x1c2 Jul 3 20:31 /dev/usb/3.5.3 crw-rw---- 1 root operator 0x1c3 Jul 3 20:31 /dev/usb/3.5.4 crw-rw---- 1 root operator 0x1c4 Jul 3 20:31 /dev/usb/3.5.5
rust - probe-run confirms that the probe is detected
tingo@kg-core1:~/personal/projects/2023/rust/embedded/rp2040/pico $ probe-run --list-probes the following probes were found: [0]: Picoprobe CMSIS-DAP (VID: 2e8a, PID: 000c, Serial: E660D4A0A71CA332, CmsisDap)
good.
2023-07-03: I created this page.