This is the vv1.21.0 version of the MicroPython documentation. The latest development version of this page may be more current.

General information about the RP2xxx port

The rp2 port supports boards powered by the Raspberry Pi Foundation’s RP2xxx family of microcontrollers, most notably the Raspberry Pi Pico that employs the RP2040.

Technical specifications and SoC datasheets

For detailed technical specifications, please refer to the datasheets

The RP2040 microcontroller is manufactured on a 40 nm silicon process in a 7x7mm QFN-56 SMD package. The key features include:

  • 133 MHz dual ARM Cortex-M0+ cores (overclockable to over 400 MHz)

  • 264KB SRAM in six independent banks

  • No internal Flash or EEPROM memory (after reset, the bootloader loads firmware from either the external flash memory or USB bus into internal SRAM)

  • QSPI bus controller, which supports up to 16 MB of external Flash memory

  • On-chip programmable LDO to generate core voltage

  • 2 on-chip PLLs to generate USB and core clocks

  • 30 GPIO pins, of which 4 can optionally be used as analog inputs

The peripherals include:

  • 2 UARTs

  • 2 SPI controllers

  • 2 I2C controllers

  • 16 PWM channels

  • USB 1.1 controller

  • 8 PIO state machines