Cheap Expandable Floor Piano




Introduction: Cheap Expandable Floor Piano

I created design to build a big and expandable floor piano (1 to 8 or more octaves) .

They were plenty of challenges with this piano.

I wanted all bullet ticked:

- Cheap

- Big but could fit in a car (from 1 to 8 meters long)

- Expandable (from 1 to 8 octaves now)

- Strong (it's for kids, even if adults love to play too)

- No moving parts (same reason as above)

- Easy to use.

Current version is 300$ per octave (essentially because of wood and translucent acrilyc, and about 50$ for electronic), and 50$ for master. It tooks me about 60 hours to build it.

A video of the piano in action (from movie big).

And a google album :


For each octave, you'll need :

1x Plywood : birch plywood for rigidity, thickness 12mm, 105x100 cm

1x Acrilyc translucent sheets (white) : 105x90cm for each octave, 6 to 8mm thickness

5x Acrilyc translucent black sheets : 40x10 cm 3mm thickness

1x Wood 2.5x1cm : plenty for inside structure (description in step 1)

1x Wood 1cmx1cm : plenty for inside structure (description in step 1)

1x Arduino Mega to drive the octave, and send and receive data to/from master

1x Mpr121 or any chipset capable of capacitive detection

3x Led drivers : whatever you choose, I created my own with PCA9685 (using 12 channels on 16)

1x Few transistor (12 per card, 3 cards for one octave)

1x Silver Fabric Fiber Conductive Mesh for detection

1x RGB 5050 Led strip (30 led by meter is enough) 20m

For the master :

1x arduino mega

1x midi sound card

Step 1: Prepare the Wood

First use diagram to cut wood, and glue it as shown in picture.

Then paint in white.

Then glue felt fabric on the wood (it will help avoiding wood weird noise with the acrilyc)

Step 2: Prepare Acrylic With Silver Fabric

You'll first need to glue silver fabric to the acrilyc sheet. I'm using a adhesive spray (gorilla, 3M, scotch, you have a lot of choice, I'm using 3M).

Then solder a wire to each of the pads as seen on picture 4 (these will be attached to the MPR121).

Step 3: Prepare LEDs

For the LED, I used USB A connector to be able to connect easily the led strip to the controlers.

First cut led strip to correct length, then solder the wires to the strip.

When this is done, you can use hot glue to glue the led strips to the wood.

Step 4: Electronic of the Octaves

A friend created a board to drive the LED strips. This board is provided in the rar file attached with name of components.

Just solder transistor, resistor, capacitor (just one), USB connectors, Power connector, I2C link connector, and chipset and that's pretty much it.

I've not done this part, I'm not very good at SMD, but it is also very easy to build one with full size components (that's what I had done first hand).

The 0 to 5 pad allow you to give a I2C number to the board. You'll have 3 of them for one octave, + the MPR121 on the I2C bus.

This done, you need to link all stuff together. Look at schematic, this is kind of easy once you figure it :

The piano is built with one master driving the whole thing and one slave for each octave. The slaves can be interchanged without constraint (no ordering of the octave, easy add with no configuration at all, actually there is ordering and configuration, but it's all done in the code and the end user doesn't have to take care of it)

I'm using a RS232 bus to go from the master to the slaves, and one RS232 bus to go from the slave to the master (hence the use of arduino Mega that has multiple hardware serial buses). for this link, I'll use RJ45 cables

There is also a power line for each of the octave, so 220V (110 depending where you live) is going from slave to slave. It's 12V that drives the power the LED only (it was easier to have 10 Amps Power supplies in each octave than having to have till 80Amps in 12V) It's about 20 meter of led by key than could all be lighted at the same time in the end, it's 20mA * 3color * 20meter * 30ledsbymeter = 36Amps, fortunately, you never have all keys in white at the same time.

Step 5: Software

The software part is quite easy for the master and the slaves. Files are attached.

How it works ?

First plug the octaves, then plug the master to the first octave, then turn it on.

When turned on, the master will send a message on the COM bus to discover the number of octaves, and will give each of them a number.

When a key is touched on an octave, the software will get the number of the key, will add the number of the octave, and will send the message to it "father". The message will then go to the master, and master will play the note.

Step 6: Hardware and Software of the Master

Master is simply an arduino mega with a midi music shield (in my case, I used VS1053, but it can be any).

The software part is similar to the one in the octaves, except it handles information from BUS and trtansform it into midi command sent to the shield.

Step 7: Remarks

My time is limited, and I can't spend too much time to think more to a better way to present this instructable. If you find any point unclear, if you need any explanation, don't hesitate to ask, I'll answer, and will use it to make it better.


Arduino Contest

This is an entry in the
Arduino Contest

Be the First to Share


    • Home Decor Challenge

      Home Decor Challenge
    • Colors of the Rainbow Contest

      Colors of the Rainbow Contest
    • Box Challenge

      Box Challenge



    11 days ago

    Thanks For sharing!


    Reply 4 days ago

    You're welcome!


    Tip 5 days ago

    Great job here. Kudos!
    I think it can be made even cheaper using piezo to check for the pressure, what do you think?


    Reply 4 days ago

    Actually, I tested pressure sensor, but it didn't met the constraints : the piano is meant to be used by hundred of kids from 7 to adults, so any moving part is a problem, (the weight will vary from 30kg to 100kg and more, the detection should be done evenly on the key).

    I also tested volume sensing below the keys but I was not able to make it work for black key because volume change was too eratic because of leaks I guess.

    I even tested pressure on black 3M sheets that resistance is changing with weight applied (I can't remember the name, I saw that a few years ago used in shoes) , but again, the detection was very complicated and I had too many false positive and negative.

    The price of the capacitive detection is somewhere about 13$ for a full octave detection (the 1 m² silver fabric is about 10$, and the mpr121 is about 3$). I had it even cheaper as I bought 10m² at once)
    The biggest part of the price is by far wood, leds and acrylic with already more than 250$ on a 300$ budget.


    6 days ago

    Great work :)


    Reply 5 days ago

    Thanks, it was a fun one too.


    7 days ago

    Oh this is fantastic! Great job!


    Reply 7 days ago



    Reply 10 days ago

    Thanks for your comment.