Basis 108 Keyboard De-Bounce Kit Schematics
BUGS swap disk 2.3

This file consists of a schematic for the keyboard de-Bounce kits available for the various versions of the Basis 108. Try to print the schematic part of this on a single sheet of paper -it's a lot easier to read that way.

This schematic is made up of ASCII characters (that's all you get in CP/M!) so please bear with it. As shown, the kit consists of several integrated circuts (ICs) which are all mounted on a small printed circut board (PCB.) This PCB is then plugged into your keyboard PCB -in place of the IC that is mounted directly above the Function key "F7". Please see other articles relating to this because you must first figure out which keyboard you have. This determines which de-Bounce kit to use.

Good Luck!

Jim Gabel

 ----------------
|J1-16  | J1-16  |----------i--------i-----------> Vcc
|-------|--------|
|J1-8   | J1-8   |----------i--------i--------------,
|-------|--------|   4    __|_8______|_16____      _|_
|J1-13  | J1-14  |------>|                   |      Z
|-------|--------|   3   |                   |
|J1-14  | J1-3   |------>|                Y  |- 5                Vcc
|-------|--------|   2   |                   |                    ^
|J1-15  | J1-2   |------>|                   |                    |
|-------|--------|   1   |       IC1         |                    |
|J1-12  | J1-1   |------>|                   |                    X
|-------|--------|  15   |                   |                    X  R3
|J1-1   | J1-15  |------>|                   |                    X
|-------|--------|  14   |                   |                    |
|J1-5   | J1-14  |------>|                   |                    |
|-------|--------|  13   |                   |    R1     /--wwww--|------,
|J1-2   | J1-13  |------>|                   |---wwww---K         |      |
|-------|--------|  12   |  A     B     C    |           V__,     = C1   |
|J1-4   | J1-12  |------>|___________________|         Q1  _|_    |      |
|-------|--------|          ^     ^     ^                   Z    _|_     |
|J1-11  | J1-11  |----------|     |     |                         Z      |
|-------|--------|                |     |                                |
|J1-10  | J1-10  |----------------|     |                                |
|-------|--------|                      |                                |
|J1-9   | J1-9   |----------------------|                                |
|-------|--------|                ______            ______               |
|-------|--------|               /      |__ 5   3  /      |__ 1          |
|J1-3   | J1-5   |<-------------<   %   |__|-----o<   %   |__|-----------,
|-------|--------|               \______|   6      \______|   2
|-------|--------|                                                   Vcc
|Rev A2 | Rev A1 |                          IC2                      ^
|analog | digital|               ______               ______         |
                           10   /      |---:z 8   11 /      |--, 13  |
			    --o<   %   |         --o<   %   |  |-----,
			        \______|---:z 9      \______|--, 12
				
 ------------------------------------------------------------------------
| Part |  Type         |  Name           | Symbol    |                   |
|------|---------------|-----------------|-----------|   Basis 108       |
| IC1  | 74LSIS1 74151 | Daten Selector  | IC1       |-------------------|
| IC2  | 4093B         | Scmitt Trigger  |     (%:   | Taster -          |
| Q1   | BC550B        | si - npn        |  K        | Enlprellung       |
| C1   | 10 uf, 100v   | Folien-C        |   V =     |-------------------|
| C2   | 47 uf, 100v   | Keramik-C       |     =     | Rev. A1 (digital) |
| R1   | 10Kohms       | 0.1w            |--wwww-- | |-------------------|
| R2   | 100 ohms      | 0.1w            |--wwww-- X | Rev. A2 (analog)  |
| R3   | 680Kohms      | 0.1w            |         X |-------------------|
| J1   | Wrap Socket   | 16 pin          | J1      | | Drawing Poked by: |
|      |               |                 | _|_ --:z  |  James H. Gabel   |
|      | Ground Points |                 |  Z        |   May 4, 1985     |
 ------------------------------------------------------------------------


Below is a schematic of an alternative way of de-bouncing any Rev. 3 (black keytops) keyboard.

Note that to reproduce this on paper, your printer must print the standard ASCII character set. Some daisy wheels on some letter-quality printers do not have the vertical bar, back-slash, or greater-than signs. Instead, you might get cents signs, British currency pounds, copyright circle-C, fully formed single character fractions such as 1/2 or 3/4, etc. For example, the daisy wheel supplied with my Brother HR-15 called Prestige 1012 produces standard ASCII. Some additional wheels that I bought are classified as "Word Processing Fonts" and have additional characters listed above instead of normal ASCII. Matrix printers normally print standard ASCII.

           ___
        1 |   \  2
     |----|    >o---|    Any
     |    |___/     |    Gen Purpose
     |              |    Silicon Diode
     |     ___      |                      ___
     |  3 |   \  4  |    |\ |           9 |   \  8
-----|----|    >o---|    | >|-------------|    >o-- To Pin 6 of the
From |    |___/     |    |/ |   |     |   |___/     8048 Microprocessor.
IC-3 |              |           x     |             (Interrupt In)
     |     ___      |      680K x     _ .01uF
     |  5 |   \  6  |           x     _
     |----|    >o---|           |     |
          |___/                 |     |
	                      ----- -----
			       ---   ---
			        -     -

         ___
     11 |   \  12              Pin 6 +5 Volts
   |----|    >o--              Pin 8 Ground
   |    |___/
   |
   |                           All gates are part of a
   |     ___                   74C14 or 4584 CMOS hex
   | 13 |   \  14              Schmitt Trigger
   |----|    >o--
   |    |___/
   |
   |
 -----
  ---
   -

After studying the schematics for the "official" Basis keyboard de-Bouncer provided by Jim Gabel on the BUGS swap disk 2.3, I determined the following: The only difference between the "analog" and "digital" keyboards is the IC originally in the socket at IC3. The analog keyboard has a CMOS 4051 analog multiplexer; the digital keyboard has a TTL 74LS151 muliplexer. The function of the keyboard's 8048 microprocessor whenever a key is pressed.

Unfortunately, the logic is so fast that if the key contacts bounce, several pulses will be generated and the processor will think that several keys have been pressed. The fix consists of inserting a pulse stretcher between IC3 and the processor's pin 6 that causes several short pulses to be smeared into one slightly longer one.

The "official" Basis fix is installed by removing IC3 from the keyboard's PCB and connecting an additional small circut board to it's empty socket.

This board contains the original IC plus some additional part to implement the pulse stretcher.

The value of C1 in Gabel's rendition of the schematic is off by a factor of 1000! I suspect he got tripped up on the European usage of "nanofarads" as well as "micro" and "pico" farads. A nano-something is 1/1000 of a micro-something. Thus C1 is 10 nano-farads, or .01 micro-farads, not 10uF (micro-farads) as shown. If you do use 10uf for C1, the keyboard will be so well de-bounced that you will only be able to type 1 character every 2 seconds!

My fix consists of leaving the original IC3, regardless of type, in place.

Good Luck,

Clay Walker
<!-- BBClone v 0.33.5p3 OK: counter file is working -->

<!-- BBClone v 0.33.5p3 OK: access file is working -->
