WAV music player uses an ATtiny

We’re very accustomed to seeing small media player builds, but [txyz]‘s ATtiny-powered audio player is one of the smallest and most feature-packed we’ve seen.

The audio player is powered by the very small and very inexpensive ATtiny2313. The music is stored on an SD card – a maximum of 2GB of WAV files recorded in mono at 32kBps at an 8-bit depth. On boot, the ATtiny loads the first audio file from the card and outputs it through a speaker connection.

To make things interesting, [txyz] made the audio player controllable via a serial connection. Once a small FTDI adapter is connected to the player, [txyz] can connect to it through a terminal and run through his playlist.

Even though the player is controllable through a serial port, there are a few pins left over that [txyz] could attach to buttons, if so desired. With a battery pack, this would turn his music player into the homebrew equivalent of an iPod shuffle. With the low component count, it might actually be cheaper than the shuffle, if [txyz]‘s time is free, that is.

Video after the break.


  1. dattaway2 says:

    I love the use of enamel wire. Cheap and plentiful. Awesome hack.

  2. jmptable says:

    I want to see it done with an SMD Attiny2313 and soldered to the back of an SD card (or inside if possible). I like small things. This is very well done on the software side of things.

  3. FredT says:

    Actually (the link is at the end of its page), he reproduced an existing design:


  4. biozz says:

    FINALLY a way to listen to all my banging waves threw a serial terminal!

  5. rue_mohr says:

    This is running on 3.3V right?

  6. h8 says:

    elm did this a long time ago: http://elm-chan.org/works/sd20p/report.html

  7. FrankenPC says:

    Semi-related question: Does anyone know of a project or shield that is capable of playing 2 or more simultaneous WAV/PCM files based on multiple input triggers?

  8. mynameismud says:

    they mean 32 khz right.. not kbps

    • CalcProgrammer1 says:

      In an 8-bit WAV they are synonymous, as each data point in the waveform is represented by one byte, though it would be 32KBps as opposed to Kbps (bytes vs. bits). The wav player reads one byte every 1/32,000 second and sets either a DAC or PWM pin to that value.

  9. Harvie.CZ says:

    What changes do we need to support mp3s? I guess attiny doesn’t have enough space for firmware. Does it have enough processor counts?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Get every new post delivered to your Inbox.

Join 96,545 other followers