Home
JAQForum Ver 20.06
Log In or Join  
Active Topics
Local Time 03:01 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 : $2 MP3/WAV player module with on-board flash...

     Page 1 of 2    
Author Message
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9061
Posted: 10:01am 17 Nov 2022
Copy link to clipboard 
Print this post

This looks to be an interesting module:

MP3/WAV file player for $2...

I have ordered a couple to play with.  No pun intended.
Supports playback control via buttons, UART, OneWire or 8-bit parallel - very versatile!

Most modules have UART and many also have button control, but the OneWire and parallel control methods are interesting and useful.  Seven different operating modes are supported.

32Mb on-board flash storage(4MB) for music or sound files, and on-board audio amplifier for driving a speaker.  I would not put much faith in the 5W rating, but it will no doubt output plenty of volume to be heard.  The DAC output is on the pins, so you can couple into your own amplifier arrangement if you wanted to.  5v supply, with 3v3 output pin for powering other stuff(80mA max)

This would look to be perfect for embedded sound-effect type applications or any other annunciator type project.  Not really suited to music playback, cos of the limited storage space, but there are a plethora of modules that use micro-SD cards for those kinds of jobs.

Small, at only 26mm x 23mm, with the connections on a standard 2.54mm(0.1") grid.

I found the manual(and a whole heap of other docs) for this module with a bit of a poke around on the net, so I upload it to this thread.


DY-SV17F module functions introduction.pdf


If anyone is interested in the extended docs past this post, let me know and I can post a zip file.
Smoke makes things work. When the smoke gets out, it stops!
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 3527
Posted: 10:48am 17 Nov 2022
Copy link to clipboard 
Print this post

I have no previous experience, but I remember owning a MP3 player in the early days that had 32Mbyte flash and could only store 6-7 songs on it. In 4Mbyte you will probably only store one song.

This maybe more suited to play some spoken word (short phrases), or play action sounds.
PicomiteVGA PETSCII ROBOTS
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9061
Posted: 11:55am 17 Nov 2022
Copy link to clipboard 
Print this post

  Grogster said  This would look to be perfect for embedded sound-effect type applications or any other annunciator type project.  Not really suited to music playback, cos of the limited storage space, but there are a plethora of modules that use micro-SD cards for those kinds of jobs.

Smoke makes things work. When the smoke gets out, it stops!
 
athlon1900
Regular Member

Joined: 10/10/2019
Location: Austria
Posts: 48
Posted: 11:05pm 17 Nov 2022
Copy link to clipboard 
Print this post

  Grogster said  This looks to be an interesting module:

MP3/WAV file player for $2...

I have ordered a couple to play with.  No pun intended.
Supports playback control via buttons, UART, OneWire or 8-bit parallel - very versatile!



Very interesting , thanks for this info  

  Volhout said  I have no previous experience, but I remember owning a MP3 player in the early days that had 32Mbyte flash and could only store 6-7 songs on it. In 4Mbyte you will probably only store one song.

This maybe more suited to play some spoken word (short phrases), or play action sounds.

Changing the flash to a W25q256 is not a problem, I think. Then you would have 32MB onboard.
The question is whether the controller supports it.
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9061
Posted: 11:16pm 17 Nov 2022
Copy link to clipboard 
Print this post

  athlon1900 said  
  Volhout said  I have no previous experience, but I remember owning a MP3 player in the early days that had 32Mbyte flash and could only store 6-7 songs on it. In 4Mbyte you will probably only store one song.

This maybe more suited to play some spoken word (short phrases), or play action sounds.

Changing the flash to a W25q256 is not a problem, I think. Then you would have 32MB onboard.
The question is whether the controller supports it.


That's an interesting idea.
As I have four modules coming, I might do just that, and see what happens.
The hard-coding in the controller/playback chip might be factory set for that specific 32Mb(4MB) capacity chip, but it would not hurt to find out.  

EDIT: Can't get the W25Q256 in 8-pin SOIC, it is only available in 16-pin SOIC or 8-pin WSON/WFLGA (QFN-like) package, so that one is out, but you CAN get the W25Q128 in SOIC-8, so I might get a few of those to play with.  If it worked, that would increase the file storage to 16MB instead of 4MB.

This may or may not work, but one way to find out is to.....
It is more academic then practical, as the effort to replace the FLASH memory chip on a $2 module is questionable, but there you go.  

EDIT: Opps!   W25W128 is the wide-SOIC(1.2mm wider package), which would be difficult to force-fit onto the narrow-SOIC footprint, so that idea is now out.  MIGHT be able to use the likes of a W25Q64(giving 8MB of storage), but would need to check the footprint-vs-package size thing again.  Might simply not be worth the effort.

EDIT: Hold the phone.....  Looking at the module again, it would seem that they DO use the wide-SOIC flash chip, so I CAN try out a W25Q128, but not the W25Q256, as it is not available in the SOIC-8 footprint.  You can easily see the size difference on the photo of the module in the PDF.
Edited 2022-11-18 10:21 by Grogster
Smoke makes things work. When the smoke gets out, it stops!
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 5726
Posted: 07:44am 18 Nov 2022
Copy link to clipboard 
Print this post

$1.35 and $1.40 postage to the UK. :)
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
athlon1900
Regular Member

