CGS keyboard scanner sub-module

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


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

Construction
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.

Wiring
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.

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