ESP32-S3 Support (16M Flash/ 8MB PSRAM) #236
-
I just received some new ESP32-S3 N16R8 modules with 16MB Flash & 8MB PSRAM. What adjustments would be needed to allow this to flash to this new ESP32 module? Here is the datasheet: (Note: They gave this a name of "S3-WROOM-1" however this is NOT the same old WROOM modules without PSRAM) I understand this chip is newer so I'd be happy to help modify and test the code myself and would post any details along the way, I'm just looking for any pointers to help me get started looking in the right direction. Thanks! |
Beta Was this translation helpful? Give feedback.
Replies: 5 comments 2 replies
-
First off, and as of writing this, none of the "S" versions support the a2dp audio sink that is needed if you want to use the device as a bluetooth speaker. For many, this is a deal breaker. If you want to try it for yourself, then I suggest you follow the readme and start with the master-v4.3 branch as your base. A good development environment choice is VSCode with the espressif plugin, which can be used to set all the dependencies automatically. Then when you have everything ready, change the target from ESP32 to the appropriate one, run idf.py menuconfig to update the build options for the target chip. Finally, take a deep breath, build and start looking for errors. With the lack of a2dp support, you'll most likely have to tweak a few make files to exclude BT related stuff from compiling, and you will also need to wrap some BT logic around #ifdef statements. Finally, and assuming you got the core up and running, you'll want to go in the webapp and find a way to suppress the BT stuff there as well. Some of it will go away automatically (some tiles are generated by console commands which should be suppressed after you've fixed the core), but the Audio output radio button is currently hard coded. You could use the status.json message to send a BT status code indicating it's not present and use that in the UI to hide the BT audio as a valid output. This is all I can think of for now. You can document your progress here if you want and I'll try to help. Supporting newer chips is definitely something that we have on the radar, but our limited time is used to improve stability and implement a few new features. Note that you would need at least QIO mode for the PSRAM chip, otherwise the system is likely to run too slow to deal with everything. |
Beta Was this translation helpful? Give feedback.
-
Well dang, ain't that annoying! I certainly did not realize they removed BT Classic and thus A2DP sink from this version. I assume that's an actual hardware limitation with the Espressif ESP chip itself? And here I thought I found a good newer chip with even more PSRAM so I thought I'd be in good shape. Guess I should have paid closer attention to the rest of the datasheet lol! Luckily BT isn't as critical for my planned project, so I'll still give it a go and will document my progress and updates here. As long as I can still stream via WiFi, this should still be fine for the most part. Plus it should still be fun and hopefully useful to others if I get it working. Thanks for the detailed info, that helps quite a bit. I'll keep you posted. |
Beta Was this translation helpful? Give feedback.
-
I compiled for S3 version a while ago but stopped using it due to the lack of BT. You need to move to esp-idf 4.4 which is another set of nuisances. Be mindful that we have a set of esp-idf bugs workaround, some PR I've submitted and they integrated, but not all of them (one on memory optimization, one on SPI bus lock but not the one of PLL calculation - from memory) |
Beta Was this translation helpful? Give feedback.
-
anyone wanting to do this on their own should hold their efforts, as @philippe44 has started the migration |
Beta Was this translation helpful? Give feedback.
-
Philippe did it. e098371 |
Beta Was this translation helpful? Give feedback.
anyone wanting to do this on their own should hold their efforts, as @philippe44 has started the migration