When you finish this tutorial you will have a working keyboard and understand how its key matrix works.
breadboard keyboard with 2 rows and 2 columns
A breadboard is the easiest way to learn keyboard electronics. Electronics are fickle, you won’t get everything right the first time, there is a learning curve. Breadboards make the learning electronics faster and fun.
Breadboard keyboards have row-column matrices and diodes just like the big keyboards. Compared to full size keyboards on PCBs, breadboard keyboards are easier to work with because:
Breadboard keyboards are useful for:
To understand the breadboard keyboard you will need to know the internal parts of a breadboard:
These are explained in How to Use a Breadboard
The parts needed to build all the Breadboard Keyboards in the keybrd tutorials are listed in breadboard_keyboard_supplies.ods.
Wire cutters (or nail clippers) is the only required tool. A multi-meter is useful for trouble shooting.
The basic breadboard has 4 switches and a microcontroller.
breadboard keyboard with 2 rows and 2 columns of keys
The key matrix has two rows and two columns. Breadboard power rails are repurposed as matrix rows. Short bare wires connect switches into matrix columns. Diodes connect switches to rows.
The green rectangle on the right is the Teensy 2.0 microcontroller. The matrix rows and columns connect to the microcontroller via jumper wires.
Breadboard keyboard assembly instructions:
Teensy 2.0 pin connections table
Pin number | Row Column |
---|---|
21 | row_0 |
20 | row_1 |
0 | col_0 |
1 | col_1 |
Follow the keybrd Library User’s Guide to set up the Arduino environment and to compile and load keybrd firmware onto the keyboard’s controller.
Now that you have built your first breadboard keyboard, you can dig in and learn how it actually works. This excellent article explains how the microcontroller, matrix, switches and diodes work together: How a Key Matrix Work
Sometimes its useful to prototype the full keyboard matrix before designing the PCB. Several breadboards can be tied together into one.