Embedded MP3 module

By on October 15, 2011

This embedded MP3 module is an universal and compact circuit (37 mm x 27 mm) for playing MP3 audio files. The MP3 module can be used in embedded systems.
The MP3 files (up 65,536) are stored in a micro SDcard.
Controlling the module could be done either by buttons and digital inputs or via TTL serial interfaces.

The MP3 module (developed by Luca Pascarella info at lpsystems dot eu) is based on MP3 converter VS1011 and a PIC24 and can play up to 65,536 songs or voice messages stored in a microSD. Each track can be selected via serial lines or by using 9 buttons or switches (64 mp3 files with dip switch). If you choose the serial communication you have to use a microcontroller, using the 9 digital lines you can control the player with logic signals from stations of various kinds, such as tension-indicator lamps, relays, etc.. The module can be used to play voice messages in vending machines, telephone systems, in the car to inform the driver of the vehicle’s condition and environmental ones, in alarm systems, to assist configuration and inform about events that occurred, and in many other areas yet. The device supports micro SD with capacity up to 16 GB and can be powered with a voltage of 3.3 Vdc or 5 Vdc selectable. The module has a single in-line single-connector positioned on one side of the PCB, so you can better manage the space and mount it also in upright position.

In “Pin-to-Pin” mode is provided the use of three buttons (PLAY / STOP, VOL UP and VOL DOWN) ​​and a 6-way DIP switch connected to the module, while “Serial” mode the serial communication is with TTL signal level. The device can also be used in “Mixed” mode that allows you to issue orders both with serial port and pin-to-pin input.
In the mode Pin-to-Pin (mode 1) to perform a song you have to select the track number using binary inputs IN1, IN2, IN3, IN4, IN5 and IN6 and then run the selected file simply giving a ground pulse on the PLAY line. Applying logical zero on the lines VOL_UP and VOL_DOWN, you can respectively increase or decrease the volume.
In serial mode (mode 0) commands are very similar to the Pin-to-Pin, except for the choice of the MP3 file, which must take place in several stages within a time limit fixed in the configuration file. The special command # allow to insert the name of the track and the second special command * and the input.
For example, to play the file 65.mp3 you must perform the following steps:
• Step 1 (mode track name) = #;
• Step 2 (first byte of the track name) = 6;
• Step 3 (second byte of the track name) = 5;
• Step 4 (mode locking of track name, optional if you wait timeout) *;
• Step 5 (Play) = P;
• Step 6 (Stop) = S.

Mixed mode (Mode 2) allows to give orders both serial and pin-to-digital input pin. In this case the number of inputs usable is 4, for a total of 16 tracks addressable with Pin-to-Pin mode.
The names of MP3 files must be a number from 0 to 65535 followed by the extension .mp3 (for example, 0.mp3, 1.mp3, 2.mp3, 3.mp3 16.mp3 … … 65535.mp3).

The configuration of the module is made with a file (config.txt) saved on the memory card. The firmware of the MP3 player is able to recognize a new memory card and create the configuration file with default parameters, this is accomplished even when the configuration file has been damaged in some part. The generated file will be written to the root of the micro SD. The file consists of two parts: the first introductory to the project and useful to recall the description of the pins and some important notes, a second corresponding to the configuration section. In particular, all lines marked with the symbol “#” correspond to comments, the other concerning the configuration parameters. The configuration parameters are as follows:
Mode: lets you choose the mode of operation.
The possible values ​​are:
0 for the serial mode;
1 (default) mode for the Pin-to-Pin
2 for the Mixed mode.

Parameters for Serial Mode or Mixed:
Baud rate: indicates the communication speed of serial port (allowed values ​​are: 1,200, 2,400, 9,600 (default), 19,200 and 115,200 bps).
Echo Command: The parameter that enables the echo command sent and whose possible values ​​are 0 (off) and 1(on, default).
Extended echo Com: Similar to the previous command. When enabled, the serial port returns a description of the requested action (enabled by default).
Play: allows you to associate two distinct functions to control play, and if the associated value is 0 before sending the command “P” or “p” is not a trace was selected, the command is ignored. If you have room for 1 (default), the play command will perform the last song played previously in memory.
Timeout defines the duration in milliseconds of time for entering the track number, the value can vary from 1 to 10,000 ms (default is 3000, ie 3 s).

