The MintyMP3 hardware is a standard mix of high power 8-bit microcontroller and ASICs. A single PIC18LF452 running at 20mhz (For v2 the crystal has been changed to 29.4912MHz) with the minty firmware talks to the CF flash card, navigating the FAT16 file system and loading mp3 files, then sending the data to the STA013 MP3 decoder chip. The STA013 decodes MP3 into digital audio which is then converted to linelevel audio by the CS4340 DAC. There is also a MAX576 boost regulator (optional if running from a LiIon battery) and a MAX2606 FM transmitter (optional).

Everything on the board runs off of 3.3V (3.0-4.0V is ok so it can run directly off of a LiIon) don't even think of running it at 5V!


The microcontroller is PIC18F452 (in particular, the 18LF452, which can run at 3.3V), the 'really nice' PIC. Lots of RAM/ROM and can run a bootloader. The PIC reads and writes the compact flash card (for playing mp3s and uploading/deleting mp3s), reads button presses, and configures/runs the STA013 mp3 decoder chip. It understands the FAT16 file system format, although it ignores long filenames. The best way to use it is to program it with a bootloader, such as the tinybld'r, and then upload new firmware as desired through the serial port. Using a bootloader is much faster and doesn't require a PICStart/ICSP programmer.

MP3 Decoding Chip

The MP3 decoder chip I used is the STA013, which is the only one I could find to purchase easily (going rate is $12) in the US (Mouser sells it and Digikey carries the more extensive STA015T which also does MP3 encoding, PJRC also sells it for a very good price. Also FutureLec has it for a paltry $7!)

The MP3 chip is controllable via an I2C port, to set the volume/bass/treble, upload new firmware, get the current mp3 data, start/stop etc. It then signals that its ready for mp3 data by pulling the MP3REQUEST line high, after which the microcontroller sends the file to the STA013 via SPI.

A lot more information is available from PJRC's 'how to use the sta013' page. This is a strictly 3.3V chip.

I didn't use the VS1001K or MAS3509/MAS35x9 because they were not as easy to get.


For a DAC I use the CS4340, which you can buy from Newark for $2.50. They make up for it by charging $12 shipping. I would highly suggest that it get replaced by something like the $2.70 PCM1748 stereo audio DAC, which is carried by Digikey or can be sampled for free from TI. (So, I haven't gotten off my ass and actually figured out how to replace the CS4340 with the PCM1748, it has a different pinout and I'm lazy. Feel free to make the change and send me the update!)

If you want to drive headphones instead of line out, I wouldn't use the cap/resistor values in the datasheet, since they seriously attenuate the signal. Try 10 instead of 560ohms and a beefy 33 or 47uF cap instead of 3.3uF to keep realistic 3db cutoffs (see the PCB schematic).

Or better yet, measure the capacitors and make sure that the low -3db point is ~120Hz and the high -3dB point is >>20kHz

Compact Flash Storage

My digital camera went bust so I had an extra 128M compact flash card. The nice thing about CF is that it's pretty damn cheap (you can get a 512M card from CostCo.com for $50). Cheaper & faster than multimedia cards (MMC) and can be accessed via a PCMCIA slot, as all PC laptops have, using a $5 adaptor (although you can read/write using the Java program MintyComm program talking through the serial port).

One nice side-effect of using CF cards is that they 'talk' ATA so it's easy (design-wise) to swap it with a full IDE drive in case you ever need to access a large amount of data (a car mp3 player?)

DC/DC Converter

In case you want to run this off of 1 or 2 alkaline/rechargables there is a DC boost regulator on board, the MAX756, which will step up a 1V supply to 3.3V @ 300mA. A little pricey at $5 from DigiKey, but you can sample them for free from Maxim's website. Theres even a 'low battery' indicator but it seems sort of counter-productive to burn more power through an LED.

FM Transmitter

I hate not having an audio cable to hook up a player to a car, so instead, I put the incredibly cool MAX2606 (only available in low quantities by sampling) all-in-one FM transmitter chip in. Wow! Very low power only a few mA, so I didnt even put in a switch for it.

USB Interface (New for V2)

A USB to serial chip (the FTDI232BM) and li-ion battery charger chip (MAX1811) means you can plug Minty into USB and upload/download files and recharge your battery, sweet!
This guide was first published on Apr 21, 2013. It was last updated on Apr 21, 2013. This page (Hardware) was last updated on Aug 21, 2019.