Adafruit ESP32-S3 User manual

Adafruit ESP32-S3 TFT Feather
Created by Kattni Rembor
https://learn.adafruit.com/adafruit-esp32-s3-tft-feather
Last updated on 2023-03-16 04:05:25 PM EDT
©Adafruit Industries Page 1 of 263

9
13
23
29
37
39
42
43
48
51
Table of Contents
Overview
Pinouts
• Power
• TFT Display
• ESP32-S3 WiFi Module
• LC709203 Battery Monitor
• BME280 Temperature, Humidity and Pressure Sensor
• Logic Pins
• NeoPixel and Red LED
• STEMMA QT
• Buttons
• Debug
Low Power Usage
Power Management
• Battery + USB Power
• Power Supplies
• Measuring Battery
• ENable pin
• Alternative Power Options
CircuitPython
• CircuitPython Quickstart
Installing the Mu Editor
• Download and Install Mu
• Starting Up Mu
• Using Mu
The CIRCUITPY Drive
• Boards Without CIRCUITPY
Creating and Editing Code
• Creating Code
• Editing Code
• Back to Editing Code...
• Naming Your Program File
Exploring Your First CircuitPython Program
• Imports & Libraries
• Setting Up The LED
• Loop-de-loops
• What Happens When My Code Finishes Running?
• What if I Don't Have the Loop?
Connecting to the Serial Console
• Are you using Mu?
• Serial Console Issues or Delays on Linux
• Setting Permissions on Linux
©Adafruit Industries Page 2 of 263

54
57
62
73
80
81
85
87
91
• Using Something Else?
Interacting with the Serial Console
The REPL
• Entering the REPL
• Interacting with the REPL
• Returning to the Serial Console
CircuitPython Libraries
• The Adafruit Learn Guide Project Bundle
• The Adafruit CircuitPython Library Bundle
• Downloading the Adafruit CircuitPython Library Bundle
• The CircuitPython Community Library Bundle
• Downloading the CircuitPython Community Library Bundle
• Understanding the Bundle
• Example Files
• Copying Libraries to Your Board
• Understanding Which Libraries to Install
• Example: ImportError Due to Missing Library
• Library Install on Non-Express Boards
• Updating CircuitPython Libraries and Examples
• CircUp CLI Tool
CircuitPython Documentation
• CircuitPython Core Documentation
• CircuitPython Library Documentation
Recommended Editors
• Recommended editors
• Recommended only with particular settings or add-ons
• Editors that are NOT recommended
Advanced Serial Console on Windows
• Windows 7 and 8.1
• What's the COM?
• Install Putty
Advanced Serial Console on Mac
• What's the Port?
• Connect with screen
Advanced Serial Console on Linux
• What's the Port?
• Connect with screen
• Permissions on Linux
Frequently Asked Questions
• Using Older Versions
• Python Arithmetic
• Wireless Connectivity
• Asyncio and Interrupts
• Status RGB LED
• Memory Issues
• Unsupported Hardware
©Adafruit Industries Page 3 of 263

97
115
124
126
128
131
Troubleshooting
• Always Run the Latest Version of CircuitPython and Libraries
• I have to continue using CircuitPython 5.x or earlier. Where can I find compatible libraries?
• Bootloader (boardnameBOOT) Drive Not Present
• Windows Explorer Locks Up When Accessing boardnameBOOT Drive
• Copying UF2 to boardnameBOOT Drive Hangs at 0% Copied
• CIRCUITPY Drive Does Not Appear or Disappears Quickly
• Device Errors or Problems on Windows
• Serial Console in Mu Not Displaying Anything
• code.py Restarts Constantly
• CircuitPython RGB Status Light
• CircuitPython 7.0.0 and Later
• CircuitPython 6.3.0 and earlier
• Serial console showing ValueError: Incompatible .mpy file
• CIRCUITPY Drive Issues
• Safe Mode
• To erase CIRCUITPY: storage.erase_filesystem()
• Erase CIRCUITPY Without Access to the REPL
• For the specific boards listed below:
• For SAMD21 non-Express boards that have a UF2 bootloader:
• For SAMD21 non-Express boards that do not have a UF2 bootloader:
• Running Out of File Space on SAMD21 Non-Express Boards
• Delete something!
• Use tabs
• On MacOS?
• Prevent & Remove MacOS Hidden Files
• Copy Files on MacOS Without Creating Hidden Files
• Other MacOS Space-Saving Tips
• Device Locked Up or Boot Looping
Welcome to the Community!
• Adafruit Discord
• CircuitPython.org
• Adafruit GitHub
• Adafruit Forums
• Read the Docs
CircuitPython Essentials
Blink
• LED Location
• Blinking an LED
Digital Input
• LED and Button
• Controlling the LED with a Button
Analog In
• Analog to Digital Converter (ADC)
• Potentiometers
• Hardware
• Wire Up the Potentiometer
• Reading Analog Pin Values
• Reading Analog Voltage Values
©Adafruit Industries Page 4 of 263

