| Get duckyPad Pro | Official Discord | Getting Started | Table of Contents |
duckyPad Pro is a 20-key mechanical macropad for power users who demand advanced macro scripting and customisation beyond the shackles of QMK/VIA.

Using a Turing-complete scripting language with massive on-board storage, it can automate any keyboard/mouse input you want, from simple combos to full-blown programs.
duckyPad Pro has been successfully funded on Kickstarter with more than $100K raised!
duckyPad Pro has all the basics:
But also features unlike any other:

duckyPad Pro runs duckyScript, originally designed for the USB Rubber Ducky.
Compared to QMK/VIA, you get:
While QMK/VIA are great for regular keyboards, they are rather limited at input automations.
duckyScript is a no-brainer for power users with more demanding scripting needs.
Create up to 64 profiles, one for each application.
Assign up to 58 keys per profile (20 onboard + 6 rotary encoder + 32 external)
Names are shown on OLED screen
Write a duckyScript for each key

duckyScript is a language for automating inputs
Such as key combos of your favorite app
Browsing
Zoom In: CTRL +
Next Tab: CTRL SHIFT TAB

Once familiar, you can write longer multi-line macros to further speed up everyday task.
Such as filling forms and typing boilerplate text with one keypress.
STRING Michael Scott
TAB
STRING United States
ENTER
STRING 5705550100
TAB
STRING michael.scott@dundermifflin.com
TAB

Or a simple mouse jiggler:
WHILE TRUE
MOUSE_MOVE $_RANDOM_INT $_RANDOM_INT
DELAY 100
END_WHILE

RGB_SET 1 128 0 255
OLED_PRINT You are in a maze
OLED_PRINT of twisty little passages
VAR choice = _READKEY
IF choice == 1
OLED_CURSOR 0 10
OLED_PRINT It is a dead end.
OLED_PRINT Something moves
OLED_PRINT behind you.
END_IF

Or how about a fully working Pong game?
WHILE TRUE
active_key = _READKEY
OLED_CLEAR
draw_paddle()
draw_court()
draw_ball()
OLED_UPDATE
DELAY 20
END_WHILE


From simple shortcuts to full-blown programs, duckyScript can easily achieve what was impossible on QMK/VIA.
Each macro can contain over 60,000 characters
Store over 3700 macros in total
Executed on custom virtual stack machine
duckyPad Pro also works as a Bluetooth Keyboard & Mouse (with a catch!)


So what’s the catch?
Yes I know it’s a bit silly having BT without internal battery! However, it would involve more complex case design, additional components, and international shipping of rechargeable batteries.
All of which would inflate the cost way beyond just using an off-the-shelf battery pack.
As this is a one-person project, I prefer to keep things simple.
duckyPad Pro also supports optional expansion modules for even more customisability.


duckyPad Pro now runs a significantly more powerful processor:
Switching to ESP32 also allows much simpler setup for tinkering:
NUMLOCK / CAPSLOCK / SCROLLLOCK status$_READKEYUse the open-source configurator to set up your duckyPad Pro.
| Windows | Mac | Linux |


duckyPad Pro has 20 Mechanical Switches in 4x5 Grid.




Available on my Tindie store!
Join our Official Discord for discussions and updates!

Please feel free to open an issue, ask in the official duckyPad discord, or email dekuNukem@gmail.com!
duckyPad has been in active development since 2017, and every effort has been made to ensure its reliability. However, it is NOT designed or certified for safety-critical applications. Use at your own risk.
Scripts are stored as plain text on the SD card. Keep in mind before including sensitive information.
duckyScript appears to be a trademark of Hak5 LLC. The duckyPad project is not affiliated with, or endorsed by Hak5 LLC.
The duckyScript compiler and virtual machine used in this project are independently developed from scratch.