Low-level access to RP2040 hardware registers in MicroPython using uctypes
The Raspberry Pi RP2040 microcontroller powers a range of versatile and very powerful development boards, including the Raspberry Pi Pico and the Pimoroni Tiny 2040.The RP2040 Python SDK doesn't cover the chip's full hardware capabilities. Direct register access using the modules in this package allows full control of RP2040's low-level operations using Micropython.
The following shows progress towards bindings for all documented RP2040/RP2350 registers, with sections shown in brackets. Please feel free to contribute new bindings or open an issue/submit a PR if you find any bugs.
- Core
- Bus fabric (2.1.5)
- Cortex-M0+ (2.4.8)
- Chip-level reset (2.12.8)
- Power-on state machine (2.13.5)
- Subsystem resets (2.14.3)
- Clocks (2.15.7)
- Crystal oscillator (2.16.7)
- Ring oscillator (2.17.8)
- PLL (2.18.4)
- Sysinfo (2.20.2)
- Syscfg (2.21.2)
- DMA (2.5.7)
- GPIO (2.19.6)
- PIO (3.7)
- Peripherals
- USB (4.1.4)
- UART (4.2.8)
- I2C (4.3.17)
- SPI (4.4.4)
- PWM (4.5.3)
- Timer (4.6.5)
- Watchdog (4.7.6)
- RTC (4.8.6)
- ADC (4.9.6)
- SSI (4.10.13)
Modules specifically adapted for the RP2350.
- PIO (11.7)
- DMA (12.6.10)