ghmartin77 / DFPlayerAnalyzer

Test driver to analyze different makes of DFPlayerMini and reveal specials in behavior.
26 stars 7 forks source link

DFPlayer from Leiterkartenpiraten #19

Open derniwi opened 2 weeks ago

derniwi commented 2 weeks ago

Board Designation: Leiterkartenpiraten GmbH LKP Player v1.2 DFPLayer chipset: AB21BP0B953-82A2 SD (TF) card inserted: 4GB USB flash drive connected: none Speaker: 4ohm 3W speaker connected to SPK1 and SPK2

Track length of /01/001.mp3: 15 sec Track length of /01/002.mp3: 15 sec Track length of /ADVERT/0100.mp3: 15 sec

Test Date: 2024-06-20

I had to modify TestContinuePlaybackAfterAd with patch provided by [vortigont], but also modified the line while (trackAd != lastGlobalTrackFinished) { to while ((trackAd != lastGlobalTrackFinished) && (lastGlobalTrackFinished == -1)) {

` DFPlayer Analyzer 1.0 - Starting up...

[18] Packet received (<-): 7E FF 6 40 0 0 3 FE B8 EF <- Msg: 40 (Error), arg: 3

ERROR 3 serial wrong stack or verification error or frame not received

[60] Packet sent (->): 7E FF 6 42 0 0 0 FE B9 EF -> Cmd: 42 (GetStatus), arg: 0 [80] Packet received (<-): 7E FF 6 42 0 2 0 FE B7 EF <- Msg: 42 (GetStatus), arg: 512

Test Case "TestConnectivity" FINISHED


Running Test Case "TestDiscoverDevices"

[122] Packet sent (->): 7E FF 6 C 0 0 0 FE EF EF -> Cmd: C (Reset), arg: 0 [974] Packet received (<-): 7E FF 6 3A 0 0 2 FE BF EF <- Msg: 3A (DeviceAttached), arg: 2 Callback OnCardInserted: 2 [1080] Packet received (<-): 7E FF 6 3F 0 0 2 FE BA EF <- Msg: 3F (StorageDevices), arg: 2 Callback OnCardOnline: 2 [2245] Packet sent (->): 7E FF 6 7 0 0 0 FE F4 EF -> Cmd: 7 (SetEQ), arg: 0 [2358] Packet sent (->): 7E FF 6 1A 0 0 0 FE E1 EF -> Cmd: 1A (SetDAC), arg: 0 [2620] Packet sent (->): 7E FF 6 6 0 0 1 FE F4 EF -> Cmd: 6 (SetVolume), arg: 1 [2683] Packet sent (->): 7E FF 6 C 0 0 0 FE EF EF -> Cmd: C (Reset), arg: 0 [3535] Packet received (<-): 7E FF 6 3A 0 0 2 FE BF EF <- Msg: 3A (DeviceAttached), arg: 2 Callback OnCardInserted: 2 [3640] Packet received (<-): 7E FF 6 3F 0 0 2 FE BA EF <- Msg: 3F (StorageDevices), arg: 2 Callback OnCardOnline: 2 [4706] Packet sent (->): 7E FF 6 9 0 0 2 FE F0 EF -> Cmd: 9 (SetPlaybackDevice), arg: 2 [6719] Packet sent (->): 7E FF 6 48 0 0 0 FE B3 EF -> Cmd: 48 (GetNoTracksSD), arg: 0 [6739] Packet received (<-): 7E FF 6 48 0 0 3 FE B0 EF <- Msg: 48 (GetNoTracksSD), arg: 3 [6784] Packet sent (->): 7E FF 6 9 0 0 1 FE F1 EF -> Cmd: 9 (SetPlaybackDevice), arg: 1 [8797] Packet sent (->): 7E FF 6 47 0 0 0 FE B4 EF -> Cmd: 47 (GetNoTracksUSB), arg: 0 [8817] Packet received (<-): 7E FF 6 40 0 0 6 FE B5 EF <- Msg: 40 (Error), arg: 6

ERROR 6 file mismatch or folder not found or track not found

[9838] Packet sent (->): 7E FF 6 9 0 0 5 FE ED EF -> Cmd: 9 (SetPlaybackDevice), arg: 5 [11851] Packet sent (->): 7E FF 6 9 0 0 2 FE F0 EF -> Cmd: 9 (SetPlaybackDevice), arg: 2

Test Case "TestDiscoverDevices" FINISHED


Running Test Case "TestReaction3F"

[12064] Packet sent (->): 7E FF 6 C 0 0 0 FE EF EF -> Cmd: C (Reset), arg: 0 [12916] Packet received (<-): 7E FF 6 3A 0 0 2 FE BF EF <- Msg: 3A (DeviceAttached), arg: 2 Callback OnCardInserted: 2 [13022] Packet received (<-): 7E FF 6 3F 0 0 2 FE BA EF <- Msg: 3F (StorageDevices), arg: 2 Callback OnCardOnline: 2 [14187] Packet sent (->): 7E FF 6 7 0 0 0 FE F4 EF -> Cmd: 7 (SetEQ), arg: 0 [14300] Packet sent (->): 7E FF 6 1A 0 0 0 FE E1 EF -> Cmd: 1A (SetDAC), arg: 0 [14562] Packet sent (->): 7E FF 6 6 0 0 1 FE F4 EF -> Cmd: 6 (SetVolume), arg: 1 [14624] Packet sent (->): 7E FF 6 3F 0 0 0 FE BC EF -> Cmd: 3F (StorageDevices), arg: 0 [14645] Packet received (<-): 7E FF 6 3F 0 0 2 FE BA EF <- Msg: 3F (StorageDevices), arg: 2

Test Case "TestReaction3F" FINISHED


Running Test Case "TestGetFolderTrackCount"

[14689] Packet sent (->): 7E FF 6 C 0 0 0 FE EF EF -> Cmd: C (Reset), arg: 0 [15541] Packet received (<-): 7E FF 6 3A 0 0 2 FE BF EF <- Msg: 3A (DeviceAttached), arg: 2 Callback OnCardInserted: 2 [15646] Packet received (<-): 7E FF 6 3F 0 0 2 FE BA EF <- Msg: 3F (StorageDevices), arg: 2 Callback OnCardOnline: 2 [16812] Packet sent (->): 7E FF 6 7 0 0 0 FE F4 EF -> Cmd: 7 (SetEQ), arg: 0 [16924] Packet sent (->): 7E FF 6 1A 0 0 0 FE E1 EF -> Cmd: 1A (SetDAC), arg: 0 [17186] Packet sent (->): 7E FF 6 6 0 0 1 FE F4 EF -> Cmd: 6 (SetVolume), arg: 1 [17248] Packet sent (->): 7E FF 6 9 0 0 2 FE F0 EF -> Cmd: 9 (SetPlaybackDevice), arg: 2 [18262] Packet sent (->): 7E FF 6 4E 0 0 1 FE AC EF -> Cmd: 4E (GetNoTracksFolder), arg: 1 [18295] Packet received (<-): 7E FF 6 4E 0 0 2 FE AB EF <- Msg: 4E (GetNoTracksFolder), arg: 2

Test Case "TestGetFolderTrackCount" FINISHED


Running Test Case "TestGetCurrentTrack"

[18336] Packet sent (->): 7E FF 6 C 0 0 0 FE EF EF -> Cmd: C (Reset), arg: 0 [19191] Packet received (<-): 7E FF 6 3A 0 0 2 FE BF EF <- Msg: 3A (DeviceAttached), arg: 2 Callback OnCardInserted: 2 [19297] Packet received (<-): 7E FF 6 3F 0 0 2 FE BA EF <- Msg: 3F (StorageDevices), arg: 2 Callback OnCardOnline: 2 [20462] Packet sent (->): 7E FF 6 7 0 0 0 FE F4 EF -> Cmd: 7 (SetEQ), arg: 0 [20575] Packet sent (->): 7E FF 6 1A 0 0 0 FE E1 EF -> Cmd: 1A (SetDAC), arg: 0 [20837] Packet sent (->): 7E FF 6 6 0 0 1 FE F4 EF -> Cmd: 6 (SetVolume), arg: 1 [20899] Packet sent (->): 7E FF 6 9 0 0 2 FE F0 EF -> Cmd: 9 (SetPlaybackDevice), arg: 2 [21112] Packet sent (->): 7E FF 6 F 0 1 2 FE E9 EF -> Cmd: F (PlayFolderTrack), arg: 258 [23127] Packet sent (->): 7E FF 6 4C 0 0 0 FE AF EF -> Cmd: 4C (GetCurrentTrackSD), arg: 0 [23140] Packet received (<-): 7E FF 6 4C 0 0 2 FE AD EF <- Msg: 4C (GetCurrentTrackSD), arg: 2 [23190] Packet sent (->): 7E FF 6 F 0 1 1 FE EA EF -> Cmd: F (PlayFolderTrack), arg: 257 [23255] Packet sent (->): 7E FF 6 4C 0 0 0 FE AF EF -> Cmd: 4C (GetCurrentTrackSD), arg: 0 [23268] Packet received (<-): 7E FF 6 4C 0 0 2 FE AD EF <- Msg: 4C (GetCurrentTrackSD), arg: 2 [23319] Packet sent (->): 7E FF 6 4C 0 0 0 FE AF EF -> Cmd: 4C (GetCurrentTrackSD), arg: 0 [23332] Packet received (<-): 7E FF 6 4C 0 0 1 FE AE EF <- Msg: 4C (GetCurrentTrackSD), arg: 1 GetCurrentTrack for SD returns correct value 99ms after start of track [23383] Packet sent (->): 7E FF 6 16 0 0 0 FE E5 EF -> Cmd: 16 (Stop), arg: 0

Test Case "TestGetCurrentTrack" FINISHED


Running Test Case "TestTrackFinishedCallback"

[23444] Packet sent (->): 7E FF 6 C 0 0 0 FE EF EF -> Cmd: C (Reset), arg: 0 [24296] Packet received (<-): 7E FF 6 3A 0 0 2 FE BF EF <- Msg: 3A (DeviceAttached), arg: 2 Callback OnCardInserted: 2 [24401] Packet received (<-): 7E FF 6 3F 0 0 2 FE BA EF <- Msg: 3F (StorageDevices), arg: 2 Callback OnCardOnline: 2 [25567] Packet sent (->): 7E FF 6 7 0 0 0 FE F4 EF -> Cmd: 7 (SetEQ), arg: 0 [25679] Packet sent (->): 7E FF 6 1A 0 0 0 FE E1 EF -> Cmd: 1A (SetDAC), arg: 0 [25942] Packet sent (->): 7E FF 6 6 0 0 1 FE F4 EF -> Cmd: 6 (SetVolume), arg: 1 [26004] Packet sent (->): 7E FF 6 9 0 0 2 FE F0 EF -> Cmd: 9 (SetPlaybackDevice), arg: 2 [27018] Packet sent (->): 7E FF 6 F 0 1 2 FE E9 EF -> Cmd: F (PlayFolderTrack), arg: 258 [29032] Packet sent (->): 7E FF 6 4C 0 0 0 FE AF EF -> Cmd: 4C (GetCurrentTrackSD), arg: 0 [29045] Packet received (<-): 7E FF 6 4C 0 0 2 FE AD EF <- Msg: 4C (GetCurrentTrackSD), arg: 2 [42104] Packet received (<-): 7E FF 6 3D 0 0 2 FE BC EF <- Msg: 3D (TrackFinishedSD), arg: 2 Callback global track finished: 2 Received 1 callback(s) on SD track end

Test Case "TestTrackFinishedCallback" FINISHED


Running Test Case "TestContinuePlaybackAfterAd"

[44197] Packet sent (->): 7E FF 6 C 0 0 0 FE EF EF -> Cmd: C (Reset), arg: 0 [45052] Packet received (<-): 7E FF 6 3A 0 0 2 FE BF EF <- Msg: 3A (DeviceAttached), arg: 2 Callback OnCardInserted: 2 [45157] Packet received (<-): 7E FF 6 3F 0 0 2 FE BA EF <- Msg: 3F (StorageDevices), arg: 2 Callback OnCardOnline: 2 [46323] Packet sent (->): 7E FF 6 7 0 0 0 FE F4 EF -> Cmd: 7 (SetEQ), arg: 0 [46435] Packet sent (->): 7E FF 6 1A 0 0 0 FE E1 EF -> Cmd: 1A (SetDAC), arg: 0 [46698] Packet sent (->): 7E FF 6 6 0 0 1 FE F4 EF -> Cmd: 6 (SetVolume), arg: 1 [46760] Packet sent (->): 7E FF 6 9 0 0 2 FE F0 EF -> Cmd: 9 (SetPlaybackDevice), arg: 2 [47824] Packet sent (->): 7E FF 6 F 0 1 2 FE E9 EF -> Cmd: F (PlayFolderTrack), arg: 258 [49838] Packet sent (->): 7E FF 6 4C 0 0 0 FE AF EF -> Cmd: 4C (GetCurrentTrackSD), arg: 0 [49852] Packet received (<-): 7E FF 6 4C 0 0 2 FE AD EF <- Msg: 4C (GetCurrentTrackSD), arg: 2 [49901] Packet sent (->): 7E FF 6 13 0 0 64 FE 84 EF -> Cmd: 13 (PlayAd), arg: 100 [50414] Packet sent (->): 7E FF 6 4C 0 0 0 FE AF EF -> Cmd: 4C (GetCurrentTrackSD), arg: 0 [50428] Packet received (<-): 7E FF 6 4C 0 0 3 FE AC EF <- Msg: 4C (GetCurrentTrackSD), arg: 3 [77967] Packet received (<-): 7E FF 6 3D 0 0 2 FE BC EF <- Msg: 3D (TrackFinishedSD), arg: 2 Callback global track finished: 2 [78684] Packet sent (->): 7E FF 6 42 0 0 0 FE B9 EF -> Cmd: 42 (GetStatus), arg: 0 [78704] Packet received (<-): 7E FF 6 42 0 2 0 FE B7 EF <- Msg: 42 (GetStatus), arg: 512 TestContinuePlaybackAfterAd(): SD finished

Test Case "TestContinuePlaybackAfterAd" FINISHED


Running Test Case "TestWakeupAfterSleep"

[78748] Packet sent (->): 7E FF 6 C 0 0 0 FE EF EF -> Cmd: C (Reset), arg: 0 [79603] Packet received (<-): 7E FF 6 3A 0 0 2 FE BF EF <- Msg: 3A (DeviceAttached), arg: 2 Callback OnCardInserted: 2 [79709] Packet received (<-): 7E FF 6 3F 0 0 2 FE BA EF <- Msg: 3F (StorageDevices), arg: 2 Callback OnCardOnline: 2 [80874] Packet sent (->): 7E FF 6 7 0 0 0 FE F4 EF -> Cmd: 7 (SetEQ), arg: 0 [80987] Packet sent (->): 7E FF 6 1A 0 0 0 FE E1 EF -> Cmd: 1A (SetDAC), arg: 0 [81249] Packet sent (->): 7E FF 6 6 0 0 1 FE F4 EF -> Cmd: 6 (SetVolume), arg: 1 [81311] Packet sent (->): 7E FF 6 9 0 0 2 FE F0 EF -> Cmd: 9 (SetPlaybackDevice), arg: 2 [81524] Packet sent (->): 7E FF 6 6 0 0 0 FE F5 EF -> Cmd: 6 (SetVolume), arg: 0 [81587] Packet sent (->): 7E FF 6 16 0 0 0 FE E5 EF -> Cmd: 16 (Stop), arg: 0 [81800] Packet sent (->): 7E FF 6 1A 0 0 1 FE E0 EF -> Cmd: 1A (SetDAC), arg: 1 [82013] Packet sent (->): 7E FF 6 A 0 0 0 FE F1 EF -> Cmd: A (Sleep), arg: 0 [84225] Packet sent (->): 7E FF 6 C 0 0 0 FE EF EF -> Cmd: C (Reset), arg: 0 [85078] Packet received (<-): 7E FF 6 3A 0 0 2 FE BF EF <- Msg: 3A (DeviceAttached), arg: 2 Callback OnCardInserted: 2 [85182] Packet received (<-): 7E FF 6 3F 0 0 2 FE BA EF <- Msg: 3F (StorageDevices), arg: 2 Callback OnCardOnline: 2 [86348] Packet sent (->): 7E FF 6 7 0 0 0 FE F4 EF -> Cmd: 7 (SetEQ), arg: 0 [86460] Packet sent (->): 7E FF 6 1A 0 0 0 FE E1 EF -> Cmd: 1A (SetDAC), arg: 0 [86723] Packet sent (->): 7E FF 6 6 0 0 1 FE F4 EF -> Cmd: 6 (SetVolume), arg: 1 [86787] Packet sent (->): 7E FF 6 9 0 0 2 FE F0 EF -> Cmd: 9 (SetPlaybackDevice), arg: 2 [87000] Packet sent (->): 7E FF 6 F 0 1 2 FE E9 EF -> Cmd: F (PlayFolderTrack), arg: 258 [89014] Packet sent (->): 7E FF 6 42 0 0 0 FE B9 EF -> Cmd: 42 (GetStatus), arg: 0 [89027] Packet received (<-): 7E FF 6 42 0 2 1 FE B6 EF <- Msg: 42 (GetStatus), arg: 513 [89077] Packet sent (->): 7E FF 6 16 0 0 0 FE E5 EF -> Cmd: 16 (Stop), arg: 0 [89139] Packet sent (->): 7E FF 6 6 0 0 0 FE F5 EF -> Cmd: 6 (SetVolume), arg: 0 [89201] Packet sent (->): 7E FF 6 16 0 0 0 FE E5 EF -> Cmd: 16 (Stop), arg: 0 [89414] Packet sent (->): 7E FF 6 1A 0 0 1 FE E0 EF -> Cmd: 1A (SetDAC), arg: 1 [89626] Packet sent (->): 7E FF 6 A 0 0 0 FE F1 EF -> Cmd: A (Sleep), arg: 0 [91839] Packet sent (->): 7E FF 6 9 0 0 2 FE F0 EF -> Cmd: 9 (SetPlaybackDevice), arg: 2 [93953] Packet sent (->): 7E FF 6 7 0 0 0 FE F4 EF -> Cmd: 7 (SetEQ), arg: 0 [94064] Packet sent (->): 7E FF 6 1A 0 0 0 FE E1 EF -> Cmd: 1A (SetDAC), arg: 0 [94327] Packet sent (->): 7E FF 6 6 0 0 1 FE F4 EF -> Cmd: 6 (SetVolume), arg: 1 [94329] Packet received (<-): 7E FF 6 3A 0 0 2 FE BF EF <- Msg: 3A (DeviceAttached), arg: 2 Callback OnCardInserted: 2 [94340] Packet received (<-): 7E FF 6 3F 0 0 2 FE BA EF <- Msg: 3F (StorageDevices), arg: 2 Callback OnCardOnline: 2 [94389] Packet sent (->): 7E FF 6 F 0 1 2 FE E9 EF -> Cmd: F (PlayFolderTrack), arg: 258 [96403] Packet sent (->): 7E FF 6 42 0 0 0 FE B9 EF -> Cmd: 42 (GetStatus), arg: 0 [96416] Packet received (<-): 7E FF 6 42 0 2 1 FE B6 EF <- Msg: 42 (GetStatus), arg: 513 [96466] Packet sent (->): 7E FF 6 16 0 0 0 FE E5 EF -> Cmd: 16 (Stop), arg: 0

Test Case "TestWakeupAfterSleep" FINISHED


Profile of this DFPlayer device

The following devices have been discovered: -> SD, announced on reset, discovered by getTotalTrackCount Does NOT react on setPlaysourceFlash Does NOT react on 0x3F queries getFolderTrackCount... -> for SD returned 2 files in Folder /01/ GetCurrentTrack for SD returns correct value 99ms after start of track Sends 1 callback(s) on SD track end Continue playback after Ad for SD works Wakeup from sleep by reset works Wakeup from sleep by setting playsource SD works


ALL TESTS COMPLETED!

Please report your results in an issue at

 https://github.com/ghmartin77/DFPlayerAnalyzer/issues

Please state the player's chip name in the title of the issue entry. Thanks for your support!

`

derniwi commented 2 weeks ago

Additionally: everybody who wants to build a little "MP3" player, make sure you understand what those DFPlayer Mini modules are able to do, but also what they will not support... I'm missing the following features:

I don't know if there is a module or just a decoder on the market which will do all this. Of course the Arduino with the Atmega328 or successors of this architecture is not able to decode mp3 itself in software.