# duckyPad Pro

> 20-key open-source mechanical macropad with duckyScript engine, ESP32-S3, 1.5\" OLED, Bluetooth 5.0, hot-swap switches, dual rotary encoders, and microSD — a powerful Stream Deck alternative.

## Quick Facts

- **Brand:** dekuNukem
- **Board Type:** macropad
- **Price:** ~$84.99
- **Product Readiness:** consumer
- **CPU:** ESP32-S3 Xtensa LX7 dual-core @ 240MHz
- **CPU Architecture:** Xtensa LX7
- **RAM:** 512KB SRAM
- **PSRAM:** 2MB
- **Flash:** 4MB
- **USB:** USB-C
- **Power:** 5V
- **Operating Voltage:** 3.3V
- **Charging Port:** USB-C
- **SD Card:** microSD
- **Display:** 1.5" OLED 128×128

## Connectivity

- **Wifi:** WiFi 802.11 b/g/n
- **Bluetooth:** BLE 5.0

## Open Source

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

## Compatible Firmware

duckyScript, esp-idf

## Use Cases

- macro-keyboard
- programmable-keyboard
- usb-hid-device
- macro-scripting
- stream-deck-alternative
- desktop-automation

## Components

- **ESP32-S3FN4R2** (mcu): Espressif ESP32-S3FN4R2 dual-core Xtensa LX7 SoC at 240MHz with 4MB flash, 2MB PSRAM, WiFi 802.11 b/g/n, and Bluetooth 5.0 LE. — [Datasheet](https://openhardware.directory/r?to=https%3A%2F%2Fwww.espressif.com%2Fsites%2Fdefault%2Ffiles%2Fdocumentation%2Fesp32-s3_datasheet_en.pdf&ref=openhardware.directory&product=duckypad-pro&source=md-export)
- **SSD1306** (display-driver): Solomon Systech SSD1306-compatible OLED display controller driving the 128x128 1.5-inch OLED via SPI interface with 256-step brightness control. — [Datasheet](https://openhardware.directory/r?to=https%3A%2F%2Fcdn-shop.adafruit.com%2Fdatasheets%2FSSD1306.pdf&ref=openhardware.directory&product=duckypad-pro&source=md-export)
- **PEC12R** (rotary-encoder): Two Bourns PEC12R series incremental rotary encoders with integrated tactile push-switch, supporting max 24mm knob diameter. — [Datasheet](https://openhardware.directory/r?to=https%3A%2F%2Fwww.bourns.com%2Fdocs%2FProduct-Datasheets%2FPEC12R.pdf&ref=openhardware.directory&product=duckypad-pro&source=md-export)
- **kailh-hot-swap-socket** (switch-socket): 20 Kailh hot-swap sockets compatible with Cherry MX 3-pin and 5-pin mechanical switches for tool-free switch replacement. — [Datasheet](https://openhardware.directory/r?to=https%3A%2F%2Fwww.kailhswitch.com%2Fmechanical-keyboard-switches%2Fbox-switches%2Fhot-swapping-pcb-socket.html&ref=openhardware.directory&product=duckypad-pro&source=md-export)
- **WS2812B** (led-driver): 20 north-facing WS2812B-compatible addressable RGB LEDs for per-key lighting, driven via ESP32-S3 RMT peripheral at 10MHz. — [Datasheet](https://openhardware.directory/r?to=https%3A%2F%2Fcdn-shop.adafruit.com%2Fdatasheets%2FWS2812B.pdf&ref=openhardware.directory&product=duckypad-pro&source=md-export)

## Protocols

- **SPI**: MOSI: GPIO10, SCK: GPIO11, DC: GPIO12, RST: GPIO13, CS: GPIO14
- **UART**: TX: GPIO16, RX: GPIO15
- **USB**: USB-C (native USB OTG)

## GPIO Map

| Pin | Name | Type | Functions |
|-----|------|------|-----------|
| GPIO0 | Rotary Encoder 1 Switch | — | — |
| GPIO1 | Rotary Encoder 1 B | — | — |
| GPIO2 | Rotary Encoder 1 A | — | — |
| GPIO3 | Rotary Encoder 2 Switch | — | — |
| GPIO4 | Rotary Encoder 2 B | — | — |
| GPIO5 | Rotary Encoder 2 A | — | — |
| GPIO6 | SD Card Detect | — | — |
| GPIO10 | OLED SPI MOSI | — | — |
| GPIO11 | OLED SPI SCK | — | — |
| GPIO12 | OLED DC | — | — |
| GPIO13 | OLED Reset | — | — |
| GPIO14 | OLED CS | — | — |
| GPIO15 | Expansion UART RX | — | — |
| GPIO16 | Expansion UART TX | — | — |
| GPIO17 | Plus Button | — | — |
| GPIO18 | Minus Button | — | — |
| GPIO35 | Key Matrix Row 4 | — | — |
| GPIO36 | Key Matrix Row 3 | — | — |
| GPIO37 | Key Matrix Row 2 | — | — |
| GPIO38 | Key Matrix Column 3 | — | — |
| GPIO39 | Key Matrix Column 2 | — | — |
| GPIO40 | Key Matrix Row 1 | — | — |
| GPIO41 | Key Matrix Column 1 | — | — |
| GPIO42 | Key Matrix Column 0 | — | — |
| GPIO45 | Key Matrix Row 0 | — | — |

## Description

## Overview

The duckyPad Pro is a 20-key programmable mechanical macropad built around the ESP32-S3 dual-core processor, designed as a powerful open-source alternative to commercial macro pads and stream decks. Unlike QMK/VIA-based devices, it runs a custom Turing-complete duckyScript engine on a 32-bit bytecode virtual machine, supporting variables, conditionals, loops, and function calls — enabling complex automation workflows that go far beyond simple key remapping.

Each of the 20 hot-swap Cherry MX-compatible keys features a north-facing ARGB LED for per-key RGB lighting, and the device includes two Bourns PEC12R rotary encoders with tactile push-switches for volume control, scrolling, or any custom function. A 1.5-inch 128x128 OLED display driven via SPI shows real-time key labels, profile names, and script status, with configurable portrait/landscape orientation and burn-in prevention.

The duckyPad Pro supports 64 profiles with automatic switching based on the active application window, storing over 3,700 macros (each up to 60,000+ characters) on the microSD card. Bluetooth 5.0 enables wireless operation with an external USB battery bank, while USB-C handles wired connectivity and firmware updates via DFU mode. The expansion module system allows daisy-chaining up to 32 additional input channels for foot pedals and external switches.

All hardware schematics, PCB layouts, and firmware source code are released under the MIT license, with a cross-platform configurator application for Windows, macOS, and Linux. The firmware is built on ESP-IDF v5.3.1, giving tinkerers full access to customize every aspect of the device's behavior.

## Where to Buy

- [Tindie](https://openhardware.directory/r?to=https%3A%2F%2Fwww.tindie.com%2Fproducts%2Fdekunukem%2Fduckypad-pro-macro-scripting-beyond-qmkvia%2F&ref=openhardware.directory&product=duckypad-pro&source=md-export) — $84.99

## Resources

- [product](https://openhardware.directory/r?to=https%3A%2F%2Fwww.tindie.com%2Fproducts%2Fdekunukem%2Fduckypad-pro-macro-scripting-beyond-qmkvia%2F&ref=openhardware.directory&product=duckypad-pro&source=md-export)
- [github](https://openhardware.directory/r?to=https%3A%2F%2Fgithub.com%2FdekuNukem%2FduckyPad-Pro&ref=openhardware.directory&product=duckypad-pro&source=md-export)
- [wiki](https://openhardware.directory/r?to=https%3A%2F%2Fgithub.com%2FdekuNukem%2FduckyPad-Pro%2Fblob%2Fmaster%2Fdoc%2Fgetting_started.md&ref=openhardware.directory&product=duckypad-pro&source=md-export)
- [schematics](https://openhardware.directory/r?to=https%3A%2F%2Fgithub.com%2FdekuNukem%2FduckyPad-Pro%2Ftree%2Fmaster%2Fpcb&ref=openhardware.directory&product=duckypad-pro&source=md-export)

## Tags

`macropad`, `duckyScript`, `mechanical-keyboard`, `macro-automation`, `esp32-s3`, `bluetooth`, `open-source-hardware`, `hot-swap`, `stream-deck-alternative`, `oled-display`, `rotary-encoder`, `usb-hid`

## Images

![duckyPad Pro](https://nbg1.your-objectstorage.com/openhardware-directory/entities/duckypad-pro/cb2352e80c29.jpeg)

---
[View full device page](https://openhardware.directory/devices/duckypad-pro)