# Stream Deck controlled RGB Message Panel using Adafruit IO

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/079/740/medium800thumb/led_matrices_main_photo.jpg?1566420542)

If you've ever done any live video streaming before, you may have heard of the [Stream Deck](https://www.elgato.com/en/gaming/stream-deck). It allows you to customize the live streaming experience for your viewers such as showing the number of viewers, running custom keyboard commands, or showing animations. It allows you to customize the buttons too with whatever graphics you want.

But did you know there's other non-streaming uses for the Stream Deck such as controlling lights in a house, open applications, or open web pages in a browser window? You can even write custom plugins to extend the capabilities.

This project uses a custom Stream Deck plugin to communicate directly with the Adafruit IO REST API. It works by posting a specific value to a feed and each button will post a different value to the feed allowing you to easily change messages.

The message panel itself is driven by the Metro M4 Express Airlift Lite. It will connect to local WiFi and read the value of the message straight from your feed. It even allows some basic formatting such as color and text size. The feed values are limited to 50 characters, so the more formatting you apply, the less text you can show. Fortunately, the message panel can hold a maximum of 40 characters.

## Parts
### Adafruit Metro M4 Express AirLift (WiFi) - Lite

[Adafruit Metro M4 Express AirLift (WiFi) - Lite](https://www.adafruit.com/product/4000)
Give your next project a lift with _AirLift_ - our witty name for the ESP32 co-processor that graces this Metro M4. You already know about the&nbsp; **Adafruit Metro M4** &nbsp;featuring the&nbsp; **Microchip ATSAMD51** , with it's 120MHz Cortex M4 with...

In Stock
[Buy Now](https://www.adafruit.com/product/4000)
[Related Guides to the Product](https://learn.adafruit.com/products/4000/guides)
![Adafruit Metro M4 Airlift Lite dev board with SAMD51 an ESP32 Wifi Co-processor.](https://cdn-shop.adafruit.com/640x480/4000-08.jpg)

On top of the Metro M4 Express Airlift is an [Adafruit RGB Matrix Shield](https://www.adafruit.com/product/2601).

### Adafruit RGB Matrix Shield for Arduino

[Adafruit RGB Matrix Shield for Arduino](https://www.adafruit.com/product/2601)
Our RGB matrices are dazzling, with their hundreds or even _thousands_ of individual RGB LEDs. Compared to NeoPixels, they've got great density, power usage and the price-per-LED can't be beat. But...(isn't there always a _but_?) You need to use our special library to...

In Stock
[Buy Now](https://www.adafruit.com/product/2601)
[Related Guides to the Product](https://learn.adafruit.com/products/2601/guides)
![Adafruit RGB Matrix Shield for Arduino connected to a LED Matrix that reads "Adafruit Industries LED MATIX! 32x64 *RGB*"](https://cdn-shop.adafruit.com/640x480/2601-02.jpg)

For this project, the 64x32 RGB Matrix was used and it is available in 4 different pitches. The smaller the pitch is, the smaller the LEDs are, but also the closer together they are.

### 64x32 RGB LED Matrix - 4mm pitch

[64x32 RGB LED Matrix - 4mm pitch](https://www.adafruit.com/product/2278)
Bring a little bit of Times Square into your home with this sweet 64 x 32 square RGB LED matrix panel. These panels are normally used to make video walls, here in New York we see them on the sides of busses and bus stops, to display animations or short video clips. We thought they looked...

In Stock
[Buy Now](https://www.adafruit.com/product/2278)
[Related Guides to the Product](https://learn.adafruit.com/products/2278/guides)
![Two white hands hold out an assembled and powered on 64x32 RGB LED Matrix Panel - 4mm pitch. The matrix displays "Adafruit Industries LED MATRIX! 32x64 *RGB*"](https://cdn-shop.adafruit.com/640x480/2278-00.jpg)

You will also need a 5V power adapter that can drive a lot of current. We stock a nice 4 Amp model which was used for this project.

### 5V 4A (4000mA) switching power supply - UL Listed

[5V 4A (4000mA) switching power supply - UL Listed](https://www.adafruit.com/product/1466)
Need a lot of 5V power? This switching supply gives a clean regulated 5V output at up to **4 Amps** (4000mA). 110 or 240 input, so it works in any country. The plugs are "US 2-prong" style so you may need a plug adapter, but you can pick one up at any hardware store for $1 or so,...

Out of Stock
[Buy Now](https://www.adafruit.com/product/1466)
[Related Guides to the Product](https://learn.adafruit.com/products/1466/guides)
![Angled shot of 5V 4A switching power supply brick with power cable.](https://cdn-shop.adafruit.com/640x480/1466-10.jpg)

If you plan on 3D printing the Backing, you will also need these Heat-set Inserts.

### Brass Heat-Set Inserts for Plastic - M3 x 3mm - 50 pack

[Brass Heat-Set Inserts for Plastic - M3 x 3mm - 50 pack](https://www.adafruit.com/product/4256)
Wanna improve the connection strength between your project's 3D-printed parts, and also have nice clean surfaces? Instead of gluing bits together, or screwing plastic screws directly into your 3D prints, use strong and reusable machine screws and heat-set inserts. Heat set inserts are only...

In Stock
[Buy Now](https://www.adafruit.com/product/4256)
[Related Guides to the Product](https://learn.adafruit.com/products/4256/guides)
![pile of 50 Brass Heat-Set Inserts for Plastic - M3 x 3mm.](https://cdn-shop.adafruit.com/640x480/4256-03.jpg)

You also may want this tool for the heat-set inserts.

### Part: M3x6mm Screw
quantity: 4
McMaster-Carr M3x6mm Socket head screw for mounting Metro M4 Airlift
[M3x6mm Screw](https://www.mcmaster.com/95263a110)

M3x8mm should also work fine if that's what you have available.

The only other hardware you will need are some nice long wood screws (about 1.5" or longer) for mounting in the wall. It is very important that these are steel screws because the magnetic screws will need to stick to them.

# Stream Deck controlled RGB Message Panel using Adafruit IO

## Stream Deck Plugin

Stream Deck allows custom plugins to be written in several different languages. However, writing the plugin in JavaScript has several advantages for communicating with Adafruit IO. First JavaScript is a platform independent language, so the plugin should work on both Windows and MacOS systems. Second, because we are communicating with a website, JavaScript is a natural choice and makes this very easy. And finally, there are plenty of examples available in JavaScript.

In the initial prototyping phase of creating the Message Panel, I tried using an existing plugin that allows communicating with IFTTT webhooks, which can perform an action on Adafruit IO, but there were several problems with this. It was pretty slow and would sometimes take a few seconds to update, messages were difficult to change and required drilling down into the IFTTT interface, and also the IFTTT was stripping certain characters away.

The Stream Deck plugin communicates directly through the Adafruit IO REST API and overcomes all of those limitations. REST stands for **REpresentational State Transfer** and works by making&nbsp; **GET** , **POST** , **PUT** , **PATCH** , and **DELETE** calls, although PATCH isn't as common as the other four. Each of these calls has a different purpose. For placing a value into an Adafruit IO feed, we only need the **POST** &nbsp;call. To learn more about REST, be sure to check out our&nbsp;[All the Internet of Things - Episode Two: Protocols](https://learn.adafruit.com/alltheiot-protocols/take-a-rest)&nbsp;guide.

If you would like an excellent overview of Adafruit IO, be sure to check out our [Welcome to Adafruit IO](https://learn.adafruit.com/welcome-to-adafruit-io/) guide. If you would like to control the Message Panel from some other device, it is beyond the scope of the guide, but it would need to be something that is able to send values to Adafruit IO.

## Installing the Plugin

First, make sure you are running the latest Stream Deck application for your computer. Next you can download it directly from this guide.

[Download Adafruit IO Stream Deck Plugin](https://github.com/adafruit/Adafruit_Learning_System_Guides/raw/main/Stream_Deck_Message_Panel/Stream%20Deck%20Plugin/com.adafruit.io.streamDeckPlugin)
Once you have downloaded it, open it up and when it asks you if you would like to install it, click **yes**. Then either open up the Stream Deck application or if it is already running, choose the&nbsp; **Configure Stream Deck** option from your menu bar. The new plugin will appear on the right-hand side under Adafruit IO and be called Publish to Feed.&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/079/728/medium800/led_matrices_plugin-publish.png?1566414558)

## Configuring the Plugin

Go ahead and drag Publish to Feed over to the desired spot on your Stream Deck and it will be automatically selected. After that, there are four required pieces of information.

First you will need your Adafruit IO Username and Active Key. You can find these by logging into Adafruit IO at&nbsp;[https://io.adafruit.com](https://io.adafruit.com)&nbsp;and selecting the **AIO Key** link on the right side of the screen.

![](https://cdn-learn.adafruit.com/assets/assets/000/079/519/medium800/circuitpython_aio-key.png?1565974295)

The other two pieces of information we need are the **Feed Key** and the **Value** that we want to publish. The feed key will need to be the **Key** of an existing feed. For more information on creating a feed, you can view our [Adafruit IO Basics: Feeds](https://learn.adafruit.com/adafruit-io-basics-feeds) guide page called&nbsp;[Creating a Feed](https://learn.adafruit.com/adafruit-io-basics-feeds/creating-a-feed). Once that is created, you can look at your list of feeds by selecting **Feeds** &nbsp; **→**  **View All**. Type in the Feed Key, which is the value in the column labeled **Key**.

![](https://cdn-learn.adafruit.com/assets/assets/000/079/729/medium800/led_matrices_plugin-values.png?1566414606)

## Formatting Messages

By default, the color is white and If you would like to format a message, there are two different options available. Text will always be automatically centered both horizontally and vertically.

### Color

First you can change the color by supplying either a value between 0-23 that corresponds to a rainbow color on the color wheel or a number above 23 for white. The number should be placed inside of a **matched set of braces** such as `{4}` to select color 4 on the color wheel. You will need to experiment to see which colors look best for your application. It will continue printing in that color until you change it again.

### Text Size

You can also set the text size in a similar way, but it should placed inside of a **matched set of angled brackets** such as `<2>` for size 2. Just like with color, it will continue printing in that color until you change it again.

## How it Works

Besides the usual store/retrieve values code that is part of all Stream Deck plugins, it works by simply making an XMLHttpRequest post call to the Adafruit IO REST API. The IO Key is included in one of the header parameters, the username and feed key are part of URL, and the message is the main piece of data. Here's the relevant JavaScript code from the plugin:

```
const request = new XMLHttpRequest();
var datum = {
  "value": feedvalue
};

request.open("POST", 'https://io.adafruit.com/api/v2/' + username + '/feeds/' + feedkey + '/data');
request.setRequestHeader("X-AIO-Key", iokey);
request.setRequestHeader("Content-Type", "application/json");
request.send(JSON.stringify(datum));
```

You can read more about the Adafruit IO REST API in our handy [reference guide](https://io.adafruit.com/api/docs/).

# Stream Deck controlled RGB Message Panel using Adafruit IO

## Adafruit IO REST API

# Stream Deck controlled RGB Message Panel using Adafruit IO

## Arduino Code

The Arduino code is responsible for connecting to your local WiFi, connecting to the Adafruit IO service, retrieving the value stored in the feed, decoding the formatting and displaying the message on the RGB Panel. However, in order to use it, you will need to supply several parameters in the configuration.

## Install Arduino Libraries

In order for Metro M4 Express Airlift to work, you will need to install several Arduino libraries. First, to use a variant of the Arduino WiFiNINA library, which is amazing and written by the Arduino team! Adafruit made a fork that you should install to get the functionality for the AirLift.

Click here to download the library:

&nbsp;

[Download Adafruit's version of WiFiNINA](https://github.com/adafruit/WiFiNINA/archive/master.zip)
Within the Arduino IDE, select **Install library from ZIP...**

![](https://cdn-learn.adafruit.com/assets/assets/000/079/625/medium800/led_matrices_adafruit_products_image.png?1566260312)

And select the zip you just downloaded.

_Six_&nbsp;more libraries need to be installed&nbsp;using the&nbsp; **Arduino Library Manager** …this is the preferred and modern way. From the Arduino “Sketch” menu, select “Include Library” then “Manage Libraries…”

![](https://cdn-learn.adafruit.com/assets/assets/000/079/623/medium800/led_matrices_adafruit_products_arduino_compatibles_manage-libraries.png?1566259368)

Type “gfx” in the search field to quickly find the first library —&nbsp; **Adafruit\_GFX** :

![](https://cdn-learn.adafruit.com/assets/assets/000/079/624/medium800/led_matrices_adafruit_products_arduino_compatibles_adafruit-gfx-library-manager.png?1566259408)

Repeat the search and install steps, looking for the&nbsp; **Adafruit BusIO** ,&nbsp; **Adafruit MQTT Library** , **&nbsp;RGB matrix Panel** , **ArduinoHttpClient** , and&nbsp; **Adafruit IO Arduino&nbsp;** libraries.

## Download the Sketch

Next you will need to download the sketch. Click on the following button to be taken to Github and download the **.ino** file&nbsp;and open it up in the Arduino IDE.

[Message Panel Source Code on Github](https://github.com/adafruit/Adafruit_Learning_System_Guides/tree/master/Stream_Deck_Message_Panel/MessagePanel)
The main sketch starts off by initializing the RGB and then connecting to Adafruit IO and listening for messages. When new messages come in, it calculates the starting point of each line with formatting applied first and then using those calculations, it draws and formats the message to the RGB Matrix Panel.

https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/Stream_Deck_Message_Panel/MessagePanel/MessagePanel.ino

One other file is used and that is **config.h**. This holds the connection information for WiFi and connecting to Adafruit IO. This is the same file is included with many of the Adafruit IO Library examples.

https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/Stream_Deck_Message_Panel/MessagePanel/config.h

## Configuring the Sketch

There are a few things you will need to edit to get the message panel up and running. Once you have opened up the sketch in the Arduino IDE successfully, click on the tab labeled **config.h**.

Fill in your&nbsp;`IO_USERNAME` and&nbsp;`IO_KEY` with your Adafruit IO Username and Key. If you're not sure where to find them, there's a section about doing that on the Stream Deck Plugin page.

Fill in the&nbsp;`WIFI_SSID` and&nbsp;`WIFI_PASS` with your WiFi name and password.

Make sure&nbsp;`#define USE_AIRLIFT` is uncommented.

Go back to the **MessagePanel** tab and if you decided to use a different feed name, find the following line and change it.

```
AdafruitIO_Feed *counter = io.feed("messagepanel");
```

Be sure the correct board (Adafruit Metro M4 Airlift Lite) and port are selected and upload the sketch to your Metro M4 Express Airlift.

# Stream Deck controlled RGB Message Panel using Adafruit IO

## 3D Printing

To make this project look nice and complete, I designed a backing to the RGB Matrix Panel that nicely houses the board and attaches to the back of the Matrix Panel. This was designed for the 64x32 RGB LED Matrix with 4mm Pitch.

Also, Adafruit switched over to carrying a 32x64 Matrix with a different set of mounting holes and there is a version of the design that has been updated to accommodate the newer matrix. So now there are four versions of the printable backing.

## Single Piece for Newer Matrix

For larger volume printers such as the Creality CR-10 and Artillery Sidewinder X1, you can print the backing as a single piece. You can download the STL or 3MF files here:

[Download STL for Single Piece for the Newer Matrix](https://github.com/adafruit/Adafruit_Learning_System_Guides/raw/main/Stream_Deck_Message_Panel/3D%20Printable%20Back/Single%20Body%20-%20New%20Matrix.stl)
[Download 3MF for Single Piece for the Newer Matrix](https://github.com/adafruit/Adafruit_Learning_System_Guides/raw/main/Stream_Deck_Message_Panel/3D%20Printable%20Back/Single%20Body%20-%20New%20Matrix.3mf)
![](https://cdn-learn.adafruit.com/assets/assets/000/108/384/medium800/led_matrices_Updated_Render_Single_Piece.png?1643226023)

## Single Piece for Older Matrix

If you have the older matrix, you can still download the STL or 3MF files here:

[Download STL for Single Piece for the Older Matrix](https://github.com/adafruit/Adafruit_Learning_System_Guides/raw/main/Stream_Deck_Message_Panel/3D%20Printable%20Back/Single%20Body.stl)
[Download 3MF for Single Piece for the Older Matrix](https://github.com/adafruit/Adafruit_Learning_System_Guides/raw/main/Stream_Deck_Message_Panel/3D%20Printable%20Back/Single%20Body.3mf)
![](https://cdn-learn.adafruit.com/assets/assets/000/081/326/medium800/led_matrices_Single_Body.png?1569343292)

## Two Pieces for the Newer Matrix

Due to the size of the message panel, the design is also available as a 2-part print so that it can be printed on a standard 3D Printer.

You can download the STL files here:

[Download STL for the Newer Matrix Board Half](https://github.com/adafruit/Adafruit_Learning_System_Guides/raw/main/Stream_Deck_Message_Panel/3D%20Printable%20Back/Board%20Half%20-%20New%20Matrix.stl)
[Download STL for the Newer Matrix Other Half](https://github.com/adafruit/Adafruit_Learning_System_Guides/raw/main/Stream_Deck_Message_Panel/3D%20Printable%20Back/Other%20Half%20-%20New%20Matrix.stl)
You can download the 3MF files here:

[Download 3MF for the Newer Matrix Board Half](https://github.com/adafruit/Adafruit_Learning_System_Guides/raw/main/Stream_Deck_Message_Panel/3D%20Printable%20Back/Board%20Half%20-%20New%20Matrix.3mf)
[Download 3MF for the Newer Matrix Other Half](https://github.com/adafruit/Adafruit_Learning_System_Guides/raw/main/Stream_Deck_Message_Panel/3D%20Printable%20Back/Other%20Half%20-%20New%20Matrix.3mf)
![](https://cdn-learn.adafruit.com/assets/assets/000/108/385/medium800/led_matrices_Updated_Render_Two_Pieces.png?1643226044)

## Two Pieces for the Older Matrix

If you have the older matrix, you can still download the STL files here:

[Download STL for the Older Matrix Board Half](https://github.com/adafruit/Adafruit_Learning_System_Guides/raw/main/Stream_Deck_Message_Panel/3D%20Printable%20Back/Board%20Half.stl)
[Download STL for the Older Matrix Other Half](https://github.com/adafruit/Adafruit_Learning_System_Guides/raw/main/Stream_Deck_Message_Panel/3D%20Printable%20Back/Other%20Half.stl)
You can download the 3MF files here:

[Download 3MF for the Older Matrix Board Half](https://github.com/adafruit/Adafruit_Learning_System_Guides/raw/main/Stream_Deck_Message_Panel/3D%20Printable%20Back/Board%20Half.3mf)
[Download 3MF for the Older Matrix Other Half](https://github.com/adafruit/Adafruit_Learning_System_Guides/raw/main/Stream_Deck_Message_Panel/3D%20Printable%20Back/Other%20Half.3mf)
![](https://cdn-learn.adafruit.com/assets/assets/000/079/698/medium800/led_matrices_Message_Panel_Mount_v5.png?1566406124)

This backing is designed to allow the entire project to be mounted onto a wall. The tabs hold it together well enough for mounting purposes. For mounting the Metro M4 WiFi, you will need these heat set inserts which it was designed for.

### Brass Heat-Set Inserts for Plastic - M3 x 3mm - 50 pack

[Brass Heat-Set Inserts for Plastic - M3 x 3mm - 50 pack](https://www.adafruit.com/product/4256)
Wanna improve the connection strength between your project's 3D-printed parts, and also have nice clean surfaces? Instead of gluing bits together, or screwing plastic screws directly into your 3D prints, use strong and reusable machine screws and heat-set inserts. Heat set inserts are only...

In Stock
[Buy Now](https://www.adafruit.com/product/4256)
[Related Guides to the Product](https://learn.adafruit.com/products/4256/guides)
![pile of 50 Brass Heat-Set Inserts for Plastic - M3 x 3mm.](https://cdn-shop.adafruit.com/640x480/4256-03.jpg)

We would also strongly recommend our heat-set insert soldering iron adapter.

If you find yourself doing a lot of heat-set inserts, you could even build a heat-set insert jig by following our&nbsp;[Heat Set Insert Rig](https://learn.adafruit.com/heat-set-rig)&nbsp;guide.

## 3D Printer Settings

This model worked with printing using the following Slicer settings:

- Use supports for the side with tabs if printing a 2-piece model
- 10% Infill
- 0.20mm Layer Height

# Stream Deck controlled RGB Message Panel using Adafruit IO

## Assembly

Assembly of this project is pretty straightforward. Most of special instructions revolve around the RGB shield assembly. Because the Metro M4 Express Airlift is still a Metro M4, you will need to cut one of the traces and add a wire.

Info: 

You can follow assembly instructions for the RGB shield in our&nbsp;[32x16 and 32x32 RGB LED Matrix](https://learn.adafruit.com/32x16-32x32-rgb-led-matrix/connecting-using-rgb-matrix-shield)&nbsp;guide.

To assemble, you will want to start by adding the heat-set inserts into place where the Metro M4 Express Airlift will be mounted.

Carefully inset the heat-set inserts using a heat-set tool or jig.

![led_matrices_heat-set_insterts.jpeg](https://cdn-learn.adafruit.com/assets/assets/000/079/710/medium640/led_matrices_heat-set_insterts.jpeg?1566410482)

Carefully line up the Metro M4 Airlift onto the heat-set inserts. Make sure the power jack is able to go through the hole. It's a little tight, so you may need to use a sharp knife to carve away any excess filament.

![led_matrices_alignment.jpeg](https://cdn-learn.adafruit.com/assets/assets/000/079/713/medium640/led_matrices_alignment.jpeg?1566410805)

![led_matrices_alignment2.jpeg](https://cdn-learn.adafruit.com/assets/assets/000/079/714/medium640/led_matrices_alignment2.jpeg?1566410820)

Install the four screws to secure the Metro M4 Airlift.

![led_matrices_screws.jpeg](https://cdn-learn.adafruit.com/assets/assets/000/079/716/medium640/led_matrices_screws.jpeg?1566411016)

Next, snap the two halves together.

![led_matrices_snap_together.jpeg](https://cdn-learn.adafruit.com/assets/assets/000/079/717/medium640/led_matrices_snap_together.jpeg?1566411154)

Install the four magnetic screws into the short ends of the RGB Panel.

![led_matrices_magnetic_screws.jpeg](https://cdn-learn.adafruit.com/assets/assets/000/079/719/medium640/led_matrices_magnetic_screws.jpeg?1566411327)

Once you have your RGB Shield soldered up, connect the power wiring harness to the screw terminals on the RGB Shield.

![led_matrices_screw_terminals.jpeg](https://cdn-learn.adafruit.com/assets/assets/000/079/720/medium640/led_matrices_screw_terminals.jpeg?1566411678)

Place the shield onto the Adafruit Metro M4 Express Airlift.

![led_matrices_shield_placement.jpeg](https://cdn-learn.adafruit.com/assets/assets/000/079/722/medium640/led_matrices_shield_placement.jpeg?1566411953)

Connect the ribbon cable that came with the panel between the Panel and the shield.

![led_matrices_ribbon_on_shield.jpeg](https://cdn-learn.adafruit.com/assets/assets/000/079/723/medium640/led_matrices_ribbon_on_shield.jpeg?1566412010)

Next, using a level, mount it onto the wall using some long wood screws. Do not over-tighten.

![led_matrices_mount.jpeg](https://cdn-learn.adafruit.com/assets/assets/000/079/724/medium640/led_matrices_mount.jpeg?1566413345)

Attach your ribbon cable and one of the power connectors to your RGB Panel.

![led_matrices_connectors_on_panel.jpeg](https://cdn-learn.adafruit.com/assets/assets/000/079/718/medium640/led_matrices_connectors_on_panel.jpeg?1566411231)

With all the wires connected, carefully place any extra long wires into the side without the board.

![led_matrices_stuff_it_in.jpeg](https://cdn-learn.adafruit.com/assets/assets/000/079/725/medium640/led_matrices_stuff_it_in.jpeg?1566413406)

The RGB Matrix Panel works by using the special magnetic screws that come with the panel to magnetically stick to the wall mounting screws. You may need to loosen the wall mount screws a bit if it's not sticking well in all four corners.

![led_matrices_mounted.jpeg](https://cdn-learn.adafruit.com/assets/assets/000/079/726/medium640/led_matrices_mounted.jpeg?1566413509)

Once that is done, connect power. It should say connecting... followed by the last message that was stored in your feed value.

![led_matrices_finished.jpeg](https://cdn-learn.adafruit.com/assets/assets/000/079/727/medium640/led_matrices_finished.jpeg?1566413591)

# Stream Deck controlled RGB Message Panel using Adafruit IO

## Troubleshooting

### 

Make sure to cut the trace on the shield next to **CLK** and run a wire over to **A4**. For more information, see&nbsp;[Connecting Using RGB Matrix Shield](https://learn.adafruit.com/32x16-32x32-rgb-led-matrix/connecting-using-rgb-matrix-shield)&nbsp;and scroll down to the **Metro M4 Usage** section.

### 

Try connecting power only or try a different ribbon cable.

### 

Make sure you have enough external power going to the Metro M4 Express Airlift. The RGB Matrix requires a lot of power.


## Featured Products

### 64x32 RGB LED Matrix - 4mm pitch

[64x32 RGB LED Matrix - 4mm pitch](https://www.adafruit.com/product/2278)
Bring a little bit of Times Square into your home with this sweet 64 x 32 square RGB LED matrix panel. These panels are normally used to make video walls, here in New York we see them on the sides of busses and bus stops, to display animations or short video clips. We thought they looked...

In Stock
[Buy Now](https://www.adafruit.com/product/2278)
[Related Guides to the Product](https://learn.adafruit.com/products/2278/guides)
### Adafruit Metro M4 Express AirLift (WiFi) - Lite

[Adafruit Metro M4 Express AirLift (WiFi) - Lite](https://www.adafruit.com/product/4000)
Give your next project a lift with _AirLift_ - our witty name for the ESP32 co-processor that graces this Metro M4. You already know about the&nbsp; **Adafruit Metro M4** &nbsp;featuring the&nbsp; **Microchip ATSAMD51** , with it's 120MHz Cortex M4 with...

In Stock
[Buy Now](https://www.adafruit.com/product/4000)
[Related Guides to the Product](https://learn.adafruit.com/products/4000/guides)
### Adafruit RGB Matrix Shield for Arduino

[Adafruit RGB Matrix Shield for Arduino](https://www.adafruit.com/product/2601)
Our RGB matrices are dazzling, with their hundreds or even _thousands_ of individual RGB LEDs. Compared to NeoPixels, they've got great density, power usage and the price-per-LED can't be beat. But...(isn't there always a _but_?) You need to use our special library to...

In Stock
[Buy Now](https://www.adafruit.com/product/2601)
[Related Guides to the Product](https://learn.adafruit.com/products/2601/guides)
### 5V 4A (4000mA) switching power supply - UL Listed

[5V 4A (4000mA) switching power supply - UL Listed](https://www.adafruit.com/product/1466)
Need a lot of 5V power? This switching supply gives a clean regulated 5V output at up to **4 Amps** (4000mA). 110 or 240 input, so it works in any country. The plugs are "US 2-prong" style so you may need a plug adapter, but you can pick one up at any hardware store for $1 or so,...

Out of Stock
[Buy Now](https://www.adafruit.com/product/1466)
[Related Guides to the Product](https://learn.adafruit.com/products/1466/guides)
### 2.1mm female/male barrel jack extension cable

[2.1mm female/male barrel jack extension cable](https://www.adafruit.com/product/327)
This product is a 3-in-1 cable. By itself, it can act as an extension cord for any 5.5/2.1mm DC power cable. The heavy 24&nbsp;AWG wires can handle up to 5A.  
  
You can also cut it half to make two barrel cables (one plug and one jack). This will allow you to connect a classic 'wall...

In Stock
[Buy Now](https://www.adafruit.com/product/327)
[Related Guides to the Product](https://learn.adafruit.com/products/327/guides)
### Brass Heat-Set Inserts for Plastic - M3 x 3mm - 50 pack

[Brass Heat-Set Inserts for Plastic - M3 x 3mm - 50 pack](https://www.adafruit.com/product/4256)
Wanna improve the connection strength between your project's 3D-printed parts, and also have nice clean surfaces? Instead of gluing bits together, or screwing plastic screws directly into your 3D prints, use strong and reusable machine screws and heat-set inserts. Heat set inserts are only...

In Stock
[Buy Now](https://www.adafruit.com/product/4256)
[Related Guides to the Product](https://learn.adafruit.com/products/4256/guides)
### 64x32 RGB LED Matrix - 3mm pitch

[64x32 RGB LED Matrix - 3mm pitch](https://www.adafruit.com/product/2279)
Bring a little bit of Times Square into your home with this sweet 64 x 32 square RGB LED matrix panel. These panels are normally used to make video walls, here in New York we see them on the sides of busses and bus stops, to display animations or short video clips. We thought they looked...

In Stock
[Buy Now](https://www.adafruit.com/product/2279)
[Related Guides to the Product](https://learn.adafruit.com/products/2279/guides)
### 64x32 RGB LED Matrix - 6mm pitch

[64x32 RGB LED Matrix - 6mm pitch](https://www.adafruit.com/product/2276)
Bring a little bit of Times Square into your home with this sweet 64x32 square RGB LED matrix panel. These panels are normally used to make video walls, here in New York we see them on the sides of busses and bus stops, to display animations or short video clips. We thought they looked really...

In Stock
[Buy Now](https://www.adafruit.com/product/2276)
[Related Guides to the Product](https://learn.adafruit.com/products/2276/guides)

## Related Guides

- [Adafruit Metro M4 Express AirLift (WiFi)](https://learn.adafruit.com/adafruit-metro-m4-express-airlift-wifi.md)
- [Adafruit MatrixPortal M4](https://learn.adafruit.com/adafruit-matrixportal-m4.md)
- [Weather Display Matrix](https://learn.adafruit.com/weather-display-matrix.md)
- [Tiny Autostereogram Construction Kit](https://learn.adafruit.com/tiny-autostereogram-construction-kit.md)
- [Network Connected RGB Matrix Clock](https://learn.adafruit.com/network-connected-metro-rgb-matrix-clock.md)
- [Purple Air AQI Display](https://learn.adafruit.com/purple-air-aqi-display.md)
- [CircuitPython Connected Weather Cloud Lamp](https://learn.adafruit.com/circuitpython-connected-weather-cloud.md)
- [Adafruit Protomatter RGB Matrix Library](https://learn.adafruit.com/adafruit-protomatter-rgb-matrix-library.md)
- [itsaSNAP Daily Weather Forecast Board](https://learn.adafruit.com/itsasnap-daily-weather-forecast-board.md)
- [Moon Phase Clock for Adafruit Matrix Portal](https://learn.adafruit.com/moon-phase-clock-for-adafruit-matrixportal.md)
- [Quickstart: Adafruit IO WipperSnapper ](https://learn.adafruit.com/quickstart-adafruit-io-wippersnapper.md)
- [Upgrading AirLift ESP32 Firmware](https://learn.adafruit.com/upgrading-esp32-firmware.md)
- [Matrix Portal Creature Eyes](https://learn.adafruit.com/matrix-portal-creature-eyes.md)
- [RGB Matrix Slot Machine](https://learn.adafruit.com/rgb-matrix-slot-machine.md)
- [Adafruit RGB Matrix + Real Time Clock HAT for Raspberry Pi](https://learn.adafruit.com/adafruit-rgb-matrix-plus-real-time-clock-hat-for-raspberry-pi.md)
- [Return to The Matrix with the Metro RP2350 or Fruit Jam](https://learn.adafruit.com/return-to-the-matrix-with-the-metro-rp2350.md)
