Pico PMOD ExtBoard is a user-friendly expansion board for Pico launched by MuseLab. The ExtBoard leads all GPIOs of Pico with PMOD standard, and the pico is connected with SWD download interface and serial port provided by onboard debugger DAPLink, which can be easily used for program & test of Pico.
DAPLink | Pico |
---|---|
GND | GND |
PA9/UART1_TX | GP17/UART0_RX |
PA10/UART1_RX | GP16/UART0_TX |
under Linux, you can use the minicom or picocom to open the serial port, for example:
$sudo apt install minicom
$minicom -b 115200 -o -D /dev/ttyACM0
$sudo apt install picocom
$picocom -b 115200 /dev/ttyACM0
Pico's onchiprom program implements a USB disk with drag-and-drop burning function, However, in some development scenarios, if you need to frequently modify the code and test, you need to repeatedly power down Pico, hold down the button and power up again, and wait for the USB enumeration to complete before you can drag and drop, which is a slightly tedious process. In fact, the Pico can be programmed & debugged through the SWD interface with the openocd, no need to re-power the Pico, just enter a command to complete, the detail is described as follows
install openocd
$ cd ~/pico
$ sudo apt install automake autoconf build-essential texinfo libtool libftdi-dev libusb-1.0-0-
dev
$ git clone https://github.com/raspberrypi/openocd.git --recursive --branch rp2040 --depth=1
$ cd openocd
$ ./bootstrap
$ ./configure --enable-cmsis-dap
$ make -j4
$ sudo make install
This repository has wrapped the command into scripts, after importing the environments variables, you can call the script in any path, note that the format of the burn suffix is hex
or bin
, not the drag and drop uf2
file
$cd pico-lab/tools
$. ./env.sh
$dfw xxx.hex/xxx.bin
$cd tools && source env.sh && cd -
$cd software/infones
$mkdir -p build && cd build
$cmake ..
$make -j
$dfw infones/pico_infones.bin
$dreset
https://github.com/raspberrypi/pico-sdk
https://github.com/raspberrypi/pico-examples
https://github.com/wuxx/RPI-HAT-Pico-BreakoutBoard