$ cd ~/ $ mkdir pico $ cd pico $ git clone -b master https://github.com/raspberrypi/pico-sdk.git $ cd pico-sdk $ git submodule update --init $ cd .. $ git clone -b master https://github.com/raspberrypi/pico-examples.git There are additional repositories: pico-extras, and pico-playground that you may also be interested in. To build the applications in pico-examples , you’ll need to install some extra tools. To build projects you’ll need CMake, a cross-platform tool used to build the software, and the GNU Embedded Toolchain for Arm. You can install both these via apt from the command line. Anything you already have installed will be ignored by apt . $ sudo apt update $ sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi build-essential (note: Native gcc and g++ are needed to compile pioasm, elf2uf2) $ cd pico-examples $ mkdir build $ cd build $ export PICO_SDK_PATH=../../pico-sdk $ cmake .. --> Using PICO_SDK_PATH from environment ('../../pico-sdk') PICO_SDK_PATH is /home/pi/pico/pico-sdk ... -- Build files have been written to: /home/pi/pico/pico-examples/build cmake will default to a Release build with compiler optimisations enabled and debugging information removed. To build a debug version, run cmake -DCMAKE_BUILD_TYPE=Debug .. . We will explore this later in Section 5.1. $ make -j8 So you can also load your software onto RP2040 using the Serial Wire Debug interface, see Chapter 5. As well as loading software this allows you to; set breakpoints, inspect variables, and inspect memory contents. You can use picotool to load a UF2 binary onto your Raspberry Pi Pico, see Appendix B. If you are logged in via ssh for example, you may have to mount the mass storage device manually: $ dmesg | tail [ 371.973555] sd 0:0:0:0: [sda] Attached SCSI removable disk $ sudo mkdir -p /mnt/pico $ sudo mount /dev/sda1 /mnt/pico If you can see files in /mnt/pico then the USB Mass Storage Device has been mounted correctly: $ ls /mnt/pico/ INDEX.HTM INFO_UF2.TXT $ sudo cp blink.uf2 /mnt/pico $ sudo sync RP2040 has already disconnected as a USB Mass Storage Device and is running your code, but for tidiness unmount /mnt/pico $ sudo umount /mnt/pico System Info USB: Device-4: 1-3.2.4:60 info: N/A type: Abstract (modem),CDC-Data driver: cdc_acm rev: 2.0 $ sudo apt install minicom $ sudo minicom -b 115200 -D /dev/ttyACM0 note: $ sudo minicom -s -con --> setup ^A -> commands Anschluss an TX/RX: $ ls /dev/tty* $ sudo minicom -con -D /dev/ttyUSB1 Installation von Picoprobe und OpenOCD: ======================================= flash RP2040/picoprobe.uf2 ((see getting-started.pdf chapter "Using Picoprobe")) 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 --branch rp2040 --depth=1 --no-single-branch cd openocd ./bootstrap ./configure --enable-picoprobe make -j4 sudo make install Using OpenOCD: ============== sudo src/openocd -f interface/picoprobe.cfg -f target/rp2040.cfg -s tcl start gdb connect GDB "as usual" with: target remote localhost:3333