Adafruit MacroPad RP2040

Adafruit MacroPad RP2040

Overview

The Adafruit MacroPad RP2040 is a 3x4 mechanical keyboard development board featuring the Raspberry Pi RP2040 microcontroller. It includes 12 mechanical key switches with individual RGB NeoPixels, a rotary encoder with push button, a 128x64 OLED display, and a small speaker for audio feedback.

Hardware

  • Dual core Cortex-M0+ at up to 133MHz

  • 264KB of SRAM

  • 8MB of QSPI flash memory

  • 12 mechanical key switches (Cherry MX compatible)

  • 12 RGB NeoPixel LEDs (one per key)

  • 128x64 monochrome OLED display (SH1106)

  • Rotary encoder with push button

  • Small speaker with Class D amplifier

  • STEMMA QT / Qwiic I2C connector

  • USB Type-C connector

  • Reset button

  • 4x M3 mounting holes

Supported Features

The adafruit_macropad_rp2040 board supports the hardware features listed below.

on-chip / on-board
Feature integrated in the SoC / present on the board.
2 / 2
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files.
vnd,foo
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.
adafruit_macropad_rp2040
/
rp2040

Type

Location

Description

Compatible

CPU

on-chip

ARM Cortex-M0+ CPU2

arm,cortex-m0+

ADC

on-chip

RaspberryPi Pico ADC1

raspberrypi,pico-adc

Clock control

on-chip

Raspberry Pi Pico clock controller node1

raspberrypi,pico-clock-controller

on-chip

The representation of Raspberry Pi Pico’s clock11 2

raspberrypi,pico-clock

on-chip

The representation of Raspberry Pi Pico’s PLL2

raspberrypi,pico-pll

on-chip

The representation of Raspberry Pi Pico ring oscillator1

raspberrypi,pico-rosc

on-chip

The representation of Raspberry Pi Pico external oscillator1

raspberrypi,pico-xosc

Counter

on-chip

RaspberryPi Pico timer1

raspberrypi,pico-timer

Display

on-board

SH1106 128x64 dot-matrix display controller on SPI bus1

sinowealth,sh1106

DMA

on-chip

Raspberry Pi Pico DMA1

raspberrypi,pico-dma

Flash controller

on-chip

Raspberry Pi Pico flash controller1

raspberrypi,pico-flash-controller

GPIO & Headers

on-chip

Raspberry Pi Pico GPIO1

raspberrypi,pico-gpio

on-chip

Raspberry Pi Pico GPIO Port1

raspberrypi,pico-gpio-port

on-board

STEMMA QT is a 4-pin JST-SH connector for I2C devices1

stemma-qt-connector

I2C

on-chip

Raspberry Pi Pico I2C2

raspberrypi,pico-i2c

Input

on-board

Group of GPIO-bound input keys1

gpio-keys

on-board

GPIO based QDEC input device1

gpio-qdec

Interrupt controller

on-chip

ARMv6-M NVIC (Nested Vectored Interrupt Controller) controller1

arm,v6m-nvic

LED

on-board

Group of GPIO-controlled LEDs1

gpio-leds

LED strip

on-board

The pio node configured for ws28121

worldsemi,ws2812-rpi_pico-pio

Miscellaneous

on-chip

Raspberry Pi Pico PIO1 1

raspberrypi,pico-pio

MTD

on-chip

Flash node1

soc-nv-flash

on-board

Fixed partitions of a flash (or other non-volatile storage) memory1

fixed-partitions

Pin control

on-chip

The RPi Pico pin controller is a node responsible for controlling pin function selection and pin properties, such as routing a UART0 Rx to pin 1 and enabling the pullup resistor on that pin1

raspberrypi,pico-pinctrl

PWM

on-chip

Raspberry Pi Pico PWM1

raspberrypi,pico-pwm

Regulator

on-chip

RaspberryPi Pico core supply regurator1

raspberrypi,core-supply-regulator

on-board

Fixed voltage regulators1

regulator-fixed

Reset controller

on-chip

Raspberry Pi Pico Reset Controller1

raspberrypi,pico-reset

RTC

on-chip

RaspberryPi Pico RTC1

raspberrypi,pico-rtc

Sensors

on-chip

RaspberryPi Pico family temperature sensor node1

raspberrypi,pico-temp

Serial controller

on-chip

Raspberry Pi Pico UART1 1

raspberrypi,pico-uart

SPI

on-chip

Raspberry Pi Pico SPI1 1

raspberrypi,pico-spi

SRAM

on-chip

Generic on-chip SRAM description1

mmio-sram

Timer

on-chip

ARMv6-M System Tick1

arm,armv6m-systick

USB

on-chip

RaspberryPi Pico USB Device Controller1

raspberrypi,pico-usbd

Watchdog

on-chip

Raspberry Pi Pico Watchdog1

raspberrypi,pico-watchdog

Programming and Debugging

Applications for the adafruit_macropad_rp2040 board target can be built and flashed in the usual way (see Building an Application and Run an Application for more details).

Building and Flashing

The MacroPad RP2040 has a built-in UF2 bootloader which can be entered by holding down the rotary encoder button (BOOT) and, while continuing to hold it, pressing and releasing the reset button. A “RPI-RP2” drive should appear on your host machine.

Here is an example for building and flashing the Blinky sample application using UF2.

# From the root of the zephyr repository
west build -b adafruit_macropad_rp2040 samples/basic/blinky
west flash --runner uf2

References