Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description:
This should fix the crashes for configurations with an input/microphone only (no output device) and can handle the widespread INMP441.
i2sstream 1
inautoexec.bat
or with another autostart method.The new driver concept is all about runtime configuration with a new command
i2sconfig
that prints a (pretty big) JSON like that:This looks a bit wild at first glance, but will be explained soon in the docs.
For instance changing from default (which is PDM mode for the microphone) to the INMP441 in left channel configuration is only:
i2sconfig {"Rx":{"Mode":0}}
Using MP3 encoding would need PSRAM allocation:
i2sconfig {"Sys":{"Mp3Preallocate":1}}
Changing the sample rate:
i2sconfig {"Rx":{"SampleRate":48000}}
The latter would need a larger DMA buffer:
i2sconfig {"Rx":{"DMAFrame":768}}
More on this later ...
There are still a few glitches and probably some bugs, that will be addressed in separate PR's.
The vast majority of changes in comparison to the old driver is about configuration and setup. All time critical parts did not really change that much.
Checklist:
NOTE: The code change must pass CI tests. Your PR cannot be merged unless tests pass