{"id":255,"date":"2021-11-26T08:14:42","date_gmt":"2021-11-26T16:14:42","guid":{"rendered":"https:\/\/www.falatic.com\/?p=255"},"modified":"2021-11-26T08:14:44","modified_gmt":"2021-11-26T16:14:44","slug":"on-the-cutting-edge-with-the-esp32-s3","status":"publish","type":"post","link":"https:\/\/www.falatic.com\/index.php\/255\/on-the-cutting-edge-with-the-esp32-s3","title":{"rendered":"On the Cutting Edge with the ESP32-S3"},"content":{"rendered":"\n<p>It&#8217;s been a while since I&#8217;ve posted &#8211; work and life have been busy!<\/p>\n\n\n\n<p>I&#8217;ve been dabbling with the new <a rel=\"noreferrer noopener\" href=\"https:\/\/docs.espressif.com\/projects\/esp-idf\/en\/latest\/esp32s3\/hw-reference\/esp32s3\/user-guide-devkitc-1.html\" target=\"_blank\">ESP32-S3 DevKitC boards from Espressif<\/a> &#8211; I have the <a rel=\"noreferrer noopener\" href=\"https:\/\/www.mouser.com\/ProductDetail\/?qs=Wj%2FVkw3K%252BMCYPoeNuhXFsw%3D%3D\" target=\"_blank\">ESP32-S3-DevKitC-1-N8R2<\/a> (8MB flash, 2MB Quad SPI PSRAM) and hope to soon have the <a rel=\"noreferrer noopener\" href=\"https:\/\/www.mouser.com\/ProductDetail\/?qs=7D1LtPJG0i2PiuUUKucutQ%3D%3D\" target=\"_blank\">ESP32-S3-DevKitC-1-N8R8<\/a> as well (with 8MB flash and 8MB Octal SPI PSRAM).<\/p>\n\n\n\n<p>Note that if you use the <code>-N8R8<\/code> device, the Octal SPI will use up a few extra GPIO pins (GPIO33 through GPIO37). However, it <em>ought <\/em>to be pretty fast versus the older PSRAM implementations.<\/p>\n\n\n\n<p>So far so interesting, as Espressif <a rel=\"noreferrer noopener\" href=\"https:\/\/www.esp32.com\/viewtopic.php?t=21906\" target=\"_blank\">works to get the functionality in place<\/a> for the S3 as part of the upcoming ESP IDF 5.0. I&#8217;ve found that the ESP-IDF in Windows can be a little challenging to install and maintain when using the master branch (and the <em>ESP-IDF Tools Installer<\/em> was outdated for this purpose), so I wrote <a rel=\"noreferrer noopener\" href=\"https:\/\/gist.github.com\/MartyMacGyver\/679ec4aa89608a1ca642d4dfb66572f3\" target=\"_blank\">a gist to help do that in a repeatable way<\/a>. 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 <a rel=\"noreferrer noopener\" href=\"https:\/\/docs.espressif.com\/projects\/esp-idf\/en\/latest\/esp32s3\/api-guides\/flash_psram_config.html\" target=\"_blank\">in the latest docs<\/a>.<\/p>\n\n\n\n<p>The other problem was getting things working with Python 3.10, the blocker being windows-curses. Fortunately, <a rel=\"noreferrer noopener\" href=\"https:\/\/pypi.org\/project\/windows-curses\/\" target=\"_blank\">a new version of windows-curses was just released<\/a> so if you previously tried and failed to get past that step, it&#8217;s working now (in particular, <code>menuconfig<\/code> 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.<\/p>\n\n\n\n<p>And so it goes &#8211; I&#8217;ve now got a way to test out the latest and greatest ESP-IDF code as cleanly as I want, and long before <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/espressif\/arduino-esp32\" target=\"_blank\">Arduino-ESP32<\/a> will have full parity with it (I like the Arduino core, but I&#8217;m willing to revisit the IDF again for all this&#8230;. it&#8217;s certainly come a long way since the last time I used it years ago!)<\/p>\n\n\n\n<p>Other useful ESP32-S3 links:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a rel=\"noreferrer noopener\" href=\"https:\/\/www.espressif.com\/sites\/default\/files\/documentation\/esp32-s3_technical_reference_manual_en.pdf\" target=\"_blank\">Technical Reference Manual<\/a><\/li><li><a rel=\"noreferrer noopener\" href=\"https:\/\/www.espressif.com\/sites\/default\/files\/documentation\/esp32-s3_datasheet_en.pdf\" target=\"_blank\">Datasheet<\/a><\/li><li><a rel=\"noreferrer noopener\" href=\"https:\/\/docs.espressif.com\/projects\/esp-idf\/en\/latest\/esp32s3\/api-reference\/index.html\" target=\"_blank\">Online Documentation<\/a> (based on the latest code on the master branch)<\/li><\/ul>\n\n\n\n<p><\/p>\n<!-- wpsso rrssb get buttons: buttons on archive option not enabled -->\n","protected":false},"excerpt":{"rendered":"<p>It&#8217;s been a while since I&#8217;ve posted &#8211; work and life have been busy! I&#8217;ve been dabbling with the new ESP32-S3 DevKitC boards from Espressif &#8211; I have the ESP32-S3-DevKitC-1-N8R2 <a href=\"https:\/\/www.falatic.com\/index.php\/255\/on-the-cutting-edge-with-the-esp32-s3\" class=\"more-link\">[&hellip;]<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"Layout":"","footnotes":"","_links_to":"","_links_to_target":""},"categories":[1],"tags":[132,168,146,100,117],"class_list":["entry","author-marty","post-255","post","type-post","status-publish","format-standard","category-uncategorized","tag-esp32","tag-esp32-s3","tag-espressif","tag-python","tag-windows"],"_links":{"self":[{"href":"https:\/\/www.falatic.com\/index.php\/wp-json\/wp\/v2\/posts\/255","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.falatic.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.falatic.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.falatic.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.falatic.com\/index.php\/wp-json\/wp\/v2\/comments?post=255"}],"version-history":[{"count":0,"href":"https:\/\/www.falatic.com\/index.php\/wp-json\/wp\/v2\/posts\/255\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.falatic.com\/index.php\/wp-json\/wp\/v2\/media?parent=255"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.falatic.com\/index.php\/wp-json\/wp\/v2\/categories?post=255"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.falatic.com\/index.php\/wp-json\/wp\/v2\/tags?post=255"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}