Easy and Cheap Laser Harp




Hello maker friends!

In this instructable we will tell you how to make an inexpensive laser harp using Arduino.

This project was for 'Creative Electronics', a Beng Electronics Engineering 4th year module at the University of Málaga, School of Telecommunication.

IMPORTANT: this project was based on Frameless Laser Harp, an instructable by the user Pushan Panda. Credits to him! We saw it and could not resist to make our own version. You can see that instructable here: https://www.instructables.com/id/Frameless-Laser-Ha..

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Materials

  • Laser pointer. The more powerful, the better the harp will work. We used an inexpensive 1 mW model and it works alright.
  • Stepper motor. We used the model PM356-048, salvaged from an old printer. It is interesting that the steps are big enough so each step covers one of the strings. In our case, the steps were of 7.5 degrees (48 steps/rotation).
  • DC supply. For the motor. 12 V is usually what you need, but it depends on the motor.
  • ULN2003a. Motor driver. It is basically a set of Darlington transistors which will give the motor the current it needs.
  • LDR (Light Detecting Resistor).
  • A small mirror. 3x3 cm should be OK.
  • Breadboard.
  • Transistor. Any BJT is alright. We used the model 2N3904.
  • Resistors. 1kΩ and 20kΩ
  • Fimo. To attach the mirror to the motor.
  • Wires
  • Arduino UNO
  • Some kind of support for the system. This part is up to you. We used mecano pieces to assemble all together and keep the motor in its place. Any structure that you come up with would do the thing.

Step 2: Assembling It All Together

First, place the ULN2003a, the transistor and the resistors in the breadboard. Connect the motor and the Arduino ports as it is indicated in the fritzing image.

You will have to attach the mirror to the motor. We used fimo to make a piece that would fit into the motor's gearing, and hot-melt adhesive to stick the mirror to said piece.

The next step is an important one. You will have to make a structure able to hold the system, particularly the laser and the motor, as they have to be perfectly aligned. As it was said before, we used mecano to make the structure. The tires reduce the effect of the motor vibrations, and gives the harp a car-looking style. Cool, right?

You will need a power supply for the motor. We used an old one that we had at home.

Step 3: Arduino Code

This is the part where we spent most of the time. The program basically makes the motor go forwards 4 times and backwards another 4 times, lighting up the laser each time it stops, and turning it off when it is moving. This way it makes the effect of the 5 laser strings. Arduino sends messages through the serial port which should be received by a MIDI interface in the computer.

It also does some cool things, such as automatically positioning the mirror. You can download it and look through it if you like. It is commented at some points but it can be confusing (sorry!), so feel free to ask why we did one thing or another.

Step 4: Making It Sound

So we have our Arduino sending MIDI commands through the serial port to our computer. The next step is processing those commands. For that you will need:

Another option could be using a MIDI-enabled device, such a keyboard. But for that you will need a different hardware setup. It is very well explained in the project Pushan Panda's instructable, so check it out!