Joined: 10/10/2019
Location: Austria
Posts: 48
Posted: 10:05am 18 Nov 2022
Copy link to clipboard 
Print this post

  Grogster said  
EDIT: Hold the phone.....  Looking at the module again, it would seem that they DO use the wide-SOIC flash chip, so I CAN try out a W25Q128, but not the W25Q256, as it is not available in the SOIC-8 footprint.  You can easily see the size difference on the photo of the module in the PDF.

What about this one : 32MB MX25L25645 SOP8
Seems to be pin compatible according to the data sheet.
Does it always have to be winbond ?  
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9061
Posted: 11:45am 18 Nov 2022
Copy link to clipboard 
Print this post

Nice find.  
I will grab a couple of those to experiment with, along with some 25Q128's.
Neither may work if the controller is hard-coded for the 25Q32, but there's no harm in trying just for the hell of it!  
Smoke makes things work. When the smoke gets out, it stops!
 
pwillard
Senior Member

Joined: 07/06/2022
Location: United States
Posts: 274
Posted: 02:03pm 18 Nov 2022
Copy link to clipboard 
Print this post

"Please allow for up to 1cm size error!"  What are they measuring with, toddler finger widths?
 
stanleyella

Guru

Joined: 25/06/2022
Location: United Kingdom
Posts: 1643
Posted: 06:42pm 18 Nov 2022
Copy link to clipboard 
Print this post

Looks interesting. I have a couple but play track 123 is easy, no way to read the
track info ie artist though.
 
athlon1900
Regular Member

Joined: 10/10/2019
Location: Austria
Posts: 48
Posted: 11:20pm 18 Nov 2022
Copy link to clipboard 
Print this post

  Grogster said  Nice find.  
I will grab a couple of those to experiment with, along with some 25Q128's.
Neither may work if the controller is hard-coded for the 25Q32, but there's no harm in trying just for the hell of it!  

I also ordered one to play.

Found also the DY-SV8F board. Seems to be the big brother.
There is the same controller (DY1703a) and a 25Q64 flash onboard.
Think (hopefully) there is a good chance for upgrading the flash.
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9061
Posted: 01:42am 19 Nov 2022
Copy link to clipboard 
Print this post

Yes, that is encouraging, considering it is the exact same controller chip.
I have looked all over google, I cannot find ANY data on the DY1703A chip.
If any member reading this has had better luck, please can you post a link here.
Normally, you can track down even a Chinese language version of a datasheet for chip X, but in this case, I can't find anything at all.
This despite the date-code on the chip in the pictures being 201903, suggesting it was made in 2019 or 2020 depending on how you want to interpret the code.
Normally just four digits, YYWW so 19th week of 2020, but could also be 3rd week of 2019.  I could also be neither of those at all!  
Smoke makes things work. When the smoke gets out, it stops!
 
Quazee137

Guru

Joined: 07/08/2016
Location: United States
Posts: 522
Posted: 04:14am 19 Nov 2022
Copy link to clipboard 
Print this post

http://www.icstation.com/player-module-audio-voice-board


there is some data here hope it helps.
 
stanleyella

Guru

Joined: 25/06/2022
Location: United Kingdom
Posts: 1643
Posted: 02:41pm 19 Nov 2022
Copy link to clipboard 
Print this post

  Quazee137 said  http://www.icstation.com/player-module-audio-voice-board


there is some data here hope it helps.


Looks useful. Lots of info. Anyone used one?
They are just files on my from picaxe sd player, which is ok to use but no artist info which you get in win or linux.
Edited 2022-11-20 01:39 by stanleyella
 
TassyJim

Guru

