Project tutorial

Multi-Octave Portable Capacitive Touch Piano © GPL3+

Extending the "Portable Capacitive Touch Piano" to span multiple octaves using two push buttons! This portable piano packs quite a punch!

  • 7 respects

Components and supplies

About this project

In my last project, I delved into how to build a Portable Capacitive Touch Piano using an Arduino, a Capacitive Touch Shield for Arduino using the MPR121, a piezo buzzer, and copper foil tape with conductive adhesive (cut in the shape of piano keys) enclosed in a clear acrylic ProtoStax for Arduino enclosure.

In the section "Taking It Further!", I talked about the possibility of adding buttons to extend the range of the piano to increase/decrease the octave.

In this project, that's exactly what I do! I modified the ProtoStax for Arduino enclosure to add two cutouts for a couple of Panel-mounted push button switches. I wired the buttons to pins 2 and 3 on the shield (I could have used any other available pins, but using pins 2 and 3 allow for attaching interrupt routines to handle button events, if you so choose, without any hardware changes - and pins 2 and 3 were free and available!)

I also changed the firmware to respond to the button presses to increase/decrease the octave of the keys (yellow button to increase and blue button to decrease). There were two possibilities here -

1) using a yellow button press to decrease the octave, and a blue button press to increase the octave

2) Increase the octave when the yellow button is kept pressed (dropping it back to normal when released), and decrease the octave when the blue button is kept pressed (and bringing it back to normal when released).

#1 allows you to have a very large octave range - as much as a full-sized piano, and even more!

#2 gives you a 3-octave range - however, it just makes the playing so much more intuitive and easier. Keep the yellow button pressed for the higher octave or the blue pressed for the lower octave - this allows you to use both hands in conjunction to easily increase/drop the octave while you are playing.

I decided to go with option #2, but option #1 is very easy to implement in the firmware if you would like a full 7 octave range of a regular piano (or more!) and can remember and deal with the button presses and octaves while playing! If you are stuck on how to do that however, just message me below!

Here is the final outcome! (Refer to the Portable Capacitive Touch Piano post for more detailed delving into the code if you are just starting out)

Heart and Soul, and Do-Re-Mi renditions by yours truly! 😊

Schematic and Code is enclosed. Enjoy! 😊

Happy Making! 😊


Demo for ProtoStax Piano with ProtoStax for Arduino Enclosure, Adafruit 12 x Capacitive Touch Shield for Arduino - MPR121, Piezo Buzzer, and Arduino

Custom parts and enclosures

ProtoStax Piano Keyboard Template
Pianokeystemplate cldsuws0uo


Multi-Octave ProtoStax CapacitiveTouch Piano Demo Schematic
Protostax capacitivetouch piano demo extended bb dfccawfhfv


Similar projects you might like

Portable Capacitive Touch Piano

Project tutorial by Sridhar Rajagopal

  • 8 respects

Electronic Piano Keyboard With Preset Songs

Project tutorial by Lindsay Fox

  • 175 respects

Unravel Preset Piano Easy Arduino (Even a Ghoul Can Make It)

Project in progress by ExeCuteLi

  • 24 respects

Touch Sensing Paper Piano

Project tutorial by Jeremy Sow

  • 1 comment
  • 8 respects

Piano Stairs

Project tutorial by Bonnie Eisenman

  • 35 respects

3D Printed Prosthetic Hand with Capacitive Touch Sensing

Project tutorial by Amal Mathew

  • 25 respects
Add projectSign up / Login