So you may have heard of the Adafruit MatrixPortal M4 and you want to get started with building a project using CircuitPython. The MatrixPortal library makes it really easy to get started with creating a new project, using this board, but it also supports a variety of other hardware to make creating project for an RGB Matrix very easy.
This library is built on top of the rgbmatrix and framebufferio modules which are included as part of CircuitPython on many of our boards. It also makes use of the ESP32SPI library, along with some lower-level dependencies, to communicate with server over the internet.
One of the big benefits of using this library is that it handles a lot of detection and initialization of RGB Matrices and drivers. For instance, if you had a Metro M4 Airlift Lite and an RGB Matrix Shield, you could still get the full benefit of the library. If you had a Feather M4 Express with an RGB Matrix FeatherWing for M0/M4 feathers, you could still get the benefit of RGB Matrix automatically initializing. It also supports the RGB Matrix FeatherWing for nRF52840 feathers when used in conjunction with an nRF52840 feather.
This library also supports a variety of different RGB Matrix Panel sizes. The number of address line pins used are based on the height of the display. It was originally written for the 64x32 matrix, but has also been tested on the 64x64 matrix, 16x32 matrix and 32x32 matrix as well.
For this guide we're going to cover using a MatrixPortal M4 along with a 64x32 matrix as those are both very popular options and are feature complete. If your hardware setup varies, you may need to make some adjustments.