One-Key Keyboard Hack
by mikecraghead in Circuits > Electronics
111020 Views, 182 Favorites, 0 Comments
One-Key Keyboard Hack
Question: What do you do when your PC wants you to press F1 on boot, but you have no keyboard?
Answer: Hack together a USB dongle that does nothing but F1.
I admit that this is a silly problem and an even sillier solution, but the mind boggles at the possibilities: custom keypads for gaming, a Control+Alt+Delete "easy" button...
...any key or combination of keys can be broken out into an apparatus as keyboardy or keyboardless as you like, and used to do anything a keyboard can do!
Answer: Hack together a USB dongle that does nothing but F1.
I admit that this is a silly problem and an even sillier solution, but the mind boggles at the possibilities: custom keypads for gaming, a Control+Alt+Delete "easy" button...
...any key or combination of keys can be broken out into an apparatus as keyboardy or keyboardless as you like, and used to do anything a keyboard can do!
Why?
"Why not just fix the error, stupid?" you might ask, "These errors are there for a reason!"
Well, you are absolutely right (though calling me names was kind of mean).
The problem is, I'm building a publicly-accessible PC kiosk (mouse only, no keyboard), and the components are squeezed into a rather small space. The donor PC featured a very tall heat sink/fan that just wouldn't fit, so I had to swap it out for a smaller one. The problem: the original fan was a four-wire model that talked to the motherboard, telling it soothing things like "I'm working." The replacement one I had on hand was a two-wire fan that refused to discuss anything with the motherboard. So on startup, the bios would report a failed CPU fan, and stop at a prompt: F1 to continue, F2 to enter startup... so my kiosk would sit there waiting for someone to press F1, and would be the lamest kiosk in history.
Of course, some of the warnings that show up during startup can be turned off in the BIOS (like the "keyboard error"), but my BIOS had no option for "don't worry about the CPU fan." If I knew more about the world, I may have been able to grab the two unused wires from the CPU fan swap, and add a resistor or some other little bit of hardware that would fool the motherboard. Instead, a dim light-bulb flickered above my head, and I performed the following test:
Plug in a USB keyboard, hold down F1, start PC, keeping F1 pressed.
Results:
I watched as the error popped onto the screen, then vanished.
The OS loaded fine, the browser opened fine; no "Help" pop up... in short, no ill effects from holding down F1.
So I assumed that the OS was smart enough to accept the F1and then ignore a "stuck key," and I decided that my silly plan was worth doing.
Well, you are absolutely right (though calling me names was kind of mean).
The problem is, I'm building a publicly-accessible PC kiosk (mouse only, no keyboard), and the components are squeezed into a rather small space. The donor PC featured a very tall heat sink/fan that just wouldn't fit, so I had to swap it out for a smaller one. The problem: the original fan was a four-wire model that talked to the motherboard, telling it soothing things like "I'm working." The replacement one I had on hand was a two-wire fan that refused to discuss anything with the motherboard. So on startup, the bios would report a failed CPU fan, and stop at a prompt: F1 to continue, F2 to enter startup... so my kiosk would sit there waiting for someone to press F1, and would be the lamest kiosk in history.
Of course, some of the warnings that show up during startup can be turned off in the BIOS (like the "keyboard error"), but my BIOS had no option for "don't worry about the CPU fan." If I knew more about the world, I may have been able to grab the two unused wires from the CPU fan swap, and add a resistor or some other little bit of hardware that would fool the motherboard. Instead, a dim light-bulb flickered above my head, and I performed the following test:
Plug in a USB keyboard, hold down F1, start PC, keeping F1 pressed.
Results:
I watched as the error popped onto the screen, then vanished.
The OS loaded fine, the browser opened fine; no "Help" pop up... in short, no ill effects from holding down F1.
So I assumed that the OS was smart enough to accept the F1and then ignore a "stuck key," and I decided that my silly plan was worth doing.
What & How?
What (materials):
-Donor PC keyboard
-Screwdriver
-Soldering iron (& accessories)
-Thin permanent markers, volt meter (optional)
How:
Go read this, so you know how keyboards work:
http://pcbheaven.com/wikipages/How_Key_Matrices_Works/
And here's an 'ible by randofo that makes it even clearer
https://www.instructables.com/id/Hacking-a-USB-Keyboard/step3/A-note-on-pin-layouts-and-shift-registers/
Find a sacrificial keyboard, and pull all of the screws out of the bottom.
Carefully lift the keys away from the flexible plastic with the spaghetti tangle of circuit tracings. This will either be very simple or quite tricky, depending on how your keys are stuck into their housing: they might all lift up in one piece, or they might eagerly leap away and try to escape.
Basically there are only a few pads on a small circuit board that manage to figure out which key is being pressed because two of the pads get a signal at once. And a different combination of pads are activated for each key press. That's all there is to it!
-Donor PC keyboard
-Screwdriver
-Soldering iron (& accessories)
-Thin permanent markers, volt meter (optional)
How:
Go read this, so you know how keyboards work:
http://pcbheaven.com/wikipages/How_Key_Matrices_Works/
And here's an 'ible by randofo that makes it even clearer
https://www.instructables.com/id/Hacking-a-USB-Keyboard/step3/A-note-on-pin-layouts-and-shift-registers/
Find a sacrificial keyboard, and pull all of the screws out of the bottom.
Carefully lift the keys away from the flexible plastic with the spaghetti tangle of circuit tracings. This will either be very simple or quite tricky, depending on how your keys are stuck into their housing: they might all lift up in one piece, or they might eagerly leap away and try to escape.
Basically there are only a few pads on a small circuit board that manage to figure out which key is being pressed because two of the pads get a signal at once. And a different combination of pads are activated for each key press. That's all there is to it!
Trace, Scrape & Solder
It would be pretty difficult to figure out which pair was which, if not for the handy map provided by the two flexible matrices that live under the keys. Just find the key in question and see where it hits the matrix. Then you can trace the squiggle back to the circuit board: I recommend literally tracing, using a thin marker. A volt meter can help here. Mark the two spots where the line hits the circuit board.
Repeat as needed: If you are building a numerical keypad or custom gaming keypad, you'll have to keep it all straight: It's probably worth making a chart or some such, to keep track of where you'll be wiring up your buttons.
But in my case, all I had to do was manage to find the two connections for one key: F1.
F1 routed to the far-right pad in the first group, and the fifth one in from the left of the second group.
Once you find the contact points, you may need to scrape away a thin layer of carbon to get to bare metal that will accept solder.
For projects using multiple keys, it's a good idea to attach a post to each pad, so many wires can hit the same contact.
For this project and any other with only one key (or, just a few), solder a bit of insulated wire between the two contacts you've identified.
Optional: add a drop of hot glue for a little insurance!
Repeat as needed: If you are building a numerical keypad or custom gaming keypad, you'll have to keep it all straight: It's probably worth making a chart or some such, to keep track of where you'll be wiring up your buttons.
But in my case, all I had to do was manage to find the two connections for one key: F1.
F1 routed to the far-right pad in the first group, and the fifth one in from the left of the second group.
Once you find the contact points, you may need to scrape away a thin layer of carbon to get to bare metal that will accept solder.
For projects using multiple keys, it's a good idea to attach a post to each pad, so many wires can hit the same contact.
For this project and any other with only one key (or, just a few), solder a bit of insulated wire between the two contacts you've identified.
Optional: add a drop of hot glue for a little insurance!
Test, Deploy
Now here's the fun part: plug your apparatus into your PC, and see what it does.
In most cases you should be able to use your new device right alongside your "normal" keyboard, as long as you've got the ports (mine is USB, but a PS2 would work, too).
If the test is successful, package it up and call it complete!
I glued an F1 key to my device (from the donor keyboard, of course), and even though it will be stashed away inside my kiosk and never be seen, I like the idea that the F1 key is in there, silently advertising its silly purpose...
Thanks for reading!
Mike Craghead
In most cases you should be able to use your new device right alongside your "normal" keyboard, as long as you've got the ports (mine is USB, but a PS2 would work, too).
If the test is successful, package it up and call it complete!
I glued an F1 key to my device (from the donor keyboard, of course), and even though it will be stashed away inside my kiosk and never be seen, I like the idea that the F1 key is in there, silently advertising its silly purpose...
Thanks for reading!
Mike Craghead