UkuleLED is a smart Ukulele device that helps beginners learn how to play chords by indicating the finger positions with LEDs embedded in the fretboard. You can select a song to play on your smartphone app connected to the UkuleLED. Every time you strum the chord, the app will automatically send the next chord to pick to the UkuleLED, so that you don’t have to check back and forth between the instrument and textbook.

A user scenario movie made at the beginning of this project.


Tech Notes
– Designed the circuit on EagleCAD, and printed it out on a double-sided copper board.
– Used LED Matrix Driver(HT16K33) to minimize the number of circuit paths to LEDs in order to fit all paths in the width of Ukulele’s neck.
– Adopted bit shifting in Arduino program to control LEDs without delay.
– Built an android app with Phone Gap through witch you can control UkuleLED via bluetooth. Once you select a song to play on app, a sequence of chords is sent to Arduino on UkuleLED. Every time you pick a string on UkuleLED, a signal is sent to app and update its screen describing which chord you are playing.
– Here’s the link to this Git Hub Repo


To begin with, drew a diagram to realize the story shown in the user scenario movie above.


Tried to figure out how to control 56 LEDs (4 for at each 14 threads) each one of them separately without delay.


Considering physical design. Decided to sandwich a LED panel made of a double-sided copper board between Ukulele’s neck and a thin fretboard with holes for LEDs so that LEDs are seen through the holes from above.


After tested some ways to control the LEDs effectively, we decided to use Adafruit’s 16×8 LED Matrix Driver.


Defined a communication protocol to control LEDs on Ukulele via bluetooth from mobile app.



Designed the wireframe and visuals for our mobile app.


Built the first prototype to test LED driver and bluetooth module connecting with our PhoneGap app. Every time you tap a button on the mobile app, it transmits a string to the Arduino on Ukulele. When the Arduino receives a string, it interprets the command out of the series of characters according to the protocol we defined, and control LEDs through the LED Matrix Driver.


Then built the second prototype to test chord shiftings triggered by picking a string of Ukulele. Every time the Arduino detects a picking sound, it sends a signal back to mobile app to let it shift to next chord.


Also tested giving an animation to mobile app indicating which chord the user is now playing.


Figuring out how to fit all connections for 48 LEDs within Ukulele’s fretboard. Red lines are on the front and blue lines are on the back of a double sided copper board.


Designed the circuit on EagleCAD.


Printing the circuit on a copper board with a 3D milling machine.



Circuit was accurately carved out. Left one is the top side, and right one is the back side.


Next, connected the circuit paths on the back and front by soldering.


Placed tiny surface mount LEDs with conductive glue on the front of the copper board using a placement machine.


Then melted out all the conductive glues to make it stuck on the board permanently using a heat gun.




LEDs are lighted up!(except a few)


Wiring them up.


Prototype version 4. Controlling LED panel from mobile app. (this time using a button instead of a microphone for chord shifting.


Purchased a Ukulele kit.


Placed the copper board on the Ukulele’s neck.


Photo in the ITP show.

Comments are closed.