This is the documentation for the latest development branch of MicroPython and may refer to features that are not available in released versions.

If you are looking for the documentation for a specific release, use the drop-down menu on the left and select the desired version.

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 contollers

  • 16 PWM channels

  • USB 1.1 controller

  • 8 PIO state machines