ESP32S2 does not compile for ESP32 Arduino core v3 #916
Replies: 1 comment 3 replies
-
|
Ok, i did some digging. The RMT driver is deprecated but that is not the issue. For the ESP32S2 there is somewhere in the I2S implementation between v2 & v3, also it seems to me that excluding the S3, C3 from I2S is consistent, but the C6 & H2 is not consistently excluded (they are in I2S.c but not in I2S.h and in the I2S methods.h ) On top of that there is something in the bitbang method that shows up as an error. (i just blocked it for all boards other than the normal ESP32) and that is the only way i can compile for the S2 & the S3 and C3 and C6 as well as the H2 (i think) Somehow for the S2 and for the bitbang method i think it's something very small that needs to be corrected. (this is from version 2.8.0 but somehow i tried 2.8.4 and that didn't compile either.) and the bitbang, though almost never used, fails to compile for the S3 (and maybe others with) but does compile for the S2. And everything works just fine for core version 2. The peripheral manager has been completely re-written for v3 and as far as i can tell has a whole different philosophy. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
It seems that the default method for the ESP32S2 does not compile for core version 3.x.x and i suspect that is because the RMT driver implementation has been completely re-written for this core version. There is a warning that shows up when compiling for other ESP32 boards that the legacy driver is deprecated, but i guess deprecated doesn't quite cover what has happened to the core. I saw an issue stating something similar (or the same) for the S3. I will have a look at it when i have some time, i just happen to have the S2 i used for the 3 step encoding test and thought i'd check my DMX library and Neopixel as an output for the channels is actually the simplest way to verify all channels come in without error.
So since i guess it is about using the RMT method, which makes me wonder if there is an actual I2S method available and how to set it as the default (because if i am correct the default is RMT for the S2, S3 & C3)
Anyway i will have a lok at the RMT method, i went into the differences between core v2 & v3 for the RMT Rx, it shouldn't be that hard for me to work out what to change and how to keep it backwards compatible. (although that does really tend to mess up the overview of the code)
Beta Was this translation helpful? Give feedback.
All reactions