5.1 Keyboard emulator
Almost all commands for operating an aircraft within the Microsoft Flight Simulator
can be given by means of the keyboard. As an user you can assign keys to specific
functions and configure the keyboard as you like. This is an interesting starting
point for the handling of switches for a flight simulator cockpit. There are devices
that based on setting a switch simulate keyboard input, they are called keyboard
emulators. They can be bought off the shelf or be home made. In the remainder of
this section examples will be given.
5.1.1 Special issues
Various types of switches can be used. In section 6 a more detailed explanation about
the various types of switches is given. At this stage it sufficient to acknowledge
that in general rotary encoders require special handling.
When using a keyboard emulator there are some special areas of attention:
- Most keyboard emulators can be used in addition to the default keyboard connected
to the Game PC. Either by using some sort of keyboard splitter for PS/2 keyboards,
or by using USB based keyboards which often allow the use of more than one keyboard.
- A normal switch (on/off) generates a continues current when switched to "on". Not
all keyboard emulators are able to cope with this. They will think that the key stays
"pressed". This will generate errors and/or result in strange behavior. When using
such a keyboard emulator this can be overcome by using only switches that make contact
when pressed. But if one wants to use real switches (e.g. toggle switches) for a
greater sense of realism special attention has to be given to the way the keyboard
emulator handles this issue.
- A similar point is the handling of multiple key strokes, i.e. 1 command is translated
into a sequence of key strokes. The issue here is that a switch typically gives only
one signal (on/off) while more keystrokes are needed. If one wants to assign switches
to commands that are issued by multiple key strokes, special attention has to be
given to the way the keyboard emulator handles this issue. Although a bit technical
at this point: some keyboard encoders work with a matrix input. This approach may
lead to "keyboard ghosting" an effect that appears when pushing several keys at once
and that produces a "ghost key" that wasn't in fact pressed. There are workarounds
for this problem, search for "keyboard ghosting" at Google for more information.
5.1.2 Off the shelf standard keyboard encoders
A very popular solution is the KE72 Encoder Module (Hagstrom Electronics), it features
72 individual inputs. Each input may be programmed to output a single keystroke,
or a sequence (macro) of keystrokes. For macros, each input may generate up to 32
keystrokes when activated, and up to 16 keystrokes when the input is released. The
KE72 is able to emulate any keystroke found on a normal 101 or 104 key keyboard.
One can use any type of switch that produces a contact closure. The KE72 can accept
inputs from push button switches or toggle switches. The inputs may be programmed
to send a response when the input is activated, when it is de-activated, or both.
In addition to "dry" contact closures, connection to 5V CMOS or TTL circuits is also
possible. The KE72 considers a low level as an active input. The KE72 can also be
addressed by means of the serial (RS-232) port. An other very interesting device
Hagstrom Electronics is offering is the KEAD6 to interface potentiometers. The board
has six input channels. Key strokes are produced when the potentiometer's signal
is increasing or decreasing. It is also possible to divide an input channel into
a number of programmable divisions ranging from 2 sections up to 32 sections. Each
of these sections can be assigned a keystroke which is generated when the potentiometer's
signal reaches that section. For the handling of mechanical and/or optical rotary
encoders Hagstrom Electronics is offering the Rotary-5 module. It converts signals
from mechanical and/or optical rotary encoders to logic level output pulses. These
output pulses are suitable for driving keyboard encoder inputs such as those found
on the KE72 Keyboard Encoder. (See for possible alternatives for potentiometers and
rotary encoders the paragraph on rotary pulse switches in section 6.)
An other example of the broad range of keyboard emulation products is VIP (Vetra
systems). Besides the more standard keyboard emulation, they offer for instance the
VIP-335 Protocol Converter that allows RS-232 data to be fed directly into a PC’s
keyboard port. Also a standard keyboard can be connected and its output will be merged
with the RS-232 data stream.
X-keys Keyboard Matrix Control Board (PI Engineering) is available in both a PS/2
and USB variant that supports 128 keys. Each key can be allocated to 3 characters
and a (shared) pool of over 500 additional keystrokes is available.
Also in the world of arcade games keyboard encoders are popular, an example is the
I-PAC from Ultimarc.
5.1.3 Self made keyboard encoders
When searching on the Internet you will find examples of people who built there own
keyboard encoders. Some based on the use of a micro controller, others based on modifying
an existing keyboard. Robert Prather (777Project) shows an interesting tutorial on
modifying existing keyboards in the perspective of building a flight simulator cockpit.
A detailed description is given on how to modify an existing keyboard including all
the details one has to consider.
An other area that shows detailed interest in this subject is the area of arcade
game builders. The site ArcadeControls is a very useful source of information and
a starting point for an interesting quest.