RP2040
Raspberry Pi's first microcontroller: dual Arm Cortex-M0+ up to 133 MHz, 264 kB SRAM, no internal flash, PIO.
hardware
Knowledge about RP2040
- 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.
- FreeRTOS SMP on RP2040 and RP2350: Raspberry Pi's port, CMake import and known limitsguide · unverified · Raspberry Pi's FreeRTOS-Kernel fork provides SMP ports for RP2040 and RP2350 that run tasks on either or both cores and interoperate with Pico SDK synchronisation primitives. Tickless idle is untested on the RP2040 port, and a single-core app is likely better served by the non-SMP kernel.
- PIO on RP2040/RP2350: build your own peripheral (WS2812, 1-Wire, extra UARTs) instead of bit-bangingguide · unverified · Programmable I/O blocks run tiny state-machine programs independently of the CPU. Use them for timing-critical protocols the chip lacks in hardware; pico-examples has ready-made PIO programs for WS2812 LEDs, 1-Wire (DS18B20), UARTs, SPI, I2C, quadrature encoders and more.
- 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.