-
Notifications
You must be signed in to change notification settings - Fork 323
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
I2S not initialized after updating the Arduino ESP core to version 3.1.2 #975
Comments
False alarm :) The errors are shown after upgrading ESP core to 3.1.2. |
Arduino 3.1.3 then probably uses a newer IDF which probably changes something in the I2S area. I'll have a look at this soon. |
I've also encountered this issue. It works fine for me in version 3.1.1, but not in versions 3.1.2 and 3.1.3. |
confirm |
3.1.3 works fine as previous |
what ESP? |
ESP32 WROVER n16r8 |
My ESP32-S3-WROOM-1-N16R8 doesn't work. |
try: m_i2s_chan_cfg.dma_desc_num = 16; // number of DMA buffer I use this settings |
I use v3.1.0a so far, but it does not matter i think so |
3.1.0 and 3.1.1 is based on 5.3.2, while 5.1.2 and 5.1.3 are based on 5.3. Why would you think they're not contributing to the problem? Did you compare their driver codes? |
In the Arduino IDE I have the error neither in the Arduio version 3.1.2 nor in the version 3.1.3 If I enter the following in PlatformIO: platform = https://github.com/pioarduino/platform-espressif32/releases/download/53.03.13/platform-espressif32.zip ; Arduino 3.1.3 / IDF 5.3.2 no DMA memory is made available for I2S. There is nothing I can do. |
Does it work for you in Arduino IDE 3.1.2 & 3.1.3?
|
The Arduino version 3.1.2 and 3.1.3 seems to be perfectly fine as the Arduino IDE shows. I don't know what is set in the background, but even if I halve the I2S DMA it is not enough. |
Could you share some Arduino IDE settings to try to make it working on my end? PS. On 3.1.3, if I disable PSRAM, it is still restarting. |
Changes regarding I2S in Arduino 3.1.2:
They might be the reason... @me-no-dev , @P-R-O-C-H-Y - fyi, maybe you will be able to help. |
Hello @cniedzi, In PlatformIO, I2S from Arduino 3.1.2 does not receive DMA memory (I don't know the reason, I have no idea what happens internally), but you can do it yourself. And I think it's a bug in PlatformIO or PioArduino? because I2S has nothing to do with Arduino, it's a question of implementation in the IDF. |
I have opened an issue |
Thanks @schreibfaul1. I've never used PlatformIO, but maybe it's good time to learn :) |
If this is working in the ArduinoIDE but not in PlatformIO some settings must be different. |
For me it isn't working in ArduinoIDE :( |
For me, i have the same results in ArduinoIDE and PlatformIO using an ESP32-S3-DevKitC1-N16R8:
But it seems to work when disabling the PSRAM!
I think the bug is somewhere related to the PSRAM, but not to PlatformIO or pioarduino (which are just the build system) Therefore the error should be reported to Espressif. |
I own the same board as yours. When I disable PSRAM, it still crashes... |
I don't see a crash here.... |
btw. what board do you choose in Arduino IDE? |
And here is my platformio.ini:
These error messages disapear when turning off the PSRAM:
|
@sivar2311 you're right. it works without PSRAM... ArduinoIDE Flash Size: 16mB (128Mb) Works OK Flash Size: 16mB (128Mb) Doesn't work!
PS. Strange, today it isn't crushing without PSRAM (while yesterday it was)... |
I confirm the issue for ESP32-S3, Arduino IDE 2, core 3.1.2 and 3.1.3. PSRAM ON. |
My guess is that if PSRAM is found, the I2S buffers are allocated there, but DMA is not switched on. |
I have written about my current version of audio library:
used in PlatformIO with: And it is working now on ESP32 WROVER n16r8 . Is it clear now? |
Afaik there is no Version 3.1.0a
What about the PSRAM in your project? (enabled / disabled) ?
No, see the points above. |
Please read carefully. Talk about audio.cpp version... I use very latest vesrion 3.1.3 IDF 5.3.2. Simply click and check it out https://github.com/pioarduino/platform-espressif32/releases/ |
Sorry, my fault, What about your PSRAM settings? |
PSRAM is enabled My project does not start without it. All structures of data are moved to. try add: #define CONFIG_I2S_ISR_IRAM_SAFE 1 I have made some individual changes in audio.cpp and audio.h to start 24 bit and change mclk. Is experimental and not fully stable when I change width of bits when the music play. I can change MCLK without any troubles. Unfortunately decoder does not support 24 bits by now. |
Sounds reasonable per documentation:
@cniedzi & @copych
Edit:
|
It doesn't help in Arduino IDE. |
You might need to edit the files directly - See #975 (comment) - since the ArduinoIDE does not have the hybrid compile feature. |
If Arduino is used as a component in PlatformIO, it works. Also with Arduino V3.1.3 |
Confirm :)
|
Thanks for the feedback. |
Fix is coming :) |
Also reported to ESP-IDF, because this is definitely a bug there. espressif/esp-idf#15533 |
Looks like it works @3.2.0 RC2 |
Yes, that looks good, it works with 3.2.0-RC2. |
After installing the latest version of the library, I get the following errors just after
audio.setPinout(I2S_BCLK, I2S_LRC, I2S_DOUT);
command:ESP32-S3-WROOM-1-N16R8
Should we add any command or config the latest version to work?
The text was updated successfully, but these errors were encountered: