~~~~~~~~~~~~~~~~~~~~ Checksum = -Sum(byte(1..6)) (2 bytes, notice minus sign!
) Commands without returned parameters (*=Confirmed command ? Unknown: Returns no error code, but no function found 0x16 22 Stop * [DH]=X, [DL]=X, Stop playing current track 0x17 23 Loop Folder 01 * [DH]=x, [DL]=1~255, Loops all tracks in folder named "01" 0x18 24 Random play * [DH]=X, [DL]=X Random all tracks, always starts at track 1 0x19 25 Single loop * [DH]=0, [DL]=0 Loops the track that is playing 0x1A 26 Pause * [DH]=X, [DL]=(0x01:pause, 0x00:stop pause) Commands with returned parameters (*=Confirmed command ?
Is calculated in function: execute_CMD (8) Checksum low 0x__ See explanation below.
Is calculated in function: execute_CMD (9) End command 0x EF Checksum calculation.
I notice from your code you have included fairly long delays. I also have seen posts on arduino forum where others have experienced varying responses from the mp3 player.
When someone else gets one of these devices could you comment please?
)It uses an SD card to store all MP3 files and connects directly to the speakers: Some links to explore: First manual Second manual A discovery project Arduino forum discussion Command discovery project Video about previous link (Interesting approach without library!
Note: Commands are not always correctly described in the manual. First number : Command Second number: First (High Byte) parameter Third number : Second (Low Byte) parameter E.g.: 3,0,1 will play the first track on the TF card Very important for 5V Arduinos: Use serial 1K resistors or a level shifter between module RX and TX and Arduino to suppress noise Connect Sound module board RX to Arduino pin 11 (via 1K resistor) Connect Sound module board TX to Arduino pin 10 (via 1K resistor) Connect Sound module board Vcc to Arduino Vin when powered via USB (preferably 3.0) else use seperate 5V power supply Connect Sound module board GND to Arduino GND General DF Player mini command structure (only byte 3, 5 and 6 to be entered in the serial monitor): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Byte Function Value ==== ================ ==== (0) Start Byte 0x7E (1) Version Info 0x FF (don't know why it's called Version Info) (2) Number of bytes 0x06 (Always 6 bytes) (3) Command 0x__ (4) Command feedback 0x__ If enabled returns info with command 0x41 [0x01: info, 0x00: no info] (5) Parameter 1 [DH] 0x__ (6) Parameter 2 [DL] 0x__ (7) Checksum high 0x__ See explanation below.I want to have multiple language folders with spoken instruction sets language selectable.