MIDI Chord Button Keyboard Using PIC18F4620 part 3

Connections
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-X3 1 /MCLR <β€”β€” Keypad-X2 1 RESET
Chord Controller-SV6 1 RC3 β€”β€”> Keypad-X2 2 LED1
Chord Controller-SV6 2 RC4 β€”β€”> Keypad-X2 3 LED2
Chord Controller-SV6 3 RC5 β€”β€”> Keypad-X2 4 LED3
Chord Controller-SV6 4 GND β€”β€”> Keypad-X2 5 GND
Chord Controller-SV6 5 +5v β€”β€”> Keypad-X2 6 +5v
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.

Chord Button Keyboard Shift Bar

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

About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:
LinkedinTwitter