Raspberry Pi Pico 2

Raspberry Pi LtdMCU 8-32 bitarduino

⚡ The essentials in 60 seconds

The Raspberry Pi Pico 2 represents a significant evolution in the landscape of affordable microcontroller development, launched in August 2024 at a price point of just five US dollars. This board is built around the RP2350 microcontroller, the second-generation chip from Raspberry Pi Ltd, which marks a departure from the single-architecture design of its predecessor. The most striking feature of the RP2350 is its dual-architecture silicon, allowing developers to choose between two different processor cores at boot time. You can select either two Arm Cortex-M33 cores, which are standard in many modern embedded systems, or two Hazard3 RISC-V cores. RISC-V is an open-source instruction set architecture that allows for greater flexibility and transparency in hardware design. While only one pair of cores runs at a time, the ability to switch between these architectures, even at runtime via specific registers, makes the Pico 2 a unique entry point for learning both industry-standard Arm programming and the emerging world of RISC-V. The chip operates at speeds of up to 150 MHz, providing substantial processing power for a device of this size and cost.

Physically, the Pico 2 maintains the familiar form factor of the original Pico, measuring 51 by 21 millimeters with a 40-pin dual in-line package footprint. This design choice ensures drop-in compatibility with previous projects, allowing users to reuse existing breadboard layouts and software libraries with minimal changes. The board is available in several variants, including a basic module without pins for surface-mount integration, a version with pre-soldered headers for easy prototyping, and wireless-enabled models known as the Pico 2 W. These wireless variants add Wi-Fi and Bluetooth capabilities through an Infineon CYW43439 combo chip, expanding the board’s utility for Internet of Things applications. The board’s power management has been significantly improved with a buck-boost switch-mode power supply that accepts a wide input voltage range from 1.8 to 5.5 volts on the VSYS pin. This flexibility allows the board to be powered by a single lithium-ion cell, three AA batteries, or standard USB power, making it highly adaptable for battery-operated projects. The power supply generates a fixed 3.3-volt rail for the microcontroller and peripherals, with built-in protections and monitoring features accessible via specific GPIO pins.

Memory and storage capacities have been doubled compared to the first-generation Pico. The RP2350 features 520 KB of SRAM, organized into ten concurrently accessible banks, which helps reduce latency when multiple peripherals or cores access memory simultaneously. For long-term storage, the board includes 4 MB of external QSPI NOR flash memory. This flash supports Execute-in-Place (XIP) technology, which allows the microcontroller to run code directly from the flash memory without needing to copy it into RAM first, thereby saving precious RAM for data processing. The board also includes 16 KB of on-chip cache to speed up access to this external flash. For security-sensitive applications, the RP2350 includes 8 KB of one-time programmable (OTP) antifuse memory, which can store cryptographic keys and configuration bits that cannot be altered after manufacturing.

The input and output capabilities of the Pico 2 are extensive, featuring 26 general-purpose input/output (GPIO) pins broken out to the edge connectors. These pins operate at a fixed 3.3-volt logic level, which is standard for modern low-power electronics. Among these pins, four are capable of analog-to-digital conversion (ADC), allowing the board to read continuous signals from sensors like potentiometers or light-dependent resistors. The ADC is 12-bit and runs at 500 kilo-samples per second, providing sufficient resolution for most hobbyist and industrial sensing tasks. A notable addition is the High-Speed Serial Transmit (HSTX) block, a new peripheral that allows the board to drive digital video signals, such as DVI or VGA, by bit-banging the protocol. This is made possible by the board’s Programmable I/O (PIO) state machines, of which there are now twelve. PIO is a unique feature of the RP series that allows users to write small assembly-like programs that run independently of the main CPU, handling timing-critical tasks like driving LED strips or reading SD cards without burdening the processor.

