MIDI Chord Button Keyboard Using PIC18F4620 part 3
The following table documents the connecting leads and molex pin-header numbers tying the various interfaces together.
|Header||Pin no.||Signal/Function||Direction||Header||Pin no.||Signal/Function|
|Chord Controller-SV1||1||RD7||——>||Matrix Decoder-SV4||1||Chord Sel. C|
|Chord Controller-SV1||2||RD6||——>||Matrix Decoder-SV4||2||Chord Sel. B|
|Chord Controller-SV1||3||RD5||——>||Matrix Decoder-SV4||3||Chord Sel. A|
|Chord Controller-SV1||4||RD4||——>||Matrix Decoder-SV4||4||Note Sel. E|
|Chord Controller-SV2||1||RD3||——>||Matrix Decoder-SV1||1||Note Sel. D|
|Chord Controller-SV2||2||RD2||——>||Matrix Decoder-SV1||2||Note Sel. C|
|Chord Controller-SV2||3||RD1||——>||Matrix Decoder-SV1||3||Note Sel. B|
|Chord Controller-SV2||4||RD0||——>||Matrix Decoder-SV1||4||Note Sel. A|
|Chord Controller-SV4||1||+5v||——>||Matrix Decoder-SV7||1||+5v|
|Chord Controller-SV4||2||N/C||Matrix Decoder-SV7||3||W (KEYDOWN)|
|Chord Controller-SV4||3||RB1||<——||Matrix Decoder-SV7||2||Y (/KEYDOWN)|
|Chord Controller-SV4||4||GND||——>||Matrix Decoder-SV7||4||GND|
|Chord Controller-SV3||1||RC2||<——||Keypad-X1||6||In S3, 7, 11, 15|
|Chord Controller-SV3||2||RC1||<——||Keypad-X1||7||In S2, 6, 10, 14|
|Chord Controller-SV3||3||RC0||<——||Keypad-X1||8||In S1, 5, 9, 13|
|Chord Controller-SV3||4||RE2||<——||Keypad-X1||5||In S4, 8, 12, 16|
|Chord Controller-SV8||3||RB4||——>||Keypad-X1||1||Out S13-S16|
|Chord Controller-SV8||4||RB5||——>||Keypad-X1||2||Out S9-S12|
|Chord Controller-SV8||5||RB6||——>||Keypad-X1||3||Out S5-S8|
|Chord Controller-SV8||6||RB7||——>||Keypad-X1||4||Out S1-S4|
|Chord Controller-SV9||1||TX/RC6 (via 220R)||——>||DIN SOCKET||5||MIDI-OUT|
|Chord Controller-SV9||2||GND||——>||DIN SOCKET||SCR||Screen|
|Chord Controller-SV9||3||+5v (via 220R)||——>||DIN SOCKET||4||MIDI-OUT|
|Chord Controller-SV10||1||+5v||——>||Volume Pot||LH Tag||Top|
|Chord Controller-SV10||2||AN5||<——||Volume Pot||Middle Tag||Slider|
|Chord Controller-SV10||3||GND||——>||Volume Pot||RH Tag||GND|
|Chord Controller-SV11||1||+5v||——>||Pitch-wheel Pot||LH Tag||Top|
|Chord Controller-SV11||2||AN6||<——||Pitch-wheel Pot||Middle Tag||Slider|
|Chord Controller-SV11||3||GND||——>||Pitch-wheel Pot||RH Tag||GND|
|Chord Controller-SV7||1||GND||——>||FTDI-USB RS232-TTL||1||GND|
|Chord Controller-SV7||4||RX/RC7||<——||FTDI-USB RS232-TTL||4||(PC) TX|
|Chord Controller-SV7||5||TX/RC6||——>||FTDI-USB RS232-TTL||5||(PC) RX|
Other connectors are documented on the schematic.
Note that I used a 10K Lin pot for the pitch wheel and 10K log for the volume pot. Although these values are a little on the high side for efficient analog conversion, in practise they work fine.
I had originally intended to build the key matrix on a printed circuit board, and this would still be the preferred solution. Two thing deterred me. First, placement of the 6X6mm TACT switches on the PCB using the default outlines supplied in Eagle would have meant a longer keyboard than I wanted, and secondly, My Eagle license only allows Eurocard size boards – meaning there would be 3 boards to join together for the matrix. These two factors represented enough reason to look for another solution. I finally plumped for a single longish piece of matrix board. This allowed the key matrix to have the desired spacing – I fore-shortened the distance between each tag on the switches to 0.2 inches by straightening these close to the body of the switch, which then allowed a switch-to-switch pitch of 0.6 inches.
In solving one problem however, I created another. Mounting the finished board proved fiddly and difficult, and a solution using nylon nuts and bolts had to be adopted – you have been warned!
I terminated the matrix with 2 IDC headers – one 10-way and the other 20-way. Because my finished matrix was hand-wired, I haven’t given connection details for this, and you should refer to the matrix decoder schematic for connection details.
I’ve included a suggested matrix schematic in with the main Eagle project files, should you wish to augment this. A snapshot of this is given below:
Chord Shift Switch
I made provision for plugging in a foot-switch, but as the floor in front of me is rather busy when I’m playing, also provided a handy switch bar on the unit. It is crude but effective, and I’ll briefly describe it here.
A piece of 4mm (0.196 inch) diameter bright drawn mild steel was bent at 90deg each end so to form a bar 305mm (12 inch) long, with two short arms projecting roughly 40mm (~1.5inch) and 50mm. (2 inch) A thread was cut on each arm (I used M4), so that when the bar is placed through two locating holes on the front of the keyboard cabinet, and a washer and nut are threaded onto each arm, the shift bar is approximately 20mm from the keyboard cabinet front. (0.75inch)
Two small metal plates (I used Meccano) are fixed over the two holes on the cabinet front, and 2 collets (4mm) are fixed on each of the shift bar’s arms, which are then pushed into place in the cabinet.
For more detail: MIDI Chord Button Keyboard Using PIC18F4620 part 3
We recommend EasyEDA for electronic circuit design.
From Schematic Drawing to PCB Production, Just Need One Tool
Cheap PCB Prototype: 10 pcs 2 layers only $10, quick delivery, 100% E-test
Current Project / Post can also be found using:
- pic mp3 player
- Pic sound