CGS keyboard scanner sub-module

Jump to navigation Jump to search

CGS25 the CGS keyboard scanner sub-module module is intended for use in conjunction with the parallel port adapter and a PC. It allows the PC to scan the synthesizer keyboard to which it is connected, then to drive DCOs or VCOs via D/A Converters. It essentially contains the required parts to scan 32 keys, so two or more will be required for larger keyboards.

As shown in the diagrams, it is wired so each group of 8 keys is accessed via an external select line, though a little cutting and jumpering using the alternate select lines of the 74LS138s, the keys can be selected as groups of 16 as is required by the parallel port adapter.

Alternately, the enthusiastic may choose to connect these to a dedicated microcomputer such as the z80 based TEC-1 or other similar small systems, in which case the select lines would probably be used as is, or in conjunction with an additional 74LS138.

A little on how it works

The schematic of the Keyboard Scanner. Click for a larger version

For a general description of how it works, please see the parallel port adapter.


The component overlay. Connections can be determined from the circuit diagram.

Before you start assembly, check the board for etching faults. Look for any shorts between tracks, or open circuits due to over etching. Take this opportunity to sand the edges of the board if needed, removing any splinters or rough edges.

When you are happy with the printed circuit board, construction can proceed as normal, starting with the links first, followed by the diodes, the IC sockets if used, then moving onto the taller components.

Take particular care with the orientation of the polarized components such as the electrolytics and ICs.

When inserting the ICs in their sockets, if used, take care not to accidentally bend any of the pins under the chip. Also, make sure the notch on the chip is aligned with the notch marked on the PCB overlay. Note that sockets introduce a point for future failure. I only use sockets when I expect to try several ICs for test purposes.

As mentioned, you may wish to modify the board to add a fourth address line.

  • On the first and third chips, isolate pin 5 (E2 active LOW enable pin). You will need to jumper the 0V line around the cuts in the tracks
  • On the second and fourth chips, isolate pin 6 (E3 active HIGH enable pin). Do this by cutting the track between pin 16 of the chip and the large unused pad.
  • Join all of the isolated pins together, i.e. chip 1, pin 5 joins to chip 2, pin 6 joins to chip 3, pin 5 joins to chip 4, pin 6. If you are using more than one scanner PCB, continue this right through the remainder of the boards. This new set of connections are A3, the fourth address line.
  • New select lines are made by joining the E1 active LOW enable pins in pairs, i.e. the pad marked E0 is connected to the pad marked E1, and these form the new E0 select line. The pad marked E2 is connected to the pad marked E3, and these form the new E1 select line, and so on across the remainder of the PCBs.


If we consider each set of contacts on the keyboard as a switch, we will find that we have at least one isolated contact per key, that makes contact when the key is pressed. This is what we wire each corresponding diode to. KEY00 goes to the contact for the lowest note, KEY01 to the second lowest and so on. Note that these are not marked on the PCB. Ideally, the contact you will be wiring to is the center contact of a single pole double throw switch arrangement. When pressed, this contact will touch a second normally open contact. These normally open contacts need to be wired together right across the length of the keyboard. In many cases this will already be done for you in the form of a keying bus. This bus is then connected to an input on the parallel port so that it can be read. If your keyboard has a second, normally closed contact, these can be connected together to form a second bus, assuming they aren't already wired this way. This bus is then connected to a second input on the parallel port so that it can be read. Theoretically, this second bus would give us the opportunity to read keyboard velocity, dependent on the scanning frequency.


  • The first run of the PCB mistakenly labels the A2 address line as A3. It is indeed A2.
  • If your keyboard uses individual key-switches instead of buses, it would be possible to wire the scanner as a matrix - i.e. the 1st and 33rd keys would both be connected to the first output of the first 74LS138. It is important to note that only the 1st would actually connect to KEY00. A second diode would need to be added between the 33rd key and pin 15 if the 74LS138 to maintain isolation, and so on for the remainder of the keys. The bus spanning keys 00 to 31 would then go to one input on the parallel port while the bus spanning keys 32 to 63 would then go to a second input on the parallel port.
  • Being a TTL based digital circuit this board requires 5 volts.

Parts list

This is a guide only. Parts needed will vary with individual constructor's needs.

Part Quantity
100n 4
1N4148 32
74LS138, 74HC138 etc 4
cgs25 PCB 1


  • Fast 74xxxx CMOS chips with the same pin configuration can be used in the circuit.


Readers are permitted to construct these circuits for their own personal use only. Ken Stone retains all rights to his work.

See also


External links