On the Cutting Edge with the ESP32-S3

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:

Find this content useful? Share it with your friends!

1 Comment

  1. 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


Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.