137
143
147
157
165
170
175
181
NeoPixel LED
• NeoPixel Location
• NeoPixel Color and Brightness
• RGB LED Colors
• NeoPixel Rainbow
CircuitPython Internet Test
• Secrets File
Adafruit IO: Send and Receive Data
• NeoPixel Location
• Adafruit IO Feeds and Dashboard
• Adafruit IO Example Secrets
• Adafruit IO Example Code
• NeoPixel Color Change
• Code Walkthrough
I2C
• I2C and CircuitPython
• Necessary Hardware
• Wiring the MCP9808
• Find Your Sensor
• I2C Sensor Data
• Where's my I2C?
Storage
• Wiring for MCP9808
• The boot.py File
• The code.py File
• Logging the Temperature
• Recovering a Read-Only Filesystem
Capacitive Touch
• One Capacitive Touch Pin
• Pin Location
• Reading Touch on the Pin
• Multiple Capacitive Touch Pins
• Pin Location
• Reading Touch on the Pins
• The Available Touch-Capable Pins
I2S
• I2S and CircuitPython
• Necessary Hardware
• Wiring the MAX98357A
• I2S Tone Playback
• I2S WAV File Playback
• CircuitPython I2S-Compatible Pin Combinations
Multitasking with asyncio
• asyncio Demonstration
• Wiring
• asyncio Example Code
• Code Walkthrough
• My program ended? What happened?
©Adafruit Industries Page 5 of 263

189
192
195
204
208
211
222
230
236
249
Arduino IDE Setup
Using with Arduino IDE
• Blink
• Select ESP32-S2/S3 Board in Arduino IDE
• Launch ESP32-S2/S3 ROM Bootloader
• Load Blink Sketch
Arduino Blink
• Pre-Flight Check: Get Arduino IDE & Hardware Set Up
• Start up Arduino IDE and Select Board/Port
• New Blink Sketch
• Verify (Compile) Sketch
• Upload Sketch
• Native USB and manual bootloading
• Enter Manual Bootload Mode
• Finally, a Blink!
I2C Scan Test
• Common I2C Connectivity Issues
• Perform an I2C scan!
• Wiring the MCP9808
LC709203 Simple Data
• Arduino Library Installation
• LC709203 Simple Data Example
WiFi Test
• WiFi Connection Test
• Secure Connection Example
• JSON Parsing Demo
Usage with Adafruit IO
• Install Libraries
• Adafruit IO Setup
• Code Usage
WipperSnapper Setup
• What is WipperSnapper
• Sign up for Adafruit.io
• Add a New Device to Adafruit IO
• Feedback
• Troubleshooting
• "Uninstalling" WipperSnapper
WipperSnapper Usage
• Blink a LED
• Read a Push-Button
• Read an I2C Sensor
• Going Further
Factory Reset
• Factory Reset Firmware UF2
• Factory Reset and Bootloader Repair
• Download .bin and Enter Bootloader
©Adafruit Industries Page 6 of 263

260
261
262
• Step 1. Download the factory-reset-and-bootloader.bin file
• Step 2. Enter ROM bootloader mode
• The WebSerial ESPTool Method
• Connect
• Erase the Contents
• Program the ESP32-S2/S3
• The esptool Method (for advanced users)
• Install ESPTool.py
• Test the Installation
• Connect
• Installing the Bootloader
• Reset the board
• Older Versions of Chrome
• TheFlash an Arduino Sketch Method
• Arduino IDE Setup
• Load the Blink Sketch
Install UF2 Bootloader
Downloads
• Files
• Schematic and Fab Print
FAQ
©Adafruit Industries Page 7 of 263

©Adafruit Industries Page 8 of 263

Overview
We've got a new machine here at Adafruit, it can uncover your deepest desires. Don't
believe me? I'll turn it on right now to prove it to you!
What, you want your very own soft serve ice cream machine? OK, well, that's not
something we can provide. But we can provide your second-deepest desire: an
ESP32-S3 Feather board with a built in IPS TFT color display. It's got all the delicious
creamy goodness features of a Feather main board, the comforting warmth of an
ESP32-S3 WiFi+BLE microcontroller, and the crispness of a 240x135 pixel color TFT
display.
All that and it will even plug in nicely into a breadboard, terminal block wing(), or Feat
her Doubler() or even just stack on top of another wing.
©Adafruit Industries Page 9 of 263

This Feather comes with native USB and 4 MB Flash + 2 MB of PSRAM, so it is perfect
for use with CircuitPython or Arduino withlow-cost WiFi. Native USB means it can act
like a keyboard or a disk drive. WiFi means it's awesome for IoT projects. And Feather
means it works with the large community of Feather Wings for expandability.
The ESP32-S3 is a highly-integrated, low-power, 2.4 GHz Wi-Fi/BLE System-on-Chip
(SoC) solution thathasbuilt-in native USBas well as some other interesting new
technologies like Time of Flight distance measurements and AI acceleration. With its
state-of-the-art power and RF performance, this SoC is an ideal choice for a wide
variety of application scenarios relating to theInternet of Things (IoT)(),wearable
electronics(), and smart homes.
The BLE implementation in CircuitPython for the ESP32-S3 is still under
development and has limitations. Currently, your program can act as a central,
and connect to a peripheral. You can advertise, but you cannot create services.
You cannot advertise anonymously. Pairing and bonding are not supported.
©Adafruit Industries Page 10 of 263
Table of contents
Other Adafruit Microcontroller manuals
Popular Microcontroller manuals by other brands

AMS
AMS AS7261 Demo Kit user guide

Novatek
Novatek NT6861 manual

Espressif Systems
Espressif Systems ESP8266 SDK AT Instruction Set

Nuvoton
Nuvoton ISD61S00 ChipCorder Design guide

STMicrolectronics
STMicrolectronics ST7 Assembler Linker user manual

Texas Instruments
Texas Instruments Chipcon CC2420DK user manual

Texas Instruments
Texas Instruments TMS320F2837 D Series Workshop Guide and Lab Manual

CYPRES
CYPRES CY14NVSRAMKIT-001 user guide

Texas Instruments
Texas Instruments INA-DUAL-2AMP-EVM user guide

Espressif Systems
Espressif Systems ESP8266EX Programming guide

Abov
Abov AC33M8128L user manual

Laird
Laird BL654PA user guide








