Replies: 10 comments 14 replies
-
Summarizing above... For implementing a better Internet Radio we might consider a data patch (aka plugin) feature to apply these patches. Those are VS1053b Patches v2.9 and they help to get rid of some streaming problems, as well as handle ID3 tag things better (so that binary data inside the tag is not erroneously interpreted as audio), and so on. A question is whether we would like to:
Would you please leave your thoughts on it? |
Beta Was this translation helpful? Give feedback.
-
I think the default (no user interaction) should be load the generic firmware patch. (The patch used in I was thinking maybe put a single entry in
And then in
With Not very sophisticated but I like KISS. |
Beta Was this translation helpful? Give feedback.
-
I now get your more of the gist of your idea. Sound good. So patches would be added as a file or files with the Yes keeping The factory patches all write 0x50 to A software reset will erase the patch and the reset routine should maybe be changed. (did not look at that code though) Also see vs1053b-patches.pdf page 4. |
Beta Was this translation helpful? Give feedback.
-
A functionality delivered! 🎉 Below is a summary of what was delivered. Added an extension for dealing with vs1053 Firmware patches (binary patch files that can easily be loaded to the memory of VS10XX by a microcontroller to fix known firmware bugs):
Thank you @CelliesProjects for your effort! |
Beta Was this translation helpful? Give feedback.
-
I just tested the new version, which raised two questions:
|
Beta Was this translation helpful? Give feedback.
-
Back to what I meant with comments: Most of the 1003 and 1053 devices that are sold completely look the same. They are even both labeled with "VS1003/1053 MP3 CODEC". The only way to distinguish them the is the colour (green = VS1053, blue = VS1003, I'm not sure about the red ones) or having good eyes and a close look at the chip. That means a lot of users use a VS1003 chip without even being aware of it. So, even if it works with all devices, I still feel sort of uncomfortable with the line
in the WebRadioDemo. I'd rather leave a comment, something like
or
|
Beta Was this translation helpful? Give feedback.
-
Why note read the SCI_STATUS register. Bits 0..2 will tell you the version: |
Beta Was this translation helpful? Give feedback.
-
@Edzelf @baldram The vs1053 pdf (page41) says:
So that should be bits 7 through 4. Note that id |
Beta Was this translation helpful? Give feedback.
-
Gosh, I'm pretty new to this GitHub thing / merge/ pull/ whatsoever .. I (hopefully) just proposed two pull requests adding a method to get the Chip number as well as a method for switching the VS10xx Stream mode on and off.. |
Beta Was this translation helpful? Give feedback.
-
As mentioned in #32, I think there's a bug in the loadUserCode function (and yes, I know, it's from VLSI and they did well ;-) ). The array is passed as call by reference. I.e. @baldram @CelliesProjects could you check whether I'm on the right path? I'm preparing a pull request to fix this. |
Beta Was this translation helpful? Give feedback.
-
Hi All,
Out of a clarification from #65 (comment) I open a discussion regarding adding a support for loading patches (from http://www.vlsi.fi/en/support/software/vs10xxpatches.html).
An example from @CelliesProjects repository is here: vs1053b-patches.plg.h.
This is v2.9 from http://www.vlsi.fi/fileadmin/software/VS10XX/vs1053b-patches290.zip
From that vs1053-patches.plg and renamed to vs1053-patches.plg.h.
Now, we would like to integrate a support into ESP_VS1053_Library.
As discussed here: #65 (comment), @CelliesProjects is willing to code a PR for that.
Now, a question:
Or patches should be rather a part of project using ESP_VS1053_Library?
loadUserCode
method? Or both a method and patches?loadUserCode
implementation, that would be something like here (@CelliesProjects please correct me if I'm wrong):https://github.com/CelliesProjects/ESP32_VS1053_Stream/blob/master/src/ESP32_VS1053_Stream.cpp#L440
...but instead of
loadUserCode(void)
that would have the argumentloadUserCode(const unsigned short plugin[])
, so that we could use it for any patch code according to needs.Of course we would have to check whether all official patches are loaded using similar code snipped. That this can be universal.
The "loading patches" topic is also connected with the following issue #52 as patch has improvements on different things which might help to suppress the glitches and other streaming troubles.
Looking to patch's change log, we notice eg. "ID3 tag parser skips the tag data, so that binary data inside the tag is not erroneously interpreted as audio", what was one of issues from past discussions if I correctly remember.
CC: @wmarkow @fabitom @philippedc @ewbarnes53 @DindonCurieux @Dr-Dawg @Edzelf @vincegellar
What do you think?
Beta Was this translation helpful? Give feedback.
All reactions