Software support for the Pico 2 is robust and diverse. Developers can program the board using C or C++ with the official Pico SDK, which requires version 2.0.0 or later for RP2350 support. For those who prefer higher-level languages, MicroPython version 1.24.0 and later supports the Pico 2, offering a Python environment that runs directly on the microcontroller. CircuitPython also provides official firmware for both the standard and wireless variants. Additionally, the Rust programming language is supported through the rp235x-hal crate, appealing to developers who prioritize memory safety and performance. Programming is straightforward: holding down the BOOTSEL button while connecting the board to a computer via USB causes it to appear as a mass-storage device, allowing users to drag and drop a compiled .uf2 file to flash the new code. This ease of deployment, combined with the board’s open hardware design, where schematics and PCB layouts are freely available, fosters a transparent and collaborative development environment.

Despite its strengths, users should be aware of certain limitations and errata. Early production boards, based on the A2 stepping of the RP2350, suffer from a known issue where certain GPIO pull-downs can leak current, potentially affecting sensitive input circuits. This has been addressed in later A3 and A4 steppings, but users of early boards may need to add external resistors to mitigate this effect. Furthermore, enabling secure boot features, which protect the code from unauthorized access, disables the RISC-V cores, forcing the use of the Arm architecture. The ADC reference voltage is tied to the internal power supply, which can introduce some noise; however, software workarounds and external voltage references can improve accuracy. The wireless variants also have specific pin multiplexing constraints where certain GPIOs are shared with the Wi-Fi module, requiring careful planning of peripheral connections. Nevertheless, the Raspberry Pi Pico 2 remains a powerful, versatile, and exceptionally affordable platform for learning embedded systems, prototyping, and building complex electronic projects.

Forum (1 topic) →

