So simple! This looks like the start of a project for my Year 9 class. A handful of mechanical keyboard switches and some 3D printing could make a cool little macro pad. Thanks for the video.
I had one of these for some time, with 12 button keyboard that uses only one analog pin, worked great, but those buttons were a bit noisy (12mm tact switches) and a bit bulky. So my next step was to make this thinner and silent. So I used one of these MPR121 12 touch pad boards, works like a charm, and it's really thin compared to my previous one
This is awesome. Gonna use some parallel in to serial out chips to get many many inputs and make a number pad. I do not like the decision of adding the 500ms delay there though, due to not being able to press any buttons for 500ms. I think I'll just not have a hold function, and rather only send inputs when they are pulled high, and ignore that button until it's pulled low again
does it have to strictly be the MEGA32U4 or is there any other chip that can be used like this? if there is, plz list the modules that can replace this
I'm new to your channel and was wondering how I would be able to send a string of characters like "Left Shift + Right Ctrl + Pause" keys in one key press? Would Keyboard.print.(string), where string is an array of characters work?
Could you turn it into a USB gamepad? A driving simulator controller would be a good project. Or RC model controller, reading servo PWM from an rc receiver, and sending this as a gamepad to a pc
I was looking for how to create a combined USB mouse and keyboard using an ATmega32U4 (Arduino Micro), but had read things implying that in order to combine two devices in one micrcontroller, you had to also implement a USB Composite device. And of course, most example programs only do mouse or keyboard, but not both. However, clearly this is not the case, since your example does exactly this! Maybe it's because they're both HID class devices? Whatever, now I know how to do what I need to do. Thanks!
yo somebody with great Arduino tuts. are you still making videos about such or do you have a series of tutorials!!? I just came by your channel now and i am subscribing!
I have two questions, (the 2nd one maybe being a bit weird) 1, is it possible to send things like the Function keys (F1-F12 etc) and the left up down right arrow keys? 2. is it possible to have 2 x arduino 32u4's on one board, and have all 5 microswitches (like your own setup here) Y-lead off to both arduino 32u4's? I want to control 2 PC's at the exact same time (don't ask!)
i don't see anything preventing question #2 from working, u just gotta steal the signal going from the buttons to arduino #1 and connect it to the pins of arduino #2 (NOTE: i am an electronics and arduino noob, please keep that in mind)
as for #1 you can, a lot of the custom keyboards out there are based on this little board, and as a matter of fact you can even send up to F24 even tho traditional keebs go just up to F12
Hey, Do you think we can use place keyboard module inside a smart digital tape measure, which copies the measurement from the tape directly to the excel sheet via bluetooth? Thanks!
Not sure if this comment will be seen but, can I ask if you had to download any drivers for your pro micro? Mine seems to have a 'unknown USB device' error, and it seems like I don't have a driver installed for it
Hi, can I get some help. I have uploaded a code that let my Arduino pro micro keep typing 'testing' .and now if I plug my Arduino to my computer I can't even go into the bootloader mode. I already try to reset it by using a jumper wire to connect the reset and gnd but It still didn't works.
If you had eight buttons, could it combine the inputs and decode the "binary" string? For example, pressing buttons two and eight (counting from left) gives 01000001 and translates to "A".
Salut, il n’est pas recommandé de mettre un filtre devant les leds ? Car je crois que cette lumière n’est pas bonne pour les yeux ! Sinon beau projet 👍 à bientôt 👋
It depends on how the USB HID report is made, but most implementations I have seen can handle 6 simultaneous key presses. But your code needs to support this too. You can't have delay() calls when you have to detect multiple key presses.
Thanks so much! Built a 4 key and using your code I can enter stored passwords with the click of a button. I am curious if you would know how to have it enter a string then do a tab and then enter another string and then have it do an enter? I want to have this enter a username then do a tab and then enter a password and then do an enter? All of this programmed on one button press.
I want to use this for a control panel for games... Ill be using in for stormworks It will have your basic push button but i also want to use circuit breakers
Hi, you didn't have any problems with the inclusion of the keyboard library? I did a little, that's why I'm asking, since it's only been a month since you posted this message ...
I think you can probably use the same one as in video, but you'd need to explore making a grid- like with 12 digital inputs - wire them 6 horizontal and 6 vertical and check against pairs of pulled pins for inputs and you'd have 36 - maybe even 4x4x4 for 64 or 3x3x3x3 is a possibility for a full blown 81 inputs, but it will probably limit how many keys can be pressed at the same time - depends on application of the product you're working on.
Hi, thank you for this content. Straight to the point. A quick question: After see your video and others about using ATMega32U4 as a keyboard, still not clear to me if it need to be the one of 3.3V or the one of 5V. Could you kindly let me know the correct voltage? Thanks in advance!
Since Human Interface Device (HID) class devices are generic, they should work equally well in Windows, MacOS, or Linux. These all use the same standards, although some keys are labeled differently on Macs. There's nothing Windows-specific in this project.
But what I'm seeing from this code is that you cannot hold down a key. I could be wrong but if I wanted to walk using WASD I probably couldn't. I bought a metal DDR pad and the control box isn't working so i wanted to make my own JoyToKey after seeing how the pad worked.
Depends on what program you want to launch. Some applications can be opened using the Application Launch keycodes as part of the USB HID standard, these include Web browser, calculator, email client. Unfortunately the library used here doesn't support the full USB HID standard which means media keys and application launch keys are not possible. You could set the keys to be something obscure like F13 - F24 and use AutoHotHey to detect and run various commands, like opening an application. Otherwise, use a different library which does have full functionality, like NicoHood's HID project.
QMK probably started out as a project much like this. QMK is much more sophisticated in how it lets you define how every key behaves, but when it's running, it's doing very much the same thing.
Yes! Since there are functions to call for all keyboard and mouse activities, you can certainly send codes that combine mouse and keyboard actions. The SparkFun tutorial that he based this project on (see the link in the description) gives more information about things like separate press and key actions for the keyboard, which lets you simulate holding down the Ctrl key and clicking the mouse center button, then releasing the Ctrl key.
If you look at the SparkFun tutorial linked in the description, which is what this project was based on, it gives an example of using an analog joystick to act as a mouse. That should be helpful.
Do I need diodes or resistors in this or could I just plug a keyswitch directly too my digital input and ground? im assuming the arduino I wanna buy has resistors built in it
That's the kind of "firmware", not the HID driver, am I right? I mean, when someone has soldered a custom keyboard, let's say, using an Arduino Nano, there is already a universal HID driver in the OS, but to make the output of the buttons correspond to symbols, you need to write a kind of "firmware", as shown in the video?
That's neat. If you knew a twitch streamer you could probably make a little device to fire commands and macros. verowaThink It seems like you could also fashion a customized game controller if the latency isn't bad.
Nice, so I’m left handed, now I can build a Number Keypad which I can place on the left side of my keyboard so I don’t have to reach across to operate my keypad. Using programs such as Blender, I mouse with my right hand and type with my left hand, this will speed up the work-flow. Purchasing a dedicated left hand keyboard cost hundreds,
@@CraftyUnknown you need the Leonardo, but luckily I found a workaround to make the Nano do what I wanted. Edit: The Leonardo has HID (human interface device) capabilities that the Nano doesn’t.
i tried this kept having problems with library, spent a good hour trying to troubleshoot code to look for any mistakes, searched it turns out arduino uno does support this library, sadly it doesn't have that chip, welp that was sadly painful guess ill need to buy an arduino with that chip, lmao i thought all arduino was the same just different sizes. guess its back to aliexpress for that chip arduino hahahaha.
These projects where they help us with our daily stuff are really powerful.
So simple! This looks like the start of a project for my Year 9 class. A handful of mechanical keyboard switches and some 3D printing could make a cool little macro pad. Thanks for the video.
This is not only a keyboard but also any imaginable HID device, including UPS and 3D joystick.
I had one of these for some time, with 12 button keyboard that uses only one analog pin, worked great, but those buttons were a bit noisy (12mm tact switches) and a bit bulky. So my next step was to make this thinner and silent. So I used one of these MPR121 12 touch pad boards, works like a charm, and it's really thin compared to my previous one
Made my foot pedal project a breeze! Quick and simple! Great thanks!👍🤘
Awesome!
This is awesome. Gonna use some parallel in to serial out chips to get many many inputs and make a number pad. I do not like the decision of adding the 500ms delay there though, due to not being able to press any buttons for 500ms. I think I'll just not have a hold function, and rather only send inputs when they are pulled high, and ignore that button until it's pulled low again
or I'll just do Keyboard.press and Keyboard.release. That seems better maybe
Yes I do want you to build a project and maybe try one without the delay. Thanks
does it have to strictly be the MEGA32U4 or is there any other chip that can be used like this? if there is, plz list the modules that can replace this
I'm new to your channel and was wondering how I would be able to send a string of characters like "Left Shift + Right Ctrl + Pause" keys in one key press?
Would Keyboard.print.(string), where string is an array of characters work?
Could you turn it into a USB gamepad? A driving simulator controller would be a good project. Or RC model controller, reading servo PWM from an rc receiver, and sending this as a gamepad to a pc
I was looking for how to create a combined USB mouse and keyboard using an ATmega32U4 (Arduino Micro), but had read things implying that in order to combine two devices in one micrcontroller, you had to also implement a USB Composite device. And of course, most example programs only do mouse or keyboard, but not both. However, clearly this is not the case, since your example does exactly this! Maybe it's because they're both HID class devices? Whatever, now I know how to do what I need to do. Thanks!
Perfect for my project! Thankyou!
pretty neat tutorial man. Cheers
yo somebody with great Arduino tuts. are you still making videos about such or do you have a series of tutorials!!? I just came by your channel now and i am subscribing!
I have two questions, (the 2nd one maybe being a bit weird)
1, is it possible to send things like the Function keys (F1-F12 etc) and the left up down right arrow keys?
2. is it possible to have 2 x arduino 32u4's on one board, and have all 5 microswitches (like your own setup here) Y-lead off to both arduino 32u4's? I want to control 2 PC's at the exact same time (don't ask!)
i don't see anything preventing question #2 from working, u just gotta steal the signal going from the buttons to arduino #1 and connect it to the pins of arduino #2 (NOTE: i am an electronics and arduino noob, please keep that in mind)
as for #1 you can, a lot of the custom keyboards out there are based on this little board, and as a matter of fact you can even send up to F24 even tho traditional keebs go just up to F12
Merci pour l’info 👋👋
Can i copy the existing program already in it i have bought something like this that already have a program but i want to copy what's in it
A keyboard project will be very interesting.
Exactly what I was looking for, thanks!
I'm sure a fellow streamer could use a macropad for scene translation and other effects?
Hey, Do you think we can use place keyboard module inside a smart digital tape measure, which copies the measurement from the tape directly to the excel sheet via bluetooth?
Thanks!
dude this is great I'm gonna use this to make a flight panel for Microsoft flight simulator
Thank for your work and nice explanation. my question: if i want to used an Uno 4, what type of Hardware i need to communicat like an HID ?
Cool, there is a way to manipulate the arrows of the keyboard?
I think so actually - check out the linked website!
Is it possible with esp32
Not sure if this comment will be seen but, can I ask if you had to download any drivers for your pro micro? Mine seems to have a 'unknown USB device' error, and it seems like I don't have a driver installed for it
Hi, can I get some help. I have uploaded a code that let my Arduino pro micro keep typing 'testing' .and now if I plug my Arduino to my computer I can't even go into the bootloader mode. I already try to reset it by using a jumper wire to connect the reset and gnd but It still didn't works.
I have been trying to get my pro micro to work but I get "averdude" messages and cant get my board to work. Any tips?
how to i decrease the delay speed in-between button presses? i want to be able to press as fast as possible like a normal keyboard
If you had eight buttons, could it combine the inputs and decode the "binary" string? For example, pressing buttons two and eight (counting from left) gives 01000001 and translates to "A".
Or you could use a single button, and make the user enter the characters in Morse code.
Can you use this code for a RP2040? 1:34 - 5:31
Great thing, thank you!
Is it straight forward to use one keyboard button to control 2 Arduinos simultaneously?
Does this behave like a real keyboard if you hold a key down? Multiple characters are being put out?
Can it replace a keyboard for all the keys? I'm thinking of making one with push buttons.
Salut, il n’est pas recommandé de mettre un filtre devant les leds ? Car je crois que cette lumière n’est pas bonne pour les yeux ! Sinon beau projet 👍 à bientôt 👋
Je crois qu'ils sont correcte - ils n'ont pas beaucoup de lumière infrarouge ou ultraviolette!
@@SimpleElectronics
Ok d’accord 👍 bonne continuation
Question, can the board be swap with a standard breadboard?
With a touch keyboard on the micro's display this would make sense.
Nice vid! 😀👍
Thanks man!
Great video. Would it work with other Arduinos? ESP32?
ESP32 support HID via bluetooth
how do you do every pin
can the 32u4 handle multi press? ie can I do any combination of keyboard characters simultaneously?
It depends on how the USB HID report is made, but most implementations I have seen can handle 6 simultaneous key presses. But your code needs to support this too. You can't have delay() calls when you have to detect multiple key presses.
Вопрос: можно ли применить это к другим микроконтроллерам?
Only those that have HID capability - the RP2040 for example has it but the ATMega328p does not
@@SimpleElectronics извиняюсь, а на esp32 не получится?
Can we use every digital and analog pins?
Thanks so much! Built a 4 key and using your code I can enter stored passwords with the click of a button. I am curious if you would know how to have it enter a string then do a tab and then enter another string and then have it do an enter? I want to have this enter a username then do a tab and then enter a password and then do an enter? All of this programmed on one button press.
I really appreciate it
Nice video, well done, thanks for sharing :)
Can this be made into a wireless/Bluetooth device. And battery powered?
Does it trigger a LLHKF_INJECTED flag from windows when you send mouse clicks?
I want to use this for a control panel for games... Ill be using in for stormworks
It will have your basic push button but i also want to use circuit breakers
Hi, you didn't have any problems with the inclusion of the keyboard library? I did a little, that's why I'm asking, since it's only been a month since you posted this message ...
@@loukxo if you use the arduino leonardo then you don't need to struggle with it. You simply just type include keyboard.h
Does this work with arduino uno or esp 32
No, they use a entirely different microcontroller
I need something like this but I need it to use 18 keys from a keyboard for a custom panel. Which is best Arduino board to use?
I think you can probably use the same one as in video, but you'd need to explore making a grid- like with 12 digital inputs - wire them 6 horizontal and 6 vertical and check against pairs of pulled pins for inputs and you'd have 36 - maybe even 4x4x4 for 64 or 3x3x3x3 is a possibility for a full blown 81 inputs, but it will probably limit how many keys can be pressed at the same time - depends on application of the product you're working on.
Very good your video, congratulation!! Is possible make a codigo to press FN + F6 how example
Hi, thank you for this content. Straight to the point. A quick question: After see your video and others about using ATMega32U4 as a keyboard, still not clear to me if it need to be the one of 3.3V or the one of 5V. Could you kindly let me know the correct voltage?
Thanks in advance!
If you are going to plug it into usb, best to use the 5v version, simplifies a lot of stuff
@@SimpleElectronics Thank very much for your comment!
Hi, does it work for only windows? I want to simulate a mouse using this in linux. Is it possible?
Since Human Interface Device (HID) class devices are generic, they should work equally well in Windows, MacOS, or Linux. These all use the same standards, although some keys are labeled differently on Macs. There's nothing Windows-specific in this project.
But what I'm seeing from this code is that you cannot hold down a key. I could be wrong but if I wanted to walk using WASD I probably couldn't. I bought a metal DDR pad and the control box isn't working so i wanted to make my own JoyToKey after seeing how the pad worked.
Can the uno do it?
No you need a micro with a ATMEGA32u4
Bro can i use ot for games instead of
W
A. S D
How would I make a switch open a program on my computer ?
could use [Windows]+r command to open run, then enter the appropriate command followed by enter?
Depends on what program you want to launch. Some applications can be opened using the Application Launch keycodes as part of the USB HID standard, these include Web browser, calculator, email client. Unfortunately the library used here doesn't support the full USB HID standard which means media keys and application launch keys are not possible. You could set the keys to be something obscure like F13 - F24 and use AutoHotHey to detect and run various commands, like opening an application. Otherwise, use a different library which does have full functionality, like NicoHood's HID project.
That's nifty.
Donde te contacto ouedo pagarte ocupo ayuda con un codigo . . Ya esta funcionan peeo quiero añadir una tecla en especial y no eh podido .
How is this when compared to using QMK?
QMK probably started out as a project much like this. QMK is much more sophisticated in how it lets you define how every key behaves, but when it's running, it's doing very much the same thing.
Can you send Ctrl+Key or Middle Mouse Button + Key?
Yes! Since there are functions to call for all keyboard and mouse activities, you can certainly send codes that combine mouse and keyboard actions. The SparkFun tutorial that he based this project on (see the link in the description) gives more information about things like separate press and key actions for the keyboard, which lets you simulate holding down the Ctrl key and clicking the mouse center button, then releasing the Ctrl key.
I just knew you will press the E switch for Subscribe many many times :) - hope its an odd number of times :)
Can we do it with a Arduino Uno?
05:29.. ok ok I have subscribed! :)
Great video. Thanks 👍
Can You sent compination of Ctrl+C / Ctrl+V ;-)??
You could always try something like: Keyboard.press(KEY_LEFT_CTRL); Keyboard.write('c'); Keyboard.release(KEY_LEFT_CTRL);
Hello bro can any one tell me how to make joystick for keyboard with this plz help
If you look at the SparkFun tutorial linked in the description, which is what this project was based on, it gives an example of using an analog joystick to act as a mouse. That should be helpful.
Would this work with a Mac?
Yes, a HID keyboard is supported by both Linux, Windows and Mac.
Do I need diodes or resistors in this or could I just plug a keyswitch directly too my digital input and ground? im assuming the arduino I wanna buy has resistors built in it
That's the kind of "firmware", not the HID driver, am I right? I mean, when someone has soldered a custom keyboard, let's say, using an Arduino Nano, there is already a universal HID driver in the OS, but to make the output of the buttons correspond to symbols, you need to write a kind of "firmware", as shown in the video?
That's my understanding
thats basically the way to make a rubber ducky ^^
That's neat. If you knew a twitch streamer you could probably make a little device to fire commands and macros. verowaThink
It seems like you could also fashion a customized game controller if the latency isn't bad.
Bro would this code work on arduino uno
Oke I’m a novice but I think it should, you’d have to change the board in the menu and adjust the pins but…. It should work idk tho
The Arduino Uno's ATmega328P can't do this unless you replace the firmware/bootloader on it.
Nice, so I’m left handed, now I can build a Number Keypad which I can place on the left side of my keyboard so I don’t have to reach across to operate my keypad. Using programs such as Blender, I mouse with my right hand and type with my left hand, this will speed up the work-flow. Purchasing a dedicated left hand keyboard cost hundreds,
Thanks for the tutorial now i can make a password keyboard
Cool
I bought a nano for this project 🤦🏻♂️
which one do you need?
@@CraftyUnknown you need the Leonardo, but luckily I found a workaround to make the Nano do what I wanted. Edit: The Leonardo has HID (human interface device) capabilities that the Nano doesn’t.
i tried this kept having problems with library, spent a good hour trying to troubleshoot code to look for any mistakes, searched it turns out arduino uno does support this library, sadly it doesn't have that chip, welp that was sadly painful guess ill need to buy an arduino with that chip, lmao i thought all arduino was the same just different sizes. guess its back to aliexpress for that chip arduino hahahaha.