This keyboard encoder is capable of encoding any number of momentary action, push to make, single pole single throw (SPST), switches from 1 up to 72 to produce the equivalent MIDI note-on/note-off data commands. The keys are arranged in an 8 x 9 (72 keys) matrix.
The 72 note range is from C1 (MIDI Number 24) to B6 (MIDI Number 95). The MIDI Channel is preset to MIDI Channel 1 and the velocity byte is preset to 100. However other values for the MIDI Channel, velocity and the note range can be pre-programmed into the firmware on request. The encoded switches are wired via IN4148 diodes.
This unit can be connected to new keyboards or it can be used with an older non-MIDI keyboard by using magnetic/reed switches, or Hall Effect devices, to isolate the old and new scanning circuits. This will allow the older keyboard synthesizer to continue to operate as normal while also providing a MIDI output.
This unit can work in standard MIDI mode and via the USB connection, at the same time. It defaults to standard MIDI Baud rate of 31250. By replacing the original firmware on Mega8u2/16U2, the Arduino will act as USB-MIDI device (Standard Midi Class), you do not need to install additional device drivers on Windows, MaxOSX, and Linux, as the firmware acts as a device of Standard Midi Class. It will automatically install on the system as an Audio USB Device.MIDI Keyboard Wiring:
The switches are organized in a 8 x 9 matrix (72 switches) arrangement. Switches and diodes 0, 6 and 7 are shown but the circuit is also wired in a loop to switches and diodes 1 2,3,4 and 5. Also the other sides of these switches/diodes are connected down to Arduino contacts D2 to D9.
So, for example, terminal connected to D10 is wired to one side of the 8 key switches SW 0 to SW7 and the wire can be looped from one key switch to the next.
Each of the other side of these switches SW0 to SW7 is wired to a diode on the Cathode (K) side (end of diode with stripe).
The other side of each of these diodes is looped to 7 other diodes. For example Anode (A) of diode DO is looped to D8 then to D16 then to D24 etc. down to D64 and finally to digital terminal D2 on the Arduino.
The rest of the wiring is done in a similar manner.Power Supply:
External power can come either from an AC-to-DC adapter or battery. The adapter can be connected by plugging a 2.1mm center-positive plug into the board's power jack.
The board can operate on an external supply of 7 to 20 volts. If supplied with less than 7V, however, the 5V pin may supply less than five volts and the board may be unstable. If using more than 12V, the voltage regulator may overheat and damage the board. The recommended range is 7 to 12 volts.