I'm not sure about something, can you help?

Olrynn

28 Feb 2016, 10:34

So, i'm in the process of creating a keyboard with some special keys, so i read this tutorial (workshop-f7/how-to-build-your-very-own-keyboard-firmware-t7177.html) and i see things like row,columns.
Can i only program some keys, like the ç?

tigpha

28 Feb 2016, 11:52

Hi Olrynn, welcome aboard Deskthority,

With custom firmware, I believe you can probably reprogram the entire keyboard to send any scancode for any key you choose. Your question seems to indicate that you're struggling with the concept of the keyboard matrix, and how it translates to scancodes, and the method of rearranging the layout of the keyboard.

I thought that maybe these sorts of answers might be found in the wiki, but it seems that there's no clearly signposted "Keyboard Theory" section in there. I can see topics such as "NKRO over USB", and "Rollover, blocking and ghosting" but nothing that can help someone to grok the underlying mechanical, electrical and conceptual aspects of keyboards.

Perhaps something worth contributing? (Rubs bristles on chin) Hmm... I wonder if I know enough to actually do a write-up? I'd certainly learn a great deal in doing so.

Matt_

28 Feb 2016, 13:47

tigpha wrote: I can see topics such as "NKRO over USB", and "Rollover, blocking and ghosting" but nothing that can help someone to grok the underlying mechanical, electrical and conceptual aspects of keyboards.
Komar has a great write-up on his blog about that: http://blog.komar.be/how-to-make-a-keyboard-the-matrix/

ScarletBegonias

27 Mar 2016, 12:49

Once you have the physical hardware (switches, wire and diodes) matrix established and built, you have to define that matrix in the firmware. The controller can't send the correct scan codes to the operating system, until you define which switches are connected to which controller pins. That is what matt3o is describing in this post, where he is talking about setting up the rows and columns:

workshop-f7/how-to-build-your-very-own- ... t7177.html

The rows and columns make up your firmware matrix and on your first project it should (hopefully) resemble your physical hardware, as this will minimize opportunities for confusion (your confusion - the controller will not get confused). The pins that matt3o is referencing, are the pins on the controller ... which should probably be a Teensy, since these are well documented for keyboard applications.

Unless you're using one of Hasu's PCBs, or some other well known board for which a keymap already exists, you will have to define every key on the default layer, as well as any other keys and layers that you may need. This is known as the keymap. After you have finished defining your keymap, you will need to load/program it into the controller.

Once you have a grasp of what matt3o is explaining in terms of the matrix and basic keymap, you can start here, where you'll learn how the real magic happens:

https://geekhack.org/index.php?topic=41989.0;topicseen

There is a boatload of documentation on that thread as well as on github, but you may have to read through it a couple of times before it sinks in ... I know that I did.

I hope that this helps!

Post Reply

Return to “Workshop”