Adafruit Industries Adafruit MatrixPortal S3 Manual

Created by melissa leblanc-williams
Table of Contents

Advertisement

Quick Links

Adafruit MatrixPortal S3
Created by Melissa LeBlanc-Williams
https://learn.adafruit.com/adafruit-matrixportal-s3
Last updated on 2024-02-27 09:40:38 AM EST
©Adafruit Industries
Page 1 of 102

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the Adafruit MatrixPortal S3 and is the answer not in the manual?

Questions and answers

Summary of Contents for Adafruit Industries Adafruit MatrixPortal S3

  • Page 1 Adafruit MatrixPortal S3 Created by Melissa LeBlanc-Williams https://learn.adafruit.com/adafruit-matrixportal-s3 Last updated on 2024-02-27 09:40:38 AM EST ©Adafruit Industries Page 1 of 102...
  • Page 2: Table Of Contents

    Why would I use CircuitPython? CircuitPython Internet Test • The settings.toml File MatrixPortal Library Overview • Network Branch • Graphics Branch • MatrixPortal Module • Library Demos CircuitPython Pins and Modules • CircuitPython Pins • import board ©Adafruit Industries Page 2 of 102...
  • Page 3 Install Libraries • Adafruit IO Setup • Code Usage Arduino Sand Demo Protomatter Library Migrating from MatrixPortal M4 Install UF2 Bootloader Factory Reset • Factory Reset Firmware UF2 • Factory Reset and Bootloader Repair ©Adafruit Industries Page 3 of 102...
  • Page 4 The Flash an Arduino Sketch Method • Arduino IDE Setup • Load the Blink Sketch USB Power • The Source of Gremlins • Some Solutions to Try Downloads • Schematic • Fab Print • 3D Model ©Adafruit Industries Page 4 of 102...
  • Page 5: Overview

    But what if we made it even easier than that? Like, no solder, no wiring, just instant plug-and-play? Dream no more - with the Adafruit Matrix Portal S3 add-on for RGB Matrices, there's never been an easier way to create powerful Internet-connected LED displays. ©Adafruit Industries Page 5 of 102...
  • Page 6 USB C power supply. Chain dozens of displays for long stretches, or you can panelize them in a grid for bigger displays. For larger projects, power the matrices with a separate 5V power adapter. ©Adafruit Industries Page 6 of 102...
  • Page 7 Green power indicator LEDs for both 3V and 5V power • 2x10 socket connector fits snugly into 2x8 HUB75 ports without worrying about 'off by one' errors • 2x8 IDC plug connector works with standard cables that come with matrices. ©Adafruit Industries Page 7 of 102...
  • Page 8 The only real thing missing from the original Matrix Portal is the S3 does not have an analog output DAC pin, we recommend an I2S amplifier for audio instead. Comes with one fully programmed and assembled MatrixPortal, preprogrammed with a basic display demo for 32x64 LED matrices. ©Adafruit Industries Page 8 of 102...
  • Page 9: Pinouts

    Pinouts There are so many great features on the Adafruit MatrixPortal S3. Let's take a look at what's available! Microcontroller and WiFi The main processor chip is the Espressif ESP32-S3 with 3.3v logic/power. It has 8MB of Flash and 2MB of RAM.
  • Page 10: Hub75 Connectors

    'off by one' There is also a 2x8 pin HUB75 socket connector on the component side that allows you the option to instead connect a 2x8 IDC cable to your RGB Matrix. ©Adafruit Industries Page 10 of 102...
  • Page 11: Rgb Matrix Power

    The MatrixPortal S3 includes a LIS3DH Triple-Axis Accelerometer. The accelerometer is connected via the I2C bus. Please note the address of the accelerometer is 0x19 not 0x18 which is the default in our libraries. ©Adafruit Industries Page 11 of 102...
  • Page 12: Stemma Qt Connector

    GND is the common ground for all power and logic. Reset and Boot Pins RESET is the Reset pin. Tie to ground to manually reset the ESP32-S3. Tying BOOT to ground while resetting will place the ESP32-S3 in ROM bootloader mode. ©Adafruit Industries Page 12 of 102...
  • Page 13: Debug Pin

    GPS. The RXI pin is attached to board.RX Arduino and the TXO pin is attached to and Arduino board.TX Both of these pins can be used for digital I/ ©Adafruit Industries Page 13 of 102...
  • Page 14: Analog Connector/Pins

    There are two LEDs on the board controllable through programming. There is the RGB status NeoPixel labeled "STATUS". It is connected or Arduino board.NEOPIXEL As well, there is the D13 LED. This is attached to and Arduino board.LED ©Adafruit Industries Page 14 of 102...
  • Page 15: Usb-C Connector

    The boot button is located between the up button and the Microcontroller. Hold it while pressing reset to enter ROM Bootloader mode. ©Adafruit Industries Page 15 of 102...
  • Page 16: Address E Line Jumper

    The MatrixPortal supplies power to the matrix display panel via two standoffs. These come with protective tape applied (part of our manufacturing process) which MUST BE REMOVED! Use some tweezers or a fingernail to remove the two amber circles. ©Adafruit Industries Page 16 of 102...
  • Page 17: Power Terminals

    Power Terminals Next, screw in the spade connectors to the corresponding standoff. red wire goes to +5V black wire goes to GND ©Adafruit Industries Page 17 of 102...
  • Page 18: Panel Power

    The plug can only go in one way, and that way is marked on the board's silkscreen. Dual Matrix Setup If you're planning to use a 64x64 matrix, follow these instructions on soldering the Address E Line jumper (https://adafru.it/OdJ). ©Adafruit Industries Page 18 of 102...
  • Page 19: Board Connection

    Check nothing is impeding the board from plugging in firmly. If there's a plastic nub on the matrix that's keeping the Portal from sitting flat, cut it off with diagonal cutters ©Adafruit Industries Page 19 of 102...
  • Page 20: Led Matrix Diffuser

    LED matrix display. (Pictured here with the ON AIR project (https://adafru.it/MPE)) This can help protect the LEDs as well as enhance the look of the sign both indoors and out by reducing glare and specular highlights of the plastic matrix grid. ©Adafruit Industries Page 20 of 102...
  • Page 21: Measure And Cut The Plastic

    Note: it is possible to score and snap acrylic, but it can be very tricky to get an even snap without proper clamping. ©Adafruit Industries Page 21 of 102...
  • Page 22 Peel away the paper backing from both sides and set the acrylic onto your matrix display with the matte finished side facing out. ©Adafruit Industries Page 22 of 102...
  • Page 23: Uglu Dashes

    20 seconds. Here you can see the impact of using the diffusion acrylic. (Pictured here with the ON AIR sign project) ©Adafruit Industries Page 23 of 102...
  • Page 24 ©Adafruit Industries Page 24 of 102...
  • Page 25: Stand

    Stand A very simple and attractive way to display your matrix is with the adjustable bent-wire stand (http://adafru.it/1679). ©Adafruit Industries Page 25 of 102...
  • Page 26: Install Circuitpython

    Set up CircuitPython Quick Start! Follow this quick step-by-step for super-fast Python power :) The MatrixPortal S3 requires CircuitPython 8.2.1 or later. Download the latest version of CircuitPython for this board via circuitpython.org https://adafru.it/18Pd ©Adafruit Industries Page 26 of 102...
  • Page 27: Further Information

    Early shipments of the MatrixPortal S3 do not have the UF2 bootloader installed. Double-clicking will not produce a BOOT drive. Follow these instructions to install the UF2 bootloader: https://learn.adafruit.com/adafruit-matrixportal-s3/ factory-reset#factory-reset-and-bootloader-repair-3107941 ©Adafruit Industries Page 27 of 102...
  • Page 28: What Is Circuitpython

    It's that simple. CircuitPython is based on Python Python is the fastest growing programming language. It's taught in schools and universities. It's a high-level programming language which means it's designed to be ©Adafruit Industries Page 28 of 102...
  • Page 29: Why Would I Use Circuitpython

    Easily update your code. Since your code lives on the disk drive, you can edit it whenever you like, you can also keep multiple files around for easy experimentation. • The serial console and REPL. These allow for live feedback from your code and interactive programming. ©Adafruit Industries Page 29 of 102...
  • Page 30: Circuitpython Internet Test

    Extract the contents of the zip file, and copy the entire lib folder and the code.py file to your CIRCUITPY drive. # SPDX-FileCopyrightText: 2020 Brent Rubell for Adafruit Industries # SPDX-License-Identifier: MIT import os...
  • Page 31 = requests.get(JSON_STARS_URL) print("-" * 40) print(f"CircuitPython GitHub Stars: {response.json()['stargazers_count']}") print("-" * 40) print("Done") Your CIRCUITPY drive should resemble the following. To get connected, the next thing you need to do is update the settings.toml file. ©Adafruit Industries Page 31 of 102...
  • Page 32: The Settings.toml File

    CIRCUITPY drive is empty. To get started, you can update the settings.toml on your CIRCUITPY drive to contain the following code. # SPDX-FileCopyrightText: 2023 Adafruit Industries # SPDX-License-Identifier: MIT # This is where you store the credentials necessary for your code.
  • Page 33 %d\tChannel: %d" % (str(network.ssid, "utf-8"), network.rssi, network.channel)) wifi.radio.stop_scanning_networks() Connects to the access point you defined in the settings.toml file, and prints out its local IP address. print(f"Connecting to {os.getenv('WIFI_SSID')}") wifi.radio.connect(os.getenv("WIFI_SSID"), os.getenv("WIFI_PASSWORD")) ©Adafruit Industries Page 33 of 102...
  • Page 34 = requests.get(JSON_QUOTES_URL) print("-" * 40) print(response.json()) print("-" * 40) Finally, you can fetch and parse a JSON URL using . This code snippet requests.get obtains the field from a call to the GitHub API. stargazers_count ©Adafruit Industries Page 34 of 102...
  • Page 35: Matrixportal Library Overview

    Here is the way it is logically laid out with dependencies. The MatrixPortal library is comprised of the top layer, the Network and Graphics layers, and the WiFi and Matrix layers in the diagram. ©Adafruit Industries Page 35 of 102...
  • Page 36: Network Branch

    WiFi and didn't need any other functionality. Network Module The network module has many convenience functions for making network calls. It handles a lot of things from automatically establishing the connection to getting the ©Adafruit Industries Page 36 of 102...
  • Page 37: Graphics Branch

    The MatrixPortal library has been used in a number of projects. Here are a few of them with guides available. • RGB Matrix Automatic YouTube ON AIR Sign (https://adafru.it/MPE) • Network Connected RGB Matrix Clock (https://adafru.it/NA-) ©Adafruit Industries Page 37 of 102...
  • Page 38: Circuitpython Pins And Modules

    You can always access a pin by its pin label. However, there are almost always multiple names for a given pin. To see all the available board-specific objects and pins for your board, enter the REPL ) and run the following commands: >>> ©Adafruit Industries Page 38 of 102...
  • Page 39 CircuitPython, is to run those commands in the REPL and find the pin naming scheme. ©Adafruit Industries Page 39 of 102...
  • Page 40: I2C, Spi, And Uart

    Basically, it does not create an object until you need it, and provides the same object every time you need it. You can call as many times as you like, and it will always return the same object. board.I2C() ©Adafruit Industries Page 40 of 102...
  • Page 41: What Are All The Available Names

    Your CIRCUITPY drive should now look similar to the following image: # SPDX-FileCopyrightText: 2020 anecdata for Adafruit Industries # SPDX-FileCopyrightText: 2021 Neradoc for Adafruit Industries # SPDX-FileCopyrightText: 2021-2023 Kattni Rembor for Adafruit Industries # SPDX-FileCopyrightText: 2023 Dan Halbert for Adafruit Industries # SPDX-License-Identifier: MIT """CircuitPython Essentials Pin Map Script"""...
  • Page 42: Microcontroller Pin Names

    CircuitPython! Microcontroller Pin Names The pin names available to you in the CircuitPython module are not the same board as the names of the pins on the microcontroller itself. The board pin names are ©Adafruit Industries Page 42 of 102...
  • Page 43: Circuitpython Built-In Modules

    Plug in your board, connect to the serial console and enter the REPL. Type the following command. help("modules") That's it! You now know two ways to find all of the modules built into CircuitPython for your compatible microcontroller board. ©Adafruit Industries Page 43 of 102...
  • Page 44: Portalbase Library Docs

    After you have downloaded and installed the latest version of Arduino IDE, you will need to start the IDE and navigate to the Preferences menu. You can access it from the File menu in Windows or Linux, or the Arduino menu on OS X. ©Adafruit Industries Page 44 of 102...
  • Page 45 Manager uses to build the list of available & installed boards. To find the most up to date list of URLs you can add, you can visit the list of third party board URLs on the Arduino IDE wiki (https://adafru.it/f7U). We will only need to add ©Adafruit Industries Page 45 of 102...
  • Page 46 Once done click OK to save the new preference settings. The next step is to actually install the Board Support Package (BSP). Go to the Tools → Board → Board Manager submenu. A dialog should come up with various BSPs. Search for esp32. ©Adafruit Industries Page 46 of 102...
  • Page 47: Using With Arduino Ide

    ESP32-S3! Using with Arduino IDE Blink Now you can upload your first blink sketch! Plug in the ESP32-S2/S3 board and wait for it to be recognized by the OS (just takes a few seconds). ©Adafruit Industries Page 47 of 102...
  • Page 48: Select Esp32-S2/S3 Board In Arduino Ide

    This bootloader is in ROM, it is 'un-brickable' so you can always use this technique to get into the bootloader. However, after uploading your Arduino code you MUST press reset to start the sketch ©Adafruit Industries Page 48 of 102...
  • Page 49: Load Blink Sketch

    // initialize built in LED pin as an output. pinMode(LED_BUILTIN, OUTPUT); // initialize USB serial converter so we have a port created Serial.begin(); // the loop function runs over and over again forever void loop() { ©Adafruit Industries Page 49 of 102...
  • Page 50 If you ever DON'T see a serial port, or something is not working out with upload you can always manually enter bootloader mode: • Reset board into ROM bootloader with DFU/BOOT0 + Reset buttons ©Adafruit Industries Page 50 of 102...
  • Page 51: Arduino Blink

    BSP. • Get a Data/Sync USB cable for connecting your hardware. A significant amount of problems folks have stem from not having a USB cable with data pins. Yes, ©Adafruit Industries Page 51 of 102...
  • Page 52: Start Up Arduino Ide And Select Board/Port

    In the IDE find the Tools menu. You will use this to select the board. If you switch boards, you must switch the selection! So always double-check before you upload code in a new session. ©Adafruit Industries Page 52 of 102...
  • Page 53: New Blink Sketch

    LED. So the LED could have moved to another pin. It's best to use so you don't get the pin number confused! LED_BUILTIN On the MatrixPortal S3, the Red LED is in fact on pin 13, in case you ever need to know ©Adafruit Industries Page 53 of 102...
  • Page 54: Verify (Compile) Sketch

    It will also highlight the line with an error. For example, here I had the wrong board selected - and the selected board does not have a built in LED! ©Adafruit Industries Page 54 of 102...
  • Page 55: Upload Sketch

    Once the code is verified/compiling cleanly you can upload it to your board. Click the Upload button. Make sure to press the reset button after uploading code from the Arduino IDE to the ESP32-S3. ©Adafruit Industries Page 55 of 102...
  • Page 56 If you're positive the right board is selected, we recommend the next step is to put the board into manual bootloading mode. ©Adafruit Industries Page 56 of 102...
  • Page 57: Native Usb And Manual Bootloading

    OK now you know it's probably time to try manual bootloading. No problem! Here is how you do that for this board: Before you start, make sure your MatrixPortal S3 is plugged into USB port to your computer using a data/sync cable. Charge-only cables will not work! ©Adafruit Industries Page 57 of 102...
  • Page 58 Now you can try uploading again! Did you remember to select the new Port in the Tools menu since the bootloader port has changed? This time, you should have success! ©Adafruit Industries Page 58 of 102...
  • Page 59: Finally, A Blink

    A lot of sensors, displays, and devices can connect over I2C. I2C is a 2-wire 'bus' that allows multiple devices to all connect on one set of pins so it's very convenient for wiring! ©Adafruit Industries Page 59 of 102...
  • Page 60: Common I2C Connectivity Issues

    Are you keeping the total bus length reasonable? I2C was designed for maybe 6" max length. We like to push that with plug-n-play cables, but really please keep them as short as possible! (Only exception is if you're using an active bus extender (http://adafru.it/4756)). ©Adafruit Industries Page 60 of 102...
  • Page 61: Perform An I2C Scan

    Good news: it is very easy to do it. Go to the Arduino Library Manager. Search for TestBed and install the Adafruit TestBed library Now open up the I2C Scan example ©Adafruit Industries Page 61 of 102...
  • Page 62 OUTPUT); digitalWrite(TFT_I2C_POWER, HIGH); #endif #if defined(ADAFRUIT_FEATHER_ESP32_V2) // Turn on the I2C power by pulling pin HIGH. pinMode(NEOPIXEL_I2C_POWER, OUTPUT); digitalWrite(NEOPIXEL_I2C_POWER, HIGH); #endif void loop() { Serial.println(""); Serial.println(""); Serial.print("Default port (Wire) "); TB.theWire = DEFAULT_I2C_PORT; TB.printI2CBusScan(); ©Adafruit Industries Page 62 of 102...
  • Page 63: Wiring The Mcp9808

    Compared with the chunkier JST PH these are 1mm pitch instead of 2mm, but... https://www.adafruit.com/product/4399 Wiring the MCP9808 The MCP9808 comes with a STEMMA QT connector, which makes wiring it up quite simple and solder-free. ©Adafruit Industries Page 63 of 102...
  • Page 64: Wifi Test

    You can find a wide range of examples in the File->Examples->Examples for Adafruit Metro ESP32-S2 subheading (the name of the board may vary so it could be "Examples for Adafruit Feather ESP32 V2" etc) ©Adafruit Industries Page 64 of 102...
  • Page 65 For ESP32-S2, -S3 and -C3, don't forget you have to click Reset after uploading through the ROM bootloader. Then select the new USB Serial port created by the ESP32. It will take a few seconds for the board to complete the scan. ©Adafruit Industries Page 65 of 102...
  • Page 66: Wifi Connection Test

    WiFi Connection Test Now that you can scan networks around you, its time to connect to the Internet! Copy the example below and paste it into the Arduino IDE: // SPDX-FileCopyrightText: 2020 Brent Rubell for Adafruit Industries // SPDX-License-Identifier: MIT Web client This sketch connects to a website (wifitest.adafruit.com/testwifi/index.html)
  • Page 67 // from the server, read them and print them: while (client.available()) { char c = client.read(); Serial.write(c); // if the server's disconnected, stop the client: if (!client.connected()) { Serial.println(); Serial.println("disconnecting from server."); client.stop(); // do nothing forevermore: while (true) { delay(100); ©Adafruit Industries Page 67 of 102...
  • Page 68 WiFi SSID and password before uploading this to your board. After you've set it correctly, upload and check the serial monitor. You should see the following. If not, go back, check wiring, power and your SSID/password ©Adafruit Industries Page 68 of 102...
  • Page 69: Secure Connection Example

    WiFi connection to connect to the Twitter API. Copy and paste it into the Arduino IDE: // SPDX-FileCopyrightText: 2015 Arturo Guadalupi // SPDX-FileCopyrightText: 2020 Brent Rubell for Adafruit Industries // SPDX-License-Identifier: MIT This example creates a client object that connects and transfers data using always SSL.
  • Page 70 // if there are incoming bytes available // from the server, read them and print them: while (client.available()) { char c = client.read(); Serial.write(c); bytes++; // if the server's disconnected, stop the client: if (!client.connected()) { Serial.println(); Serial.println("disconnecting from server."); ©Adafruit Industries Page 70 of 102...
  • Page 71 Serial.print("signal strength (RSSI):"); Serial.print(rssi); Serial.println(" dBm"); As before, update the ssid and password first, then upload the example to your board. Note we use instead of WiFiClientSecure client WiFiClient client; require a SSL connection!  ©Adafruit Industries Page 71 of 102...
  • Page 72: Usage With Adafruit Io

    In the Arduino IDE, navigate to Sketch -> Include Library->Manage Libraries... Enter Adafruit IO Arduino into the search box, and click Install on the Adafruit IO Arduino library option to install version 4.0.0 or higher. When asked to install dependencies, click Install all. ©Adafruit Industries Page 72 of 102...
  • Page 73: Adafruit Io Setup

    If you do not already have an Adafruit IO account, create one now (https://adafru.it/ fH9). Next, navigate to the Adafruit IO Dashboards page. We'll create a dashboard to visualize and interact with the data being sent between your ESP32-S2/S3 board and Adafruit IO.  ©Adafruit Industries Page 73 of 102...
  • Page 74 Click the link to be brought to your new dashboard. We'll want to turn the board's LED on or off from Adafruit IO. To do this, we'll need to add a toggle button to our dashboard. ©Adafruit Industries Page 74 of 102...
  • Page 75 In the dashboard settings dropdown, click Create New Block. Select the toggle block. Under My Feeds, enter led as a feed name. Click Create. Choose the led feed to connect it to the toggle block. Click Next step. ©Adafruit Industries Page 75 of 102...
  • Page 76 Next up, we'll want to display button press data from your board on Adafruit IO. To do this, we'll add a gauge block to the Adafruit IO dashboard. A gauge is a read only block type that shows a fixed range of values. ©Adafruit Industries Page 76 of 102...
  • Page 77 In the dashboard settings dropdown, click Create New Block. Select the gauge block. Under My Feeds, enter button as a feed name. Click Create. Choose the button feed to connect it to the toggle block. Click Next step. ©Adafruit Industries Page 77 of 102...
  • Page 78: Code Usage

    Before uploading this code to the ESP32-S2/S3, you'll need to add your network and Adafruit IO credentials. Click on the config.h tab in the sketch.  Obtain your Adafruit IO Credentials from navigating to io.adafruit.com and clicking My Key (https://adafru.it/fsU). Copy and paste these credentials next to IO_USERNAME IO_KEY ©Adafruit Industries Page 78 of 102...
  • Page 79 You should see the gauge response to button press and the board's LED light up in response to the Toggle Switch block. You should also see the ESP32-S2/S3's LED turning on and off when the LED is toggled: ©Adafruit Industries Page 79 of 102...
  • Page 80: Arduino Sand Demo

    = {42, 41, 40, 38, 39, 37}; uint8_t addrPins[] = {45, 36, 48, 35, 21}; uint8_t clockPin = 2; uint8_t latchPin = 47; uint8_t oePin = 14; #endif #if HEIGHT == 16 #define NUM_ADDR_PINS 3 ©Adafruit Industries Page 80 of 102...
  • Page 81 // Set up initial sand coordinates, in 8x8 blocks int n = 0; for(int i=0; i<N_COLORS; i++) { int xx = i * WIDTH / N_COLORS; int yy = HEIGHT - BOX_HEIGHT; for(int y=0; y<BOX_HEIGHT; y++) { ©Adafruit Industries Page 81 of 102...
  • Page 82 = event.acceleration.z * 1000; // Run one frame of the simulation sand.iterate(xx, yy, zz); //sand.iterate(-accel.y, accel.x, accel.z); // Update pixel data in LED driver dimension_t x, y; matrix.fillScreen(0x0); for(int i=0; i<N_GRAINS ; i++) { sand.getPosition(i, &x, &y); ©Adafruit Industries Page 82 of 102...
  • Page 83 You may need to press the Reset button to reset the microcontroller. You should see a series of colored rectangles along the bottom. Go ahead and start moving the matrix around! If you have a 3D Printer, be sure to check out the Matrix Portal Sand Handles (https:// adafru.it/NDg) guide. ©Adafruit Industries Page 83 of 102...
  • Page 84: Protomatter Library

    WiFi coprocessor directly. If your project uses Arduino, you will likely need to change pin numbers as some of the pin names have changed. ©Adafruit Industries Page 84 of 102...
  • Page 85: Install Uf2 Bootloader

    You're probably used to seeing the MATRXS3BOOT drive when loading CircuitPython or Arduino. The MATRXS3BOOT drive is part of the UF2 bootloader, and allows you to drag and drop files, such as CircuitPython. However, on the ESP32-S3 the UF2 bootloader can become damaged. ©Adafruit Industries Page 85 of 102...
  • Page 86: Factory Reset Firmware Uf2

    There are two ways to do a factory reset and bootloader repair. The first is using WebSerial through a Chromium-based browser, and the second is using esptool command line. We highly recommend using WebSerial through Chrome/Chromium. ©Adafruit Industries Page 86 of 102...
  • Page 87 Now that you've downloaded the .bin file and entered the bootloader, you're ready to continue with the factory reset and bootloader repair process. The next two sections walk you through using WebSerial and esptool ©Adafruit Industries Page 87 of 102...
  • Page 88 You should have plugged in only the ESP32-S2/S3 that you intend to flash. That way there's no confusion in picking the proper port when it's time! In the Chrome browser visit https:// adafruit.github.io/ Adafruit_WebSerial_ESPTool/ (https:// adafru.it/PMB). You should see something like the image shown. ©Adafruit Industries Page 88 of 102...
  • Page 89 Erase the Contents This will erase everything on your board! If you have access, and wish to keep any code, now is the time to ensure you've backed up everything. ©Adafruit Industries Page 89 of 102...
  • Page 90 Then, select the *-factory-reset.bin file you downloaded in Step 1 that matches your board. Verify that the Offset box next to the file location you used is (0x) 0. ©Adafruit Industries Page 90 of 102...
  • Page 91 ESP chip. Install ESPTool.py You will need to use the command line / Terminal to install and run esptool You will also need to have pip and Python installed (any version!). ©Adafruit Industries Page 91 of 102...
  • Page 92: Test The Installation

    Run the following command, replacing the identifier after with the --port COMxx you found above. dev/cu.usbmodemxx /dev/ttySxx esptool.py --port COM88 chip_id You should get a notice that it connected over that port and found an ESP32-S2/S3. ©Adafruit Industries Page 92 of 102...
  • Page 93 There might be a bit of a 'wait' when programming, where it doesn't seem like it's working. Give it a minute, it has to erase the old flash code which can cause it to seem like it's not running. You'll finally get an output like this: ©Adafruit Industries Page 93 of 102...
  • Page 94: Reset The Board

    We suggest updating to Chrome 89 or newer, as Web Serial is enabled by default. If you must continue using an older version of Chrome, follow these steps to enable Web Serial. ©Adafruit Industries Page 94 of 102...
  • Page 95 After you have downloaded and installed the latest version of Arduino IDE, you will need to start the IDE and navigate to the Preferences menu. You can access it from the File > Preferences menu in Windows or Linux, or the Arduino > Preferences menu on OS X. ©Adafruit Industries Page 95 of 102...
  • Page 96 In the Tools > Boards menu you should see the ESP32 Arduino menu. In the expanded menu, it should contain the ESP32 boards along with all the latest ESP32- S2 boards. Now that your IDE is setup, you can continue on to loading the sketch. ©Adafruit Industries Page 96 of 102...
  • Page 97: Usb Power

    “ghosting” or “sparkling” artifacts. This is not a software bug. Please do not report it as a software bug. ©Adafruit Industries Page 97 of 102...
  • Page 98 More current (higher amperage) is always nice, but that’s not the whole story. As explained above, the output filtering (or lack of) can affect the steadiness of the output voltage and current. ©Adafruit Industries Page 98 of 102...
  • Page 99 One might start with a 1000 µF cap, and work up or down from there. If something seems promising but imperfect, two or more with different values might be needed in parallel (e.g. 100 µF + 1000 µF). ©Adafruit Industries Page 99 of 102...
  • Page 100 • 3D models on GitHub (https://adafru.it/18QE) • MatrixPortal S3 Fritzing object in the Adafruit Fritzing Library (https://adafru.it/ 18Ra) Simpletest UF2 for MatrixPortal S3 + 64x32 Matrix https://adafru.it/18Rb Simpletest UF2 for MatrixPortal S3 + 64x64 Matrix https://adafru.it/18Rc ©Adafruit Industries Page 100 of 102...
  • Page 101 Schematic Fab Print ©Adafruit Industries Page 101 of 102...
  • Page 102 3D Model ©Adafruit Industries Page 102 of 102...
  • Page 103 Mouser Electronics Authorized Distributor Click to View Pricing, Inventory, Delivery & Lifecycle Information: Adafruit 5778...

Table of Contents