An RGB LED matrix looks simple from across the room. Up close, it is a wall of individual red, green, and blue lights that must be refreshed quickly enough for your eyes to see a stable image. Add live weather, transit times, sports scores, or messages from the Internet and the small sign becomes a demanding embedded project.
Adafruit's MatrixPortal S3, announced in July 2023, packaged that job around one ESP32-S3 microcontroller. It replaced the original MatrixPortal's two-chip arrangement, which used a SAMD51 microcontroller alongside an Espressif Wi-Fi coprocessor, with a single chip capable of handling networking, application code, and matrix refresh work.
That consolidation made the board easier to understand and gave it more memory for the graphics and data that Internet-connected displays tend to accumulate.
What is MatrixPortal S3?
MatrixPortal S3 is a controller designed to plug into HUB75-style RGB LED matrix panels. HUB75 is the commonly used connector and signaling arrangement found on many modular indoor LED panels. The name does not describe a networking standard. It describes the physical and electrical interface used to select rows and send pixel color data.
Driving one of these panels is more involved than controlling an ordinary strip of addressable LEDs. A strip usually accepts a stream of pixel colors and handles the individual lights internally. A HUB75 matrix expects the controller to select groups of rows, shift color data into the panel, latch that data, and repeat the process continuously.
If the refresh pauses while the program downloads a web page, the display may flicker or go dark. The controller therefore needs enough performance to keep servicing the panel while the rest of the application does useful work.
The ESP32-S3 is well suited to this split workload. It has two processor cores, Wi-Fi, native USB, and hardware intended for moving data to parallel outputs. MatrixPortal S3 pairs it with 8 MB of flash storage and 2 MB of PSRAM. Flash holds firmware and files when power is off. PSRAM is external working memory used while the program runs.
Why replace the two-chip design?
The original MatrixPortal separated responsibilities. A SAMD51 ran the user's code and handled the display while an ESP-family chip managed Wi-Fi. That approach made sense when a single affordable microcontroller could not comfortably do both jobs.
It also created a boundary inside the product. The two processors needed firmware and a communication path between them. Features available on one side were not automatically available on the other. Supply shortages later made the SAMD51 harder to obtain, but the redesign was more than a substitution forced by availability.
ESP32-S3 had reached the point where one device could run CircuitPython or Arduino code, connect to a network, and feed the matrix without bit-banging every signal in software. Bit-banging means manually changing pins in carefully timed software instead of using dedicated hardware. It works, but it consumes processor attention and is easier to disrupt.
One processor also simplifies updates and troubleshooting. There is one primary firmware environment, one USB connection, and one memory map for the developer to consider.
What is on the board?
MatrixPortal S3 is built for a particular job rather than general breadboard development. Its 2x8 IDC connector attaches to the ribbon cable supplied with many matrices. IDC, or insulation-displacement connector, is the keyed plug commonly used with flat ribbon cable. The board also provides matrix power connections, buttons, a light sensor input, and STEMMA QT connectivity for I2C sensors.
I2C, pronounced “I squared C,” is a two-wire bus used to connect sensors and other peripherals. STEMMA QT is Adafruit's small four-pin connector implementation, electrically compatible with SparkFun Qwiic. It lets a maker add a temperature sensor or real-time clock without filling the project with loose jumper wires.
Native USB gives the ESP32-S3 a direct connection to the computer. Depending on firmware, it can appear as a serial device, storage device, keyboard, mouse, or MIDI controller. MIDI is a standard for sending musical note and control messages between electronic instruments and software.
The redesign did lose the original board's analog output DAC. A DAC, or digital-to-analog converter, turns a digital number into a corresponding voltage. Adafruit recommends digital I2S audio hardware where sound output is needed. I2S is a digital audio connection used between processors, amplifiers, and audio converters.
What can you build with it?
The obvious project is a network dashboard. MatrixPortal S3 can retrieve a value over Wi-Fi, turn that value into text or graphics, and keep the matrix refreshed. Weather displays, countdown clocks, room-status signs, message boards, and simple pixel art all fit naturally.
The additional memory matters when projects use fonts, images, animated GIFs, or structured web data. JSON, or JavaScript Object Notation, is a text format commonly returned by web services. Parsing a large JSON response needs working memory even if the display only shows one number from it.
CircuitPython makes the edit-and-test loop approachable. The board appears as a drive, and saving a Python file restarts the application. Arduino remains available for developers who want C++ libraries, tighter timing control, or a workflow they already know.
This is not a complete sign in one box. You still need a compatible matrix and an adequate power supply. Large LED panels can draw substantial current, especially when many pixels show bright white. The controller's USB connection is not the correct way to power an entire panel. Follow the panel and MatrixPortal power instructions, use suitably sized wiring, and never assume that a random supply is safe because its plug fits.
What should a first-time buyer check?
Start with the panel interface and dimensions. MatrixPortal targets HUB75 matrices, not addressable LED strips and not every display sold as an “LED panel.” Check Adafruit's compatibility information for the exact scan pattern and resolution.
Next, size the power supply for the matrix. The maximum current depends on panel size, brightness, scan design, and content. A supply with inadequate current capacity can cause resets, color errors, or overheated wiring.
Finally, remember that Wi-Fi projects depend on the service providing their data. An API may require an account or key, limit how often it can be queried, or change its response format. Store credentials outside the main program when possible, and avoid requesting new data on every display refresh. The matrix may refresh hundreds of times while the underlying weather value only needs to change every few minutes.
Why MatrixPortal S3 matters
MatrixPortal S3 shows what happens when a newer microcontroller absorbs work that previously required a small team of chips. The product is still purpose-built and approachable, but its internal architecture is cleaner. More flash holds assets, PSRAM gives graphics and network data breathing room, and the ESP32-S3's peripherals keep the panel moving.
For makers, the result is not simply a faster MatrixPortal. It is a focused Internet display platform with fewer internal seams. You can concentrate on what the sign should say and how it should look, while the board handles the repetitive electrical work that makes thousands of LEDs appear to shine at once.
I'd size the power supply for the panel before anything else. The controller is the easy part; a matrix full of bright pixels is what draws the current.
Sources and image credits
- MatrixPortal S3 launch coverage, Adafruit, July 18, 2023.
- MatrixPortal S3 guide, Adafruit Learning System.
- Product photo: Adafruit Matrix Portal S3, Adafruit Industries.
- Square and vertical crops are edited from the same source image.