Joined: 07/08/2011
Location: Australia
Posts: 5903
Posted: 07:08pm 19 Nov 2022
Copy link to clipboard 
Print this post

  [ said  QUOTE=stanleyella
They are just files on my from picaxe sd player, which is ok to use but no artist info which you get in win or linux.


Not the simplest thing to do but the required info is out there to achieve in MMBasic if you want to try.
http://mpgedit.org/mpgedit/mpeg_format/mpeghdr.htm
As a start, look at my File Manager for CMM2 program. Down the bottom of the mmedit page.

Jim
VK7JH
MMedit   MMBasic Help
 
Quazee137

Guru

Joined: 07/08/2016
Location: United States
Posts: 522
Posted: 07:50pm 19 Nov 2022
Copy link to clipboard 
Print this post

Looks like two flavors here

flash or SD
 
athlon1900
Regular Member

Joined: 10/10/2019
Location: Austria
Posts: 48
Posted: 03:11pm 01 Dec 2022
Copy link to clipboard 
Print this post

I successfully swapped the flash to a W25Q128.
What I can say is that the Mini Player behaves like a USB stick.
Windows formats the flash with FAT and then correctly shows 16 MB.
I copied a 5MB mp3 file and it works.  
The copying process takes longer, since it is writing into the flash.  

Next step a 25Q256 when these arrive  





 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9061
Posted: 12:10am 02 Dec 2022
Copy link to clipboard 
Print this post

Well done!  
My modules have just arrived, but I am still playing about with the standard chip arrangement.  As I only ever wanted THESE modules for an annunciator project, having more then 4MB of storage is not an issue - for me.

But it is nice to see that you CAN swap the chip to get more space.
Please do keep us informed of what happens with the 256 chip.  

I had visions of a couple of things with changing the flash memory chip, and they were: (1) The DY controller chip may not support anything other then 4MB, and (2) the flash memory chip may have to be factory-formatted, meaning you put a bigger blank one in there, and Windoze won't be able to format it, as the DY controller does not know how or have the ability to mimic to the OS how to format it kind of thing.

Glad to see neither of those turned out to be the case.
Good to know.
Smoke makes things work. When the smoke gets out, it stops!
 
jwettroth

Regular Member

Joined: 02/08/2011
Location: United States
Posts: 70
Posted: 11:17pm 04 Dec 2022
Copy link to clipboard 
Print this post

I've used a device like this with MMBASIC.  The modules that I used, used a TF card but its all the same main IC.  You might have to adjust the init string in the code below to tell it to use the flash vs. TF.  Documentation is available but is a bit confusing.  They work well.  I use them in systems that play bird calls.  Watch grounding so you don't get a lot of noise injected onto the audio out.  I brought grounds back to a common point so it didn't have to go through same return as digital stuff.

Below is my code snippet- I hope its clear.

' DF PLAYER -----------------------------
Sub DFINIT
 Pin(14)=0     'TURN ON AUDIO SYSTEM
 Pause 100
 Open "COM1:" As #1
 DFCOMM("080001") 'NORMAL
 DFCOMM("090002") 'SD SOURCE
 DFCOMM("060030") 'SET VOL =30
 DFCOMM("070000") 'SET EQ NORM
 'IF DBMD%=2 Print "DFINIT"
'leave port open
End Sub

Sub DFPLAY
 DFCOMM("110001")     'PLAY IN A LOOP- DFINIT BEFORE
 'If DBMD%=2 Then Print "DFPLAY"
End Sub

Sub DFSTOP
 Pin(14)=1
 Close #1
 'If DBMD%=2 Then Print "DFSTOP"
End Sub
'----------------------

'COMMS WITH DF PLAYER---------
'assumes that power is applied, com1 is open
Sub DFCOMM(A$,R)'A$  COMMAND P1,P2, R IS OPTIONAL RESPONSE 1/0
 If R=1 Then CC$="01" Else CC$="00"'R FLAG?
 DFSTR$="FF06"+Left$(A$,2)+CC$+Right$(A$,4)'BUILD UP STRING
 J=Len(DFSTR$)
 CKSUM%=65536
 Print #1,Chr$(&H7E);
 If R=1 Then Print "7E";
 For I=1 To J Step 2
   K$=Mid$(DFSTR$,I,2)'VALUES  ARE ASCII HEX
   H=Val("&H"+ K$) 'TURN INTO BINARY
   CKSUM%=CKSUM%-H
   Print #1,Chr$(H);
   If R=1 Then Print K$;
 Next I  'DONE WITH COMMAND- NOW APPEND CHECK SUM AND AND
 Print #1,Chr$(CKSUM%\256);:Print #1,Chr$(CKSUM%-256*(CKSUM%\256));
 Print #1,Chr$(&HEF);
 If R=1 Then Print Hex$(CKSUM%)+"EF";
 Pause 100
 If R=1 Then GETRSP
 Pause 1000
End Sub

'------------------------------------
Sub GETRSP            'get response from dfplayer- debug use
 Print "  RESP:";
 If Loc(#1) <> 0 Then
   L$=Input$(20,#1)
   J=Len(L$)
   For P=1 To J
     Print Hex$(Asc(Mid$(L$,P,1)),2);
   Next P
 End If
End Sub

Good luck.
John Wettroth
 
Pluto
Guru

Joined: 09/06/2017
Location: Finland
Posts: 329
Posted: 12:17pm 15 Dec 2022
Copy link to clipboard 
Print this post

Received a DY-SV17F module yesterday. Made a small test program to see how it works.
Works quite nicely with a small laptop speaker attached to the onboard amplifier(mono). For stereo you need to use the DACL/DACR outputs to a separate amplifier; not tested.
'DY-SV17F Audio Module Mini MP3 Player.
'Fredrik Nissfolk 15 dec 2022
'
'DY_SV17F       PicoMite
'     1     1k     GP13
'     2     1k     GP12
'     9            GND
'     10    10k    GND
'     11    10k    GND
'     12    10k    3.3V (pin 14 on DY_SV17F)
'     13           VBUS (5V)
'     17 speaker-
'     18 speaker+

dim as integer a(11) 'command parts as hexadecimal
dim as string b$(11) 'coomand or message parts as string
dim as integer L 'nbr of bytes to send or received
DIM as string rcvd$ 'received string
SetPin GP13,GP12,COM1
Open "COM1:9600" As #1


dat$=Input$(10, #1) 'remove possible rubbish from RX-buffer
?""
?"Volume 10:"
a(1)=&HAA:a(2)=&H13:a(3)=&H01:a(4)=&H15: L=4 '4 bytes excluding the CRC-byte
Tx(L)
Pause 1000
'----------------------
?""
?"Equalizer:"
a(1)=&HAA:a(2)=&H1A:a(3)=&H01:a(4)=&H02: L=4
Tx(L)
Pause 1000
'----------------------
?""
Print "Current device:"
'Print #1,Chr$(&HAA);Chr$(&H09);Chr$(&H00);Chr$(&HB3) 'Query current online drive
a(1)=&HAA:a(2)=&H0A:a(3)=&H00: L=3
Tx(L)
Pause 1000 'wait for response
RX
if a(4)=2 then print "....flash"
if a(4)=0 then print "....usb"
IF a(4)=1 then print "....sd"
if a(4)=&HFF then print "....no device"
'----------------------
pause 1000
?""
?"Nbr of songs:"
'Print #1,chr$(&HAA);Chr$(&H0C);Chr$(&H00);Chr$(&HB6) 'Query number of songs
a(1)=&HAA:a(2)=&H0C:a(3)=&H00: L=3
Tx(L)
Pause 1000
'Print "LOC(#1) nbr of songs:";LOC(#1)
RX
Print"Number of stored songs:";a(5)
'----------------------
pause 1000


do
?"Specified song:"
a(1)=&HAA:a(2)=&H07:a(3)=&H02:a(4)=&H00:a(5)=&H0A: L=5 'a(5) is the song nbr
Tx(L)
Pause 3000
'----------------------
?""
Print "Play:"
'Print #1,Chr$(&HAA);Chr$(&H02);Chr$(&H00);Chr$(&HAC) 'Play
a(1)=&HAA:a(2)=&H02:a(3)=&H00: L=3
Tx(L)
Pause 1000
'----------------------
CheckPlayState
'----------------------

'----------------------
pause 1000
?""
?"Next song:"
'Print #1,Chr$(&HAA);Chr$(&H06);Chr$(&H00);Chr$(&HB0) 'Next
a(1)=&HAA:a(2)=&H06:a(3)=&H00: L=3
Tx(L)
'----------------------
CheckPlayState
'----------------------

'----------------------
Pause 1000

Loop
end

sub CheckPlayState 'stays in this loop until song is played
?""
Print "Check Play State:"
do
a(1)=&HAA:a(2)=&H01:a(3)=&H00: L=3
Tx(L)
Pause 1000
RX
loop until a(4)=0
end sub

SUB Tx L 'sends the command
sum=0
print "TX: ";
for i=1 to L
b$(i)=CHR$(a(i))
print #1,b$(i);
print " 0x";hex$(a(i),2);
sum=sum+a(i)
next i
CRC=sum and &HFF
print #1,CHR$(CRC);
print " 0x";hex$(CRC,2)
end sub

sub RX 'receives and decodes the received message
rcvd$=input$(LOC(#1),#1)
L=len(rcvd$):print "Len:";L
for i=1 to 10
a(i)=0
b$(i)=""
next i
print "RX: ";
for i=1 to L
b$(i)=MID$(rcvd$,i,1)
a(i)=str2bin(UINT8,b$(i))
print " 0x";HEX$(a(i),2);
next i
sum=0
for i=1 to L-1
sum=sum+a(i)
next i
crc=sum and &HFF
print "  CRC= 0x";hex$(crc)
end sub
 
     Page 1 of 2    
Print this page
© JAQ Software 2024