

The Adafruit Matrix Portal S3 (Manufacturer Part ID: 5778) is a versatile microcontroller board designed specifically for driving LED matrices and displays. It features a powerful ESP32-S3 processor with built-in Wi-Fi and Bluetooth connectivity, making it ideal for creating interactive, networked visual projects. The board supports CircuitPython and Arduino, providing flexibility for both beginners and advanced users.








| Specification | Details |
|---|---|
| Processor | ESP32-S3 dual-core processor with 240 MHz clock speed |
| Flash Memory | 8 MB QSPI Flash |
| RAM | 2 MB PSRAM |
| Connectivity | Wi-Fi (802.11 b/g/n) and Bluetooth 5.0 |
| Power Supply | 5V via USB-C or external power supply |
| USB Interface | USB-C for programming, power, and data transfer |
| LED Matrix Compatibility | HUB75-style RGB LED matrices (up to 64x64 pixels) |
| Programming Support | CircuitPython, Arduino, and ESP-IDF |
| Dimensions | 3.1" x 1.2" (78.7 mm x 30.5 mm) |
The Adafruit Matrix Portal S3 features a variety of pins for connecting to LED matrices, sensors, and other peripherals. Below is the pinout description:
| Pin Name | Type | Description |
|---|---|---|
| USB-C | Power/Data | Provides 5V power and data communication for programming and operation. |
| HUB75 Data | Output | Connects to HUB75-style RGB LED matrices for driving displays. |
| GPIO Pins | Input/Output | General-purpose pins for connecting sensors, buttons, or other peripherals. |
| I2C (SDA/SCL) | Communication | I2C interface for connecting compatible devices like sensors or displays. |
| SPI | Communication | SPI interface for high-speed communication with peripherals. |
| 5V/GND | Power | Provides power and ground connections for external devices. |
| Reset Button | Input | Resets the board to restart the program or enter bootloader mode. |
Below is an example of how to use the Adafruit Matrix Portal S3 with an LED matrix to display a simple scrolling text message:
#include <Adafruit_GFX.h> // Core graphics library
#include <RGBmatrixPanel.h> // Library for HUB75 LED matrices
// Define matrix size (e.g., 32x32 pixels)
#define MATRIX_WIDTH 32
#define MATRIX_HEIGHT 32
// Create an RGB matrix object
RGBmatrixPanel matrix(A, B, C, D, CLK, LAT, OE, false, MATRIX_WIDTH);
void setup() {
matrix.begin(); // Initialize the matrix
matrix.setTextWrap(false); // Disable text wrapping
matrix.setTextSize(1); // Set text size
matrix.setTextColor(matrix.Color333(7, 0, 0)); // Set text color (red)
}
void loop() {
static int x = MATRIX_WIDTH; // Start text off-screen
matrix.fillScreen(0); // Clear the screen
matrix.setCursor(x, 0); // Set text position
matrix.print("Hello!"); // Display text
matrix.show(); // Refresh the display
x--; // Move text left
if (x < -50) x = MATRIX_WIDTH; // Reset position when off-screen
delay(50); // Delay for smooth scrolling
}
Below is an example of how to display a simple message on an LED matrix using CircuitPython:
import board
import displayio
from adafruit_matrixportal.matrix import Matrix
matrix = Matrix(width=64, height=32, bit_depth=6) display = matrix.display
group = displayio.Group()
from adafruit_display_text import label from adafruit_bitmap_font import bitmap_font
font = bitmap_font.load_font("/fonts/Arial-16.bdf") # Load a font file text = label.Label(font, text="Hello, World!", color=0xFF0000) # Red text text.x = 10 # X position text.y = 15 # Y position group.append(text)
display.show(group)
while True: pass # Keep the program running
LED Matrix Not Displaying Anything:
Wi-Fi or Bluetooth Not Working:
Board Not Recognized by Computer:
Flickering or Dim LED Matrix:
Can I use this board with other types of LED displays? The Matrix Portal S3 is specifically designed for HUB75-style RGB LED matrices. Other types of displays may require additional hardware or libraries.
What is the maximum size of the LED matrix I can use? The board supports matrices up to 64x64 pixels. Larger matrices may require additional power or processing considerations.
Can I power the board with a battery? Yes, you can use a 5V battery pack with a USB-C output, but ensure it provides sufficient current for both the board and the LED matrix.
Is CircuitPython pre-installed on the board? Yes, the board comes with CircuitPython pre-installed, but you can reflash it with Arduino or other firmware if needed.