mPod - an mbed media player

The mPod was built at Georgia Tech in the ECE sophomore level C++ programming class as a mid-term two-week student laboratory project using the mbed cookbook's *.wav file waveplayer for audio output from the D/A, the SDfilesystem to read microSD card music files, and the uLCD 144 driver to play the video clips. Four small software debounced pushbuttons from Parallax control the player and the songs displayed in the LCD's menu are read from the micro SD card's directory. Easy to use include files pull in the reusable C++ class code modules for each of these devices, and cookbook Wiki pages provide the details of how they all work and are wired on the breadboard. Students purchase their own mbed parts kit, and already have a breadboard and jumper wire kit available from prior laboratory classes.

An audio jack breakout drives a PC speaker, or the small black PC mount speaker and driver circuit on the breadboard can be used for audio output. The smart color LCD, small speaker, microSD card breakout, and audio jack breakout board seen in the breadboard below are all available from Sparkfun.

Audacity was used to downsample and prepare the *.wav audio files for the SD card and the free 4D Systems Workshop IDE tool was used to resample the video clips for the small 128 by 128 color LCD's SD card. Audio files will play at around 15Khz in mono on the LPC7168 mbed's D/A, and the video frame rate is near 15 frames per second on the color LCD.


A PDF of the instructions provided to students for this assignment is available. The links below will bring in the required include files into a new project in the online compiler to get started.

This library contains code for a *.wav audio player that is used to play music.

Import librarywave_player

Wave playing code, based on Big Mouth Billy Bass, but cleaned up and capable of playing more bitrates and sample sizes.

This library contains code for printf functions for the color LCD and functions for playing videos.

Import library4DGL-uLCD-SE

Fork of 4DGL lib for uLCD-144-G2. Different command values needed. See for instructions and demo code.

This library adds support for micro SD filesystems. It is used to read the directory and music files.

Import librarySDFileSystem


This library debounces the four pushbuttons using interrupts and activates callbacks for each button used to control the player.

Import libraryPinDetect

InterruptIn style DigitalIn debounced with callbacks for pin state change and pin state hold.

A simple "Hello world" example for each of these libraries is available in the cookbook using the links provided earlier on this page.

Please log in to post comments.