a touch-sensing ukulele
designed for beginners, designed and made entirely from scratch for less than $7
CAD/CAMlaser cuttingvinyl cuttingelectronics designpcb millingfirmwareembedded programmingsoftware programmingweb programmingsolderingthermoforming3D printing




about the product

My belief is that good product design requires three core values – elegance, innovation and empathy. I’ve prioritized synthesizing these values in all of my projects in a studio I took in the fall called How to Make (Almost) Anything at the MIT Media Lab. I designed an electronic touch-sensing ukulele entirely from scratch, from its electronic components and physical form to its firmware and software. It’s elegant – with a design featuring smooth curves and transparent acrylic, its body is a window into its electric core. It’s innovative – the circuit encoding its multitouch, multiplexed and capacitive sensors fits on a surface smaller than that of a credit card. But most importantly, it’s empathetic. With the goal of creating an instrument for young beginners, the ukulele is engraved with labels for notes, thicker frets for a novice’s unsure fingers, and a thin body for easier holding. And all three of these design values come back together in the form of a connected app relaying live data on strummed notes and their related chords, and generating sheet music in real time. With the app, unstructured exploration on the ukulele can now inspire organic musical composition. Altogether, the ukulele and app cost under $7 to produce.

Here's a sketch of the vectors I created the body of the uke with - it's laser cut from acrylic which is transparent, and easy to laser cut and engrave. I liked that the uke wouldn't hide its electronic components - instead, you can see directly into the device. When I was little, I was always compelled to break my toys becuase I wanted to see into them and this is inspired by my childhood curiosity. The acrylic also is a beautiful surface to work with - it's cheap, light weight and engraves beautifully. I engraved the notes on the the neck of the uke so that the player can see exactly what they are pressing, and learn quickly. The design of the body is perfectly to scale with real ukuleles (I meticulously measured my own uke to choose the dimensions of this one). The body is slim, so beginners can adjust easily to the feel of the uke in their hands, and not feel uncomfortable with it. The vinyl cut traces that cover the frets are wider than traditional frets so the user can easily find the right places to press down without needing perfect precision and are positioned exactly where traditional uke frets are. I made this device so that a beginner could use it to train, and eventually transition seamlessly into playing a traditional ukulele.

Every layer of the device is overlaid onto this image - you can see the base, the raster images for engraving and the copper strips for the fret touchpads. I designed this in Adobe Illustrator - the red square is for registration for laser cutting.


The laser cut face of the ukelele with copper strips attached around the front and back of the neck, 3d printed hands for storage, and a capacitive pick (and the tiniest little pick holder). One of my favorite details is that every fret and string is labeled for players still grasping this (according to standard tuning).


electronics and the works

Creating the device itself also took a lot of work - I created a 16 pad capacitive touch sensor with a microcontroller (attiny44) that communicates serially through a USB port of a computer that it is connected to. This touch sensor is particularly interesting because it uses multiplexing to create 16 pads out of only 8 pins on the microcontroller. Since it is multitouch, each combination of a string and a fret touched at the same time produces a unique reading and thus, a unique note.

These images peek into the process of electronics production and assembly - I designed a board, milled the PCB and attached its components and then flashed the firmware onto the board. With this, I was able to start writing software to play audio for keypresses and an app with more advanced features.

software

I was inspired by Spotify for my interface - I wanted the experience of my app to be met with familiarity and comfort instead of introducing something entirely foreign. I also wanted to build in specific functionality to my project - the ability to see information about the note being played (related chords), and record a session, and also translate the session into sheet music. My design model was a web socket server in Python that could read from serial, process the data, and send a message to a web socket that my website was connected to. I understand that this is not compatible with Internet Explore - maybe for a longer term project, that could be navigated better. But for now, this was a good way to mock up designs (I'm more comfortable in HTML for GUIs over Python). I also tried initially to build the entire software element in python alone - I had many problems getting SDL, PyAudio, PyGame and other common libraries used for playing audio in the process so I figured that solving these problems would not be as productive as spending more time on development towards the project (so shifting to JavaScript for support for that was an easier choice).





check out a video of it in action

You can see currently playing notes, and related chords in real time and get feedback on your playing.