Upright Laser Harp

New spin on the laser blocking musical instrument

Similar projects worth following
Laser harps are musical devices with laser beam "strings." When the beam is blocked, a note is played by the instrument. Usually laser harps have the beams travel vertically in the shape of a fan or vertical lines.

In this project, I built a laser harp with stacked laser beams that propagate horizontally. The beams reflect off mirrors to form square shaped beam paths. Instead of a MIDI output like my previous laser harp, this device has built-in MIDI player so the output is an audio signal. This means the device does not have to be connected to a computer or MIDI player (e.g. keyboard) to play sound. Both built-in speakers and audio output jack are available for playing music.


I was motivated to create a laser harp that was easier to play. With this design, the lasers land on "frets," which makes it much simpler to block notes with a single finger. Usually laser harps are played by blocking the beam with your entire hand, while this device plays more like a conventional stringed instrument. It is also a major challenge to align lasers with photodetectors, so my goal was to develop a mechanism that enabled fine-tuning of the laser beam direction without having to go through painful alignment. 


The upright laser harp consists of 12 lasers and photoresistors arranged in six layers. Two mirrors per layer reflect the laser beams to the photoresistors. In the figure, the red arrow indicates how the laser is reflected to the photoresistor and the corresponding pins the laser and photoresistor is connected to. The pins are scrambled up due to the way the wiring feeds down the tower to the Arduino Mega. The lasers can be triggered on and off using digital pins, and the voltage drop across the photoresistors is measured using analog input pins. When the laser is blocked, the resistance of the photoresistor increases and the voltage output drops.

The instrument produces audio output using the incredible Adafruit Music Maker shield. I was so happy to discover this shield, because I can now easily produce audio signals from the device without connecting a MIDI player. Check the link for all the info on how to set up this shield. The shield is run in MIDI mode with the audio output being run to audio jack and speakers. A latched pushbutton turns the speakers on and off. Here is a link to the chip (VS1053b) at the heart of the music maker shield. Page 33 has all the instruments.

The volume of the device is controlled using a potentiometer connected to the Arduino Mega. The output is read and software updates the volume of the MIDI signal. Finally, the device can also switch between different MIDI instruments. A rotary switch is read and the output is used to update the instrument. I chose to have 16 preloaded instrument selections on the device. The number of instruments is not limited by the Arduino and music shield. There are over 100 options for instruments on the VS1053 chip. I think there is probably enough memory on the mega to store all those instrument codes if you wanted. The selected instrument is displayed on a wheel with 16 spokes. The wheel is turned using a stepper motor, which is controlled with 4 digital pins.


Arduino code for Upright Laser Harp

ino - 8.75 kB - 08/22/2019 at 05:27


Zip Archive - 720.67 kB - 08/22/2019 at 05:20


Standard Tesselated Geometry - 68.05 kB - 08/22/2019 at 05:19


Adobe Portable Document Format - 7.85 kB - 08/22/2019 at 05:18


Adobe Portable Document Format - 7.38 kB - 08/22/2019 at 05:18


View all 27 files

