The ExpressivePixels open-source firmware can run on a variety of different types of hardware. We've collaborated with Microsoft to create a platform implementation for the Adafruit Matrix Portal.

The firmware on this page provides the underlying C code for driving RGB matrixes using the Adafruit_Protomatter library and the ExpressivePixels firmware for communicating with the ExpressivePixels Windows app.

Install Expressive Pixels

Follow the steps below to install the Expressive Pixels firmware on your Matrix Portal.

Click the link below to download the UF2 that matches your RGB matrix resolution.

Download and save it to your desktop (or wherever is handy).

Plug your Matrix Portal M4 into your computer using a known-good USB cable.

A lot of people end up using charge-only USB cables and it is very frustrating! So make sure you have a USB cable you know is good for data sync.

Double-click the Reset button (indicated by the green arrow) on your board, and you will see the NeoPixel RGB LED (indicated by the magenta arrow) turn green. If it turns red, check the USB cable, try another USB port, etc.

If double-clicking doesn't work the first time, try again. Sometimes it can take a few tries to get the rhythm right!

You will see a new disk drive appear called MATRIXBOOT in your computer file explorer/finder.

Drag the ExpressivePixels-MatrixPortal-etc.uf2 file to the MATRIXBOOT drive.

The MATRIXBOOT drive will disappear and the NeoPixel on the back of your Matrix Portal should glow white while the red LED flashes.

That's it, you're done!

The following step is optional and for advanced users.

(Optional) Change the Display Matrix Size

If you're using the Matrix Portal with a different sized RGB Matrix, you can edit the firmware within the Arduino IDE to specify a new resolution.

To start, you'll need the latest version of the Arduino IDE installed on your computer.

Follow the links on the ExpressivePixels Wiki Page for the Matrix Portal M4 to install the library dependencies to compile the firmware.

  • Note: Some of these libraries such as LittleFS and Express Pixels Arduino are not available from the Arduino library manager. You will need to manually add these libraries to the Arduino IDE's library directory.

Next, download the ExpressivePixels firmware to your computer and save it to your desktop. 

Open the Arduino IDE. Within Arduino, open the ExpressivePixels.ino sketch.

This sketch contains a file named config.h where you can edit the configuration for your matrix.

In the Arduino IDE menubar, click the config.h tab.

Scroll down until you see the following code:

The Matrix Portal is defined as a DISPLAY_MATRIX64x32 in the code. Change DISPLAYARRAY_WIDTH to reflect your RGB LED Matrixes' width and DISPLAYARRAY_HEIGHT to reflect the RGB LED Matrixes' height.

Next, verify that you are using the TinyUSB stack.

Under Tools > USB Stack, select TinyUSB.

Then, upload the firmware to your Matrix Portal.

This guide was first published on Dec 11, 2020. It was last updated on Jun 10, 2024.

This page (Install Expressive Pixels Firmware) was last updated on Mar 08, 2024.

Text editor powered by tinymce.