Be the First to Share


    • Made with Math Contest

      Made with Math Contest
    • Multi-Discipline Contest

      Multi-Discipline Contest
    • Robotics Contest

      Robotics Contest

    36 Discussions


    Question 1 year ago on Step 1

    Hello !I am currently doing this project but i had a quick question , What should i need to change in the hardware if I am using a stepper motor nema 17hs4401 ? Its a bipolar stepper motor. and secondly , how did you figure out what resistances did you need for the hardware. Thank you cant wait to test it !


    1 year ago

    Does the Laser have to be connected to the Arduino or can it just be turned on?

    1 reply

    1 year ago


    I am building this with a 4 wire Bi-Polar stepper motor and a SN754410 H Bridge IC. My question is, is the remainder of the circuit unchanged, ie from the Arduino to the LDR and transistor. Thank you.


    2 years ago

    I'm almost done, the problem is that my LDR is very low and varies too much. The variation when the laser is not reflected was a number between 0 and 13 and when the laser is reflected by white paper it looks like the normal situation (somewhere between 3-13). I placed the LDR underneath the laser (<5mW), used a 3x3 cm mirror,

    nick k

    2 years ago

    please please please help my. how to adjust the width of the beams?

    thank you

    Efrén ManuelG

    3 years ago


    Well, I will be getting my first arduino in a while, so I was wondering.
    Is it possible to adapt this to run into a Digispark (attiny85)?
    Apologies for my bad english (I'm spanish) and thank you for your reply!


    3 years ago

    I am thinking of building this project but it seems a lot of people have had problems with the instructions possibly being incomplete or not being able to source the correct parts. Has anyone built this successfully as shown or can they maybe offer a circuit diagram that's a little easier to follow?

    I'm also thinking of ordering the parts from https://www.jameco.com since they seem to have most of the components. Since I'm mostly a novice with electric stuff, it'd be nice of someone who isn't such a neophyte could put together a parts list.


    3 years ago

    Can anyone tell me how to modify the code to use a 4 wire stepper motor?


    4 years ago

    Got all the wiring done, laser is on its way, just one problem... I have a 5 wire stepper motor that when plugged in, rumbles or "vibrates" but does not turn. It's a 5v, with wires from left to right: pink, yellow, red, blue, Orange. I've tried rearranging the wires with no difference. I'm assuming the pink is the common ground, if I'm using the terms correctly (I'm not advanced at these types of things)... Any help would be great.

    1 reply

    Reply 4 years ago

    Got it to turn very slowly, and now it only spins in one direction


    4 years ago

    Hi there! Well, using a 7.5 degrees motor was really convenient because it produced a good result using one step for each beam of the harp. I guess that you could use smaller steps, but of course you should change the code a little bit. If you don't, the beams will end being too close to each other (which maybe isn't such a bad thing because you can fit in more strings!). Try this: in the code, wherever there is a "forward" or "backward" instruction (the ones that move the motor) add 3 more "forward" or "backward". That way, for each movement the motor will move 4 steps instead of 1, and as 7.5º / 1.8º ~= 4 it may work as a 7.5º motor would. I have not tried this so this is just a guess!


    4 years ago on Introduction

    Looking at the circuit diagram, it appears to me that the 'collector' pin of 2N3904 transistor is NOT connected to anything. Is that correct?
    If yes, then 'emitter' is connected to the laser, and 'base' to the ground.
    If no, can you please describe in detail where each pin of transistor is connected to?
    Finally, what is the purpose of the transistor?

    2 replies

    Reply 4 years ago on Introduction

    OK, so first off, I have NOT built this yet, and will probably be making my own design so I can learn about electronics in he process. However, I have been doing a lot of research over the last few days and I think I can help. I'm pretty sure the purpose of the transistor is to be an electrically controlled switch. Apply power and it stops resisting and lets power through which completes the circuit and turns on the laser. Leave it without power it has a high resistance and the circuit is incomplete and the laser is off. I think the one side of the transistor that is not connected is an error in the diagram. The picture after it of the breadboard setup shows ALL the pins of the transistor connected to something. I assume one is connected to power, another to ground, and the base connected to a pin on the Arduino Uno. Hope this helps!


    Reply 4 years ago on Introduction

    Yeah, that's exactly it! I could not have explained the purpose of the transistor better than that. The laser is connected to the 5V pin on arduino and to the collector of the transistor. The base is connected to a digital output pin on arduino through a resistor, and finally the emitter SHOULD be connected to ground, as funisfun8 pointed. So that black wire on the diagram should have been connected to the hole just on its right. Thanks for pointing it out, I missed that!


    4 years ago on Introduction

    I am in the middle of constructing this but im having issues with the stepper motor and the beam is not separating any suggestions?


    4 years ago on Introduction

    Great Instructable,

    Quick question. Is it possible to use a 4 or 5 wire stepper instead of the 6 you used? If so, what alterations would be necessary.


    3 replies

    Reply 4 years ago on Introduction

    Hi, I'm glad you liked it!

    Quick answer: yes, it's possible. The only important thing is that the motor you use has steps big enough so the beams look good. Ours had 48 steps/rotation. As for the number of wires, every stepper motor will work in a similar way. You just need to know how yours does. Maybe this will throw some light:


    Also, Arduino has a stepper library that may help. I would have used myself if I had known about it before. I'm sure they made it easy to use. Take a look:


    I hope this helps!

    I am in the middle of constructing this but im having issues with the stepper motor and the beam is not separating any suggestions?


    Reply 4 years ago on Introduction

    This is a big help thanks, those articles answer my questions perfectly.

    I was also wondering, what is the purpose of wiring the laser into the circuit? Could you not have the laser stand alone and run off it's own power source? You would have to turn it on separately, but what is the purpose of connecting it to the circuit?

    Thanks for the feedback.