ESP32-S3-DevKit support

Posted on
  • Hello there!

    I tried to flash espruino on my S3 dev board, which seems to work:

    ./esptool --chip auto --port /dev/ttyUSB0 --baud 115200 --after hard_reset write_flash -z 0x1000 ../espruino_2v01.29_esp32/bootloader.bin­ 0x8000 ../espruino_2v01.29_esp32/partitions_esp­ruino.bin 0x10000 ../espruino_2v01.29_esp32/espruino_esp32­.bin  v3.2
    Serial port /dev/ttyUSB0
    Detecting chip type... ESP32-S3
    Chip is ESP32-S3
    Features: WiFi, BLE
    Crystal is 40MHz
    MAC: 7c:df:a1:e0:77:34
    Uploading stub...
    Running stub...
    Stub running...
    Configuring flash size...
    Flash will be erased from 0x00001000 to 0x00004fff...
    Flash will be erased from 0x00008000 to 0x00008fff...
    Flash will be erased from 0x00010000 to 0x0015cfff...
    Compressed 15280 bytes to 10057...
    Wrote 15280 bytes (10057 compressed) at 0x00001000 in 1.1 seconds (effective 111.3 kbit/s)...
    Hash of data verified.
    Compressed 3072 bytes to 166...
    Wrote 3072 bytes (166 compressed) at 0x00008000 in 0.1 seconds (effective 393.3 kbit/s)...
    Hash of data verified.
    Compressed 1363168 bytes to 881314...
    Wrote 1363168 bytes (881314 compressed) at 0x00010000 in 78.3 seconds (effective 139.2 kbit/s)...
    Hash of data verified.
    Hard resetting via RTS pin...

    However, it does not boot:

    Build:Mar 27 2021
    rst:0x7 (TG0WDT_SYS_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
    Saved PC:0x40043ac8
    mode:DIO, clock div:1
    Invalid image block, can't boot.
    ets_main.c 329

    I didn't find any documentation related to ESP32-S3, so here I am asking if it's supported.

  • Maybe now that we are testing the IDF v4.x and v5.x versions we could do the build for ESP32-S3. It seems to be the successor of ESP32.

    Has anyone made any progress to start with?

    For me I need to buy the hardware first.

  • I recently received the ESP32-S3 board.

    I have done quick tests with the ESP32 IDF 4.4 toolchain. I've removed a lot of code that doesn't work with ESP32-S3 hardware.

    Finally I was able to start Espruino prompt.

    Now there is a lot of work left to review the hardware differences and create a dual version for ESP32 and ESP32-S3.

    1 Attachment

    • Screenshot_65.png
  • Oh very nice. There is also the S2 and (risc-v) C3 so even more confusion to the ESP32 mix. At least the S2 could work with your changes too? However when googling it is not actualy so easy and GPIO access is different­32uesday-the-esp32-s3-is-more-than-a-fan­cy-s2/

  • Thanks for the link, I'll read.

    The truth is that I work with ESP32 (WIFI) and Espruino (Javascript) , and I'm very happy.

    The reasons to start migrating are:

    • new chinese gadgets come with ESP32-S3
    • Two cores is very important for WIFI management without disturbing Espruino Input/Ouputs timings.
    • ESP-IDF is on version 5.x. Me at the moment in 4.4

    I think it's time to start migrating before the current ESP32 system becomes obsolete.

  • Hi, this weekend I'been working on three updates. I've upgraded the BUILD system to ESP-IDF 4.4.4 and it seems to be working fine on ESP32 and ESP32S3.

    I've also added all the WIFI code and it's working on ESP32S3. I'm now able to access it via Telnet with EspruinoWeb IDE.

    Finally, I've ordered an ESP32 S2 to be able to do some testing and add it to the build system. I've been doing some research and it's a candidate to replace the ESP8266, so it's good to have all three systems well done.

  • Do you have a fork available where we can contribute to your efforts to make Espruino work for ESP32-s3?

  • Hello, it's great. But for now, I'm working locally with a virtual machine.

    I tried to follow the current Espruino organization and build system, but I couldn't do it. I have created a new folder structure and build system that fits with ESP-IDF 4.x.

    So we can follow different paths:

    • Share the code I have as it is, and each one sets up their own system.
    • Create a repository, upload everything, and start working independently of Espruino at the begining..
    • Try to unify with the current Espruino repository, but I don't have the knowledge and time for it.

    Or any other option that is preferred, I can adapt.

  • Hello, today I received the ESP32-S2. Let's see how it works with the port I made for ESP32-S3, or if there are many things that need to be changed.

    I'll let you know once I get it.

  • Hello again. One more issue. The ESP32 S2 and S3 boards don't have a UART USB port. Instead, they use USB CDC, which means that the serial device is virtual. Therefore, the Espruino console doesn't work over the UART channel unless we connect cables and a USB-serial TTL converter.

    I have seen that Espruino already includes USB in the console, so I need to investigate how to use it.

    Let's continue...

  • Nice, hope you find time to share your work!

  • Yes, sure.
    I hope this work is the beginning to add the new ESP32-S devices into Espruino.

    Currently, I have focused on addressing all the initial issues. The main goal is to achieve a firmware that successfully boots. From here on, everyone will be able to contribute.

  • Can you share the ESP32.make file and details about ESP32 SDK setting?

  • Hello, these days i'm setting up a Github repository with the complete ESP32-S3 system.

    If you can wait a few days for me to have it ready. Hopefully, by this weekend I can have it ready and published.

    The Make file and the sdkconfig are the first two significant changes compared to the current build system of Espruino.

    Here are for you to see how different they are.

    2 Attachments

  • Thanks for sharing

  • Hello, I've created a repository with the specific version of Espruino for ESP32-S3 and ESP-IDF 4.x.
    Let's see if from here we can work to integrate it into the official Espruino repository.

  • 👍🏻

  • This is fantastic! Support for the -s3 will give long future for Espruino with WIFI requirements.
    It would be so good if this one day gets developed to the point it can be merged back into master.

    @Gordon Would you support this? Is there a route you can monetise on the s3 platform?

  • Sorry for the delay replying here - it's great to have got a build going, however I guess it might be a bit of effort to try and merge this into the current Espruino build system - we'll have to see.

    If someone were to come up with a PR that added S3 support using the existing build system (so it didn't cause big maintenance headaches when files need to be added to the build) and didn't completely screw up the existing codebase then I'd absolutely support this and merge it in.

    However getting to the point where I could support my work on ESP32 stuff is probably quite a stretch.

    I'd really love to support it (especially on stuff like the ESP32-C2), and I'm open to suggestions, but unfortunately so far there hasn't really been anything that I feel would work. One of the big attractions of the Espressif stuff has been the insanely low price of dev boards, so I can't really make money on hardware which is what I currently do for other boards.

    I originally started Espruino with the idea of providing it for existing dev boards with a freemium model (it worked for free, but there was a $1.50 fee to enable saving to flash) - but I spent a year working on it and only made $30, which is what prompted the very first KickStarter.

    So I don't know - I think even if people would pay $1.50 to unlock their boards, developers often have a lot of questions and it's not like I can afford to provide much in the way of answers for $1.50 of my time, so even then it may not be viable.

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview

ESP32-S3-DevKit support

Posted by Avatar for user139530 @user139530