It’s been a while since I’ve posted – work and life have been busy!
I’ve been dabbling with the new ESP32-S3 DevKitC boards from Espressif – I have the ESP32-S3-DevKitC-1-N8R2 (8MB flash, 2MB Quad SPI PSRAM) and hope to soon have the ESP32-S3-DevKitC-1-N8R8 as well (with 8MB flash and 8MB Octal SPI PSRAM).
Note that if you use the -N8R8
device, the Octal SPI will use up a few extra GPIO pins (GPIO33 through GPIO37). However, it ought to be pretty fast versus the older PSRAM implementations.
So far so interesting, as Espressif works to get the functionality in place for the S3 as part of the upcoming ESP IDF 5.0. I’ve found that the ESP-IDF in Windows can be a little challenging to install and maintain when using the master branch (and the ESP-IDF Tools Installer was outdated for this purpose), so I wrote a gist to help do that in a repeatable way. Since the PSRAM handling is cutting-edge, only the code on the master branch currently supports it (as of this writing). You can read more about configuring the flash and PSRAM in the latest docs.
The other problem was getting things working with Python 3.10, the blocker being windows-curses. Fortunately, a new version of windows-curses was just released so if you previously tried and failed to get past that step, it’s working now (in particular, menuconfig
will install with Python 3.10 now). As part of that effort I got to dust off my Windows application build skills, though ultimately someone else implemented the full solution.
And so it goes – I’ve now got a way to test out the latest and greatest ESP-IDF code as cleanly as I want, and long before Arduino-ESP32 will have full parity with it (I like the Arduino core, but I’m willing to revisit the IDF again for all this…. it’s certainly come a long way since the last time I used it years ago!)
Other useful ESP32-S3 links:
- Technical Reference Manual
- Datasheet
- Online Documentation (based on the latest code on the master branch)
Permalink
Note that at the day of writing this there is still some IDF parts that are still unfinished, so far I discovered watchdog related functions still need to come, also it seems so far I2S peripheral has some constants changed and I think LCD transmission mode is still not there
Permalink
It’s two years later. It’s hard to call it cutting edge, but we can agree with Martin that it’s unfinished. Unfortunately for the world, it looks like ESP-IDF 5.2 evolved in one direction and Arduino 3.0 evolved in one direction, each seemingly for a couple of years and despite each being open source, apparently without talking to each other.
The result is that we now finally have Arduino ESP32 3.0.2, which was delayed for over six months, but compatibility is pretty much still a mess.
Meanwhile, Platformio is over in the corner not really playing nice with Espressiff right now. It’s so bad that the application throws an error when it starts and asks you to submit it. Months later, 1,213 people have reported it and Platformio can’t/won’t fix it or address the startup error: https://github.com/platformio/platformio-home/issues?q=is%3Aissue+is%3Aopen++%22could+not+initialize+project%22
The good old S3, though, seems to be feature complete, though the current new parts are still being developed in the mainstream. I really like how the part is quick and has fewer goofy DMA contraints than the older, legacy ESP32-Nothing parts. The ability to leave off the few transistors and a UART for console it pretty nice, but that’s not without issues, too.
Overall, it’s a fun part to work with.