EchoMp3 v3.1

Get this page as PDF

TechDesign Electronics

 


KIT2 with OLED module playing an mp3 file.

 

The EchoMp3 is a small DIY* Audio player.

 

  • Mp3, Wav, Ogg-Vorbis, Wma and Mid formats are supported.
  • 4, 8, 16 GB SDHC cards used as storage.
  • FAT (FAT16) and FAT32 supported.
  • Low power operation with two AA (HR6) 1V2 Ni-Mh batteries.
  • Power input range is +2.4V ... +3.0V
  • Runs on a PIC18F46K20 at 64 MhZ.
  • Up to 320 kBps bitrate CBR  and VBR at 44,1 kHz supported.
  • ID3 v2.3 tags supported.
  • Full user control (volume, track, pause, skip, directory) with a 5-way micro joystick.
  • Optional OLED Module 1 with RGB OLED 96x64 pixels.
  • Real time display of bitrate, sampling rate, elapsed time, songnumber, ...
  • Directory scrolling and file fragmentation support. Directory depth up to 10 accepted.
  • SDHC (High Capacity) Cards now standard. Here are some compatible cards.
  • Serial interface control so the player may be used as a playback module.
  • High quality stereo DAC with a S/N ratio of typ. 94dB.
  • THD of max.  0.07%
  • Sounds way much better than an iPod or Smartphone!
     
  • Voice Recording in OGG Vorbis-format will be added later.

 

* Do It Yourself.

 Schematic & pcb (Eagle 4.11e), hex file available. Player Software Updated on February 12, 2011.


Circuit explanation / Getting started:

 

PIC18F46k20   The 18F46k20 offers high speed and low power operation. Well suited for a portable application such as this one.
VS1053   MP3 decoder chip. Enhanced performance compared to the VS1001K and VS1002 Sounds great! Future enhancements (equalizer and so on) are possible. Thanks to GBUF, no need for large capacitors at the earphone outputs. The chip also has a recording mode!
SDHC   Royalty-free and open source protocol makes this a great memory to work with. Finding a socket was more difficult. Format the card as FAT (FAT16) or FAT32, then copy them (all at once) to the card (with a cardreader.) Directories may be used. Tagging of your MP3 files can be done with Mp3 tag tools (freeware) and Audio Tags Editor (evaluation period.)
OLED   OLED Module 1 with 96x64 pixels RGB OLED, Size: 0.95"

Needs a +14V Vdd, this is generated by a TPS61080

Controls   With the micro joystick, there are 8 user controls available. Two for volume (up & down) , track (left & right) , pause/play (short enter), skip (long enter) and directory scrolling (short enter to go into pause, then up/down to scroll,  enter to go to the selected directory.)

Serial interface: volume (+ & -) , track (b & n) , hold/play (h & p), repeat one/play all (r & a), continuous/single play (c & s), goto tracknumber (ex: 14<ENTER> )

Volume, repeat and continuous settings are stored and reloaded on reboot.

Power   The MCP1640 DC-DC step-up converter makes it possible to power the whole circuit from only one AA battery. Some larger SDHC cards will not boot with a weak battery though. We have chosen two AA batteries for enhanced stability and endurance. Power input range is +2.4V ... +3.0V Do not exceed this!
PCB:   We used as much SMD-parts as possible. The PCB from our shop is a double sided and 100% connection tested PCB with plated-through-hole connections. All holes are drilled already. PCB size = 66,50 x 54.90 mm

 


Schematics: (eagle-files and library can be downloaded below.)

Full resolution image: schematic and pcb (GIF format) Right-click and save as, then open in an image viewer (sch is too large for some browsers.)

Bill of Materials (Parts List)

Important note: The following sections from the schematic are not needed in this particular setup, and are left out on assembly: EE_PROG, USB, RDS TUNER, ACCELERATOR

 


Main connections:

 
VS1053 PIC18F46K20   SDHC PIC18F46K20  

CONTROLS

