Introduction: Fully 3D Printed Arduino-Based Piano

About: PhD Student, Mechanical Engineer and Maker in Residence at the University of Warwick, Coventry, UK. Interests: Additive Manufacture, Embedded Electronics and making cool stuff.

Being a PhD student in pursuit of 'click-to-manufacture' technology in the realm of 3D Printing, I decided it would be cool to demonstrate a simple concept of the potential of Additive Manufacture in this area - whilst keeping it fun!

I designed, printed and assembled a circuit for a fully 3D Printed piano! Whilst I plan to match the tone frequency up with the actual notes in the future, I think the result is still pretty nifty and could potentially lead onto other printed instruments!

I designed this in Fusion 360, which enables you to easily print in multi-material - allowing for conductive and non-conductive filaments to be used together to form a functional object. The stl was then exported to Cura and printed on an Ultimaker 3 - but you can use any printer with multi-material capabilities (and potentially single extrusion with some assembly).

On with the show!

Step 1: You Will Need...

1. Arduino Uno microcontroller

2. A compatible speaker or buzzer - it's up to you!

3. Resistors: 7 x 1MOhm, 1 x 220 Ohm

4. A 3D printer capable of dual-extrusion.

5. Filament: A Standard PLA and Protopasta Conductive PLA (or similar).

6. A can-do attitude.

Step 2: Designing for Multi-Material in Fusion 360

I have made a separate Instructable for this, as I assume you'll want to print your own designs!

Step 3: Printing

Printing can potentially take some patience and experimentation. Remember, if you have oozing problems the chances are that you will have a short across your sensors - causing significant cross-talk! I've also included the original STLs for convenience - but I encourage you to make your own and let me know how it goes!

I will not go into too much detail on this aspect, as there are excellent online resources such as this one from Ultimaker or this one from Simplify3D.

Step 4: Arduino Setup

Assemble as per the image above.

Key notes:

Dependent on what audio device you are using, ensure you don't overload the pin. I have used an 4 Ohm 3W speaker output, and have put a 220 Ohm resistor in series to limit the current.

Step 5: Arduino Code

Use the attached sketch. You will also need Paul Stoffregen's CapacitiveSensor library found here:

Step 6: Check Theshold Values

If you struggle to get your piano to play a tone, check the threshold values I've set as potentially there is some variance. Check the serial plotter to see what touched and untouched values you get for each sensor (as I've done above!).

I seem to get pretty consistent touch readings across all the sensors, but there will be some variation based on your slicer settings, material and printer.

Step 7: Have a Play Around With It!

First Time Author Contest 2018

Participated in the
First Time Author Contest 2018