Raspberry Pi Pico
Raspberry Pi's microcontroller development boards based on RP2040 (Pico, Pico W) or RP2350 (Pico 2, Pico 2 W). They don't run Linux; programs are flashed to on-board flash memory.
hardware
also known as Pico, Pico H, Pico W, Pico WH, Pico 2, Pico 2 W
Knowledge about Raspberry Pi Pico
- Debug a Pico with the Raspberry Pi Debug Probe: SWD upload, GDB and a UART in one cableprocedure · unverified · The Debug Probe (or a second Pico running debugprobe firmware) gives you CMSIS-DAP SWD plus a USB-UART. Flash ELF files with OpenOCD without touching BOOTSEL, and debug with GDB on a Debug build.
- Flash a Raspberry Pi Pico: BOOTSEL button and UF2 drag-and-drop (C or MicroPython)procedure · unverified · Hold BOOTSEL while plugging in USB; the Pico mounts as RPI-RP2 (RP2040) or RP2350 (Pico 2). Copy a .uf2 file onto it and it reboots into the new program. Same for MicroPython firmware.
- Minimal Pico SDK project: CMake setup, PICO_BOARD, and printf over USB instead of UARTcode · unverified · Import the SDK in CMakeLists.txt, call pico_sdk_init(), build with -DPICO_BOARD for anything but the original Pico, and choose stdio over USB or UART with pico_enable_stdio_usb / pico_enable_stdio_uart.
- Pico W / Pico 2 W: the on-board LED is not GP25 — it hangs off the wireless chipwarning · unverified · On Pico and Pico 2 the LED is on GP25. On Pico W and Pico 2 W it is on WL_GPIO0 of the Infineon CYW43439 wireless chip, so blink code must initialise the CYW43 driver and use cyw43_arch_gpio_put.
- Pico W wireless: shared pins, antenna keep-out, and the commercial licence for CYW43 and BTstackguide · unverified · The CYW43439 radio connects over SPI and shares pins with the VSYS voltage monitor and its IRQ line, keep metal away from the antenna, and the libcyw43/BTstack libraries are free for commercial use only on Pico W boards or RP2040/RP2350 + CYW43439 designs.
- RP2040 on batteries: ~180 µA even in deep sleep, and an internal temperature sensor you must calibratewarning · unverified · RP2040 typically draws around 180 µA even in deep sleep, so Raspberry Pi recommends powering it off completely for minimal standby current (3V3_EN turns a Pico off). Its internal temperature sensor is low-resolution and inaccurate unless calibrated against a known ADC reference voltage.
- Raspberry Pi Pico family: RP2040 vs RP2350, and which Pico has wirelesscomparison · unverified · Pico and Pico W use RP2040 (dual Cortex-M0+, 133 MHz, 264 kB SRAM); Pico 2 and Pico 2 W use RP2350 (dual Cortex-M33 or Hazard3 RISC-V, 150 MHz, 520 kB SRAM, security features). Only the W models have Wi-Fi and Bluetooth.
- Shipping an RP2040/RP2350 product with USB: do you need your own USB product ID?procedure · unverified · Raspberry Pi sub-licenses USB product IDs under its vendor ID 0x2E8A for RP-series products. You usually only need your own PID if Windows must load a vendor-specific driver; with standard class drivers (CDC, HID) you can identify devices by their USB strings instead.
- picotool: inspect, load and reboot RP2040/RP2350 boards without drag-and-dropguide · unverified · picotool talks to devices in BOOTSEL mode (or, with -f, to running programs that use SDK USB stdio). Use info to see what's on a board, load -v -x to flash, verify and run, and reboot -u to enter BOOTSEL mode.
Related
- alternative to (from): ESP32 – Both are microcontroller platforms for IoT; they differ in radios, tooling and ecosystem.
- depends on: RP2040 – Pico, Pico H, Pico W, Pico WH
- depends on: RP2350 – Pico 2, Pico 2 W