FeatherS3 - ESP32-S3

by Unexpected Maker

The Pro ESP32-S3 Development Board in the Feather Format

Packed with amazing features and peripherals, wireless connectivity and stacks of Flash and PSRAM, all in the same tiny package size as the original TinyPICO!

Features

  • Dual 32bit Xtensa LX7 cores @ up to 240Mhz
  • RISC-V Ultra Low Power Co-processor
  • 2.4GHz Wifi - 802.11b/g/n
  • Bluetooth 5, BLE + Mesh
  • 16MB QSPI Flash
  • 8MB of extra QSPI PSRAM
  • 2x 700mA 3.3V LDO Regulators
  • LDO2 is user controlled & auto-shuts down in deep-sleep
  • ULTRA LOW Deep Sleep Current
  • USB-C Connector with back-feed protection
  • Native USB + USB Serial JTAG
  • LiPo Battery Charging
  • Low power RGB LED
  • VBAT and 5V Sense Pins
  • 3D High Gain Antenna
  • 2x STEMMA connectors, 1 on LDO1 and 1 on LDO2 !
  • 21x GPIO including castellated headers
  • Feather Format compatibility
  • Board Dimensions: 52.3mm x 22.9mm
  • Max Thickness: 6.6mm at JST PH battery connector

2x 3.3V Regulators? Really?

Yup! The first one is for the general operation of the board and the ESP32-S3, PSRAM and Flash.

The second LDO is for you to use to connect external 3V3 modules, sensors and peripherals, and it has programmable EN control tied to IO39 + it’s connected to the deep sleep capabilities of the ESP32-S3, so if the ESP32-S3 goes into deep sleep, the 2nd LDO is automatically shut down for you!

Both regulators are ultra low noise and have ultra low quiescent current, and both support a maximum of 700mA output.

2x STEMMA connectors?

Yes! One of the biggest feature requests about the FeatherS2 was that the single STEMMA connector was connected to LDO1 instead of LDO2. That was by design as there are plenty of use cases where you want your external sensor or module to stay powered when your ESP32 goes into deep sleep.

To solve this on the FeatherS3 there is a second STEMMA connector!!! Now there are 2!

The second STEMMA connector (The vertical one) is connected to the second LDO for power, so any I2C modules/devices you have connected to the that STEMMA connector will automatically power down when the ESP32-S3 goes into deep sleep or if you disable the second LDO via IO39.

Both STEMMA connectors share the same I2C BUS along with the 2x I2C pins broken out on the pin headers.

CircuitPython

The FeatherS3 ships with the latest version of CircuitPython with ESP32-S3 support.

It also ships with the UF2 bootloader, so you can easily update your FeatherS3 with the latest CircuitPython firmware, whenever you desire.

Just plug your FeatherS3 into your computer and it will appear in your filesystem as a USB flash drive! Just copy your code over, or edit your code directly on the drive. Coding a microcontroller has never been easier!

As newer versions of CircuitPython are released, you are able to update as you require from circuitpython.org

If you need to grab the shipping CircuitPython code that comes with the FeatherS3,
you can grab the latest here

MicroPython

MicroPython has early support for the ESP32-S3 and I'm currently waiting for the PR for my ESP32-S3 boards to be merged, so they'll be included in the automatic firmware building and downloads page with the rest of my boards.

Until then, you can grab the firmware from my github repo using the following instructions for your OS:

Flashing MicroPython on to your FeatherS3

If you would like to put MicroPython on your FeatherS2, please follow these steps:

  • Download the latest MicroPython firmware for the FeatherS3 from the link above
  • Put your FeatherS3 into download mode by holding [BOOT], clicking [RESET] and then releasing [BOOT]
  • Erase the flash on your FeatherS3 to give you a clean start
    • Windows
      esptool --chip esp32s3 -p COM(X) erase_flash
    • Mac
    • Please execute ls /dev/cu.usbm* to determine the port your board has enumerated as
      esptool.py --chip esp32s3 -p /dev/cu.usbmodem01 erase_flash
    • Linux
      esptool.py --chip esp32s3 -p /dev/ttyACM0 erase_flash
  • Flash the downloaded firmware to your FeatherS3
    • Windows
      esptool --chip esp32s3 -p COM(X) write_flash -z 0x0 feathers3_firmware_1_18.bin
    • Mac
      Please execute ls /dev/cu.usbm* to determine the port your board has enumerated as
      esptool.py --chip esp32s3 -p /dev/cu.usbmodem01 write_flash -z 0x0 feathers3_firmware_1_18.bin
    • Linux
      esptool.py --chip esp32s3 -p /dev/ttyACM0 write_flash -z 0x0 feathers3_firmware_1_18.bin
  • Restart your FeatherS3 by pressing the [RESET] button
  • And that’s it! Your’e done! Happy coding!

For more information about using MicroPython, visit this link.

ESP-IDF

ESP32-S3 support in the IDF is part of the v4.4 release. The latest IDF is v5.0, but it's in early development, so I recommend you stick to the v4.4 release branch for the time being as there are some low level breaking changes in v5.

Check out the ESP32-S3 IDF docs for information on how to install it and develop for the ESP32-S3

Arduino

There is no ESP32-S3 support in Arduino yet, but work has started on it! You can follow along with the progress by watching this branch of the repo

Arduino support for the ESP32-S3 is scheduled for release in v2.10 of the ESP32 Arduino Core.

Downloads

FeatherS3 Schematic

github - The Unexpected Maker ESP32-S3 github Repo includes the following items:

    • 3D STEP file for the FeatherS3
    • KiCAD 6 symbol file for the FeatherS3 that you can use when integrating one of them into one of your PCB designs
    • KiCAD 6 footprint file for the FeatherS3
    • PDF Schematic for the FeatherS3
    • Hi-res pinout reference card for the FeatherS3
    • Fritzing parts (soon)