dekunukem / duckypad Goto Github PK
View Code? Open in Web Editor NEWDo-It-All Mechanical Macropad
License: MIT License
Do-It-All Mechanical Macropad
License: MIT License
Hi, really cool project!
Wanted to ask if it is possible to switch the selected profile based on the active application?
A use case example:
As a programmer, I want duckyPad to be able to switch to a specific profile for VSCode snippets when I switch to VSCode, so that I can instantly have access to the macros that I need to insert snippets
The duckypad can now be flashed from macOS using http://dfu-util.sourceforge.net/ which can be installed using https://brew.sh/
$ brew install dfu-util
hold DFU button & connect duckypad, then run:
$ dfu-util --device ,0483:df11 -a 0 -D /path/to/duckypad_v0.8.0.dfu
For one application I'm using, it would be useful to be able to send numpad digits as well as the regular digits (which I've been doing with e.g. STRING 1
.
In https://github.com/keyboardio/Chrysalis this is keyCode 30 vs keyCode 89.
Would it be possible to add to the list of modifier keys NUMPAD_1
etc?
Thanks!
Being able to control how long keys are held down and when they are released would be incredibly useful for automating actions in games, where you typically need to hold down a key to get things done.
This is the only feature that I found was missing from DuckyScript that was present on other mainstream keyboards with macro functionality.
The DEFAULTCHARDELAY command does this to some extent, but isn't capable of holding a key as a toggle, which could be implemented with onKeyDown, onKeyUp, and the existing LOOP function.
Hey,
I just received my DuckyPad, it's awesome, thanks!
Is there a list of user contributed scripts? It would be nice to have somewhere where a list can be compiled so that we can get inspiration
I assigned MENU
to a key, but the expected context menu didn't work. I checked on Linux the key codes using showkey --scancodes
0x1d 0x38 0x36 0xe0 0x38
0x9d 0xb8 0xb6 0xe0 0xb8
I checked with another keyboard, and the menu key there results in the following key codes:
0xe0 0x5d
0xe0 0xdd
I also checked with libinput debug-events
:
The menu key don the duckypad gave:
-event5 KEYBOARD_KEY +22.833s *** (-1) pressed
event5 KEYBOARD_KEY +22.833s *** (-1) pressed
event5 KEYBOARD_KEY +22.833s *** (-1) pressed
event5 KEYBOARD_KEY +22.833s KEY_RIGHTALT (100) pressed
event5 KEYBOARD_KEY +22.977s *** (-1) released
event5 KEYBOARD_KEY +22.977s *** (-1) released
event5 KEYBOARD_KEY +22.977s *** (-1) released
event5 KEYBOARD_KEY +22.977s KEY_RIGHTALT (100) released
the real keyboard:
-event10 KEYBOARD_KEY +27.588s KEY_COMPOSE (127) pressed
event10 KEYBOARD_KEY +27.775s KEY_COMPOSE (127) released
On macOS you use 'WINDOWS' for 'cmd' key and 'ALT' for 'Option'.
However, in the config app, neither of these trigger the correct key when tested. If the scripts are saved and the script triggered from the pad itself, it works fine.
So this is just the config apps test feature. May be worth adding a note to the readme to that effect. Certainly not the end of the world!
Dear @dekuNukem
which brand and reference of smd oven you use in your project?
Best Regards,
Youssef
The button in the config tool called WIN
does add WIN
to the key config.
It then says their is something wrong with the code, and in the docs is said that I need to type WINDOWS
to send the windows key.
So I thing the button in the app can be called the same but should output WINDOWS
.
I'd like to turn one of my keys in a profile into a modifier key of sorts. What I'd like to do is to turn the bottom right button into a press and hold button that then switches to a new profile that returns to the original profile on release. Additionally, while I'm holding that modifier key I'd like to press another key from that new loaded profile and have it do its intended action.
My use case:
First profile has a set of window resize options (pretty much all filled). The next profile is an extension of the first, but can move windows to other screens, etc. Pressing the -/+ has been pretty inefficient for this type of use case.
Added bonus if this profile switch could be hidden from the menu screen and/or from the -/+ buttons. Ie. it can only be accessed by pressing the modifier key on the profile, but still editable in the duckypad configurator that includes a hidden
input field.
I had a board made, flashed it using the instructions and I get nothing from connecting it to USB C, but if I connect the 3.3V Stlink pin, it works fine. What could be going on here?
I was wanting to make some firmware changes to clean up a few tiny things I noticed, but I don't
seem to be able to find a Makefile at the root of the firmware tree that would allow me to build
the code again.
Is it just not checked in? Any hints on how to rebuild the code would be appreciated.
Hi, really apperatiate your work, adding OLED for displaying profile is fatastic.
But 15key is just not enough when using as a numpad. 4x5 should be a proper balace between minimal and functionality.
Do you consider adding more keys in the future version?
thanks
I could not get rotary encoders to work. I believe its software related. Any help?
The small switches are functional, but it could be awesome to be able to put mechanical switches too.
I have tried to follow the guide but I have been unable to get the new firmware working and would really appreciate some help.
I have used Brew to download by running 'brew install dfu-util' in terminal. That appeared to work. I have downloaded the new firmware to the desktop and to the micro sd card. When I past the command into terminal for the update I get the following error message:
dfu-util: Could not open file /path/to/duckypad_firmware.dfu for reading: No such file or directory
Should i be saving the new firmware to somewhere different? Any ideas?
Thank you
Neat project!
Not a big fan of the LEDs but love the design.
Any chance of selling some kits with everything needed to make one?
I’d not - perhaps one of those fancy online sites where you could enter the bill of materials and people then links to a cart to buy the parts from somewhere?
Thanks!
My duckypad decided to just randomly turn off today and it won't turn back on. I unplugged it and plugged it back in, nada. I've tried a bunch of different cables but no luck. Except, it did flicker on for a second but then went back to not working again
EDIT - The macropad randomly decided to turn on while i had it sitting around plugged in but as soon as i tried to hit something, it blacked out again. After some more time, I figured out that the macropad only works when the cable is at a very very very very very very specific angle and I can't nail it. Might be a problem with the usb c port
Please fix link or re-upload BOM.
Can the firmware be modified to make this a MIDI controller, sending MIDI over USB instead of keypresses?
Would it be possible to add something that behaves like GOTO_PROFILE
but it returns to the original layer after the next (subsequent) key press? This would let us emulate having something like QMK layers so that we could quickly switch between different groups of shortcuts for complicated apps that have a lot of shortcuts.
I'm thinking something like my IDE with a ton of complicated hotkeys. I would have a primary profile with the most common shortcuts, and on that maybe the bottom row of keys are mapped to swap to different profiles with more specialized commands. I could press a swap key and it would shift to the specialized profile, then I press the command I want and it would return to the original layer. This would be a very powerful addition, I think.
I know you're busy and thank you for all the work thus far!
Ran into this issue while trying to use the WS2812B LEDs:
The WS2812B 3535 footprint used in the design is only pin-compatible with SK6812MINI.
WS2812B 3535, WS2812B 5050, and SK6812 5050 share a common pinout, while the SK6812MINI is flipped.
WS2812B 5050 schematic: https://cdn-shop.adafruit.com/datasheets/WS2812B.pdf
WS2812B 3535 schematic: http://www.normandled.com/upload/201607/WS2812B%20Mini%203535%20LED%20Datasheet.pdf
SK6812 3535 schametic: https://cdn-shop.adafruit.com/product-files/2686/SK6812MINI_REV.01-1-2.pdf
some more details here: adafruit/Adafruit-Eagle-Library#42
p.s. Thanks for posting this great design!
Middle key of the second row doesn't work.
Tested different profiles, no difference.
Please advise.
I would like to edit the configuration of the duckypad while the duckypad is connected to the computer.
This would save a lot of time: removing the card, putting the card in the reader, putting the reader in the laptop/computer, opening the configurator or config files, editting & saving, unmounting, removing the reader, removing the card from the reader, putting the card back in the duckypad and connecting the duckypad.
If all the physical work could be skipped by editting directly on the duckypad, it would be a lot easier. it might be possible to do this by putting the duckypad instead of on keyboard mode into disk mode. the original hak4 rubber ducky had a firmware update that allowed this. Maybe something similar could be done with the duckypad.
Hi i just tried the configurator on linux.
It almost works. The only problem is, that you use the color name "SystemButtonFace".
This is not available on Linux. Therefore the only thing you have to be linux compatible is either replace by e.g. "grey" or use a os switch on linux.
Regards
Hi,
Is it possible to add coloroption to the PC configurator for the up and down key.
Python programming is a bit out of my leage, i got the code working in the STM, all i need is an output in the config file like:
SWCOLOR_16 255 255 255
SWCOLOR_17 255 255 255
i tried myself but failed miserably and should have taken a copy of my sd card first -_-
My Macbook pro runs Mojave 10.14.6, and every time I try to open the Configurator 0.10.0, my Mac reboots. I've tried downloading the file again, but the same thing happened when I tried opening the Configurator.
Hi,
I had some issues with the character ö and the german keyboard layout. It seems to be a little bug in line 260 of the dpkb_german.txt.
The correct duckcode for 0xf6
should be 0x0033
, as it is a standad character of the german keyboard layout.
May you'd like to update it in the next version.
And by the way, thanks for this really cool project!
Edit
Some typos
Here is my test loop:
LOOP0:
STRING first action
STRING FOO
DELAY 500
ENTER
SWCOLOR 128 0 0
LOOP1:
STRING second action
STRING BAR
DELAY 500
ENTER
SWCOLOR 0 128 0
The first LOOP0 and LOOP1 run correctly and swap color.
After the first "loop" no ENTER are inputed.
The SWCOLOR is runned however.
output:
first actionFOO
second actionBAR
first actionFOOsecond actionBARfirst actionFOOsecond actionBAR
The script was saved from configurator 0.9.0 on windows and tested on Windows 10 and MacOS 11.1.
After fighting with the cheaper ST-link V2 i bought the proper one and can connect to the board. I see the memory of the STM32 and it is all blank, but when ever I try to program it i get a "unexpected error" and the board resets.
problems with the hex files?
Similar to #45, but I am using the correct path.
$ dfu-util --device ,0483:df11 -a 0 -D ~/Downloads/duckypad_v0.16.0.dfu
dfu-util 0.10Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2020 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/dfu-util: No DFU capable USB device available
I followed the DFU boot instructions. But the dfu-util doesn't see it at the address in the command provided. I don't know how to find it.
When I boot normally, there is no attached ducky, so I don't know where to direct the configurator to test any change. Am I supposed to do this with the micro sd reader? the leds respond when I press keys, but even characters like numbers and letters do not type. I would like to update the firmware to see if that fixes it.
duckyPad works fine - as long as you have an english keyboard layout. The problem is briefly discussed here: #5
The problem is, that the OS assumes a keyboard layout (and that the USB HID spec not just allows UTF-8). Therefore when e.g. a german keyboard layout is set, the scancodes are interpreted differently.
The keyboard firmware QMK has already a solution in place for this, see https://github.com/qmk/qmk_firmware/blob/master/quantum/keymap_extras/
It is a bit clumsy because then it is necessary to configure the layout used in the firmware but IMHO it is the most practicable solution.
I suggest to modify keyboard.c/.h and to port the QMK solution to duckyPad.
Any comments on that? Others already working on that?
In the video you show some jumpers on the header and a loading bar. Could you elaborate? I have build one and I've hit a wall on how to load anything on the chip. This is the first time I've programmed a chip outside of some Atmegas and I just use a arduino board with a socket.
Version 0.4.0 works fine on 10.15, but on 10.14 gives you a screen of static & logs out the current user. I haven't yet been able to dig out any logs, but will try & do so when possible....
Hi, I'm trying to build a kbord, how thick material should I use when making the switch plate?
And I noticed that you changed the model of oled in version 2, but the new model was not described in the bom, which made me buy the wrong oled. After I got the parts, I found there was a problem, and I didn't know the information of the new oled until I came back to see issues. So I hope to add a description of the new oled in the bom so that the people behind will not make mistakes again. Thank you.
Is it possible to dim the lights on the duckyPad?
I have been exploring OpenRGB for past few weeks after I found about it and I was wondering if it would be possible to add support for it in OpenRGB.
I know it's generally the other way around, you add support for the device to OpenRGB so I'm fine if you will decide this should go as feature request to OpenRGB, but I'm just wondering :)
As far as I've read (will test when I get the device) we could use QMK with DuckyPad and that supposed to work with OpenRGB? Anyone tried it?
Maybe we could collaborate somehow with OpenRGB to make DuckyPad supported out of the box?
Kind regards,
Michal
I'm trying to order PCB's so I can build this myself. I went to order through OSH Park but it says someone else owns the project files and has not shared them. Would you be able to share them so I can order them for print?
Thanks
Hey @dekuNukem
I received my DuckyPad from the Kickstarter campaigna few days ago and I am really excited. I only noticed one small problem:
Currently I using the experimental LOOP function to track if the button was pressed the first time or the second time. To trigger different actions each time.
Unfortunately I noticed that after the DuckyPad was in sleep mode, the counter for the loop starts again at 0 and does not keep the last value.
Is it possible to reload or keeping the old counter value for the loop after waking up?
Hallo,
after the update yesterday, windows doesn't like the duckypad anymore. In device manager the pad will be (not) recocgnized
as "Unknown USB Device (Device descriptor request failed)"
OS-Info
Version 2004
OS build 19041.867
Experience Windows feature experience pack 120.2212.551.0
Duckypad FW 0.16.0
Any ideas how to get it back to work ?
Thanks in advance
Would it be possible to HOLD
multiple keys at the same time?
My usecase is to use the pad as an OBS deck.
However when OBS is out of focus the input delay miss fire hotkeys and make it unreliable.
Inputing the hotkey by hand on the keyboard works so a more "natural/human" holding could work.
By using HOLD
not the intended way it works once then will run the last HOLD
.
HOLD CTRL
HOLD SHIFT
HOLD ALT
HOLD BACKSPACE
I was leaving my macropad to chill and then it suddenly turned off. I tried plugging the USB-C connector to different slots and they all produced the same results. TLDR; it wont turn on.
I'd be interested in having a DuckyScript command that switches profiles. This would be useful for a setup with "menu" profiles, where keys can be used to quickly jump between profiles.
Having some issues with the HOLD
functionality - if I hold for a brief period it works great, if I hold for a longer time it appears to key wedged on. It doesn't seem to be a mechanical issue - unplugging & replugging the duckypad resets it and the key is no longer held on. Using firmware 0.8.0
.
EDIT: also happening with firmware 0.9.0
I have a single key that doesn't work on the DuckyPad I recently received.
I double/triple checked for bent pins and swapped keys even. Decided to by-pass the whole "switch" and jump the contacts with a wire. I verified the working keys work with the contact jump method but the single key does not work that way.
Any insight on where to begin the next phase of debugging would be apricated.
Hi, i would like to try to build kbord. As i can see, version described in readme is different from current version of the board. So i have a few questions:
When saving the data for the duckypad configuration on SD card, the DuckyConfigurator program hangs for quite a long time, up to half a minute. After this very long duration of saving configuration files, it returns back to normal. This happens even when the amount of 'pages' in the duckypad is very low (4-6).
Expected behaviour: Still functioning application during saving / Quicker saving of files
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.