Parameters for Pin-to-Pin and Mixed mode:
Time Wait Play e Time Wait Vol: are similar and the value assigned corresponds to the time that elapses before the next state change is detected, and their value can vary between 1 and 5,000 ms (the default is 100).
Play: If set to 0 the change of state of the input pins Play (with a running track) is the pause function as long as the track number with the selected input pin (IN1, IN2, IN3, IN4 , IN5 and IN6) is not changed, if the value of the track changes, play action corresponds to the stop function. If the parameter is set to 1, the associated action at play when it is running a song is always and only stop.

Mixed mode-specific parameters (for enabling and disabling the action of the input pin):
0: Ignore the action
1: (default) enables state changes.

Schematics and BOM

0862_Schema2

 

 

 

Download ZIP File  Firmware
 Download ZIP File  Diagram

About Boris Landoni

Boris Landoni is the technical manager of Open-Electronics.org. Skilled in the GSM field, embraces the Open Source philosophy and its projects are available to the community.
  • Pingback: Tiny MP3 module is perfect for your next project - Hack a Day

  • Steve M

    This looks very promising. Any idea what a retail cost would be for an assembled unit?

  • Pingback: Tiny MP3 module is perfect for your next project | ro-Stire

  • http://www.open-electronics.org Boris Landoni

    Hi steve, you can buy it from our store http://www.open-electronics.org/products-page/

  • Sibosop

    Boris,

    The store link shows the mp3 player as not in stock. Any idea when it will be?

    • http://www.open-electronics.org Boris Landoni

      Now :-)

  • Pingback: Tiny MP3 module is perfect for your next project | CisforComputers

  • Pingback: Tiny MP3 module is perfect for your next project | You've been blogged!

  • anu ratha

    This mp3 module is fine.Kindly let me know the supplier details for the board.

  • http://www.open-electronics.org Boris Landoni

    You can find this product in the products page
    http://www.open-electronics.org/products-page/

  • Pingback: electronics mp3 projects | electronics projects

  • David

    I purchased Embedded MP3 module from you recently and it works great!!! I do have a couple of requests/ideas for you for possible future upgrades. In my setup I am using the serial interface which is very cool but would like to be able to pause or stop a track from playing and then play another track and later return to the previous track where it was paused or start it from the beginning based on the serial commend sent. Kinda like a bookmark. This track stop location would not have to be remembered if the player was powered off. The use for this capability is because I listen to audio books but would like to be able to pause or stop them and listen to music for a while and then return to the audio book either from where it was stopped or from the beginning. The other feature I would like to see is a discrete output that goes true from the PIC processor while a track is playing for an indicator. I would be willing to pay to have these features added.

  • NETeagle

    Very nice projet ! I love the elektor style schematic. Which software are you using to edit and produce the board ? Thanks

    • BorisLandoni

      For the schematics we use Circad, for the PCB we use Easy PC

  • Mike_A

    Is there a manual for using the MP3 Board? Such as setting the volume level in the config file for the pin to pin mode? I am working on sound effects for a Blaster and I need to select the sound file to play and have the sound level preset! In the Pin to pin mode when you push the play button do you push it again to stop the file playing? What is the response time of pushing the play button and the file starting and then stopping it?
    Thanks Mike

  • Simon

    Can the volume be set via serial? And does it offer a loop function?

    • BorisLandoni

      Hi, you can set the volume from the serial, also from serial you can do a repeat function (but non in auto mode)

  • Rüdiger

    1) Is it possible to generate a Play indicator while a track is playing?
    2) The module start´s with Maximum volume. Is it possible to set a Initial volume in the config.txt or is it possible that the module save the last volume Level and start with this Level when powering up?
    Thank´s

  • Pingback: styczen

  • Pingback: styczen

  • Pingback: styczen

  • Pingback: gtownrestorationscdc.org

  • Pingback: countydrugcard.org