PIC18F46K20   OLED PIC18F46K20   X1 - ICSP - RS232 PIC18F46K20  
                             
 SO  VSSO, RD0, pin38    1 - CS  RB5, pin15    Volume Up /  Directory scroll up  RA1, pin20    1 - !RES  RC0, pin32    1 - MCLR  MCLR, pin18  
 SI  VSSI, RD0, pin39    2 - DI  RB4, pin14    Volume Down / Directory scroll down  RD7, pin5    2 - D/!C  RC1, pin35    2 - PGD  RB7, pin17  
 SCLK  VSSCK, RD2, p40    3 - GND      Next Track  RA0, pin19    3 - !CS  RC2, pin36    3 - GND    
 XCS  VSXCS, RD3, p41    4 - VDD      Previous Track  RD6, pin4    4 - D0  RB6, pin16    4 - PGC  RB6, pin16  
 XRESET  VSXRESET, RD5, p3    5 - SCLK  RB2, pin10    Pause / Play / Fast Forward (FF) / Enter  RA2, pin21    5 -VDD +3v3      5 -+3v3    
       6 - GND            6 - D1  RB7, pin17    6 - NC    
 DREQ  VSDREQ, RD4, p2    7 - DO  RB3, pin11          7 - GND      7 - PICRX  RX, pin1  
                   8 - VCC +14v      8 - PICTX  TX, pin44  
                             
                             
 

 

       

Downloads: right-click & "save as"

 
  WARNING: may not be duplicated for any commercial use whatsoever without explicit consent from the author (c) Michel Bavin, TechDesign Electronics.
 

 Schematic: 080_v025.sch and library (Eagle 4.11e), Dec. 23, 2011

 PCB: 080_v025.brd (Eagle 4.11e) Jan 31, 2011.
 PIC Hex files: 080_v005.hex (Eagle 4.11e) Feb. 12, 2011.

 

 PIC Source Code (ccs pcwh): not released, but you can buy a license on this Products page.

Get this page as PDF


Info & datasheet:

KIT2 with OLED: Directory scroll screenshot

 
VS1053 decoder chip
 
ID3 v2.3.0 informal standard.
The private life of MP3 frames.
 
Kingfont MMC socket SDCMF-10715W111
 
OLED Module 1 with 96x64 pixels RGB OLED, Size: 0.95"
 
 
 
 
RS232  connector pinout:

Look here to build the (very simple) terminal (RS232 level converter) hardware. Or use a USB to serial converter.

Download the Tiny PIC bootloader from the same site. We are using version 1.8 (Don't use version 1.91)

Or use a direct connection to/from another PIC or µC. Then simply cross the RX/TX lines.

 

RS232 controls and  Command set

 

  • Player control via RS232 terminal. (X1: RS232 Level converter/ serial com port @115200 bpS with "type communication") Or use a direct connection to/from another PIC or µC. Available commands (in green:)

 

  • Volume up: +
  • Volume down: -
  • Previous track (back): b
  • Next track: n
  • Hold (Pause): h
  • Play: p
  • Continuous play: c
  • Single play and stop: s
  • Repeat one: r
  • Repeat all: a
  • Goto tracknumber (number followed by 0x0d) example: 14<ENTER> or 005<ENTER> works both with or without one or several leading zeroes.

 

Note: the serial controls may be used along with the joystick. Goto tracknumber command may be given whilst playing another track.

 
 

Screenshots:

PCB image (real size = 66,50 x 54.90 mm )

 

KIT2, Assembled PCB image, without OLED

 

     

PCB diagram

   

   

Tools:

Check out our development tools page.

The PIC code was made with the PCWH CCS compiler ($500,-); you can install Microchip's MPLAB IDE (click on the link and you can get it for free) with it to get things running smoothly.

Programming of the PIC was done with a GTP-USB+ hardware programmer along with the WinPic800 software.

Eagle 4.11e was used for the schematic & PCB layout. 


Projects Home