Replies: 6 comments 1 reply
-
The "original" documents stated the delays and didn't mention anything about retransmission; but that was a long time ago and documents were thin. I will spend a little time looking at the newest documents and see what is the modern way. |
Beta Was this translation helpful? Give feedback.
-
One way for the sketch writer to avoid the issue you hit at startup is to wait until the device I just checked my old spec and found this
It is one of the things that happens with the Chinese chips, they revise often, document poorly, and really don't think about backward compatibility. I think the originals were rushed out with lots of errors but generally functional and they have been improving them over revisions. I have two modules that are identical (chip numbers/circuit boards) that I bought about 6 months apart and they act differently. I don't know a way at run time way of requesting versions. I have never seen anything documented for it. |
Beta Was this translation helpful? Give feedback.
-
I have an initial set of changes that use ACK and ERROR messages to retransmit requests until it gets a response. As I was worried about, during the time after reset (as the device initializes) it my send notifications (cards online) but it will not respond to requests. It will neither send ACK nor will it respond with an error. They just go no where and the library has to rely on the UART timeout as it waits for some sort of "expected" response (valid response, ack, or error). Still reviewing leaving the ack/error/retry in. |
Beta Was this translation helpful? Give feedback.
-
While investigating this new work, I came across some other inconsistencies I need to get some clarity on with the MH2024K-16SS variant. Does anyone have one to try something? Basically, turn on the debug, run the "PlayMp3" example, capture the debugoutput and get that to me. Specially looking for when a track finishing playing notification details. |
Beta Was this translation helpful? Give feedback.
-
Hey! Thanks for the great library!
Sometimes I observe
0x40
when callinggetVolume()
right after startup. I assume that's because the module is still reading the SD card. I'm thinking if there's a good way for the library to handle this without callingdelay
.I've seen that the library puts delays in a couple of places, e.g., in
setVolume()
. I presume this is to avoid the0x40
error ifgetVolume()
got called immediately aftersetVolume()
. I'm thinking the controller should be able to parse the0x40
response and retransmit if requested.The "spec doc" indeed mentions "request retransmission" in the context of the
0x40
response code. In section 3.3.4 it even specifies 3 possible arguments. Unfortunately, I only ever witnessed undocumented arguments in thegetVolume()
case. AFAICT, the original "DFPlayer Mini" uses 4. I also tested a clone (it says "DFPlayer Mini HW-247A" on it) which uses 3 for the argument.Would it make sense to try to remove delays from the library and implement retransmissions? I guess it could be a nightmare to rely on undocumented error arguments?
Beta Was this translation helpful? Give feedback.
All reactions