## Cybedeck CD1
**Electrical engineering / Hardware**
Keyboards are ubiquitous in our everyday life. As
a computer keyboard, at ATMs, digitally on our smartphone
and tablet or when we use our calculator. But if we take
a closer look at the technology and functionality of a
keyboard, we quickly get into a stutter. We have to work
[keyboard matrix](https://www.dribin.org/dave/keyboard/one_html/), learn what a
is and how ghosting (see Dribin, 2000) can
disrupt our development. In this section we will create a
simple keyboard that will serve as a module for our single
board computer keyboard. This should be created without a
controller, since this is implemented in a different
Although the project can also be implemented without the
in-house development of a computer keyboard, this means that
you learn less about the technology you use. Putting a
[Teensy](https://www.pjrc.com/teensy/) on a few
leads to quick results but is more important for
hobby development. At the beginning we will also use external
modules ([keyboard controller](https://runawaybrainz.blogspot.com/2012/01/hack-reverse-engineer-and-re-purpose.html)),
but in the course of time we will gradually
rebuild and replace them, even if we may have to do without
convenient additional functions as a result. No mechanical
buttons have been used, as they have no reasonable
price/performance ratio (€8.30/pc.).
The task can be described in a few points. The keyboard
must be designed so that it can be integrated as a module
into existing projects. It must therefore have sufficient
hardware interfaces that can also be used universally. Different
standards should be waived as best as possible. The keyboard
must be developed cost-effectively, since it is only a
prototype in the development stage and should progress as
quickly as possible in the development process. Since the
prototype is a functional object, it must be manufactured
with sufficient stability, design must be dispensed with
and, if at all, it should be functional.
In order to implement our project sensibly, we do not
need much information material. How a keyboard generally
works is completely sufficient. Once you have worked out
the theoretical concept, the implementation in practice is
only the execution of individual steps. A good book for
[MAKE: Electronics: Learning Through Discovery"](https://www.goodreads.com/book/show/6945716-make), which
was used as a source in the project documentation.
The keyboard shown above is a typical generic brand
product from a wholesaler in China and was used for
research. On the solder side you can see the traces for
a board with a single layer. This information will be
included in the project later on and partially copied.
Below another keyboard ordered to examine the two-contact
As material we need at least 100 mini push buttons,
thin cable for the connections between the push buttons.
A large breadboard on which all components have to fit.
Pin headers (4x10). A keyboard controller with USB port,
or the whole keyboard. One should take an old one, because
the leftovers are no longer usable without the controller.
There are also PS/2 connectors, but we will not use
them here. Several breadboards and at least 200 connector
In order to become familiar with the subject, some
were worked through and implemented. The keyboard controller
was connected to the computer via USB and the signals were
read out via command line. With the theoretical material
the concept of the keyboard matrix could be better understood.
We build the circuit series by series. Two connector
cables must always terminate on one push-button. Since
each keyboard controller has been programmed differently,
I cannot give an exact description of how to connect
the cables here. Simply plug a cable into the first contact
of the controller and connect it to the print button. Now
take a second cable and connect it to the second contact
of the controller. Press the push button once and see what
happens in the command line. If nothing happens, you go
one contact to the right. If a letter (or number) appears,
write it down and go to the next button. So you try them
all until you have at least the numbers from 0-9 and the
complete alphabet together.
After testing the first board, the keyboard was designed
as it will be used in the later design. The soldering and
component side and individual fixtures are shown below. As
you can see from the image material, the connections on
the trace are kept as simple as possible, so that it is still
logically traceable after days. I have soldered on two female
pinheaders which are not necessary, but can be an advantage
especially in the development. As a rule, it is better to
create as many slots as possible.
After completion of the keyboard, the controller is
implemented in the next step to develop a communication between
input device and computer. The focus will be on the next
section of the microcontroller, which ultimately turns passive
hardware into a finished input device. A further optimization
of the keyboard is also aimed for.