View all 22 components

  • New kinematic mounts (KMV2)

    Jonathan Bumstead2 days ago 0 comments

    I designed and began testing the next version of the kinematic laser mounts. I took a few components from the previous design and started brainstorming modifications. I decided to attach the flexible mount to the rear component holding the screws instead of requiring a front component. This greatly reduces the size of the module.

    Initially I designed the flexible part that could be 3d printing, which I think would be easier to get working. I completed the part and soon after getting the 3d printer ready, I started to reconsider. The whole goal was to make the second prototype easier to manufacture and 3D printing 12 flexible parts for each harp was going to take a lot more time than the first prototype. I went back to the drawing board and came up with a design to test. 

    3D printed design idea

    Lasercutting design idea:

    After finalizing the design, I laser cut the parts and put together a small test assembly. I then tested the alignment range (i.e. the angle the laser can be steered out of the mount) by placing graph paper 15cm from the laser mount. 

    By calculating the displacement of the beam on the graph paper, I can calculate the steer angle. The steer angle helps me to figure out if the mount is working well enough because I know roughly what is required for the laser harp. Here is a diagram showing the calculation.

    I am able to adjust the beam around +/-4degrees in one direction and +/-1.5degrees in the other direction. I am getting close with this mount, but I need to make a few more tweaks before making a bigger test. Once I am happy with the mount, I will build up a layer and test it. 

  • Improvements for version 2

    Jonathan Bumstead3 days ago 0 comments

    The upright laser harp has been a successful first prototype, but there are a few parts of the design that make it difficult and time consuming to construct. My ultimate goal is to make the upright laser harp into a robust kit. I have the design plans for the first version freely available, but the current build is challenging with some tedious construction stages. Here I will outline my plans for version 2 of the upright laser harp that will make the whole thing easier to construct so it can reach a larger audience. I am also considering selling assembled versions of the upright laser harp.

    1. Improved kinematic mounts

    I spent the most time developing the kinematic mounts for laser beam alignment, but I am still not 100% satisfied with the results. In my first prototype, the lasers are glued into place and there is a "course" adjustment required. In other words, there is variation in how the lasers are positioned in the mount and if the laser is not put in the mount correctly, the fine tuning with the kinematic mount isn't enough to align the beams.

    For the next iteration in the laser mount design, I want the lasers to fit firmly in place and make the kinematic mounts flexible enough that they can be used for the full alignment procedure. I also want the kinematic mounts to be more compact.

    2. PCB for the photoresistors and laser diodes

    In first prototype (V1), the wires from the photoresistors and lasers are fed down through the laser harp. This makes cable management messy and frustrating. My goal for V2 of the upright laser harp is to design PCBs to be positioned at each layer with cable outputs:

    1. Photodiode output
    2. Laser output
    3. 5V
    4. Gnd

    These outputs can be directly connected to the Arduino Mega without the need for a prototype board. With these PCBs, the cables can easily be connected between layers of the laser harp. I also want to use photodiodes instead of photoresistors because of faster response and power consumption. 

    3. PCB for combining Arduino and Music Maker Shield

    The Arduino Mega and Music Maker Shield are expensive and I don't need all the pins. In the next stage of prototyping, I want to design a single PCB that combines the ATmega2560 and VS1053 ICs. This custom PCB will be specifically designed for the connectors from the photodiode/laser module PCBs and will cost less than buying the two boards separately.

    4. Optimize mechanical design

    Finally, I want to improve the overall mechanical design be reducing the requirements for glue, hiding the cabling down through the device, and optimizing the tolerancing. One major issue with the current design is the time required for jamming parts together and glueing because of tight or loose fitting components. 

  • Original project plans

    Jonathan Bumstead6 days ago 0 comments

    After completing the first prototype, I turned back to my original handwritten project plans. Looking back on these plans is also helping me with the next steps in the project. In this project log, I wanted to go over a few design decisions I made early on in the project and how they affected the system development.

    1. Laser beam trajectory

    I knew from the beginning that I wanted the lasers to propagate horizontally in a closed loop, but I wasn't sure how to shape the closed laser loop. I originally thought the laser beam wrapping into a circle would be best. This idea was inspired by the laser vortex projects and my laser sheet generator musical instrument. However, I soon realized it is difficult to wrap a laser beam into a circle. The closest solution I could find was using many prisms, but it would be expensive and difficult for the user to break the beam because all the prisms are in the way. In the photocopied page you can see my plans for circular laser trajectories and math to figure out how to achieve them with prisms.

    I eventually settled on making square trajectories because they were so much easier to construct. Initially I thought this was a setback in the development, but later thought square trajectories would look great and make the most sense to play. 

    2. Tower height and layer spacing

    In my first sketches, I imagined the upright laser harp being really tall with one laser on each layer. From the drawing, it looks like I always knew there would be two small speakers on the front of the device. 

    After getting some feedback from my wife, I switched to a shorter design with two lasers per row. I liked the compact look more and I started to realize that a major advantage of this design in general is a smaller system that is easy to carry around. 

    I also took some time modeling the stacked laser trajectories using Matlab. I needed to decide if the trajectories would change in the vertical direction. 

    Here you can see a few ideas I had. I liked the symmetry and simplicity of the constant trajectory size in the drawing to the right of the figure. This design would also be easier to construct and test the idea. 

    3. How to redirect the beams

    At the beginning of the project, I really wanted to redirect the light using prisms so that the laser beam would be visible throughout the entire trajectory. If I used mirrors, I worried that they would block the view of the beam path. After doing some math, I realized that a 90deg turn by refracting light through a prism would not be possible. However, prisms can redirect light in a 90deg turn through total internal reflection. I made an order for Hemicircle shaped plastic, which also can redirect the beam 90deg. I was disappointed how much of the laser light was still transmitted (so much for total internal reflection!). The losses were too much and the alignment was a nightmare. I decided to just go with small mirrors, which were cheaper and easier to work with. 

    To make up for this short coming, I made the device as "see-through" as possible so that it was easy to see as much of the beams as possible. 

    One last sketch here showing some of the planning for how to layout the lasers and how the beams should be tuned. 

  • Mounting electronics and soldering

    Jonathan Bumstead08/24/2019 at 01:38 0 comments

    I designed all the electronics to be mounted to the top of the electronics box so that the bottom panel could easily be removed if the electronics needed to be troubleshooted. The Arduino Mega, stepper motor controller, prototype board, and instrument wheel are all pressed into the top of the box using the mounts. A few lasercut parts slide over the boards as shown in the images above. These parts then press into the holes in the top of the box. 

    All the electrical components shown in the diagram are soldered to the prototype board: transistors for controlling the laser diode modules, resistors for the photoresistor circuit, pins for front panel components. There is a lot of soldering work here so I'd like to some day make a PCB for the upright laser harp.

  • Front and rear panels

    Jonathan Bumstead08/23/2019 at 04:42 0 comments

    I decided to build the device with two separate panels. In the rear are the jacks and switches for power and uploading programs to the device. In the front are all the controls related to controlling the instrument and audio of the device.

    Black acrylic pieces hold the components on the rear and front panel. Both acrylic panels are glued onto the wooden front and rear walls of the electronics box. After gluing the acrylic, I mounted the potentiometer, rotary encoder, on/off speaker switch, and headphone jack. On the rear, I attached a reset pushbutton, on/off power switch, power jack, and USB jack for uploading programs to the Arduino.

    The front and rear walls were then hammered into Layers 10-15, just like the side panels. At this point, I also connected the corner joints at the bottom of the device. A nut is glued into these joints so that bolts can hold on the bottom panel.

    I did a lot of soldering and wire wrapping to connect all the components as shown in the schematic. The power supply is 12V, so I made sure the Buck converter was adjusted for 4.5V output before connecting lasers and the motor. Finally, the outer wall for the electronics box were glued on to cover the Layer 10-15 tabs.

  • Instrument wheel

    Jonathan Bumstead08/22/2019 at 02:29 0 comments

    The laser harp can cycle through MIDI instrument sounds. I chose to preload 16 instrument labels on the Arduino that would be sent to the VS1053 chip on the Adafruit music maker shield. The number of instruments is not limited by the Arduino and music shield. There are over 100 options for instruments on the VS1053 chip. I think there is probably enough memory on the mega to store all those instrument codes if you wanted.

    To display the selected instrument, I designed an instrument wheel that rotates. An instrument name is written on each plank on the rim of the wheel. The signal from the rotary encoder changes the instrument and rotates the motor so the user knows which instrument is being played.

    The stepper motor is secured onto the mount with two bolts. There is directionality to this mount; see the CAD model gif and video to make sure everything is in the right direction. A 3D-printed motor coupler connects the motor shaft and wheel axle. The two axle pieces are glued together and pushed into the coupler. Then the first face of the wheel (the one with the bigger rectangular cutout) slides over the axle, followed by the second face of the wheel. Some wax may be required because it is a tight fit. The rim of the wheel with the instrument types holds the two faces together. The words will be upside down when viewing the wheel with the first face to the right of the second face.

    Next the two parts holding the Hall effect sensor are glued together. The Hall effect sensor is used to determine the position of the wheel. The bipolar Hall effect sensor switches high to low when the magnet field over the sensor changes. Two magnets are therefore placed on the wheel facing opposite directions. The wheel rotates until the sensor reads high and then switches to low. Some offset in steps is then added to position the first instrument at the right position in the display.

    The Hall effect sensor is pushed into place with housing over the middle lead to avoid a short. Check the wiring in the schematic. Now three circular parts slide over the axle so that the axle can turn in the circular hole in the Hall effect sensor mount. Two C-shaped parts are pushed orthogonally into the axle to hold everything in place.

    The motor is then connected to the axle via the coupler, which holds a nut and set screw that presses into the motor shaft. Finally, the whole assembly is held together with two spline shaped mounts.

  • Photoresistor design

    Jonathan Bumstead08/20/2019 at 05:02 0 comments

    To detect the blocked laser beam, I decided to use photoresistors. I debated using faster components, but, after watching this great Backyard Amusement video, realized that photoresistors would work fine given my requirements. 

    Even with the kinematic laser mounts, I knew that I wanted to add diffusers to make sure light fully illuminated the photoresistors. I used old 35mm film canisters cut to fit in a small mount, a trick I learned from my first laser harp

    A photoresistor is pushed into the photoresistor "wall," and two cables are connected to the photoresistor (one goes to 5V and the other goes to an analog input on the Arduino Mega). The film canister plastic slides into wooden mounts and is placed into a cross-shaped part. It looks like a little lantern. The body is pressed into the photoresistor wall. Finally, the photoresistor wall is used to connect the kinematic laser mount assembly. If the laser is aligned with the photoresistor, then a low signal out of the photoresistor corresponds to a blocked laser. The Arduino Mega is cued to play a note. 

  • Mirror Mount Assembly

    Jonathan Bumstead08/16/2019 at 04:18 0 comments

    The laser harp tower consists of twelve mirror assemblies and each assembly consists of five parts. Two brackets slide into the square mount and a 1" x 1" mirror snaps into place. To prevent the mirror from sliding out of the mount, two C-shaped joints slide in over the mirror. No glue is required for this assembly.

    These 1" x 1" mirrors aren't the best quality, but they worked well enough for the single reflex between the laser and photoresistor.

  • Kinematic Laser Mounts

    Jonathan Bumstead08/16/2019 at 03:43 0 comments

    The laser mount was the most difficult assembly to test and design. I wanted to be able to steer the laser for alignment with the photoresistors. In my previous laser harp, the lasers would get misaligned when I moved the device and there was no good way to finely adjust the lasers. Kinematic mounts are crucial components for optical systems, so I looked at existing devices for inspiration. All these devices use springs to apply adjustable force at specific locations in the device. My goal was to build kinematic mounts cheap, which meant replacing the metal springs with other materials. In my search, I also came across these LEGO-based kinematic mounts.

    My first designs placed the mirrors on kinematic mounts with rubberbands. This worked pretty well, but the mounts were bulky and difficult to put together. I started to think of ways to make wood spring-like so I could avoid the springs and rubber bands. The final design consists of wooden arms with slits in them that made them flexible.

    The mount consists of nine parts. First the rear body is put together with glue and four nuts placed inside. This part holds the screws that push the part holding the laser. Two parts holding the laser are glued together with the holes facing the screw. Finally, the three "spring" arms connect the front part and the part holding the laser. The laser is placed into the device later.

View all 9 project logs

Enjoy this project?



Øystein wrote 08/21/2019 at 08:25 point

What a wonderful instrument you have created! You should make a doctors bag case sou you could transport it easily :)

  Are you sure? yes | no

Jan wrote 08/23/2019 at 06:56 point


  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates