Guitar Robot

Our goal is to play the guitar using a “Robot”, that is controlled by an Arduino.
We supply tab files via SD card

The code is in C for Arduino.
Arduino source code.
Tabs for example.
Project design & summary


  • Robot should play the guitar without any help.
  • Read tab files from SD card.
  • Easy to write tab files.
  • Prepare a cool musical platform for further projects.

To play a guitar, we need 2 devices: fingers to press the fretboard and a pick to strum the strings.

  • Fingers:
    • To emulate the fingers, we used a Solenoid. Solenoids are a great way to induce linear motion for pushing and pulling.
    • Our initial design was to locate a Solenoid above each fret in the fretboard.
      This is an expensive device so we only were able to order 7 units that are a good fit to the frets size.
    • As a result of the constrains above, we are playing on a single string only.
    • The code is generic and can play on the whole guitar, if the HW is available.
    • The Solenoid needs 12V and at least 2A to push hard. Arduino can’t supply this much of power, and an external power and electrical switch is needed (for push and pull commands).
    • We used a 3 cells LIPO battery and a transistor to do the switching.
  • Pick:
    • To emulate a pick, we used a Servo.
    • Servo is a small device that has an output shaft. This shaft can be positioned to specific angular positions by sending the servo a coded signal, called PWM.
    • We attached a pick to the servo’s shaft and located it above the string
    • A pick of the string is done by moving the servo at ±15 degrees.
    • The needed PWM signal to move ±15 degrees is generated by the Arduino.
    • <img style="width:400px; height:300px" src=""

How to play?
To play a song, we need tabs. Tabs is a file that describes which notes are going to play, at which sequence and period.
We designed a format that will be easy to write and understand by a human and the Arduino.
Each line in the tab file represents a bit, and what should be played in that bit

The user chooses which tab file to play that are available in the SD card.

The Arduino is parsing the tab file and plays it.


Future projects:

  • Improve fretting design by using 6 Solenoids only (for each string)
    and a stepper motor to locate each solenoid dynamically over the required fret.
    This will give us the ability to play the whole guitar!
  • Use a MIDI file to play songs. This can be done only when we’ll be able to play the whole guitar notes
  • Hear & recognize a song using Cloud services, download the right MIDI file and play automatically.
  • Hear a singer, identify the chords and play along.
  • Contact Us:
    Gil Rockah:
    Roie Natan:

Close Close