===== MIDI Keyboard ===== A 25 key Midi keyboard based on an Arduino (Atmega328P-PU). It has an small OLED Display, too.\\ ---- ==== Paper PCB ==== {{:sound_boards:midi_keyboard_03.jpg?400|}}\\ {{ :sound_boards:midi_keyboard_03.zip |}}\\ ---- ==== Code ==== The Atmega 328 on the board should be programed and used like an Arduino UNO. For burning the boot loader and uploading the code please follow the manual for the [[arduino_clones:paperduino-uno|Paperduino-UNO]]\\ {{ :other_boards:midi_keyboard_04.zip |MIDI Keyboard Code}}\\ ---- ==== MCP23017 ==== === I2C === I2C SDA SCL Arduino Uno A4 A5 === Setting the Adress === To set the I2C address of the MCP23017 one has to connect A0, A1 and A2 to GND or to power.\\ GND = 0 and +5V = 1\\ A0 A1 A2 adresse 0 0 0 0x20 0 1 0 0 0x21 1 0 1 0 0x22 2 1 1 0 0x23 3 0 0 1 0x24 4 1 0 1 0x25 5 0 1 1 0x26 6 1 1 1 0x27 7 And in the code one has to put the address in the "begin" command: mcp.begin(address); === Pulldown Resistor === Every botton is connected to +5V and at the pin to the MCP23017 it has a 10k pulldown resistor to ground.\\ IO Pin ----- Button ------- +5V | 10k | GND === Library === [[https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library|Adafruit-MCP23017-Arduino-Library]]\\ === Datasheet === [[http://ww1.microchip.com/downloads/en/DeviceDoc/21952b.pdf|MCP23017]]\\ ===Key and Pin parsing=== MCP1 Key/Note Pin Library A0 D1 0 A1 C#1 1 A2 E1 2 A3 D#1 3 A4 F1 4 A5 C1 5 A6 G1 6 A7 F#1 7 B0 A#1 8 B1 H1 9 B2 G#1 10 B3 A1 11 B4 Switch 12 B5 Octave Up 13 B6 Octave Down 14 B7 15 MCP2 Key/Note Pin Library A0 D2 0 A1 C#2 1 A2 E2 2 A3 D#2 3 A4 F2 4 A5 C2 5 A6 G2 6 A7 F#2 7 B0 A#2 8 B1 H2 9 B2 G#2 10 B3 A2 11 B4 C3 12 B5 Program Up 13 B6 Program Down 14 B7 15 ---- ==== OLED Display ==== [[https://www.smart-prototyping.com/Prototyping-Modules/Arduino/OLED-0.96inch-12864-display-module-blue.html]]\\ === Pins: === OLED Display Arduino GND: Ground GND VCC: 3.3v or 5.0V Power Supply +5V D0: CLK Pin 08 D1: MOSI Pin 07 RST: Reset Pin 06 DC: Data Command Pin 05 CS: Chip Select NC === Bit Converter === [[http://en.radzio.dxp.pl/bitmap_converter/]]\\ To convert a picture one need a 128x64 pixel, B/W, 1Bit Bitmap.\\ Settings:\\ Byte Orientation: vertical Width: 128 Hight: 64 Size Endianness: Little Pixel/Byte 8 === Example Code === [[https://www.smart-prototyping.com/image/data/2_components/Arduino/100952%20OLED%200.96inch%2012864%20display%20module%20blue/OLED.zip|OLED-Example]]\\ ---- ==== MIDI ==== === MIDI Library === Here are the links for the MIDI library for MIDI over the serial pins (TX, RX).\\ [[https://github.com/FortySevenEffects/arduino_midi_library/releases/tag/4.2|MIDI Library 4.2]]\\ === MIDI Specifications === [[http://www.midi.org/techspecs/midimessages.php]] [[http://dernulleffekt.de/midi/table1.html]]\\ [[http://dernulleffekt.de/midi/table2.html]]\\ [[http://dernulleffekt.de/midi/table3.html]]\\ [[http://dernulleffekt.de/midi/table4.html]]\\ ---- ==== Knowledge ==== === MCP23017 === [[http://www.learningaboutelectronics.com/Articles/MCP23017-IO-port-expander-circuit-with-arduino.php]]\\ [[http://www.nikolaus-lueneburg.de/2015/11/mcp23017-i2c-io-port-expander/]]\\ === OLED Display === [[http://www.instructables.com/id/How-to-use-OLED-display-arduino-module/]]\\ ---- ==== License ==== The MIDI Keyboard was designed by **Wolfgang Spahn** 2014.\\ It is licensed under a [[http://creativecommons.org/licenses/by-nc-sa/4.0/"|Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License]]. Creative Commons License ----