WART: (really) cheap audio playback

WART may be the the worst sounding audio playback systems ever created. But it's six lines of code and works on the tiniest processors.

Public Chat
Similar projects worth following
WART uses the garden-variety UART available in any microcontroller to generate PWM audio. This project shows you how the PWM works, and includes schematics, photos, an Arduino project file and a python script to convert your favorite .WAV file to a "WART format" .h file. As a special bonus, you get a pre-made wart.h file for your listening enjoyment!

Full build details and other goodies are in

Beyond the basics shown in this project, some future directions to consider:

  • Run at a higher bit rate
  • Use an H bridge to drive the speaker
  • The current system uses one full byte to represent nine different PWM levels.  This is inefficient -- create a more compact representation.
  • Make it easier to convert audio files into WART-format .h files.


You are free to copy and modify the code under the terms of the MIT License.

license - 1.07 kB - 07/12/2021 at 12:05



A sample recording of the WART output.

x-wav - 1.49 MB - 06/28/2021 at 13:13


Convert a .wav file to a WART-format .h file

x-python-script - 3.25 kB - 06/27/2021 at 02:41



Sample wart.h file for your listening enjoyment.

h - 974.75 kB - 06/27/2021 at 02:41



Arduino project file (only six lines long!).

ino - 205.00 bytes - 06/27/2021 at 02:41


  • 1 × Any Arduino-style processor
  • 1 × Any garden-variety NPN transistor
  • 1 × A 10K Ohm resistor
  • 1 × Any 8 or 16 ohm speaker you have laying around

View all instructions

Enjoy this project?



Dejan Ristic wrote 07/09/2021 at 19:02 point

Dammit I got rickrolled! You bastard :D
Seriously though, that's a pretty cool hack. 

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates