Home
JAQForum Ver 20.06
Log In or Join  
Active Topics
Local Time 19:23 27 Apr 2024 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : Catalex $6 MP3 player mod...

     Page 1 of 2    
Author Message
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9063
Posted: 11:38pm 25 Jul 2015
Copy link to clipboard 
Print this post

The Catalex MP3/WAV player module is an excellent unit for the price - a whole six bucks!

This one I have used in a few different projects and it is a very nice module and works really well considdering the price, and nice easy UART control.

However, this module lacks a BUSY pin, despite the 5300 decoder chip actually having such a pin - the designers of the module did not route this pin out to the header, for reasons I guess we will never know.

So I have hacked my one to provide this signal - only took about half an hour or so.

1) Remove existing pin-strip. I used Chip-Quik low melting point solder to remove the pin strip easily, but you could just lever up the little plastic insulator on the pin-strip, cut the pins, then remove the remaining pin with pliers and a hot soldering iron. Chip-Quik is neater though.

2) Mark the position for a 5th pin, and drill the PCB for this extra pin. Countersink both sides of the hole, to prevent the new 5th pin from touching the surrounding ground plane.

3) Install a 1x5 pin-strip, which restores the existing four connections, and adds one insulated one.

4) Add a very thin wire from pin10 on the decoder chip, to the new 5th pin on the pin-strip, and hey-presto!

You now have a BUSY line on the Catalex module, which goes low when any file is being played, and with that, your MM code can then detect when the module is busy or has finished playing a file. (this new BUSY line is normally-high)

Here is a photo of the mod from my microscope. The enamelled wire I used was 0.25mm




Smoke makes things work. When the smoke gets out, it stops!
 
cosmic frog
Senior Member

Joined: 09/02/2012
Location: United Kingdom
Posts: 278
Posted: 11:59pm 25 Jul 2015
Copy link to clipboard 
Print this post

Just ordered one of these to tinker with, hoping to build so sort of micromite jukebox so this hack will come in handy.

Thanks. Dave.
 
VK2MCT
Senior Member

Joined: 30/03/2012
Location: Australia
Posts: 120
Posted: 12:00am 26 Jul 2015
Copy link to clipboard 
Print this post

The unit has a TX pin.
Do you know what is sent ?
Thanks,
John B
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9063
Posted: 12:12am 26 Jul 2015
Copy link to clipboard 
Print this post

@ cosmic frog - Yeah, any time you want to use a module like this for playback, a BUSY line is really useful, otherwise the MCU has no idea of when the module is finished playback etc.

@ VK2MCT - The module does send data back on the TXD line, but the Engrish manual is very hard to follow as to the specifics of that, and the only manual I could find on the net for the 5300 decoder IC was all in Chinese. I ran it through google translate, and got a kind of English datasheet output, but it is still hard to understand a lot of it! The datasheet does suggest that it does send data back for various things, but I have never used the TXD line - I just send commands, and don't really care about what it sends back.

I might hook up my logic analyser to it's TXD line, and see what comes back on that line, for the purposes of experimentation.
Smoke makes things work. When the smoke gets out, it stops!
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9063
Posted: 12:27am 26 Jul 2015
Copy link to clipboard 
Print this post

Yes, the module does definetly output several bytes at the end of each file played:










Three different files played, these are the bytes sent by the module at completion of playback, and the data is different for each one with the exception of the first few bytes of the message, which seem to always be the same.

I can't find any information about what any of this means though.....Edited by Grogster 2015-07-27
Smoke makes things work. When the smoke gets out, it stops!
 
VK2MCT
Senior Member

Joined: 30/03/2012
Location: Australia
Posts: 120
Posted: 02:35am 26 Jul 2015
Copy link to clipboard 
Print this post

Mr Grogster,
If you have the time would you output a trace but with each char showing the Hex value.
Thanks,
John B
 
robert.rozee
Guru

Joined: 31/12/2012
Location: New Zealand
Posts: 2289
Posted: 03:03am 26 Jul 2015
Copy link to clipboard 
Print this post

given the busy line being there, how easy would it be to use this as part of a talking clock? it would need to be able to string together sound bites with minimal gaps.

the reason i ask: one of my neighbours is blind, and carries around an ancient talking clock - i've been thinking recently how something a little smaller (and more elegant) could be made. perhaps shaped like a larger pocket watch, with a single button to retrieve the time and a USB port to attach to a PC for adjusting.


cheers,
rob :-)
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9063
Posted: 03:32am 26 Jul 2015
Copy link to clipboard 
Print this post

@ VK2MCT: Yep, will do that tomorrow. Even the GIF's are a little fuzzy. I can link to dropbox versions for better clarity, if that is desired by anyone...

@ Rob: Very easy to do. Playback is instant from the time you submit the play command, and I have all the commands as subs and strings, so could put up my demo code if you wanted something to play with(pardon the pun!). Using the likes of Natural Reader, you can make all the spoken word files, and have the MM speak them too you. Looped playback is also very quick, and if you have files with no silence at the start or end, and loop the file, playback is continuously looped with no repeat gaps.
Smoke makes things work. When the smoke gets out, it stops!
 
MicroBlocks

Guru

Joined: 12/05/2012
Location: Thailand
Posts: 2209
Posted: 04:25am 26 Jul 2015
Copy link to clipboard 
Print this post

With Natural Reader and the capacity of sd cards then you can just create a time speech file for every minute. That will make the program just a few lines of code.
And it probably sounds smoother.
You then also can tweak certain times and messages. Like 5 minutes past midnight, 6 o'clock in the morning etc. or military style, etc..
You could even let his child grandchild insert some special time messages.
Like 'Hi grandpa, it is 12 o'clock in the afternoon", etc.
Add some alarms, etc
:)


Getting excited about the possibilities,i am going to order a few to tinker with. :)

Edited by TZAdvantage 2015-07-27
Microblocks. Build with logic.
 
donmck

Guru

Joined: 09/06/2011
Location: Australia
Posts: 1310
Posted: 12:12pm 26 Jul 2015
Copy link to clipboard 
Print this post

  Grogster said   The Catalex MP3/WAV player module is an excellent unit for the price - a whole six bucks!

This one I have used in a few different projects and it is a very nice module and works really well considdering the price, and nice easy UART control.

However, this module lacks a BUSY pin, despite the 5300 decoder chip actually having such a pin - the designers of the module did not route this pin out to the header, for reasons I guess we will never know.

So I have hacked my one to provide this signal - only took about half an hour or so.




Felt a quicker busy line fix for the elderly like me, :-) may be to drill the extra hole in the same spot, run the insulated busy line from pin 10, through the hole to the top of the board.

Plug in your 5 way female header to the board, and push an extra male pin into the empty busy line, and solder the insulated wire to it. Very easy to disconnect if you need to do so.

Cheers Don...
https://www.32v8.com/1
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9063
Posted: 02:52pm 26 Jul 2015
Copy link to clipboard 
Print this post

@ Don: Yes, that is also a good idea. My photo was just how I did it. By no means the way you SHOULD do it - each to their own. On the other side of the board, is also just ground plane in that are of the IC, so you could do exactly as you say.

For all the times you are likely to be removing it, it would also be a great way to do the same.

In my case, I wanted the 1x5, so I could mount the PCB horizontally to a host PCB without having the MP3 module sticking up on it's orignal pins.

Again - depends on what the person needs!
Smoke makes things work. When the smoke gets out, it stops!
 
VK2MCT
Senior Member

Joined: 30/03/2012
Location: Australia
Posts: 120
Posted: 07:45pm 26 Jul 2015
Copy link to clipboard 
Print this post

  Grogster said   @ VK2MCT: Yep, will do that tomorrow. Even the GIF's are a little fuzzy. I can link to dropbox versions for better clarity, if that is desired by anyone...

Yes, I would like clarity for this.
I've just ordered some players myself,

