Raspberry Pi Pico

Raspberry Pi Pico.

back to microcontrollers page.

Links

Getting started with Raspberry Pi Pico (pdf), elf2uf2-rs, Picoprobe,

local links

bb,

History

2023-10-15: bb - picoprobe - I programmed another Pi Pico as a picoprobe by downloading picoprobe.uf2 from the Github repository and drasgging it to a mounted Pico. As soon as I unmounted the Pico, igot 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)

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 7 GP5 UART1 RX  GP0 / UART0 TX

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.