running micropython 1.18 on an esp32-s3-devkitc-1-n8r8

Programming with the Mu Editor v 1.1.1

I’ve been experimenting with some of Espressif’s latest components via their developer kits. I’ve been working with both the ESP32-S3-DevKitC-1-N8R8 (8Mb RAM, 8Mb FLASH) and the ESP32-C3-DevKitC-02. The fundamental difference between the S3 and the C3 is that the S3 is a dual core Tensilica LX7 32-bit processor while the C3 is a single core RISCV 32-bit processor. I bought the C3s because at $10/board, they are the cheapest way to get into studying RISCV that I know of.

All of this is hosted on an M1 MacBook Pro M1 running macOS 12.3.1.

The screen capture above is the Mu Editor ( https://codewith.mu ) working with the ESP32-S3.

The ESP32-S3 was programmed with MicroPython downloaded from the MicroPython site here: https://micropython.org/download/GENERIC_S3/

Do not try to use the official release, it will not work. Success came by using one of the nightly builds: GENERIC_S3-20220414-unstable-v1.18-338-g988827b85.bin. I’m assuming that any nightly build from this point will work with these boards, but I’ve not tried this yet. I followed the directions on the MicroPython download page to flash the ESP32-S3 board.

Final Thoughts

I got everything to work on my MBP and macOS, especially programming the complete ESP32-S3. These MCUs are still advertised as experimental, with minimal support. And believe me they aren’t kidding. I’ve been programming these boards using Espressif’s ESP IoT Development Framework (IDF) v4.4. I’m comfortable working with the ESP-IDF command line tools in C/C++. And yet I wanted to flash at least one of my ESP32-S3 boards with either MicroPython or Adafruit’s Circuit Python. I’ve been sticking to MicroPython because of my extensive experience using it with Pycom boards (primarily the FiPy board) as well as using MicroPython on the RP2040-based boards.

As far as a decent IDE/editor is concerned, the only option for me has been the Mu Editor on macOS. I tried to install it via Python’s PIP on my Linux work box, but it fails all over the place; Mu Editor via PIP on Linux (and even on macOS) is a hot mess. I downloaded the macOS installation package from the Mu editor website and installed from that.

Mu with this version of MicroPython still isn’t perfect. For whatever reason if I try to trigger a read of the files on the ESP32-S3, the Mu editor fails and the windows at the bottom of the editor become unresponsive. I have to exit the application and restart it. Everything else seems to work, especially the REPL window, for which I’m thankful.

There appears to be a Circuit Python build (v 7.2.5) for the ESP32-S3-DevKitC-1-N8R8, but I haven’t tried it yet because there is conflicting information on the download page that there is no Circuit Python support for this board, right next to the download link. Right now things seem to be fine with MicroPython, and MicroPython has some key features missing from CircuitPython.

Update 15 April

I downloaded and flashed today’s MicroPython build and it worked as well as the build from 14 April. It would appear that consistent forward progress is being made.