top of page

Making Your Own Keyboard

Programming and Software

Programming you keyboard is a two part process. First you will need to make a Hex file. The Hex will be the program that tells your micro-controller where the locations of the columns and rows are as well as what to input to the computer when keys are pressed. Inputs can be anything from single letters to opening programs to long strings of text. The second part will be flashing the Hex file onto the micro-controller. This is the process of taking the Hex file from your computer and programming it on to the micro-controller. For programming keyboards, I prefer to use QMK. QMK allows for a near unlimited amount of macros, has led and rgb support, and has many more features that TMK does not have. 

​

If you would like to learn how to make a Hex file from scratch check out these sites.

http://qmk.fm/

https://deskthority.net/workshop-f7/how-to-build-your-very-own-keyboard-firmware-t7177.html

Here are the two tools I use to make a Hex file in QMK and TMK.

qmk.sized.io

kb.sized.io

​

Importing and Wiring

In this tutorial we will be making a QMK Hex file using qmk.sized.io on a Pro Micro. Head on over to qmk.sized.io and import your Raw Data from Keyboard-Layout-Editor. From here you will see an outline of your keyboard and wired connections (Red being the rows of diodes and Black being the columns of wire). Click flip to see the wiring the way it's most likely oriented in front of you as you do this. You should have followed the wiring diagram from this site already, but if you need to adjust any of the columns, click the switch box and use the arrows further down the page to move it's column or row position.  

Pins

Once the columns and row are identical go ahead and move on to the PINS tab and input where each column and row was wired into the micro controller. Please note that the pinouts on the site are Teensy 2.0 ports. If you used a pro micro, you will have to cross reference them using this diagram. Always double check your column/row to port combinations because errors here will not allow your keyboard to operate properly. 

Keymap

After your pins are set up, you can now make up your Keymap. Uncheck the Flip section so the keys will face you again.This is the fun part where you can customize what each key will do. In order to change a function of a key, click on the key and you will see it appear under "Configure the selected key" (lower in the page). Click on the box and choose from many of the options under all the tabs. Repeat on all the keys that you want to change and adjust in your initial layer.  Make sure you leave some room for LT(layer keys) if you plan on having function layers. If you need more than one layer, you can modify additional layers as well by changing "Select a layer to modify."

 

Notable Functions

LT() which will make the key take you to a layer of your choosing. 

MO() will execute a macro that you chose.

Use TRNS on keys that have no use within layers , it will make a key transparent. 

bottom of page