Skip to content

A mechanical keyboard... but the OTHER type of "keyboard"

Notifications You must be signed in to change notification settings

lerrylei/mechKeyPiano

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 

Repository files navigation

mechKeyPiano

A mechanical keyboard... but the OTHER type of "keyboard."

About

This DIY 3D printed monophonic (1 key at a time) keyboard uses 12 mechanical keyboard switches for piano keys. It is powered by an Arduino UNO and fitted with a speaker and a potentiometer to change between 3 octaves. Watch the video demo below to see how it sounds!

Design

3D overview of the keyboard case. I printed using a .4mm nozzle and 20% infill. Supports are necessary for some parts but do not put too many. Printing took around 2 days to fully complete all parts but can be reduced signifcantly by reducing infill and lowering the thickness of the walls. Since the STL files were larger than my print area, I had to split the case into multiple parts.

Assembly

First, gather all necessary parts before building. This includes the 3D printed case, keys and screws, 12 mechanical keyboard switches, 1 potentiometer, 1 speaker/piezo, a mini breadboard, and an Arduino Uno. Components are placed as shown in the second image.

Components Layout

Next, wire up the mechanical switches to the mini breadboard according to the circuit diagram in the next sections. Be sure to route the wire under and through the keycap holder prior to soldering.

Wiring Switches

Then, attach the piezo speaker and the potentiometer attached to the top of the case.

Potentiometer/Speaker

Lastly, screw in piano keys on top of the mechanical switches and cover the top case.

Keys

Done!

Circuit Diagram

Refer to the following circuit diagram for information on how to wire components together.

Circuit Diagram

About

A mechanical keyboard... but the OTHER type of "keyboard"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages