Introduction: Frameless Laser Harp

Picture of Frameless Laser Harp
We are a generation that love sound and light – can’t do without them really. Our most preferred time of day is night, or what we would call evening. We are particularly well acquainted with technology; doesn’t hurt these days. Our prerequisite for everything is that it be ‘cool’. Put it all together and in a stroke of brilliance, and a little help from our friend the internet, we have the ideal solution – a laser harp.

A laser harp, what on earth is that? Sounds kind of fancy doesn’t it? Well, it is basically what it says it is. The laser harp is an electronic instrument where a motor, a light sensor, a microprocessor Arduino, and, I’m sure you’ve guessed, a laser collaborate to produce beams, each representing a note (we will elaborate for those who care to read on). This harp though doesn’t have a frame: its strings stretch out infinitely into space – we know no boundaries.

Our inspiration was a video we had watched online and found rather fascinating. Apart from the fact that the prospect of creating it without too much expenditure, mental or monetary, was exciting, it seemed a project providing scope for learning in different areas, especially since we wanted to present it as a complete product. Part research, part reverse engineering led us to figure out its functioning. Admittedly, we have not contributed any addition to the original creation, but to achieve it was in itself gratifying. And there’s always room for originality and improvement in the future. 

If you like our instructable please vote for it at the top  right corner of the page!

For making this laser harp you will require basic soldering skills, and some experience working with the arduino.

Word of caution: Lasers are very harmful for the eyes, make sure you wear appropriate eye protection.

Our Video will be ready in another 12 hours! Do come back and check it out!

Here's the link to the video that inspired us :

Step 1: Overview of the Harp

Picture of Overview of the Harp
The basic outline of the harp:
A laser beam is shone. A stepper motor with a mirror divides it into nine beams. When one or more of the beams are cut, the light sensor (Light Detecting Resistor, LDR) detects it. According to the corresponding motor positions, it sends signals to the Arduino, which in turn produces the respective notes through a computer or keyboard.

How the beam is created:
A mirror is attached to the motor. The laser beam is directed to the mirror. The motor rotates in steps, hence stepper motor. With every step the motor takes, the position of the mirror changes, deflecting the beam in a different direction every time. The steps take place fast enough for the beams to appear as if they are simultaneously present.

How the harp knows which beam has been cut:
Every beam has a corresponding motor position. When a beam is cut, it reflects onto the sensor, which detects an increase in light intensity. The light sensor then looks for the position of the motor at the instant the beam was cut, and thus identifies the beam in question.

Step 2: Parts..

Picture of Parts..
Here you will find the complete parts list you need and some info to create the project yourself:

  Main parts
        Stepper motor:
            A stepper motor is an electromagnetic device which converts electrical pulses into extremely 
            small mechanical movements (steps). Its shaft rotates by taking these steps when the 
            electrical command pulses are applied in the required order, and its speed and direction 
            depend on their frequency and sequence.
            A stepper motor has the following attributes:
                 •Number of steps per rotation
                 •Torque (the weight it can bear)
                 •Step angle accuracy
            By manipulating the control pulses, you can make the stepper motor carry out different 
            function such as taking half steps (e.g. 400/rotation instead of 200).
            For our project we will be operating in full step mode.

            Arduino is basically a small computer which reads an input, interprets it, and sends an output, where the                            input,output, and interpretation can be practically anything (in the electronic field!).
It is a magical board which makes your electronic dreams come alive.
        Bread board:
Because the solderless breadboard for electronics does not require soldering, it is reusable. This makes it easy to use for creating temporary prototypes and experimenting with circuit design.
        The more powerful your laser, the more effective your harp will be, ours was rated at:  <50 mW
        And as for color, we've chosen green, since it was completely safe for the skin at that power rating.
Rest of the parts and tools that you will need:
    Resistor 220 ohms 1/4W
    LDR Light Sensor
    MIDI jack
    MIDI to usb adapter.               (This parts is optional, it has been explained in the MIDI section)
    5k TRIMPOT
    Small Mirror
    Green Laser Safety Goggles
    White Gloves
    Power Supply, 12V DC  2A   (This parts depends completely on your stepper motor, go by its rated power)
    Soldering iron
    Materials for the enclosure

Total estimated cost:  90 - 100 $

Step 3: Wiring Guide for Steppers

Picture of Wiring Guide for Steppers

It is essential to send the command pulses in the right order. A step motor will 
typically have six wires. Here is a quick guide to identify which is which.
With the help of a multimeter, we first isolate two groups of three wires, forming 
two coils, by checking the continuity function, ensuring that the circuit 
is complete. 

Next we identify the middle wire of each coil. Using the resistivity function, check
 the resistance between all combinations of pairs of wires. The resistance between
 two ends will be twice that between the middle wire and either end.

If your stepper motor does not have 6 wires, here is a wonderful resource to help you out:

Step 4: Wiring It All Together:

Picture of Wiring It All Together:

In the first image you will see the fritzing diagram for the harp. And in the following images you will see the step by step process for building the circuit on your breadboard.

We begin by placing the ULN2003, keeping in mind the direction of the little notch on the chip.
We then wire the stepper motor's signal pins into the chips OUT pins and the common wire into the chip COM pin.
In this step we connect to the arduino via the chips IN pins and we connect our power supply to the chip.
For the next steps we add the transistor, the laser, the LDR and the MIDI jack.
Refer to the fritzing diagram (first image)  if anything is unclear.

Your circuit is now ready!


Step 5: Arduino Code:

Picture of Arduino Code:
Copy and paste the Arduino code below into a new sketch,If you don't know how to create/upload a sketch, check out the official Arduino - Getting Started page. If you want to learn more about a specific command, just Google it.

We were having trouble embedding the Arduino code, so please click here for the code.
Or download the arduino files directly from this step.
We have put comments all along the way to make it easier for you to understand the code.
This is not the most efficient code, but it works. 


Step 6: MIDI Interface

Picture of MIDI Interface
Ok! So we are finally ready to make some music!

There are two options that you can take:
Option 1:
  Plug your harp directly into a MIDI keyboard and you are good to go.
  But if you want more control then go for Option 2.

Option 2: 
For this option you need a MIDI to USB converter, like in the first picture.
This works with any software that deals with MIDI, Here we show you how to go about it using FL Studio:

3rd Picture: First open FL Studio up, then click the OPTIONS button on the upper left corner and navigate to the MIDI settings. then select your MIDI device.

4th picture: The next step reveals the magic of MIDI, Right click on one of the tabs, in the Insert tab you will see a whole bunch of different sounds available to you, ranging from the classic sounds to the most modern sounding synths. Feel free to experiment with these sounds until you find your favourite one.  

Step 7: Layout and Enclosure

Picture of Layout and Enclosure

After some sketching we were quite satisfied with this diamond form for our harp.
For this step we encourage you all to come up with your own personalised enclosures.
We will simply walk you through our design process:
     We began with some simple brainstorming, and then we sketched out a few forms.
     Once we were satisfied with a form, we modeled it on Cinema4d to scale, 
     By modeling everything to scale we could do accurate dimensioning so that all our parts fit snugly into the enclosure.
     Since time was not on our side we could not make the enclosure out of wood, and so we decided to make a paper model        of it. 
The layout for the components we chose is depicted in the second picture, the motor and the laser are seperated from the arduino and the bread board by a small wooden platform.

Step 8: Conclusion

Picture of Conclusion
What we learned:

 Persistence of vision – this is what enables us to see the beams all at once,
 since the refreshment rate of the human eye is smaller than the rotation rate of
 the motor. 

How a stepper motor and Arduino work – we have elaborated on these in the
dedicated sections.

Physical programming – people are often under the impression that
programming is contained within the computer, but here we looked at a 
practical aspect of it where it controls physical actions.

The design process – steps from ideation to creation for a 
complete product.
Concluding thoughts:
Of course we made mistakes. Research is of paramount importance, especially when purchasing your parts – Google is your friend. But other than learning from our mistakes, we also learned to work as a team, by using each one’s plus points, and guiding those in unfamiliar territory when in one’s own comfort zone. We definitely could have 
done a better job with time management and organisation (which seem to be persisting problems with us), and in keeping up levels of energy and enthusiasm (which went through more downs than ups). Owing to our age and temperament, we underestimated the project and overestimated our capacity. We could not therefore accomplish the project as we had intended to. We would have very much liked to customise the harp by turning 
it into a complete package, giving it a name and logo. We also wanted to add elements to further enhance it -- controlling the volume and pitch according to the height at which you cut the beam, having the facility to sustain a note without holding your hand on it (pedal),  using a RGB laser to have changing colours
 according to the mood of the music, having the beams converge and diverge, and other visual effects. They remain prospects for our next edition.


Stormrage (author)2013-11-13

One of my dreams was to have a laser harp. The only thing I need now is to go buy some 2n222 ULN2003 and, uhm my question was: What kind of/ speed/ steps, steper motor can I use? Hacking some old printer or something, any idea will be appreciated :)
Thx, and btw, one of the greatest and really simplest instructable for a complicated stuff that everyone could be amazed with :) Keep it up !

Pushan Panda (author)Stormrage2013-11-13

The motor ive used is actually salvaged from some old electronics, any kind of stepper will do the job, you might need to modify the code a bit. I would be happy to help, just send me a message.

Era_Z99 (author)Pushan Panda2016-10-26

Although I cant understand the placement of the mirror on the stepper ?

Stormrage (author)Pushan Panda2013-11-14

Well, the problem isn't in the code really, now the problem is that I can't find ULN2003 here... Do you know anything compatible to that maybe? :)

also it would be cool if there is a way to get 3 lasers and make em switch colors hahaha just sayin :)

Pushan Panda (author)Stormrage2016-02-22

I know this is probably very late, instead of a ULN2003 you can you a stepper driver. Like for example the easyDriver.

Stormrage (author)Pushan Panda2013-11-15

I was actually going to rewrite the code to work directly via usb, not through MIDI... Any ideas about that?

Pushan Panda (author)Stormrage2016-02-22

I know this is probably very late, but you should look up loopMIDI, it creates a virtual MIDI port and lets you send MIDI over USB.

AlexisA1 (author)Pushan Panda2015-01-14

To be honest, I would LOVE to see you making a Youtube video creating one Laser's just 'cause my mind really will have no chance if it is reduced to writing explanation. We are talking about a Laser Harp, it is a complex thing to do, and not everyone has the same talent to make a Laser Harp the easy way like you do. :)

Pushan Panda (author)AlexisA12016-02-22

Great Idea! Now that I'm done with college I'll try to make a video to clarify all the questions, and thanks! :)

NoseyNick (author)Stormrage2016-04-26

People who are scared of ULN2003: There are quite a few "motor shields" for Arduino that are often usable for steppers as long as you can work out the appropriate winding / connections.

Pushan: Nice project! Simple, neat, effective, elegant, and pretty. Might make one for a weekend project for my geeky 12-yr-old boys :-)

Stormrage (author)Stormrage2013-11-13

and, perhaps a positioning picture (where the circuit is, LDR and stuff would be good, cos I'm really planing to do a "Laser Harp Shield" for this one :)

starphire (author)2013-11-12

I love how you've managed to simplify the hardware necessary for a laser harp. Well done! Since I already have most of these materials lying about, it looks like a fun project for an idle weekend.
I'm also curious how you would go about detecting the height at which a player was cutting the beam in an enhanced version of this instrument-care to share your thoughts? I would love to add that function.

Pushan Panda (author)starphire2013-11-13

Thank you! I would use an ultrasonic sensor to read the distance of the players hand, which in turn would control the pitch or volume of the midi notes.

Which version of fl studio is used? And can uplease help me with the motor, it isn't working

jonnyboy323 (author)2013-11-13

This is awesome, great instructable!!! If you plan on only using it with the computer, and don't need the midi out jack, couldn't you theoretically use only the arduino, and scrap the usb/midi converter cable? There are loads of arduino projects out there that output midi via the arduino's usb cable (and maybe some software on the computer side too).

jonnyboy323 (author)jonnyboy3232013-11-13

You could even make it wireless :)

Pushan Panda (author)jonnyboy3232013-11-13

Yes, i just checked it out, and it isnt too hard too send MIDI signals over USB!
That's a wonderful idea! Thank you!

origamimavin (author)2013-11-13

Great 'ible! I have most of these parts laying around, and have been looking for something to do with some spare laser diodes and steppers. I saw this (or one just like it) on Hack a Day recently, and though 'How cool would it be to make one of these.' Awesome, thanks!

Thank you! Do put up some pics after you are done!

nanaverm (author)2013-11-12

Wow! This is like a visible version of a theremin, and it sounds better, too.

Pushan Panda (author)nanaverm2013-11-12

:) That's exactly what i thought i when first saw it!

Pient (author)2017-12-09

Hey Pushan Panda,

Together with my granddad, I am building a laser harp. However, we were kind of lost in the world online "stepper motor" shopping. We can't find a stepper motor with five or even six wires that matches yours. Do you know a shop where we can find one?




We have one with four wires (1,8 degree), but we can't make this one work. Any suggestions?

Thank you!

ajinkyadixit made it! (author)2015-03-23

Yipppppiii.................. I made it............ Its 100% Working...... Awesome experience to play with it. My setup has 5mW high bright green laser & stepper motor salvaged from printer. I am also generating music from FL Studio...... :) :) Very soon i will post an instructable on it. I am very very thankful of @Pushan Panda & issac_engel for inspiration behind this.

JoelN46 (author)ajinkyadixit2017-11-28

Hey I need some help. I have everything working but my LDR is not sensitive enough to pick up a reflection more than an inch away. I changed the value of the sensor to one like so...

int sensor = 1

but that is not sensitive enough. Any ideas how to increase the sensitivity?

AmberS126 (author)ajinkyadixit2017-10-16

Did you ever post an intractable on how to build the harp? I really want to build one, but the above instructions aren't clear in some places.

ajinkyadixit (author)AmberS1262017-10-16

I havnt posted any instructable on it as i didnt get time from my busy schedule. Ask me whatever doubts you have. I will clear it.


AmberS126 (author)ajinkyadixit2017-11-04

Hi, thanks for getting back to me. I have a few questions:

How did you connect your laser to the circuit and the power source simultaneously?

Also, how did you get you computer to read the MIDI through USB? I'm using Ableton Live but I can't get the software to recognize the MIDI is plugged in.


mark king (author)ajinkyadixit2017-01-08

Hi aj. do you have an electronic schematic that I can follow?

Wow!! great job! I'm honored to be mentioned :)

ayushsuperb (author)ajinkyadixit2015-09-18

hey can u send me a video of your laser harp.


ajinkyadixit (author)ayushsuperb2015-09-18

i will try to send as the size is much larger.

ac5ff (author)2017-09-24

I have read through and even incorporated a few instructables into ideas of mine; but this one... this one is something I have come back to time and time again.

Finally believe I have enough time and experience to tackle this one. I've been taking it slow though. Building little by little. I'm hoping to have at least a prototype completed in the next few weeks. However I've run into a possible issue and I am hoping that someone here can help me overcome it.

My first obsticle I wanted to overcome was controlling a stepper motor correctly. Many of the comments I've read through complain about the stepper not working correctly. While I have my stepper working - it brings up my issue I can't seem to understand.

I can rotate my stepper so that it is shining my beams right where I want them. 10 beams working perfectly. However; when I shut down power and restart the beams are no longer in the same position. Where the stepper is when it shuts down (lets say on beam 4) becomes beam 1 when it powers back up - so everything is now shifted 4 positions.

How can I ensure or reset the stepper so that position 1 is always position 1?

davejavu1969 (author)ac5ff2017-09-28

I too experienced this and solved it with a bit of a hack tbh. I added a push button that starts the main program so when I first turn it on there is just a single beam. I then added a knob to the axle of the motor so I could turn it to set the correct start position for the mirror. There's probably a far cleverer way of doing this but hey, it works!

aurelien.a.walker (author)2015-07-26

Hello Pushan, could you give me specification of the motor stepper ?????

Many thanks


Hi Aurelien, I don't think this instructable is being supported any more. I completed it recently after many months of trying to get it to work!