AttrSpecsverified
cpu_dual_architecture_selectable_at_booteither 2 × Arm Cortex-M33 @ up to 150 MHz (ARMv8-M, FPU with single-precision and simplified double-precision ops, TrustZone, MPU) or 2 × Hazard3 RISC-V (RV32IMAC) @ 150 MHz. Only one architecture pair runs at a time; cores can be swapped at runtime via the ARCHSEL register plus core reset (Wikipedia: RP2350).✔
gpunone — this is a microcontroller. Video-style output is possible via the HSTX (high-speed serial transmit) block or PIO (e.g. VGA/DVI bit-banging).? unverified
ram520 KB SRAM in 10 concurrently accessible banks; 16 KB on-chip cache for XIP flash; 8 KB antifuse OTP (Wikipedia: RP2350, Pico 2 Datasheet §2).✔
storage4 MB external QSPI NOR flash (Winbond W25Q32RV) with XIP — double the original Pico's 2 MB (Pico 2 Datasheet §1, §2).✔
connectivityUSB 1.1 (LS/FS, device and host) on micro-USB B. W variants only: Infineon CYW43439 combo chip on SPI (≤33 MHz), 2.4 GHz 802.11n Wi-Fi (WPA3, soft-AP up to 4 clients) + Bluetooth 5.2 (BLE central/peripheral and Classic), on-board ABRACON antenna (docs hub about_pico.adoc). No Ethernet.✔
gpio26 of the RP2350A's 30 GPIO broken out, fixed 3.3 V I/O (chip itself supports 1.8–3.3 V). GP0–GP22 digital-only; GP26–GP28 ADC-capable. Internally used: GP23 = SMPS power-save, GP24 = VBUS sense, GP25 = user LED, GP29 = VSYS/3 ADC monitor (Pico 2 Datasheet §3.1, §5.2).✔
peripherals2 × UART, 2 × SPI, 2 × I²C, 1 × QSPI, 16 PWM channels (8 dual-channel slices), 12-bit 500 kSPS SAR ADC (4 channels on RP2350A + internal temperature sensor), 3 × PIO blocks with 12 state machines, HSTX (output-only, 8 pins @ 300 Mb/s DDR), 16-channel DMA, 2 × timers with 4 alarms + 1 always-on timer (Pico 2 Datasheet §1, Wikipedia: RP2350). No DAC (PWM substitutes).✔
powerVBUS 5 V ±10% (micro-USB); VSYS 1.8–5.5 V into an RT6150 buck-boost SMPS generating the fixed 3.3 V rail; keep external load on the 3V3 pin under ~300 mA; RUN pin (active-high, ~50 kΩ internal pull-up) for reset; 3V3_EN to disable the SMPS (Pico 2 Datasheet §3.3, §5.4, §5.5).✔
typical_consumption_vbus_5_v_datasheet_4_1low-power states P1.0–P1.7 = 148–233 µA (0.74–1.16 mW); RUN held low = 388 µA; USB boot mode idle = 5.47 mA; hello_usb = 12.7 mA; CoreMark single-core = 9.4 mA (46.9 mW).? unverified
temperatureoperating −20 °C to +85 °C (including self-heating); recommended max ambient 70 °C (Pico 2 Datasheet §3.3).✔
  • Manufacturer: Raspberry Pi Ltd (UK). Board based on the company's second-generation microcontroller, the RP2350.
  • Announced / on sale: 8 August 2024, launched at US$5 (the RP2350 chip itself is priced as low as US$0.80 in bulk) — official announcement, corroborated by Wikipedia: RP2350.
  • Status: Active. Raspberry Pi guarantees availability until at least January 2040 (Pico 2 Datasheet, Rev. 5, Appendix A).
  • Launch order codes / RRP (Pico 2 Datasheet, Appendix A.2): SC1631 — Pico 2, US$5.00; SC1632 — Pico 2 with headers, US$6.00.
  • Variants (official docs hub, "About Pico" series page): - Pico 2 (castellated module, no headers) - Pico 2 with headers (pre-soldered 0.1" pin headers) - Pico 2 W (adds Wi-Fi + Bluetooth) - Pico 2 W with headers
  • Board dimensions: 51 × 21 × 1.1 mm, 40-pin DIP-style footprint (one header pitch wider than a standard 40-pin DIP), usable as a reflow-solderable SMT module (Pico 2 Datasheet §3).

+ Strengths

  • Dual-architecture silicon: the only mainstream MCU where you pick between 2 × Cortex-M33 and 2 × RISC-V (Hazard3) cores, switchable at runtime via ARCHSEL — a cheap entry to RISC-V development (Wikipedia: RP2350, CircuitPython board page).
  • Security suite: Arm TrustZone for Cortex-M, signed boot ROM, 8 KB antifuse OTP for key storage, hardware SHA-256 accelerator, hardware TRNG, fast glitch detectors, and a redundancy coprocessor hardened against fault injection (CircuitPython board page, Wikipedia: RP2350).
  • Security by transparency: Raspberry Pi ran an open US$10,000 (later doubled) DEF CON 32 hacking challenge against RP2350's OTP/secure boot; results published openly in January 2025 (Can you hack our new chip?, results).
  • HSTX peripheral (new vs RP2040): output-only high-speed serial link, 8 pins at 300 Mb/s DDR — aimed at digital video (DVI) output (Wikipedia: RP2350).
  • 12 PIO state machines (3 blocks, up from 8/2 on RP2040) for bit-banging exotic interfaces (SD card, VGA, WS2812, I²S, etc.) (Pico 2 Datasheet §1).
  • Flexible battery-friendly powerchain: buck-boost SMPS accepts 1.8–5.5 V on VSYS (single Li-Ion cell, 3× AA), documented diode-OR and P-FET power-ORing, and battery-charger integration (Pico 2 Datasheet §5.4–§5.6).
  • Board-level VSYS monitoring and VBUS sense (GP29/ADC3 and GP24) plus a software-controllable SMPS power-save/PWM mode pin (GP23) (Pico 2 Datasheet §3.1, §5.4).
  • Drop-in Pico 1 compatibility: same 40-pin layout and pinout as the original Pico; hardware and software compatible (docs hub about_pico.adoc).
  • Open hardware: schematic, PCB and STEP files released with no limitations (Pico 2 Datasheet §1.1).
  • W variants: free commercial licence for the libcyw43 and BTstack libraries when used with RP2350 + CYW43439 hardware (docs hub about_pico.adoc).

− Weaknesses

  • Erratum RP2350-E9 (A2 stepping — all launch boards): latching behaviour / excess leakage on Bank 0 GPIO pull-downs. Pins configured as inputs can source ~120 µA when the input sits between logic low and high, pulling lines to ~2.2 V; Adafruit advises external pull-downs of 8.2 kΩ or less where pull-downs matter (pico-feedback issue #401, CircuitPython Pico 2 W page note, Wikipedia: RP2350). Fixed in the A3/A4 steppings announced 29 July 2025 (RP2350 A4 news); boards bought before mid-2025 are typically A2.
  • Secure boot disables RISC-V: enabling signed boot relies on Cortex-M33F security blocks, so the Hazard3 cores are disabled when secure boot is on (Wikipedia: RP2350).
  • ADC accuracy quirks: the ADC reference is the SMPS 3.3 V rail through a 200 Ω/2.2 µF filter; the ADC's own ~150 µA draw creates an inherent ~30 mV offset that varies with sampling and temperature, and SMPS ripple couples into the reference. Documented workarounds: force PWM mode via GP23, ground-channel zeroing, or an external LM4040-class 3.0 V shunt reference on ADC_VREF (Pico 2 Datasheet §5.3).
  • GPIO26–29 have a reverse diode to the 3V3 rail: input voltage must not exceed IOVDD + ~300 mV, and applying voltage to these pins while the board is unpowered back-powers the rail. GP0–GP25 have no such restriction (Pico 2 Datasheet §5.2).
  • USB host mode power trap: when using TinyUSB host examples you must supply 5 V to the VBUS pin; powering only via VSYS breaks host mode (Pico 2 Datasheet §5.5, Important note).
  • W variants pin multiplexing: the CYW43439 SPI clock shares the VSYS ADC monitor pin (VSYS only readable when no wireless SPI traffic), and CYW DIN/OUT shares the IRQ line. Keep metal away from the on-board antenna (docs hub about_pico.adoc, "Wireless models").
  • Physical security not absolute: the 2024–25 hacking challenge ended with four winners (Jan 2025) who extracted OTP values via focused-ion-beam read-out and bypassed secure boot with laser fault injection — relevant for high-security product threat models (results announcement, Wikipedia: RP2350).
  • Ecosystem version traps: RP2040-only MicroPython/CircuitPython builds won't flash; you need MicroPython ≥ 1.24.0 and Pico SDK ≥ 2.0.0 (MicroPython v1.24.0 notes, pico-sdk 2.0.0).
  • Retour d'expérience expert expert — expert-raspberrypi
    • Après quelques semaines avec la Pico 2, le saut en performances est réel grâce au RP2350, surtout pour ceux qui veulent tester le RISC-V (Hazard3) sans exploser le budget. Attention tout de même si vous avez acheté une carte avant mi-2025 : l'erratum RP2350-E9 sur les GPIO Bank 0 est bien présent. … — expert-raspberrypi
    • Merci pour le retour. Je bute justement sur un souci d'ADC imprécis, les valeurs bougent pas mal avec la température. Tu confirmes que c'est lié à l'alim SMPS interne ? J'ai lu qu'il y avait un offset d'environ 30mV. Est-ce que la solution du LM4040 sur ADC_VREF est obligatoire pour du capteur anal… — maker_debutant
    • Le filtrage logiciel ne gère pas l'offset physique dû au courant de l'ADC qui tire sur la référence SMPS. Le datasheet recommande clairement une référence externe type LM4040 si tu veux de la précision. Et attention, si tu utilises une version de MicroPython antérieure à la 1.24.0 ou le Pico SDK < … — codeur_embed

Community feedback and projects

  • Official pico-examples

    Official pico-examples — blink, ADC VSYS reading ( adc/read_vsys ), PIO, FreeRTOS and Rust examples built for pico2 : .com/raspberrypi/pico-examples (unverified au 2026-10-13) MicroPython on Pico 2 — RPI_PICO2 UF2 firmware, RP2350 ARM + RISC-V builds: .com/mi…

  • Getting Started with Raspberry Pi Pico-series

    Getting Started with Raspberry Pi Pico-series — (official book, C/C++ SDK + MicroPython quick start for Pico 2): .raspberrypi.com/documents/RP-008276-DS (unverified au 2026-10-13)

  • CircuitPython on Pico 2 / Pico 2 W

    CircuitPython on Pico 2 / Pico 2 W — official downloads and board notes: .org/board/raspberry_pi_pico2/ and .org/board/raspberry_pi_pico2_w/ (unverified au 2026-10-13)

  • Adafruit "Getting started with Raspberry Pi Pico"

    Adafruit "Getting started with Raspberry Pi Pico" — tutorial (Pico-series compatible workflow, CircuitPython + C): .adafruit.com/getting-started-with-raspberry-pi-pico (unverified au 2026-10-13)

  • RP2350 security research

    RP2350 security research — public hacking-challenge write-ups feeding back into silicon revisions: .raspberrypi.com/news/can-you-hack-our-new-chip/ (unverified au 2026-10-13)

Content not available yet.

  • Erratum RP2350-E9 (A2 stepping — all launch boards): latching behaviour / excess leakage on Bank 0 GPIO pull-downs. Pins configured as inputs can source ~120 µA when the input sits between logic low and high, pulling lines to ~2.2 V; Adafruit advises external pull-downs of 8.2 kΩ or less where pull-downs matter (pico-feedback issue #401, CircuitPython Pico 2 W page note, Wikipedia: RP2350). Fixed in the A3/A4 steppings announced 29 July 2025 (RP2350 A4 news); boards bought before mid-2025 are typically A2.
  • Secure boot disables RISC-V: enabling signed boot relies on Cortex-M33F security blocks, so the Hazard3 cores are disabled when secure boot is on (Wikipedia: RP2350).
  • ADC accuracy quirks: the ADC reference is the SMPS 3.3 V rail through a 200 Ω/2.2 µF filter; the ADC's own ~150 µA draw creates an inherent ~30 mV offset that varies with sampling and temperature, and SMPS ripple couples into the reference. Documented workarounds: force PWM mode via GP23, ground-channel zeroing, or an external LM4040-class 3.0 V shunt reference on ADC_VREF (Pico 2 Datasheet §5.3).
  • GPIO26–29 have a reverse diode to the 3V3 rail: input voltage must not exceed IOVDD + ~300 mV, and applying voltage to these pins while the board is unpowered back-powers the rail. GP0–GP25 have no such restriction (Pico 2 Datasheet §5.2).
  • USB host mode power trap: when using TinyUSB host examples you must supply 5 V to the VBUS pin; powering only via VSYS breaks host mode (Pico 2 Datasheet §5.5, Important note).
  • W variants pin multiplexing: the CYW43439 SPI clock shares the VSYS ADC monitor pin (VSYS only readable when no wireless SPI traffic), and CYW DIN/OUT shares the IRQ line. Keep metal away from the on-board antenna (docs hub about_pico.adoc, "Wireless models").
  • Physical security not absolute: the 2024–25 hacking challenge ended with four winners (Jan 2025) who extracted OTP values via focused-ion-beam read-out and bypassed secure boot with laser fault injection — relevant for high-security product threat models (results announcement, Wikipedia: RP2350).
  • Ecosystem version traps: RP2040-only MicroPython/CircuitPython builds won't flash; you need MicroPython ≥ 1.24.0 and Pico SDK ≥ 2.0.0 (MicroPython v1.24.0 notes, pico-sdk 2.0.0).
  • Faire clignoter la LED embarquée debutant Schéma : IMG-pico-2-debutant-1-pico2-blink-led.svg — Raspberry Pi Pico 2 vue de dessus avec la LED utilisateur GP25 mise en évidence et le bouton BOOTSEL
  • Lire un bouton poussoir sur GPIO debutant Schéma : IMG-pico-2-debutant-2-pico2-bouton-gpio.svg — Pico 2 avec un bouton poussoir entre GP22 et la masse, résistance de pull-up interne représentée sur la broche
  • Lire un potentiomètre avec l'ADC 12 bits debutant Schéma : IMG-pico-2-debutant-3-pico2-adc-potentiometre.svg — potentiomètre relié à 3V3, GND et GP26 (entrée ADC) sur une Pico 2, curseur au centre
  • Piloter un micro-servo avec le PWM intermediaire Schéma : IMG-pico-2-intermediaire-1-pico2-pwm-servo.svg — micro-servo de type MG90S alimenté en 5 V via VBUS, fil de commande relié à GP2 de la Pico 2, masses communes
  • Animer un ruban NeoPixel avec un PIO intermediaire Schéma : IMG-pico-2-intermediaire-2-pico2-pio-ruban-led.svg — ruban de LED WS2812 connecté à GP3 de la Pico 2, bloc PIO interne générant le protocole, alimentation 5 V séparée
  • MicroPython sur Pico 2 : moniteur de tension VSYS intermediaire Schéma : IMG-pico-2-intermediaire-3-pico2-micropython-vsys.svg — Pico 2 alimentée par une batterie sur VSYS, tension mesurée en interne par ADC3 (GP29, diviseur /3), REPL série affiché à l'écran
  • Exploiter les deux cœurs et la FIFO inter-cœurs avance Schéma : IMG-pico-2-avance-1-pico2-double-coeur-fifo.svg — SoC RP2350 avec les deux cœurs Cortex-M33, la FIFO matérielle inter-cœurs et la mémoire partagée de 520 Ko
  • Boot UF2, mode BOOTSEL et recovery d'une carte briquée avance Schéma : IMG-pico-2-avance-2-pico2-boot-uf2-bootsel-recovery.svg — chaîne de boot du RP2350 : ROM de boot inaltérable, choix flash QSPI ou USB BOOTSEL, et étapes de recovery d'une Pico 2 briquée
  • TrustZone, secure boot et OTP : sécuriser son firmware avance Schéma : IMG-pico-2-avance-3-pico2-trustzone-signature-otp.svg — chaîne de confiance RP2350 : clés dans l'OTP 8 Ko, ROM vérifiant la signature SHA-256 du firmware, monde sécurisé TrustZone, blocs TRNG et accélérateur matériel

Code library — examples written for this board

  • clignotante.py Python

    The first MicroPython program: the LED blinks once per second with serial console tracing. It shows Pin as output, value() and time.sleep, the basis of every embedded script on the board.

  • bouton-interruption.py Python

    The button wired to GP15 toggles the LED through a hardware interrupt (irq): no CPU cycle wasted polling the pin. A 50 ms filter inside the handler removes mechanical contact bounce.

  • pwm-servo.py Python

    The hobby servo sweeps 0 to 180° and back, driven at 50 Hz PWM by machine.PWM. The angle() helper converts degrees into a 0.5 to 2.5 ms pulse through duty_u16, the standard technique with no dedicate…

  • lecture-adc.py Python

    Two 12-bit analog readings in one script: an external voltage on GP26 (ADC0) and the chip's built-in thermal sensor converted to degrees using datasheet parameters. Great for watching CPU load.

  • neopixel.py Python

    A white head followed by a red trail moves along a 12-LED NeoPixel (WS2812B) strip, driven natively by MicroPython through machine.NeoPixel. Each LED gets its color in a single frame sent by write().

  • oled-i2c.py Python

    A 0.96" SSD1306 OLED (128x64) wired in I2C shows text and a counter. The script first scans the bus to confirm the module is present, then uses the ssd1306.py driver shipped with MicroPython.

  • capteur-dht.py Python

    The dht module built into MicroPython drives DHT11/DHT22 sensors on any pin. The script measures every 2 s (the sensor minimum rate), catches frame errors and prints temperature and humidity.

  • journalisation.py Python

    MicroPython exposes the internal flash as a filesystem: this script writes a temperature CSV there every 5 s, in append mode so data is never overwritten. The file is later retrieved like a USB stick.

  • uart-commandes.py Python

    A mini command server on UART0 (GP0/GP1): classic serial modules (GPS, cellular modem, another microcontroller) can toggle the LED, read the temperature or poll the board with simple text lines.

  • taches-cooperatives.py Python

    Three periodic tasks (LED 2 Hz, beep 1 Hz, reading every 5 s) run on a 15-line cooperative mini scheduler. This pattern replaces nested delay() calls as soon as a project animates more than one pin.

Examples and repos found online