Shift Register Module

A project log for Virtual Pipe Organ

A modern twist on a classic musical instrument: the Virtual MIDI pipe organ

Johan CronjeJohan Cronje 05/01/2020 at 20:390 Comments

The organ potentially has hundreds of ON/OFF switches that have to be read. For example the pedalboard alone will have 32 pedals with reed or mechanical wiper switches. If you decided to add (thumb) pistons, toe studs/pistons or stop/draw knobs, you may have many more which would require lots and lots of wiring. The way to address this, is to use shift registers that read parallel inputs but transmit them serially, in effect 8 inputs to a single output.

My approach was to make a Shift Register module PCB that contains 4 shift register chips, allowing 32 inputs to be sent via 1 output. In addition, not only can the shift register chips be daisy chained, but the modules can also be daisy chained. This allows for much simplified wiring.

On each module 32 individual switches can be read by four daisy chained 74HC165 shift registers. I went with the 74HC165 instead of the CD4021 I used previously as they handle the Teensy's 3.3V better.

As I have switches in 3 locations, I designed each module to have 32 inputs. That way a single module can handle the pedalboard, another the thumb pistons, drawstops, etc. I once again had these made at

The final PCB design:

And the finished item mounted on the pedalboard: