Make a directory inside your “tessel-code” folder called “audio”, change directory into that folder, and initialize a tessel project:

mkdir audio; cd audio; t2 init

Download this mp3 into the “audio” directory, this will be the audio file we manipulate.

In order to include static, non-require-dependency resources in your deployment, you’ll need to explicitly inform Tessel’s CLI. To do this, create a .tesselinclude file in your audio directory. In that file, type the name of the static asset that should be deployed with the project. For this project, your .tesselinclude will have at least the following in it:


(Learn more about Tessel CLI deployment tips and tricks in the docs)


Plug Tessel into your computer via USB, then plug the audio module into either of Tessel’s USB ports. You will also need some kind of speaker output, headphones or desk speakers will do the trick.


Install by typing npm install tessel-av into the command line.


Rename “index.js” to “audio.js” and replace the file’s contents with the following:

// Any copyright is dedicated to the Public Domain.

- Play audio from an amusing scene between Luke Skywalker, R2-D2 and Yoda
- When the audio reaches the end, play it again from the beginning.

var path = require('path');
var av = require('tessel-av');
var mp3 = path.join(__dirname, 'yoda-mudhole.mp3');
var sound = new av.Speaker(mp3);;

sound.on('ended', function(seconds) {;

Save the file.


In your command line, t2 run audio.js

Hooray! You should hear the mp3 playing in a loop!

Bonus: Try connecting buttons to your Tessel 2 and use them to control playback. Hint: it may help to look for the NPM module tessel-gpio-button.

Extra bonus: Load many mp3s onto a USB storage drive and playback from that source. Hint: check out the “storage” tutorial on the left sidebar.

To see what else you can do with the USB audio module, read the tessel-av documentation.


What else can you do with an audio module? What are you making? Share your invention!