Harmonicade
Project Code, CAD Files, and Build Guide
Harmonicade - An add-on 5.5 octave button deck for the Melodicade isomorphic MIDI keyboard.
Design started:
December 2020
Build completed:
December 2020
Goals of this project:
Improve upon the clumsy 3-piece design and lack of user feedback offered by the original standalone Harmonicade instrument.
Build in a way that allows construction without access to (or the desire to use) a large volume 3D printer for parts. To that end:
The case walls, decks and panels are fastened together with wood screws rather than being printed in place.
Case walls share the same width/height dimensions and could easily be swapped with 1/2" x 3" (13mm x 64mm) hobby board.
Button decks and bottom panels could be constructed using flat 1/8" (3mm) wood project panels/acrylic sheets and a laser cutter/CNC machine (or some careful drill work with a step bit).
Notes:
After the completion of Melodicade version 4 (current), my original two-deck-plus-a-control-box Harmonicade project collected dust on a shelf for months. I've found that I vastly prefer to spend my time playing these instruments with them in my lap, not on a table, and the flimsy connection between the button and control decks on the original instrument was really unsuitable for this. It is still nice to have the option for two handed play when desired, but the lack of an LCD for visual feedback, and the clumsy control button layout of the original instrument were also off-putting, and made playing more frustrating than fun.
It occurred to me that it would only require a few hours work to print a new case wall, solder a DB25 connector and make a few code changes, and these decks could easily dock with the Melodicade. This would allow for the option of two handed play, while also retaining solo portability, and as a bonus reuse the majority of my existing work. I made a few small tweaks to the original CAD design to make things more sensible for new builds (repositioning screws and removing the useless magnets), and here is the result.
Arduino Sketch:
Tinkercad Model:
Thingiverse STL Files:
Note: This will require a 3D printer with a 300mm2 or larger build plate, such as the Creality CR-10.
Shopping list used for this build:
Note: In total, parts cost approximately $400 USD for this project (mostly from the Sanwa buttons), as built in 2020. Actual cost is more like $300 if intending to use all of the remaining parts that can only be purchased in larger spools, kits or multi-packs.
Buttons:
https://paradisearcadeshop.com/home/controls/buttons/sanwa/357-sanwa-obsf-series
Note buttons:
56 x Sanwa OBSF-24 Blue
48 x Sanwa OBSF-24 White
Wirng:
https://www.amazon.com/gp/product/B010T5Y6PU
1 x Spool 22 AWG Gauge Solid Hook-Up Wire - Black
https://www.amazon.com/gp/product/B010T5YOR0
1 x Spool 22 AWG Gauge Solid Hook-Up Wire - Red
https://www.amazon.com/gp/product/B06XB1R2NK
104 x 1N4148 Switching Diodes
https://www.amazon.com/gp/product/B072PCQ2LW
1 x Kit Heat Shrink Tubing
Filament:
https://www.amazon.com/dp/B07DN35CXQ
1 x Spool PLA Filament 1.75mm - Black
https://www.amazon.com/dp/B07DN35CXQ
1 x Spool PLA Filament 1.75mm - White
https://www.amazon.com/dp/B07DN35CXQ
1 x Spool PLA Filament 1.75mm - Gray
Miscellaneous:
https://www.amazon.com/gp/product/B07WRC6SDV
48 x Wood Screws (M4 x 25mm)
https://www.amazon.com/gp/product/B07PXNTT7K
4 x Black Rubber Feet
https://www.amazon.com/gp/product/B014W0I1YA
1 x DB25 Solder Connector - Male
1 x DB25 Solder Connector - Female
Liability Disclaimer:
All information in this guide is provided "as is", with no guarantee of completeness, accuracy, timeliness or of the results obtained from the use of this information, and without warranty of any kind, express or implied, including, but not limited to warranties of performance, merchantability and fitness for a particular purpose.
By following this guide, you agree to be responsible for any decision made or action taken in reliance on the information given, or for any consequential, special or similar damages, even if advised of the possibility of such damages.
Build Guide:
Note: This add-on button deck requires a Melodicade to dock with in order to function.
Print all 6 case pieces (top panel, bottom panel, left, right, front and rear walls), and optionally the stability braces for the underside of the top deck.
Screw the top panel and 4 walls together to give added stability while working on the project.
Snap each of the colored arcade buttons into their respective slots in the top panel.
Hot-glue or otherwise secure the stability braces to the top deck before wiring, as it's much easier without the wires in the way.
Wiring Instructions:
Reference image
Black wire soldered to row lugs horizontally, 1N4148 diodes soldered to column lugs, and then soldered together vertically.
Rows:
Cut a black wire to the length of each entire row of buttons, and shave the shielding at each lug position to connect each row via one wire. Solder the wires to the bottom-most lug of each button.
(Optional) Strip the shielding from the wire entirely allowing you to quickly solder, and then cover with a single piece of electrical tape, or run a bead of hot-glue down the length to insulate the exposed wire from making contact with the column diodes where they cross.
Solder a 10-20cm long wire link from the end of each row (top to bottom) to pins 2 through 12 on the DB25 male connector as indicated in the diagram below, using the photo above as reference:
Name DB25 Male Pin
-----------------------------
Matrix Row 0 2
Matrix Row 1 3
Matrix Row 2 4
Matrix Row 3 5
Matrix Row 4 6
Matrix Row 5 7
Matrix Row 6 8
Matrix Row 7 9
Matrix Row 8 10
Matrix Row 9 11
Matrix Row 10 12
Columns:
Note: Button columns are in an alternating zig-zag arrangement with the exception of Col 0 (closest to the DB25 connector) which just skips over the unused matrix locations with jumper wires.
Solder a 1N4148 diode to the top-most lug of each button in a column, with the stripe facing away from the button. If angled left/right in a manner consistent with the zig-zag layout, you should have a neat straight row to connect through vertically.
(Optional) If your diode legs are long enough, you may be able to solder them directly to each other as I did, saving the need to cut and strip links of column wire.
Similar to how the horizontal rows were soldered previously, solder the diodes for each vertical column together.
Solder a 10-20cm long wire link from the end of each column (left to right) to pins 15-24 on the DB25 male connector, using the photo above as reference:
Name DB25 Male Pin
-----------------------------
Matrix Col 0 15
Matrix Col 1 16
Matrix Col 2 17
Matrix Col 3 18
Matrix Col 4 19
Matrix Col 5 20
Matrix Col 6 21
Matrix Col 7 22
Matrix Col 8 23
Matrix Col 9 24
Connector:
Hot glue the DB25 connector into its housing in the deck wall.
Finished Wiring
Melodicade Modification Guide:
Print the left sidewall with the DB25 connector housing from the Harmonicade project to supplant the right sidewall from the Melodicade project. The part is symmetrical, and the dimensions are the same. It will drop in place.
Solder the pins from the DB25 female connector to the appropriate locations following the guide below, and solder the connector in place in the sidewall.
Wiring instructions:
Rows:
Note: We're soldering to the existing row wiring for rows 0-9, not soldering directly to the Teensy. Row 10 (DB25 Female Pin 12) is soldered to the Teensy however.
Name Melodicade Row
----------------------------------
DB25 Female Pin 2 0
DB25 Female Pin 3 1
DB25 Female Pin 4 2
DB25 Female Pin 5 3
DB25 Female Pin 6 4
DB25 Female Pin 7 5
DB25 Female Pin 8 6
DB25 Female Pin 9 7
DB25 Female Pin 10 8
DB25 Female Pin 11 9
Name Teensy 3.6 Pin
----------------------------------
DB25 Female Pin 12 35
Columns:
Name Teensy 3.6 Pin
----------------------------------
DB25 Female Pin 15 36
DB25 Female Pin 16 37
DB25 Female Pin 17 38
DB25 Female Pin 18 14
DB25 Female Pin 19 15
DB25 Female Pin 20 16
DB25 Female Pin 21 17
DB25 Female Pin 22 20
DB25 Female Pin 23 21
DB25 Female Pin 24 22
Finished wiring
Final Steps:
Test everything thoroughly.
Finish assembling the case panels.