# Adafruit MACROPAD RP2040

> RP2040-powered 3×4 mechanical macropad with 12 NeoPixels, a 128×64 OLED display, rotary encoder, speaker, and STEMMA QT — fully programmable via CircuitPython or Arduino.

## Quick Facts

- **Brand:** Adafruit
- **Board Type:** macropad
- **Price:** ~$34.95
- **Product Readiness:** developer
- **CPU:** ARM Cortex-M0+ dual-core @ 130 MHz (RP2040)
- **CPU Architecture:** ARM Cortex-M0+
- **CPU Cores:** 2
- **RAM:** 264 KB SRAM
- **Flash:** 8MB SiP
- **Power:** 5V
- **Operating Voltage:** 3.3V
- **Dimensions:** 104 × 59.5 × 29 mm
- **Weight:** 34 g
- **Display:** 0.96" OLED monochrome 128 × 64

## Open Source

- **Firmware:** Yes
- **Schematics:** Yes
- **PCB Layout:** Yes

## Compatible Firmware

circuitpython, arduino, pico-sdk, KMK, qmk

## Use Cases

- iot

## Components

- **RP2040** (mcu): Raspberry Pi RP2040 dual-core ARM Cortex-M0+ at ~130 MHz with 264 KB SRAM, PIO state machines, and native USB. — [Datasheet](https://openhardware.directory/r?to=https%3A%2F%2Fdatasheets.raspberrypi.com%2Frp2040%2Frp2040-datasheet.pdf&ref=openhardware.directory&product=adafruit-macropad-rp2040&source=md-export)
- **SH1106** (display-driver): Sino Wealth SH1106 SPI/I2C controller driving the 128×64 monochrome OLED panel. — [Datasheet](https://openhardware.directory/r?to=https%3A%2F%2Fwww.displayfuture.com%2FDisplay%2Fdatasheet%2Fcontroller%2FSH1106.pdf&ref=openhardware.directory&product=adafruit-macropad-rp2040&source=md-export)
- **WS2812B** (led): 12 individual WS2812B addressable RGB LEDs, one under each key switch for per-key backlighting. — [Datasheet](https://openhardware.directory/r?to=https%3A%2F%2Fcdn-shop.adafruit.com%2Fdatasheets%2FWS2812B.pdf&ref=openhardware.directory&product=adafruit-macropad-rp2040&source=md-export)

## Protocols

- **I2C**: SDA: GPIO16, SCL: GPIO17
- **USB**
- **SPI**

## GPIO Map

| Pin | Name | Type | Functions |
|-----|------|------|-----------|
| GPIO0 | KEY1 — key matrix | — | digital-input, digital-output |
| GPIO1 | KEY2 — key matrix | — | digital-input, digital-output |
| GPIO2 | KEY3 — key matrix | — | digital-input, digital-output |
| GPIO3 | KEY4 — key matrix | — | digital-input, digital-output |
| GPIO4 | KEY5 — key matrix | — | digital-input, digital-output |
| GPIO5 | KEY6 — key matrix | — | digital-input, digital-output |
| GPIO6 | KEY7 — key matrix | — | digital-input, digital-output |
| GPIO7 | KEY8 — key matrix | — | digital-input, digital-output |
| GPIO8 | KEY9 — key matrix | — | digital-input, digital-output |
| GPIO9 | KEY10 — key matrix | — | digital-input, digital-output |
| GPIO10 | KEY11 — key matrix | — | digital-input, digital-output |
| GPIO11 | KEY12 — key matrix | — | digital-input, digital-output |
| GPIO16 | SDA — I2C (STEMMA QT/OLED) | I2C | digital-input, digital-output |
| GPIO17 | SCL — I2C (STEMMA QT/OLED) | I2C | digital-input, digital-output |
| GPIO17 | NeoPixel data | — | digital-output |
| GPIO20 | Encoder A | — | digital-input, pwm |
| GPIO24 | Encoder B | — | digital-input, pwm |
| GPIO26 | A0 — ADC/Speaker | ADC | analog-input, digital-input, digital-output, pwm |
| GPIO28 | A2 — ADC | ADC | analog-input, digital-input, digital-output |

## Available Software

- **[CircuitPython](https://openhardware.directory/r?to=https%3A%2F%2Fcircuitpython.org%2Fboard%2Fadafruit_macropad_rp2040%2F&ref=openhardware.directory&product=adafruit-macropad-rp2040&source=md-export)**
- **[KMK Firmware](https://openhardware.directory/r?to=https%3A%2F%2Fkmkfw.io%2F&ref=openhardware.directory&product=adafruit-macropad-rp2040&source=md-export)**
- **[Arduino](https://openhardware.directory/r?to=https%3A%2F%2Fgithub.com%2Fearlephilhower%2Farduino-pico&ref=openhardware.directory&product=adafruit-macropad-rp2040&source=md-export)**

## Description

## Overview

The Adafruit MACROPAD RP2040 is a compact programmable keyboard controller built around the RP2040 dual-core microcontroller. The bare-bones kit ships with a 3×4 matrix of Cherry MX-compatible hot-swap sockets, 12 individually addressable NeoPixel RGB LEDs (one per key), and a 128×64 SH1106 monochrome OLED display — all you need to add are 12 key switches and keycaps of your choice.

A rotary encoder with 20 detents and push-button click sits at the top of the board, giving an additional control axis for volume, scrolling, or menu navigation. A small Class D amplifier drives the built-in 8 mm speaker for click feedback, notifications, or simple audio effects. Four M3 mounting bosses allow the MACROPAD to be secured inside an enclosure or desktop stand.

The RP2040 offers 264 KB of SRAM and 8 MB of SPI Flash — enough to run full CircuitPython with display and audio libraries simultaneously. QMK firmware is a common community choice for those who want traditional keyboard firmware. The USB-C connector handles HID keyboard/consumer-control reports so the MACROPAD is recognised by every OS without drivers.

A STEMMA QT port enables expansion with I2C sensors or secondary displays. The board is designed for both macro-key shortcuts and as an educational platform for learning embedded programming through a tangible, interactive device.

## Where to Buy

- [Adafruit](https://openhardware.directory/r?to=https%3A%2F%2Fwww.adafruit.com%2Fproduct%2F5100&ref=openhardware.directory&product=adafruit-macropad-rp2040&source=md-export) — 34.95

## Resources

- [product](https://openhardware.directory/r?to=https%3A%2F%2Fwww.adafruit.com%2Fproduct%2F5100&ref=openhardware.directory&product=adafruit-macropad-rp2040&source=md-export)
- [github](https://openhardware.directory/r?to=https%3A%2F%2Fgithub.com%2Fadafruit%2FAdafruit-MACROPAD-RP2040-PCB&ref=openhardware.directory&product=adafruit-macropad-rp2040&source=md-export)
- [learn guide](https://openhardware.directory/r?to=https%3A%2F%2Flearn.adafruit.com%2Fadafruit-macropad-rp2040&ref=openhardware.directory&product=adafruit-macropad-rp2040&source=md-export)

## Tags

`rp2040`, `macropad`, `mechanical-keyboard`, `neopixel`, `oled`, `rotary-encoder`, `circuitpython`, `qmk`, `stemma-qt`

## Images

![Adafruit MACROPAD RP2040](https://nbg1.your-objectstorage.com/openhardware-directory/entities/adafruit-macropad-rp2040/874c650c5884.jpg)
![Adafruit MACROPAD RP2040](https://nbg1.your-objectstorage.com/openhardware-directory/entities/adafruit-macropad-rp2040/300df067f05b.jpg)
![Adafruit MACROPAD RP2040](https://nbg1.your-objectstorage.com/openhardware-directory/entities/adafruit-macropad-rp2040/a1a916f7bf81.jpg)
![Adafruit MACROPAD RP2040](https://nbg1.your-objectstorage.com/openhardware-directory/entities/adafruit-macropad-rp2040/57edee813008.jpg)

---
[View full device page](https://openhardware.directory/devices/adafruit-macropad-rp2040)