We are both PhD students in Computer Science at Princeton. We are both interested in teaching, especially young students. One of the hardest things about teaching computer science to young students is getting them engaged in the material. We wanted to create a fun physical interface that would allow children to explore electronics and coding in an entertaining and easy way. We chose to use a plush material because we wanted something that was familiar and friendly to children, even those that may be wary of electronics/technology.

What it does

The Octduino is an octopus plush that has 12 programmable buttons sewn to its tentacles with conductive thread. We have programmed the buttons to play the 12 notes of an octave so that the Octduino can be played like a piano. We have also created a GUI which we have included on our website,, which allows the user to program the notes which will be played by each button using a simple graphical interface. The user can also program the Octduino to be a general purpose USB controller, allowing the user use the Octduino to control all types of video games.

How we built it

We purchased an octopus plush from Walmart and proceeded to completely take it apart and create the Octduino. We sewed three buttons on four of the eight tentacles using conductive thread. We attached two wires to each button that ran through the legs and out the back of the octopus plush. We attached two speakers in place of the eyes of the octopus and ran the wires through the back. We then connected all 28 wires to an arduino and breadboard. We built a GUI in javascript that displays a virtual keyboard and virtual Octduino. The user can select a note for each button on the Octduino using the virtual keyboard. The GUI outputs a header file containing the button data which can then be included in the arduino project so the physical Octduino plays the programmed notes.

Challenges we ran into

The physical assembly of the Octduino was very challenging. We were determined to utilize conductive thread for our project instead of hard buttons because we wanted the Octduino to maintain a soft, plush feel. However, we found that conductive thread has rarely been used successfully in existing projects (that we could find online) so we had to iterate through many designs for the buttons. Attaching the insulated wires to the conductive thread buttons also required several iterations. We eventually decided to solder thin, bendable, wire to the insulated wires and bend it into a loop shape which we then sewed onto each button. Once the Octduino was fully wired, we then were faced with the challenges of programming on an embedded system. Standard arduino libraries for playing tones did not allow multiple tones to be played simultaneously. We eventually found a solution by utilizing multiple pins to send signals to the speakers.

What's next for Octduino

We want Octduino to be a tool for young people to have fun while learning about electronics and programming. We have started Octduino on its way by creating the physical Octduino itself as well as a basic GUI which allows for the buttons to be reprogrammed. In the future we wish to extend the GUI so that the user can reprogram the Octduino to play their favorite video game, or even a game of their own design.

Share this project: