DIY Portable musical staircase

General description:

The goal of this project was to make a portable musical staircase system that could be temporarily installed on a staircase in “Dekalim” school, for musical therapy sessions with autistic children.

We decided to build a wooden frame around each step, at the end of which there is a laser source on one side, and a photosensor on the other side.

Plan for portable musical staircase

The data from the sensors is gathered by an Arduino Leonardo compatible board, the Arduino sketch can be found here.

The Arduino Leonardo sends key press commands to the laptop via the USB (this method was inspired by the MakeyMakey). The laptop runs an user configurable free sampler program that can be found here (This is the initial reason for building this website). The sampler responds to the key press events and plays sounds.


Constructing the frames

Constructing the frames

Going to school

Click Here for an example of the system at work (my daughter was our test subject, but I could not resist and joined her)

youtube of stairs in action


For this version of the stairs we used photosensors that come with a built in digital output and a sensitivity potentiometer. This allowed for simple programming of the Arduino.
The tricky part is aligning the laser and the photosensor. The length of the stairs is about 175cm, so a laser misalignment of one degree results in a deviation of 3cm on the sensor side.
Both components are attached to an L shaped bar. One screw connects the sensor to the L bar, and another screw connects the bar to the wood frame, allowing for rotation of the sensor on two axes.





Laser source

Laser source


In order to connect the laser source to its L bar, we hacked a cable clip. The nail of the cable clip was replaced with a screw.

The Arduino Leonardo compatible board (from is a bit tricky. In order to program it you have to push it’s reset button, while the button is pressed initiate the upload in the Arduino software. Release the reset button only after the Arduino software status bar says “Uploading”.

We bought the components at Deal Extreme, the home for cheap electronics (danger: this site is addictive).

The guys and gals at IDEO used IR distance measurement components instead of the lasers. The downsides of the IR components are price and the beam width which according to the discussion in the Sparkfun site is about 3 degrees. This is a good choice for short stairs, but for longer stairs the beam width could pose a problem.
Pressure sensors can also be used, but I did not find cheap long reliable pressure pads (if you find any, please let me know). I am working on a version of homemade pressure pads, I will post the results of this work another time.

Pros and cons:

Pros: The system is cheap, easy to build, and works great if setup properly (Aligning the components and setting the photosensor sensitivity).

Cons: The system is not sufficiently durable. Whenever the stairs are removed to storage and then returned to the staircase, setup is required again. We are working on a more durable version… more on this in a later post.

8 thoughts on “DIY Portable musical staircase

  1. I really like the simplicity of this build. Have you considered placing the laser and sensor on the same board and placing a retroreflector on the other side of the stair? Then you would only have to calibrate the transmitter/receiver pair once, and could use less material on the far end of the stair.

    1. Hi Norman,

      That is a good idea, that will probably be implemented in the next version of the stairs.
      However, this means that the effective distance between the laser and the sensor will be doubled and therefore the required setup accuracy will also increase.

  2. You can try using ‘retro-reflective’ tape on one side; Mount the laser and the photosensor adjacent to each other, and aim the beam at the tape that is mounted at the other side of the stair. The beam will be reflected back to the source (i.e. the laser), and some of it will hit the sensor. You should be able to get a good enough signal this way, and you will not have to worry about alignment so much. I have used this technique on a ‘paintball’ robot before.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>