John B.
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9063
Posted: 07:55pm 26 Jul 2015
Copy link to clipboard 
Print this post

@ Rob, and anyone else interested - here is a short video clip of the MM driving the MP3 player module to read the time:

Short Clock Demo

This is taken directly from the system clock.

Note that there is a small error in the readout, in that the minutes are not spoken as "OH-ONE", "OH-TWO" etc, but that is easy to fix by just re-recording the voice files.

Smoke makes things work. When the smoke gets out, it stops!
 
robert.rozee
Guru

Joined: 31/12/2012
Location: New Zealand
Posts: 2289
Posted: 06:34am 27 Jul 2015
Copy link to clipboard 
Print this post

it looks like the YX5300 is similar in command structure to the YX5200. the manufacturer's website is here:
http://www.yx080.com/

here is a link to a fellow who built an mp3 player using one:
http://vwlowen.co.uk/arduino/mp3-player/mp3-player.htm

and links elsewhere on his site go to documentation (in english):
http://www.dfrobot.com/image/data/DFR0299/DFPlayer%20Mini%20Manul.pdf
http://www.embeddedadventures.com/datasheets/MOD-1021_hw_v1.pdf


i am picking that many of the commands listed for the YX5200 may also apply to the YX5300.


cheers,
rob :-)
 
CircuitGizmos

Guru

Joined: 08/09/2011
Location: United States
Posts: 1421
Posted: 10:59am 27 Jul 2015
Copy link to clipboard 
Print this post

I've used both:



http://www.circuitgizmos.com/products/cgmp3shield1/cgmp3shield1.shtml
Micromites and Maximites! - Beginning Maximite
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9063
Posted: 03:08pm 27 Jul 2015
Copy link to clipboard 
Print this post

Hey, CG - Good to see you back around the forums.
I thought you had vanished!
Smoke makes things work. When the smoke gets out, it stops!
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9063
Posted: 02:12am 28 Jul 2015
Copy link to clipboard 
Print this post

Here is a GIF of the output of the module in HEX as requested.
Note that this data changes with every file played, but the first few bytes seem to be the same. I must have a read through the manual that Rob found......

Catalex TXD GIF image example
Smoke makes things work. When the smoke gets out, it stops!
 
VK2MCT
Senior Member

Joined: 30/03/2012
Location: Australia
Posts: 120
Posted: 04:03am 28 Jul 2015
Copy link to clipboard 
Print this post

I've done a fair bit of translating (google xlate) of the Japanese Manual

Manual example in HEX
7E FF 06 3D 00 00 02 xx xx EF TF card to play the first two completed

The GIF has (all hex)
7E_FF___________06__________3D_______00_00__0C_____FE_B2___EF
Std_start_chars___Bytecount___Command__?__?___Track__CRC_____Endchar

So this string seems to mean that the 0C th track has finished playing.
0C hex = 12 decimal.
So the 12th track has finished playing.

Could this be true ???

No warranty is implied.

John B

edit - I see that this example is in the Eng Manual from Robert.Edited by VK2MCT 2015-07-29
 
robert.rozee
Guru

Joined: 31/12/2012
Location: New Zealand
Posts: 2289
Posted: 05:37am 28 Jul 2015
Copy link to clipboard 
Print this post

just bit the bullet and ordered two of these:
http://www.ebay.com/itm/271942180701

the main reasons being that the chip used can driver a speaker directly, and someone has translated the manual into english and written some example code:
http://forum.arduino.cc/index.php?topic=306442.0

looks like the command format is, again, similarish to the Catalex YX5300 et al, though lacking the version byte. it makes me wonder if all these devices are based upon the same silicon core, each with a different firmware loaded.


cheers,
rob :-)
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9063
Posted: 03:01pm 28 Jul 2015
Copy link to clipboard 
Print this post

@ VK2MCT - Yes, I played track 12 for that test - well done, and that does correspond with the track I played for that test image last night.
Smoke makes things work. When the smoke gets out, it stops!
 
     Page 1 of 2    
Print this page
© JAQ Software 2024