Some guidance with serial

69-cat

Member
I have been using Mdlfy MP3 players for all of my Halloween projects with no major issues but now I am moving on to MP4 players that can be controlled via serial communications. They are talking serial voltage @ 3.3-5.0, damage to the player if not correct and so on. So I wanted to see if someone could give me a little help in making sure I don't screw damage the player. I have copied a template/sample of what I use the get 2 MP3 players to work together from Halloween 2016 as an example (crude but it works) and wanted to know if something like this code would work the MP4 players? I know the commands are not the same but just want to get an idea.
Here is a link to the MP4 player data sheet. http://www.teamkingsley.com/assets/Sprite User Manual.pdf

Dave


Code:
[color=Navy]#picaxe [/color][color=Black]18m2[/color]
[color=Blue]setfreq m8
symbol [/color][color=Black]baud [/color][color=DarkCyan]= [/color][color=Blue]T9600_8
symbol [/color][color=Black]pb1 [/color][color=DarkCyan]= [/color][color=Purple]pinb.1[/color]
[color=Blue]symbol [/color][color=Black]pb2 [/color][color=DarkCyan]= [/color][color=Purple]pinb.2[/color]
[color=Blue]symbol [/color][color=Black]pb3 [/color][color=DarkCyan]= [/color][color=Purple]pinb.3[/color]
[color=Blue]symbol [/color][color=Black]pb4 [/color][color=DarkCyan]= [/color][color=Purple]pinb.4[/color]
[color=Blue]symbol [/color][color=Black]pb5 [/color][color=DarkCyan]= [/color][color=Purple]pinb.5[/color]
[color=Blue]symbol [/color][color=Black]pb6 [/color][color=DarkCyan]= [/color][color=Purple]pinb.6[/color]
[color=Blue]symbol [/color][color=Black]busy [/color][color=DarkCyan]= [/color][color=Purple]pinc.0[/color]
[color=Blue]symbol [/color][color=Black]busy2 [/color][color=DarkCyan]= [/color][color=Purple]pinc.1[/color]
[color=Blue]symbol [/color][color=Black]MP3 [/color][color=DarkCyan]= [/color][color=Blue]c.2
symbol [/color][color=Black]mp3_2 [/color][color=DarkCyan]= [/color][color=Blue]c.7




serout [/color][color=Black]mp3,baud, [/color][color=Blue]([/color][color=Navy]$FA[/color][color=Blue])[/color][color=Green]; stop mp3 player command[/color]
[color=Blue]pause [/color][color=Navy]4000[/color]
[color=Black]main:[/color]

[color=Blue]if [/color][color=Black]pb1 [/color][color=DarkCyan]= [/color][color=Navy]1 [/color][color=Blue]then goto [/color][color=Black]list1[/color]
[color=Blue]if [/color][color=Black]pb2 [/color][color=DarkCyan]= [/color][color=Navy]1 [/color][color=Blue]then goto [/color][color=Black]list2[/color]
[color=Blue]if [/color][color=Black]pb3 [/color][color=DarkCyan]= [/color][color=Navy]1 [/color][color=Blue]then goto [/color][color=Black]list3[/color]
[color=Blue]if [/color][color=Black]pb4 [/color][color=DarkCyan]= [/color][color=Navy]1 [/color][color=Blue]then goto [/color][color=Black]list4[/color]
[color=Blue]if [/color][color=Black]pb5 [/color][color=DarkCyan]= [/color][color=Navy]1 [/color][color=Blue]then goto [/color][color=Black]list5[/color]
[color=Blue]if [/color][color=Black]pb6 [/color][color=DarkCyan]= [/color][color=Navy]1 [/color][color=Blue]then goto [/color][color=Black]list6[/color]
[color=Blue]goto [/color][color=Black]main
list1:[/color]
[color=Blue]serout [/color][color=Black]mp3,baud,[/color][color=Blue]([/color][color=Navy]$01[/color][color=Blue]) [/color][color=Green]; start playing mp3
'serout mp3_2,baud,($01)[/color]
[color=Blue]do
loop while [/color][color=Black]busy [/color][color=DarkCyan]= [/color][color=Navy]1[/color]
[color=Blue]goto [/color][color=Black]main

list4:[/color]
[color=Blue]serout [/color][color=Black]mp3_2,baud,[/color][color=Blue]([/color][color=Navy]$01[/color][color=Blue]) [/color][color=Green]; start playing mp3[/color]
[color=Blue]do
loop while [/color][color=Black]busy2 [/color][color=DarkCyan]= [/color][color=Navy]1[/color]
[color=Blue]goto [/color][color=Black]main

list2:[/color]
[color=Blue]serout [/color][color=Black]mp3,baud,[/color][color=Blue]([/color][color=Navy]$02[/color][color=Blue])
do
loop while [/color][color=Black]busy [/color][color=DarkCyan]= [/color][color=Navy]1[/color]
[color=Blue]goto [/color][color=Black]main

list5:[/color]
[color=Blue]serout [/color][color=Black]mp3_2,baud,[/color][color=Blue]([/color][color=Navy]$02[/color][color=Blue]) [/color][color=Green]; start playing mp3[/color]
[color=Blue]do
loop while [/color][color=Black]busy2 [/color][color=DarkCyan]= [/color][color=Navy]1[/color]
[color=Blue]goto [/color][color=Black]main

list3:[/color]
[color=Blue]serout [/color][color=Black]mp3,baud,[/color][color=Blue]([/color][color=Navy]$03[/color][color=Blue])
do
loop while [/color][color=Black]busy [/color][color=DarkCyan]= [/color][color=Navy]1[/color]
[color=Blue]goto [/color][color=Black]main

list6:[/color]
[color=Blue]serout [/color][color=Black]mp3_2,baud,[/color][color=Blue]([/color][color=Navy]$03[/color][color=Blue]) [/color][color=Green]; start playing mp3[/color]
[color=Blue]do
loop while [/color][color=Black]busy2 [/color][color=DarkCyan]= [/color][color=Navy]1[/color]
[color=Blue]goto [/color][color=Black]main[/color]
 

hippy

Technical Support
Staff member
A quick read of the datasheet suggest that should work, "serout mp4_tx,baud,($02)" will play file "002.xxx".

The Busy signal doesn't exit. It sends back the track being played or $EE when it ends so you could probably do ...

Code:
b0 = $02
serout mp4_tx, baud, (b0)
serin [2000,DidNotPlay], mp4_rx, baud, (b0) ; Optional, check it's playing
serin mp4_rx, baud, ($EE) ; Wait until ended
 
Top