Mini Invisible MIDI Harp




About: We are electronic engineering students from Bolivia, trying to innnovate in the creative side of electronics
This is a simple and easy to make MIDI harp, it runs on an Arduino UNO and uses infrared sensors as strings.
It communicates with every recording software that has MIDI.
Its really fun to play with and also very cheap, so enjoy!!

Este es un simple y facil de hacer harpa MIDI, funciona con un Arduino UNO como controlador y tiene sensores infrarojos como cuerdas.
Puede comunicarse con cualquier software de grabacion que tenga la opcion de usar instrumentos MIDI.

Es muy divertida y bastante barato, disfruten! 

Made on August 17th 2013 for the August Build night with Jameco

All materials provided by

Step 1: Materials

List of materials:

- 2N2222 Transistor (x14) 
- Infrared LED's (x7)
-Infrared reciever (x7)
-100 ohm resistors (x7)
-1K ohm resistors (x7)
-10K ohm resistors (x7)
-400 ohm resistors (x7)
-One sided PCB
-Arduino UNO
-Stranded cable, plenty.
-Breadboard pins 
-Glue for wood
- PCB etching solution (Ferric chloride) 

- Dremmel
-Solder iron
-Insulating tape
Permanent marker
-Nail polish remover
-And everything you find helpful

- Transistor 2N2222  (x14)
- LEDs infrarojos (x7)
-Receptores infrarojos (x7)
-100 ohm resistores (x7)
-1K ohm resistores (x7)
-10K ohm resistores (x7)
-400 ohm resistores (x7)
-PCB con cobre de un solo lado
-Arduino UNO
-Cable multifilar en cantidades necesarias.
-Pines de protoboard
-Pegamento de madera
-Liquido para PCB (Clorato de ferro)

- Dremmel
- Alicates
-Soldadora o cautin.
-Cinta aislante
-Marcador permanente
-Quita esmalte de uñas.
-Todo lo que encuentres necesario.

Step 2: The Circuit!

Start by cleaning the PCB with a dry sponge so it gets kind of shinny, and start drawing the circuit with the permanent marker.
Do this for the EMITER circuit and the RECIEVER circuit.
Apply a few layers of marker so that it protects the copper well.

You can use tha laser print method to make the PCB here a link to how to do this:

After you've got the circuit, its time to bring the etching solution!
CAUTION: its important that you use rubber gloves, use a hard plastic or glass container to use the solution and do it on a ventilated place.

Dip the PCB for a few minutes in the solution  until all the unmarked copper is gone. Then clean the pcb on water until all the solution is rinsed.
Clean the PCB with nail polish remover, and then clean it again with the sponge and you have you PCB ready to go!

Empieza limpiando la placa PCB con una esponja hasta que la placa tenga brillo, y empieza a dibujar el circuito con el marcador permanente. Haz este procedimiento para la placa del emisor como la del receptor.
Aplica varias capas de marcador para poder proteger de buena forma el cobre.

Puedes usar el metodo de la impresion a laser para un mejor resultado aqui dejo un link para aprender como hacerlo:

Despues de tener el circuito dibujado es hora de traer el quimico para el PCB!
IMPORTANTE: usa guantes de goma, usa un container de plastico duro o vidrio para contener el liquido y hazlo en un lugar ventilado.

Sumerge la placa en el quimico y remuevelo durante unos minutos hasta que el cobre descubierto se haya ido completamente, limpia la placa con agua hasta que quede sin quimicos. Limpia el marcador con el quita esmalte de uñas y termina limpiando con la esponja de nuevo para que este limpio y brilloso!

Step 3: Soldering!

Drill the holes on the PCB carefully with a dremmel.

Solder the components as shown on the circuit, and make sure that you leave a moveable space on the infrared reciever just in case that if it doesnt recieve the infrared light from the emmiter, you can adjust so that it does.

Taladra los huecon en la placa con el dremmel.
Suelda los componentes electronicos como indica el circuito, asegurate de dejar un espacio para poder mover el receptor infrarojo en caso de que no reciba la luz infraroja del emisor, y asi poder ajustarlo.

Step 4: Wiring

Measure the stranded cable to a distance that you require and solder a pin on one end.
Next solder the oder end to the signal out hole on the RECIEVER PCB. 
Make sure that the cable is long enogh to conect to the arduino.

Then mount your PCB's and the arduino to your enclosure and make sure everything is on the right place.

Mide el cable a la distancia que necesites y suelda un pin en un lado del cable.
Luego suelda el otro extremo del cable al agujero de la señal de salida de la placa del RECEPTOR.
Asegurate de que el cable sea lo suficientemente largo para conectarlo al arduino.

Luego monta las placas y al Arduino en la cubierta que diseñaste para tu harpa, y asegurate de que todo este en su lugar.

Step 5: Programing!

Conect all the signal cables to your digital pins on the arduino, since the sensor acts like a switch, its either going to be on or off.
make sure not to use digital pin 0 and 1 cause it gave me problems, you can use pins 2, 3, 4, 5, 6, 7, 8.

Attached is the arduino code, upload it to your arduino and the first part of this step is done!

You will need pure data instaled in you computer, since it gets the signal from the arduino and coverts this signal into a MIDI output note, below theres the Pd file, all you have to do is open the COM your arduino is on and its done.
heres the link to the pure data page its a free software:

You will need MIDIyoke instaled on your PC its free and its the key ingredient to this project, it conects pure data to any other software that can have a MIDI input.
heres a link on how to install it :

ow you need to setup midiyoke as a MIDI output on Pure data.
      1. Go to media on the task bar
      2. Select MIDI preferences.
      3.Select Out to MIDI Yoke 1 on Ouput devices 1 and then aply.

Next you have to set up Midi Yoke 1 as an input device on the music software that you'll use.

I used mixcraft 6, its not free but it works here a link to the page:

Conecta todos los cables de señal de salida a los pines digitales del Arduino, ya que el sensor actúa como un switch, Solo tiene la opcion de encendido o apagado.
Asegurate de no usar los pines 0 y 1 del Arduino por que dan problemas, puedes usar los pines 2, 3, 4, 5, 6, 7, 8.

Adjunto esta el codigo de Arduino, subelo a tu arduino y la primera parte de este paso esta termianda!

Necesitaras pure data instalado en tu computadora, ya que recive la senal de arduino y la convierte en una nota de salida MIDI, Abajo esta adjunto el archivo de PureData, Todo lo que tienes que hacer es abrir el COM de tu arduino y esta listo.
Aqui esta link de la pagina de Pure Data es un software abierto y gratis:

Necesitaras MidiYoke instalado en tu computadora tambien, es un software gratis y es el ingrediente clave, Conecta Pure Data con cualquier programa que tenga la opcion de entradas MIDI.
Aqui les dejo un link de como instalarlo :

Ahora necesitas configurar MidiYoke como una salida midi en Pure Data:
      1. Ve a media en la barra de herramientas
      2. Selecciona preferencias MIDI.
      3.Selecciona Out to MIDI Yoke 1 en Ouput devices 1 y haz click en aplicar.

Luego tienes que configurar a Midi Yoke 1 como una entrada MIDI en el software de musica que usarás.

Yo usé Mixcraft, no es gratis pero funciona, quie le dejo el link:

Pure data and Arduino code / Archivos de Arduino y Pure Data

Here's a video to guide you through the instalation:

English version:  Pd file // Archivo de Pure Data Arduino code //Codigo de Arduino

Weekend Projects Contest

Participated in the
Weekend Projects Contest

Arduino Contest

Participated in the
Arduino Contest



    • Sensors Contest

      Sensors Contest
    • Beauty Tips Contest

      Beauty Tips Contest
    • Games Contest

      Games Contest

    11 Discussions


    3 years ago

    Sorprendente. Lo hare e incorporare a mi estudio!!!


    5 years ago on Introduction

    Ferric chloride is nasty stuff, and needs hazmat disposal. There are better etchants. I just realized that Instructables doesn't have a search function, but a Google search on "cupric chloride etchant" will find some articles. CuCl2 is just as nasty, but you don't have to dispose of it after an etch. Bubbling air through the bath regenerates the etchant.

    2 replies

    Thanks for the tip! there has to be better ways to make a good PCB, ill do more research on it, thanks!


    Reply 5 years ago on Step 5

    I just uploaded the dropbox link to download the files, sorry about that. there must have been a mistake on my end.

    Hello good friend, my question is as pure data I installed on my pc and upload the file and then get it to work as ???? the same situation happened to me with Midi yoke and configure it with the PD and the Mixcraft but please tell me more I ??? I hope answers please this is my email: thanks.


    5 years ago on Introduction

    Nice project, I used 6 IR beams in my Broomstick guitar you can find on youtube or I wired the IR dectors directly to the analog inputs. I multiplex 6 IR Leds and 6 optical Leds and use a PS/2 mouse for the finger board control.


    5 years ago on Introduction

    Great little thing this but I have a problem with step 3, you say solder the components as shown on the circuit, you don't mention what value resistor goes where and the colour bands on your resistors (in the pictures) don't seem to match the resistor values in the components list. Can anyone please give me a hand with this, I am still a bit of an electronics noob.


    5 years ago on Introduction

    hola que tal oye me podrias agregar en dropbox o pasarme el diseño del circuito
    mi correo es


    5 years ago on Step 5

    Could you please email me the arduino code. Under step 5 i see arduino code dropbox link but the file is a .pd just like the other link which is a .pd file.