These are questions I have found that are similar to mine:

  1. Arduino as full fledged keyboard controller? This is somewhat similar but it sounds like op is trying to connect an existing keyboard
  2. How to build a custom laptop computer with original chassis, keyboard, etc? OP here is wanting to make an entire laptop. I just want a small keyboard.
  3. usb keyboard with many simultaneous key presses This one seems most similar but I will probably need more simultaneous presses and they seems further along.

I don't have much info on this so their are lots of different things that need to be solved in order to make this (if keyboard will be ps2,usb,blutooth or all, firmware, case, inner electronics) Right now I'm basically interested in the inner electronics/wiring though any advice is helpful.

Info I do have on my proj

  1. I will use mx brown switches
  2. http://ergodox.org/Default.aspx I'm kind of using this as a guide. I tried to open their pcb files, but couldn't. They use a teeensy usb which would be much smaller than my arduino uno. To save space I was thinking of putting the arduino under the pcb and separating them with strong metal would this work.

Basically, I need advice on how to open others and design my own pcb and if my setup is possible.


So my kb uses layer design press one key for access to a function on another. M = modifier shift alt etc L = layer key These determine what functions are available R= regular key

  1. M
  2. M L L R R R R
  3. M L L R R R R
  4. M L R R R R


closed as unclear what you're asking by Leon Heller, Kaz, Dave Tweed, Matt Young, Phil Frost Aug 10 '13 at 3:26

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • \$\begingroup\$ Why the downvote? I understand if add need to change, but tell me what I should change please \$\endgroup\$ – fozbstuios Aug 8 '13 at 17:37
  • \$\begingroup\$ I have some questions: what parameter determines what keyboard interface (usb, bt, etc.) you want to use (i.e. the easiest one? The most robust one?)? Also, how low level with this protocol do you want to go? I personally, like to support protocols at HW level if they're simple enough. \$\endgroup\$ – Nick Williams Aug 8 '13 at 18:12
  • \$\begingroup\$ @NickWilliams Whichever is easiest and whatever you suggest for protocol \$\endgroup\$ – fozbstuios Aug 8 '13 at 18:29

You mentioned you are simply looking for the easiest method. The awesome thing about Arduino is its Open Source nature; so naturally anything you think of, someone probably has already constructed. Anyway, if you just Google: "keyboard library for Arduino", the first hit looks as though this is a library that essentially trivializes the difficulty in your project:


However, I'm unsure of the HW set up in this (i.e. does this connect solely through USB? Or perhaps you require a shield?). I'll leave that research up to you.

There is also the question of how you will detect all those key presses on a keyboard. You mention "making a keyboard", so I assume this HW will be constructed by you. You'll have roughly 60 (I'm guessing) buttons to keep track of. In this case, you should use a Key Matrix. Here's an article for research on this:


  • \$\begingroup\$ Wouldn't I need some sort of shield even if its just USB ( arduino uses different USB type than a kb). Also if you mean how many physical keys then its 23. If you mean how many keyboard functions, the same amount as a normal kb. I have a picture of the layout but can't post it. Any ideas on how to open/create pcb's \$\endgroup\$ – fozbstuios Aug 8 '13 at 19:12
  • \$\begingroup\$ Granted, Arduino has a Type-B receptacle and keyboards generally have a Type-A receptacle; but they are no different (to my knowledge) in functionality. The article mentions no additional shield, give it a shot. \$\endgroup\$ – Nick Williams Aug 8 '13 at 19:19
  • \$\begingroup\$ There are design environments such as EAGLE, where you can build PCBs. Lots of info online for this. \$\endgroup\$ – Nick Williams Aug 8 '13 at 19:22
  • \$\begingroup\$ Ok. Thanks for your help. I have one last question(I promise)! This will be hard todo with out posting a pic but I' ll try. See update. \$\endgroup\$ – fozbstuios Aug 8 '13 at 19:27
  • \$\begingroup\$ That didn't work. Darn! \$\endgroup\$ – fozbstuios Aug 8 '13 at 19:38

You'll need an "Arduino" variant / clone that has Host USB support.

  • \$\begingroup\$ Ok. Thanks, but what about the pcb above the arduino and open and editing one. \$\endgroup\$ – fozbstuios Aug 8 '13 at 17:46
  • \$\begingroup\$ Also, why do you think I was downvoted? \$\endgroup\$ – fozbstuios Aug 8 '13 at 17:47

Not the answer you're looking for? Browse other questions tagged or ask your own question.