How to build a paper pop-up piano

As a mini-project in the course Making Things Interactive, I created a prototype of a pop-up piano with six keys. When a key is pressed, the corresponding musical note plays through a speaker. A pull-tab can be also be pulled or pushed to dim or brighten an LED by means of a paper variable resistor.


  • 4B or 6B graphite pencil
  • Arduino
  • bristol paper
  • copper eyelets (metal findings for jewelry making)
  • copper tape
  • cutting mat
  • glue
  • metal ruler
  • needle
  • piezo speaker
  • LED
  • tape, nonconductive (artist or scotch works)
  • wire, beading
  • wire, insulated
  • X-Acto knife

Step 1: Pop-up keys

Measure, cut, and fold six pop-up piano keys along the mid-line of one sheet of bristol paper; this will be the top sheet of the pop-up. Fold another sheet of bristol in half; this will be the backing sheet of the pop-up. If desired, cut the silhouette of the top half of both sheets into an interesting shape.

Construction Notes:

Paper piano keys pop-up
Paper piano keys pop-up

I hadn't made pop-ups before, so I practiced with regular paper before I started using the (more expensive) bristol paper. Based on my first trial run, I reduced the height of the piano keys from 1 inch to 0.5 inch. The lower key height reduced the amount of bowing the paper did when pressed down, which helped it spring back to its original form when released.

Drawing piano keys on bristol
Drawing piano keys on bristol

I did a second trial run of the pop-up with bristol paper. The bristol was thicker than regular paper, and based on my results, I decided to reduce the key height further, from 0.5 inch to 0.25 inch, to improve the key-press action with this particular material. For my final prototype, I also drew and cut the keys before folding the paper in half, so that I avoided having a fold line across the top surface of the keys (faintly visible in the next photo of my second trial version).

Pop-up keys - second version
Pop-up keys - second version

Step 2: Key switches, side #1

On the bottom sheet of bristol, lightly mark with a pencil where the underside of the piano keys will be and coat the area with an adhesive conductive material such as aluminum foil or copper tape. This area will be one side of the switch mechanism that will activate when a key is pressed. Using a needle, poke one hole in the mid-line fold of the paper and stick a copper eyelet through it so that the round part is sticking out from the back side of the paper and the rod is on the front side. Tape the rod of the eyelet to the conductive surface area of the paper with copper tape.

Construction Notes:

Pop-up backing sheet
Pop-up backing sheet

Originally I had each key switch wired as an independent circuit, as shown in the above photo. Later in the construction, I changed this so that they tied together on the bottom with copper tape because all the switches connect to +5V through this bottom layer. Making this small change enabled me to remove all but one of the copper eyelets that extended through the fold line and simplified the wiring in the back. I used aluminum foil to increase the conductive surface area under each key because I only had about 10 inches of copper tape at my disposal and wanted to make it last.

Step 3: Key switches, side #2

To make the other side of each switch, lay the top sheet on top of the backing sheet so that you can see the backing sheet through the gaps the pop-up keys make in the top sheet. Using the needle, poke a hole through the backing sheet beneath the surface of each key and stick a copper eyelet through the hole so that the round part is sticking out from the back side of the paper and the rod is on the front side. Tape the rod to the underside of the piano key with copper tape so that when the key is depressed, the rod makes contact with the conductive surface on the backing sheet, closing the switch.

Step 4: Paper variable resistor

To make the paper variable resistor, cut a narrow paper strip out of a sheet of bristol and demarcate a strip about 0.25 inch wide. With a graphite pencil (preferably 4B or 6B), scribble like mad in this area until the surface is completely coated with graphite. Calibrate using a multimeter and two paper clips, attaching one paper clip to one end of the graphite-coated strip and moving the other paper clip along the strip while measuring the resistance across the clips. Glue the strip (graphite facing up) to the lower half of the backing sheet along the left or right edge or, if you feel like throwing caution to the wind, repeat the scribbling/calibration procedure directly on the backing sheet itself.

Paper variable resistor construction
Paper variable resistor construction

Step 5: Pull-tab

Using a needle, poke a hole through the mid-line fold of the backing sheet where the graphite strip meets the backing sheet and stick a copper eyelet through the hole so that the round part is sticking out from the back side of the paper and the rod is on the front side. Attach the rod portion to the graphite strip with a piece of copper tape. Cut another paper strip out of bristol that is 1 inch wide and slightly longer than half the length of the backing sheet. This will be the pull-tab that changes the resistance of the paper resistor. In the area of the top sheet of the pop-up that lies directly over the graphite strip, measure and cut a long narrow slot such that the pull-tab can slide along it and make a 1-inch slit perpendicular to the slot near the edge where the tab will be pulled. Thread the pull-tab through the slit and attach to the slot with a piece of bristol so that it slides easily. (See The Elements of Pop-Up by David A. Carter and James Diaz for more detail on constructing the pull-tab mechanism.)

Using a needle, poke a hole through the mid-line fold of the backing sheet where the pull-tab meets the backing sheet and and thread a length of beading wire through the hole. Attach the beading wire to the underside of the pull-tab with a piece of copper tape, making sure that it does not contact the piece of tape on the graphite strip.

Step 6: Wiring

Wire up the switches and variable resistor to the Arduino using the beading thread and copper eyelets that are extending through the backing sheet. Wire up a piezo speaker and LED for outputs. Adhere the Arduino and breadboard to the back of the backing sheet.

Construction Notes:

Originally, I had a 220Ω resistor between the speaker and the output pin on the Arduino (the smallest resistor I had). The sound coming out of the speaker, however, was very quiet. When I removed this resistor, the notes played at a better volume for demonstration purposes and, more importantly, the speaker did not burn out.

Step 7: Code

I referenced Tom Igoe's Tone Output example and used the Arduino Tone library to play the musical notes.

See the code for the Pop-up Piano.