Do an ebay search for item 121684006535 - Unipolar Nema 17 1.8deg Stepper Motor. It works perfectly for this application. I have seen lots of other people trying to use geared steppers - these will not work.

Hope that helps,


Yorgan Yog (author)davejavu19692017-09-28

Greeetings my friend. Thank for your advise. I finished the harp but the lines are not equal as many harps I see. Maybe the motor I use don't have enough response. I think they are not bright enough and I cannot touch very far from LDR. Maybe the problems come from the motor. With the ratio 5/3 for the pauses, I get some blur image made by the laser. You use this motor? Do you have pictures of the "strings"? How far LDR can sense? Thank you. I would like to be sure before I spent money in this specific model of motor. Thank you.

AmberS126 (author)2017-08-25

Pushan Panda, can you please please make a youtube video, or give more detailed instructions, for me. I'm stuck between steps and the written instructions are somewhat vague in some areas. Also, do yo know how to use GarageBand as the MIDI interface?

Robert Canamar (author)2017-06-20

I am a musician, who also likes to tinker. What I would be most interested in is instead of only 7 "strings" , having 18 strings, which would give me enough notes to play most of my music. Any ideas?

TimB262 (author)2017-05-05

it's really cool! i'm trying to make it but i don't really understand the MIDI part can you give a guide or something, please?

BaileyF6 (author)2017-02-27

How would you change the notes that will be played? Do you just change the note numbers in the beginning of the code or would there be more to it?

nick k (author)2017-01-18

pls pls pls help me, i have a 5 wire stepper motor and it isn't working

mark king (author)2017-01-08

Your picture of the assembly actually shows the wiring reversed compared to the picture "schematic" (from arduino to the breadboard). Is there an actual electronic schematic available for this project. Still trying to get this to work.

ivodemongool (author)2016-11-23

please can you help me? how to controll the width of the beams. becouse they are so close togeder that it looks almost like one beam.

please help me.

Thank you!

Era_Z99 (author)2016-11-08

My stepper just hums and does not move the shaft, need help please

Era_Z99 (author)2016-11-03

I have a big problem, my laser is from a hunting rifle, do i need to connect it to the breadboard, because I dont know how to actually

JeffS89 (author)2016-08-11

Pushan Panda, Is your motor step fast enough?! I'm half-way through this project. I'm not familiar with Arduino Uno controllers, but I did learn that the delay function is in milliseconds. A delay of 3 mS (333 Hz) for the motor pulse sequences was too slow for me. 1 mS delay was also too slow, and at the bottom limit of the delay function. When I took the delay out, the motor would just hum with no shaft movement at all. I'm using the A4988 stepper motor driver, so there may be no comparison. It does however simplify the code to one nested loop for the number of chords and the distance between the chords.

Then I discovered another function that uses microseconds, delayMicroseconds (). Now I'm down to 500 uS (2000 Hz) for the motor pulse delay with no loss in performance.

I also learned that delays shouldn't be used if you are trying to capture an event during a delay. Using timers allows for multiple events to occur simultaneously. I haven't tried that yet, because I'm still working on the upper limit of my stepper motor.

JeffS89 (author)JeffS892016-08-11

Correction, the pulse delay is one half the period, so delay(3) becomes 166 Hz, and delayMicroseconds(500) becomes 1000 Hz. It makes me wish I had the money for a 20Kpps galvo engine!!

slaveboy2000 (author)2016-05-24

What type of arduino are you using, does it matter what type your using and would an ardunio uno work in its place.

nick k (author)slaveboy20002016-08-04

yes he's using a arduino uno

nick k (author)2016-07-30

hey push panda! can you tell me or this motor is alright?

because i want a stepper motor so fast that you can't see that the motor is moving

can you please help me?

Thank you!

About This Instructable




Bio: I am interested in all aspects of design and technology, I take to pottery in times of uncertainty, it is my grounding. The piano is ... More »
More by Pushan Panda:Algorithmic Origami: an Exploration of Expressive Form in Sheet Metal3D Printed CycleRecover Exhaust Energy
Add instructable to: