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.
Incorporating 4 years worth of feedback from the original duckyPad, duckyPad Pro combines long-requested upgrades with a no-nonsense design, aiming simply to be the most capable macropad today.
duckyPad Pro has been successfully funded on Kickstarter with more than $100K raised!
-
Late Pledges still available with Jan 2025 shipping.
-
Join our Official Discord for discussions and updates!
duckyPad Pro has all the basics:
- Hot-Swap
- Rotary Encoders
- Per-key RGB
- USB-C
- 100% Open-source
But also features unlike any other:
- Custom duckyScript engine, NOT QMK/VIA.
- Longer and more complex macros
- 1.5" OLED screen
- Bluetooth
- Expansion Modules for external switches / foot pedals
- 64 profiles, 3712 macros total.
- Automatic profile switching based on active window.
- microSD storage
- No proprietary drivers, works out-of-box.
- Hacker friendly with tinkering guide
duckyPad Pro runs duckyScript, originally designed for USB Rubber Ducky.
Compared to QMK/VIA, you get:
-
Much Longer Macros
- Entire Bee Movie in one macro? Sure thing!
- Over 3700 macros total
-
Advanced Interactive Scripting
- Variables, conditions, loops, functions, etc.
- Reading Buttons
- Print to OLED screen
- Change RGB Color
- Fine timing control
- Randomization
- How about a fully functional Pong game? [code]
-
SD Card Storage
- Fast Configuration / Backup / Deployment
- No sketchy drivers or apps
- No recompiling
While QMK/VIA are great for regular keyboards, they are rather hopeless at even the basics of 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 simple language for automating inputs
-
You basically tell it what key to press!
-
Start simple by mapping shortcuts of your favourite app
Browsing
Zoom In: CTRL +
Next Tab: CTRL SHIFT TAB
OBS
Switch Scenes: F13
F14
F15
F16
-
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 [email protected]
TAB
Or a simple mouse jiggler:
WHILE TRUE
MOUSE_MOVE $_RANDOM_INT $_RANDOM_INT
DELAY 100
END_WHILE
- Explore the full potential with advanced interactive scripting
- Read Buttons
- Write to OLED screen
- Change RGB colors
- Conditions and Loops
- Write ultra-specific macros for your exact needs
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 THEN
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
update_paddle_pos()
update_ball_pos()
OLED_CLEAR
draw_paddle()
draw_court()
draw_ball()
OLED_UPDATE
DELAY 20
END_WHILE
- Of course, by automating keystrokes, you can take over an entire computer with the push of a button!
- This is known as BadUSB attack, which was the original purpose of USB Rubber Ducky.
-
From simple shortcuts to full-blown programs, duckyScript can easily achieve what is impossible on QMK/VIA!
-
Each macro can type 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!)
-
Bluetooth 5.0
-
Built-in Antenna for both BT and Wi-Fi
So what's the catch?
- You need to provide your own USB battery bank
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 getting 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.
-
Wire up your own switches / buttons / foot pedals
-
8 channels per module
-
Daisy-chain up to 32 channels
duckyPad Pro now runs a significantly more powerful processor:
- ESP32-S3
- Dual-Core @ 240 MHz
- 4MB Flash Memory
- 512KB RAM
- 2MB PSRAM
Switching to ESP32 also allows much simpler setup for tinkering:
- VSCode IDE
- Open-source toolchain
- USB Flashing, no external programmer needed.
- Tinkering guide provided
- Separate script for on press and on release
- Abort execution with any key
- Unlimited
EMUK
Keypresses - Read
NUMLOCK
/CAPSLOCK
/SCROLLLOCK
status - Switch profile by name (instead of number)
- Configurable screen orientation
- Mount SD Card as USB Storage
- Blocking
$_READKEY
- Much faster configurator load/save
- Drag & drop firmware update
- More sturdy +/- button
- Reinforced hotswap socket solder pads
- A lot more under-the-hood optimizations
Use the open-source configurator to set up your duckyPad Pro.
- Windows | Mac | Linux
- No account / subscription needed
- No data collection / telemetry
-
Based on current active window
duckyPad Pro has 20 Mechanical Switches in 4x5 Grid.
- Kailh hot-swap socket
- Cherry-MX compatible (Both 3 and 5-Pin)
- North-facing ARGB LED
- Configurable colour & brightness
- Two Encoders
- Bourns Inc. PEC12R Series
- Built-in Tactile Switch
- Max Knob Diameter: 24mm
- 128x128
- 1.5 inch
- High contrast with true black
- Configurable orientation
- Burn-in Prevention
You can pre-order duckyPad Pro on Kickstarter!
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. 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.