# Use an art canvas to diffuse an RGB matrix

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/096/808/medium800/circuitpython_Untitled.jpg?1604672621)

An unpainted art canvas can make a great diffusion screen for RGB matrix panels. In this guide I'll show how to use art canvases to construct wall-hanging matrix panel enclosures for several different sizes of RGB matrix panels.

This guide will help you to build one of these wall-hanging canvas displays.

## Parts

The most crucial part - the one that makes this a relatively easy build - is the Matrix Portal.&nbsp; This will attach to the RGB panel that you choose and allow for it to be programmed easily (in CircuitPython).

### Adafruit Matrix Portal - CircuitPython Powered Internet Display

[Adafruit Matrix Portal - CircuitPython Powered Internet Display](https://www.adafruit.com/product/4745)
Folks love our [wide selection of RGB matrices](https://www.adafruit.com/category/327) and accessories, for making custom colorful LED displays... and our RGB Matrix Shields and FeatherWings can be quickly soldered together to make the wiring much easier. But what if we made it...

In Stock
[Buy Now](https://www.adafruit.com/product/4745)
[Related Guides to the Product](https://learn.adafruit.com/products/4745/guides)
![Video of a person rotating an LED matrix panel with animation resembling falling colored sand.](https://cdn-shop.adafruit.com/product-videos/640x480/4745-05.jpg)

The 3 amp Raspberry Pi 4 power supply is a good way to power the canvas when it's hanging on the wall. Note that you can get these [in white from DigiKey](https://www.digikey.com/en/products/detail/raspberry-pi/RPI-USB-C-power-supply-White-US/10258760 "white 3A rPi4 power supply").

### Official Raspberry Pi Power Supply 5.1V 3A with USB C

[Official Raspberry Pi Power Supply 5.1V 3A with USB C](https://www.adafruit.com/product/4298)
The official Raspberry Pi USB-C power supply is here! And of course, we have 'em in classic Adafruit black! Superfast with just the right amount of cable length to get your Pi 4 projects up and running!

Best for use with Pi 4 series, [Pi...](https://www.adafruit.com/product/5814)

In Stock
[Buy Now](https://www.adafruit.com/product/4298)
[Related Guides to the Product](https://learn.adafruit.com/products/4298/guides)
![Angled shot of Official Raspberry Pi Power Supply 5.1V 3A with USB C with Power plug facing down. ](https://cdn-shop.adafruit.com/640x480/4298-04.jpg)

Below are a number of USB-C parts that will probably come in handy on a project like this.

### Right Angle USB Type C Adapter - USB 3.1 Gen 4 Compatible

[Right Angle USB Type C Adapter - USB 3.1 Gen 4 Compatible](https://www.adafruit.com/product/4432)
As technology changes and adapts, so does Adafruit, and speaking of _adapting_, this **_right angle_** &nbsp;_ **adapter** _&nbsp;is USB C socket-to-plug.

USB C is the latest industry-standard connector for transmitting...

In Stock
[Buy Now](https://www.adafruit.com/product/4432)
[Related Guides to the Product](https://learn.adafruit.com/products/4432/guides)
![Angled Shot of the Right Angle USB Type C Adapter - USB 3.1 Gen 4 Compatible.](https://cdn-shop.adafruit.com/640x480/4432-07.jpg)

### USB C to USB C Cable - USB 3.1 Gen 4 with E-Mark - 1 meter long

[USB C to USB C Cable - USB 3.1 Gen 4 with E-Mark - 1 meter long](https://www.adafruit.com/product/4199)
As technology changes and adapts, so does Adafruit! Rather than the regular USB A, this cable has&nbsp; **USB C to USB C** &nbsp;plugs!

USB C is the latest industry-standard connector for transmitting data&nbsp;_and_&nbsp;power. Like Lightning and MagSafe cables, USB C...

In Stock
[Buy Now](https://www.adafruit.com/product/4199)
[Related Guides to the Product](https://learn.adafruit.com/products/4199/guides)
![USB C to USB C cable. USB 3.1 gen 4 with E-Mark. 1 meter long](https://cdn-shop.adafruit.com/640x480/4199-01.jpg)

### USB C to USB C Cable - USB 3.1 Gen 4 with E-Mark - 6" long

[USB C to USB C Cable - USB 3.1 Gen 4 with E-Mark - 6" long](https://www.adafruit.com/product/4198)
As technology changes and adapts, so does Adafruit! Rather than the regular USB A, this cable has&nbsp; **USB C to USB C** &nbsp;plugs!

USB C is the latest industry-standard connector for transmitting data&nbsp;_and_&nbsp;power. Like Lightning and MagSafe cables, USB C...

In Stock
[Buy Now](https://www.adafruit.com/product/4198)
[Related Guides to the Product](https://learn.adafruit.com/products/4198/guides)
![USB C to USB C cable. USB 3.1 gen 4 with E-Mark. 6" long](https://cdn-shop.adafruit.com/640x480/4198-01.jpg)

Related to the above, there is such a thing as a USB-C extension cable. They have a plug on one end and a socket connector on the other. I don't believe Adafruit carries any, but you can find them on Amazon and elsewhere.

I'm finding that it works great to have one of these extension cables plugged into the Matrix Portal. Then it can easily be swapped between a computer (for re-programming) and a wall power adapter (for normal usage).

Another thing to look for on the wider internet is right angle USB-C adapters. Adafruit carries one (linked above), but I was able to find a more svelte example. Also, note that some of the extension cables come with a right-angle plug end.

![circuitpython_IMG_6047.jpg](https://cdn-learn.adafruit.com/assets/assets/000/095/999/medium640/circuitpython_IMG_6047.jpg?1602962138)

![circuitpython_IMG_6053.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/000/medium640/circuitpython_IMG_6053.jpg?1602962155)

![circuitpython_IMG_6059.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/001/medium640/circuitpython_IMG_6059.jpg?1602962180)

![circuitpython_IMG_5808.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/002/medium640/circuitpython_IMG_5808.jpg?1602962301)

In addition to the electronic parts and cables, you will need some hardware for securing the matrix panel inside the canvas and for hanging the canvas on the wall. Most of these parts can be found at an art supply store (like [Michaels](https://www.michaels.com/ "Michaels Art Supplies")), or a hardware store.

Pieces of foam board will be used for securing the matrix panel inside the canvas.

The 9x12 inch foam board was a good size for the 64x32 pixel, 4mm pitch panel. For the smaller panels, the 8x10 inch foam board may be a better starting point.

![circuitpython_IMG_5720.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/023/medium640/circuitpython_IMG_5720.jpg?1603045805)

![circuitpython_IMG_6112.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/024/medium640/circuitpython_IMG_6112.jpg?1603045848)

The matrix panels have M3 screw mounts, so these nylon screws and standoffs will be helpful in attaching matrix panels to things like foam board.

### Black Nylon Machine Screw and Stand-off Set – M3 Thread

[Black Nylon Machine Screw and Stand-off Set – M3 Thread](https://www.adafruit.com/product/4685)
Totaling **420 pieces** , this **M3 Screw Set** &nbsp;is a must-have for your workstation.&nbsp;You'll have enough screws, nuts, and hex standoffs to fuel your maker tendencies&nbsp;for days on end! M3 size screws fit a number of&nbsp;Adafruit breakout/dev board...

In Stock
[Buy Now](https://www.adafruit.com/product/4685)
[Related Guides to the Product](https://learn.adafruit.com/products/4685/guides)
![Opened box showing many nylon screws](https://cdn-shop.adafruit.com/640x480/4685-01.jpg)

The items show below will be attached to the back of the canvas.&nbsp; The hanging wire and D-rings are used to hang the canvas on the wall.&nbsp; The offset clips will hold foam board in place behind the canvas.

![](https://cdn-learn.adafruit.com/assets/assets/000/096/025/medium800/circuitpython_IMG_6146.jpg?1603046135)

I use these plastic spacers from Pololu to add a little distance between the back of the canvas and the hanging wire, allowing space for the foam board in between.&nbsp; If that doesn't make sense, don't worry, it will be explained better in pictures to follow.

Any of the spacer lengths shown below (2mm, 4mm, 6mm and 8mm) could turn out to be useful in building a [compu-canvas](https://learn.adafruit.com/compucanvas-101 "CompuCanvas 101") project, and sometimes I start with one length and realize later a longer or shorter spacer will work better.

![](https://cdn-learn.adafruit.com/assets/assets/000/096/026/medium800/circuitpython_IMG_6069.jpg?1603046594)

### Part: 2mm nylon spacers
quantity: 1
2mm nylon spacers
[2mm nylon spacers](https://www.pololu.com/product/1980)

### Part: 4mm nylon spacers
quantity: 1
4mm nylon spacers
[4mm nylon spacers](https://www.pololu.com/product/1981)

### Part: 6mm nylon spacers
quantity: 1
6mm nylon spacers
[6mm nylon spacers](https://www.pololu.com/product/1982)

### Part: 8mm nylon spacers
quantity: 1
8mm nylon spacers
[8mm nylon spacers](https://www.pololu.com/product/1983)

The D-rings (shown above) come with screws, but often I find they are too long, short or wide for what I need.

I have found that #4 and #5 screws work great with the Pololu spacers shown above (and #6 is too big). I got several different lengths to try, but for this project the 0.75 inch #4 or #5 screws are perfect in most cases.

Make sure to double-check that the screws selected are not too long, or they will puncture through the front of the canvas!

The last set of pictures here show how the spacers and screws will be used with the D-rings to create a little space between the D-rings and the back of the canvas.

The last picture also shows roughly how the D-rings, hanging wire and offset clips will be placed behind the canvas.&nbsp; In this example the offset clips are on the side, but often it makes more sense to put them on the bottom. You'll see examples of both in the builds covered in this guide.

![circuitpython_IMG_6155.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/027/medium640/circuitpython_IMG_6155.jpg?1603047179)

![circuitpython_IMG_6161.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/028/medium640/circuitpython_IMG_6161.jpg?1603047238)

![circuitpython_IMG_6170.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/029/medium640/circuitpython_IMG_6170.jpg?1603047302)

![circuitpython_IMG_6172.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/030/medium640/circuitpython_IMG_6172.jpg?1603047422)

In several of the builds I used a pair of 8-pin Arduino stacking headers to extend the distance between the Matrix Portal and the matrix panel by a few millimeters. I think these could come in handy in a lot of situations where the canvas is just a little bit too deep for the Matrix Portal.

You'll only need the two 8-pin headers from this kit:

### Shield stacking headers for Arduino (R3 Compatible)

[Shield stacking headers for Arduino (R3 Compatible)](https://www.adafruit.com/product/85)
_“How could something so simple be so useful?”&nbsp;_

We heard once that&nbsp;in the 4th millennium B.C.&nbsp;some guy asked the person who invented the wheel that question.&nbsp; The person who invented the wheel’s answer, we were told, was...

In Stock
[Buy Now](https://www.adafruit.com/product/85)
[Related Guides to the Product](https://learn.adafruit.com/products/85/guides)
![Front view shot of Shield stacking headers for Arduino in various sizes. ](https://cdn-shop.adafruit.com/640x480/85-05.jpg)

There was also one build (the final one) where I used these extra long break-away headers:

### Extra-long break-away 0.1" 16-pin strip male header (5 pieces)

[Extra-long break-away 0.1" 16-pin strip male header (5 pieces)](https://www.adafruit.com/product/400)
Breakaway header is like the duct tape of electronics, and this header is one better with extra long pins on **both** sides. This makes it great for connecting things together that have two sockets - especially solderless breadboards. [We also...](https://www.adafruit.com/products/266)

In Stock
[Buy Now](https://www.adafruit.com/product/400)
[Related Guides to the Product](https://learn.adafruit.com/products/400/guides)
![5 pieces of Extra-long break-away 0.1 inch 16-pin strip male header](https://cdn-shop.adafruit.com/640x480/400-03.jpg)

## Tools

You'll need a few tools for this project, shown below. I used the pencil and measuring tape to mark places to cut on the foam board.

Use the "x-acto" type blade for cutting the foam board along a line or curve.

Use an awl for making holes in the foam board to run cables or screws through.&nbsp; If you don't have an awl, a nail will work instead. The foam board is not difficult to puncture.

And the Phillips screwdriver will be used with the nylon and the metal screws shown above.

![](https://cdn-learn.adafruit.com/assets/assets/000/096/037/medium800/circuitpython_IMG_6235.jpg?1603052572)

The only other things you need are one of the RGB matrix panels and an art canvas that the panel fits inside. The next 4 sections of this guide show how to construct wall-hanging canvases for 4 different matrix panels. The Adafruit product link for each panel is at the beginning of the section devoted to that panel.

**SPOILER ALERT** :

If you are looking for the best fit - with the least amount of unused space inside the canvas, and the thinnest 'bezel' of unlit canvas as seen from the front, and the most pixels - then the 64x64 pixel, 3mm pitch panel with a 10x10 inch, low-profile canvas is the best pairing I have found.

The canvases you will find at a typical art supply store come in standard sizes. It is possible to get [custom made canvases](https://www.rexart.com/custom-made-canvases.html "custom made canvases") (here is [another example](https://www.ucsart.com/specialty-products/custom-stretched-canvases "custom stretched canvases")), but it will be more expensive.

# Use an art canvas to diffuse an RGB matrix

## 64x32 pixel, 4mm pitch

![](https://cdn-learn.adafruit.com/assets/assets/000/096/038/medium800/circuitpython_IMG_6045.jpg?1603055577)

In this section I'll show how I constructed a wall-hanging canvas, with horizontal orientation, for this 4mm pitch, 64x32 pixel matrix:

### 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)

The best fit I could find at Michaels was this 8.5x14 inch "traditional profile" canvas:

![](https://cdn-learn.adafruit.com/assets/assets/000/095/886/medium800/circuitpython_IMG_5693.jpg?1602814126)

Behind the canvas there is enough room for the matrix, with a little to spare.

![circuitpython_IMG_5718.jpg](https://cdn-learn.adafruit.com/assets/assets/000/095/887/medium640/circuitpython_IMG_5718.jpg?1602814448)

![circuitpython_IMG_5715.jpg](https://cdn-learn.adafruit.com/assets/assets/000/095/888/medium640/circuitpython_IMG_5715.jpg?1602814482)

![circuitpython_IMG_5713.jpg](https://cdn-learn.adafruit.com/assets/assets/000/095/889/medium640/circuitpython_IMG_5713.jpg?1602814511)

I'll use foam board and the M3 nylon standoffs to hold the matrix panel in place behind the canvas, but first it's important to understand how the power cable will be routed. It's really important for the power cable to be centered as it trails down from the canvas.&nbsp; If it's too off-center, the canvas will tilt sideways.

![](https://cdn-learn.adafruit.com/assets/assets/000/095/890/medium800/circuitpython_IMG_5803.jpg?1602815129)

About those standoffs, I found that the shorter standoffs were about the right length to put the matrix almost touching the canvas, when the standoffs are flush with the back of the canvas.

You want the matrix panel to be very close (even touching) the canvas. If it's too far away, the images will get blurry.

![circuitpython_IMG_5743.jpg](https://cdn-learn.adafruit.com/assets/assets/000/095/891/medium640/circuitpython_IMG_5743.jpg?1602815863)

![circuitpython_IMG_5746.jpg](https://cdn-learn.adafruit.com/assets/assets/000/095/892/medium640/circuitpython_IMG_5746.jpg?1602815900)

![circuitpython_IMG_5747.jpg](https://cdn-learn.adafruit.com/assets/assets/000/095/893/medium640/circuitpython_IMG_5747.jpg?1602815918)

This 9x12 inch foam board is a good size to start with for this canvas.&nbsp; I'll end up whittling a lot out of it, as you'll see in upcoming pictures.

![](https://cdn-learn.adafruit.com/assets/assets/000/095/894/medium800/circuitpython_IMG_5722.jpg?1602818135)

I need to mark 6 points on the foam board that align with the 6 screw holes on the matrix panel (and the nylon standoffs). I'm not sure the best way to do this. I decided to try cutting short pieces of toothpick and laying them into the screw holes on the standoffs.

![](https://cdn-learn.adafruit.com/assets/assets/000/095/895/medium800/circuitpython_IMG_5776.jpg?1602818362)

In the image above you can see 3 of the toothpick ends.&nbsp; The idea is to align the foam board with the canvas and press it against the toothpicks to leave an impression of the 6 mount points.

This worked well enough ... the toothpicks are much thinner than the screw holes (more like M1), so they shift around when the board is placed on top.&nbsp; My marks weren't perfect, but close enough, and the foam board is forgiving.

Note: in the 64x64 pixel builds I came up with a better way than toothpicks to mark the mount points. It involves taping wood screws upside down over each mount point. This eliminates the toothpick wobbling issue.

![](https://cdn-learn.adafruit.com/assets/assets/000/095/896/medium800/circuitpython_IMG_5838.jpg?1602818943)

Next, I want to do the hardware work on the back of the canvas that will allow it to hang on the wall and hold the foam board with the matrix panel in place.

As the picture above shows, I'll use D-rings and hanging wire on top to allow for hanging the canvas, and 3 of the 0.25 inch offset clips on the bottom to rest the foam board on.

But there's a twist: I'm going to use 4mm spacers to raise the D-rings slightly.&nbsp; This will make it easier for the top of the foam board to fit under the hanging wire. I'm also using #4 screws (0.75 inch) because these fit in the Pololu spacers.

![](https://cdn-learn.adafruit.com/assets/assets/000/095/897/medium800/circuitpython_IMG_5825.jpg?1602819413)

I did some measuring and marking of the foam board to determine how it will fit into the offset clips and where to place them.

![](https://cdn-learn.adafruit.com/assets/assets/000/095/898/medium800/circuitpython_IMG_5846.jpg?1602819712)

The picture below shows the hanging wire and offset clips attached. You'll want to set the D-rings and hanging wire close to the top. The lower it is set, the harder it will be to slip the assembly of matrix panel, Matrix Portal and foam board into place.

![](https://cdn-learn.adafruit.com/assets/assets/000/095/899/medium800/circuitpython_IMG_5864.jpg?1602820601)

Next I spent more time measuring, and then cutting the foam board. I cut away sections around the Matrix Portal and the power connector, to make room for everything.

![circuitpython_IMG_5869.jpg](https://cdn-learn.adafruit.com/assets/assets/000/095/900/medium640/circuitpython_IMG_5869.jpg?1602820735)

![circuitpython_IMG_5871.jpg](https://cdn-learn.adafruit.com/assets/assets/000/095/901/medium640/circuitpython_IMG_5871.jpg?1602820761)

![circuitpython_IMG_5874.jpg](https://cdn-learn.adafruit.com/assets/assets/000/095/902/medium640/circuitpython_IMG_5874.jpg?1602820806)

The next picture shows the foam board screwed onto the matrix panel, with the Matrix Portal peeking out from behind.

![](https://cdn-learn.adafruit.com/assets/assets/000/095/903/medium800/circuitpython_IMG_5888.jpg?1602820950)

I still needed to do a lot of cutting around the top, rounding out the corners to allow the foam board to fit under the hanging wire.

![](https://cdn-learn.adafruit.com/assets/assets/000/095/904/medium800/circuitpython_IMG_5895.jpg?1602821044)

I also need to route the power cable through the bottom/middle of the foam board. I first punched a hole in the right place and then widened it to fit the cable.

Note in the second pic here how I've cut away additional foam on the bottom left to make room where the power cable plugs into the right-angle adapter.

![circuitpython_IMG_5906.jpg](https://cdn-learn.adafruit.com/assets/assets/000/095/905/medium640/circuitpython_IMG_5906.jpg?1602821239)

![circuitpython_IMG_5909.jpg](https://cdn-learn.adafruit.com/assets/assets/000/095/906/medium640/circuitpython_IMG_5909.jpg?1602821251)

The last thing I did is place a piece of electrical tape over the 5V and GND screw terminals to avoid accidentally touching these when the system is plugged in.

![circuitpython_IMG_6734.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/613/medium640/circuitpython_IMG_6734.jpg?1604102503)

![circuitpython_IMG_6737.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/614/medium640/circuitpython_IMG_6737.jpg?1604102533)

![circuitpython_IMG_6738.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/615/medium640/circuitpython_IMG_6738.jpg?1604102569)

... and it works!

![](https://cdn-learn.adafruit.com/assets/assets/000/095/907/medium800/circuitpython_IMG_5919.jpg?1602821435)

![](https://cdn-learn.adafruit.com/assets/assets/000/096/809/medium800/circuitpython_Untitled.jpg?1604673359)

# Use an art canvas to diffuse an RGB matrix

## 64x32 pixel, 3mm pitch

![](https://cdn-learn.adafruit.com/assets/assets/000/096/287/medium800/circuitpython_IMG_6650.jpg?1603505147)

In this section I'll show how I constructed a wall-hanging canvas, with vertical orientation, for this 3mm pitch, 64x32 pixel matrix:

### 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)
![Two white hands hold out an assembled and powered on 64x32 RGB LED Matrix Panel - 3mm pitch. The matrix displays "Adafruit Industries LED MATRIX! 32x64 *RGB*"](https://cdn-shop.adafruit.com/640x480/2279-00.jpg)

I looked at 3 slightly different 8x10 inch canvases as possible enclosures for the matrix assembly.

![](https://cdn-learn.adafruit.com/assets/assets/000/096/288/medium800/circuitpython_IMG_6436.jpg?1603506945)

I was interested to try the "ultra-smooth" type canvas, but unfortunately both of the canvases in the red packaging had slightly too thick interior framing to fit the matrix panel.

![](https://cdn-learn.adafruit.com/assets/assets/000/096/289/medium800/circuitpython_IMG_6487.jpg?1603507128)

If the framing was just 2mm thinner, I think it would fit.&nbsp; It could probably be made to work if you have the right woodworking tools to shave a little bit off, but you'll need to be really careful not to damage the canvas in the process.

But the canvas in the blue packaging works - with maybe 1-2 millimeters to spare:

![](https://cdn-learn.adafruit.com/assets/assets/000/096/290/medium800/circuitpython_IMG_6492.jpg?1603507347)

The canvas frame is deep enough that the Matrix Portal wants to angle up and could become electrically disconnected. This also holds the matrix panel away from the canvas (which will cause the image to be blurry).

To address these issues I placed the 8-pin Arduino headers in between the matrix panel and the Matrix Portal.

![circuitpython_IMG_6499.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/298/medium640/circuitpython_IMG_6499.jpg?1603512125)

![circuitpython_IMG_6505.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/299/medium640/circuitpython_IMG_6505.jpg?1603512206)

![circuitpython_IMG_6509.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/300/medium640/circuitpython_IMG_6509.jpg?1603512233)

![circuitpython_IMG_6514.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/301/medium640/circuitpython_IMG_6514.jpg?1603512281)

I'm going to orient this canvas vertically, with the Matrix Portal pointing down so the USB-C cable trails directly down toward the floor.

I had an idea to use offset clips to attach the matrix panel at the top end of the canvas frame.

![](https://cdn-learn.adafruit.com/assets/assets/000/096/302/medium800/circuitpython_IMG_6531.jpg?1603512574)

These pictures show the key details about using the offset clips to hang the matrix panel from the top of the canvas frame.

I used 2 of the Pololu spacers for each offset clip:

- a 4mm spacer between the offset clip and the canvas frame
- a 2mm spacer between the offset clip and the matrix panel

The offset clips are not quite long enough to reach comfortably over the canvas frame. I was careful to insert the screw at an angle, to keep from breaking off the edge of the canvas frame.

I'm pretty sure these are 0.75 inch #4 wood screws (I forgot to take a pic of the packaging).

![circuitpython_IMG_6540.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/303/medium640/circuitpython_IMG_6540.jpg?1603512899)

![circuitpython_IMG_6616.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/304/medium640/circuitpython_IMG_6616.jpg?1603512947)

![circuitpython_IMG_6541.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/305/medium640/circuitpython_IMG_6541.jpg?1603513036)

I want to avoid having the Matrix Portal pressed to the wall when it's hanging. In the first picture here, note the large capacitor near the reset button and USB-C port.

I don't want the capacitor bumping into the wall so I'm going to screw in 2 of the 6mm spacers around the Matrix Portal

![circuitpython_IMG_6564.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/306/medium640/circuitpython_IMG_6564.jpg?1603513490)

![circuitpython_IMG_6571.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/307/medium640/circuitpython_IMG_6571.jpg?1603513686)

![circuitpython_IMG_6572.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/308/medium640/circuitpython_IMG_6572.jpg?1603513730)

![circuitpython_IMG_6573.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/309/medium640/circuitpython_IMG_6573.jpg?1603513745)

Another thing to deal with is how to arrange the power cabling. These pictures show how I threaded it under the Matrix Portal to hold it in place.

![circuitpython_IMG_6576.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/310/medium640/circuitpython_IMG_6576.jpg?1603513865)

![circuitpython_IMG_6578.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/311/medium640/circuitpython_IMG_6578.jpg?1603513964)

![circuitpython_IMG_6585.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/312/medium640/circuitpython_IMG_6585.jpg?1603513998)

The last bit of hardware work is to connect the D-rings and hanging wire.

I used 4mm spacers with the 0.75 inch #5 wood screws shown here.

![circuitpython_IMG_6589.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/313/medium640/circuitpython_IMG_6589.jpg?1603514126)

![circuitpython_IMG_6593.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/314/medium640/circuitpython_IMG_6593.jpg?1603514176)

Finally, I'll cover the 5V and GND screw terminals with a piece of electrical tape.

![circuitpython_IMG_6747.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/616/medium640/circuitpython_IMG_6747.jpg?1604102740)

![circuitpython_IMG_6750.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/617/medium640/circuitpython_IMG_6750.jpg?1604102768)

![circuitpython_IMG_6753.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/618/medium640/circuitpython_IMG_6753.jpg?1604102819)

Now it should be all ready to hang on the wall....

![](https://cdn-learn.adafruit.com/assets/assets/000/096/315/medium800/circuitpython_IMG_6638.jpg?1603514370)

Here is the CircuitPython code for the "Hello World" program shown above:

```python
import board, displayio, terminalio
from adafruit_matrixportal.matrix import Matrix
from adafruit_display_shapes.rect import Rect
from adafruit_display_text import label

matrix = Matrix(width=64, height=32)
group = displayio.Group(max_size=4)
matrix.display.rotation=270
matrix.display.show(group)

rect = Rect(0,0,32,64,fill=0x000040, outline=0x888888)
group.append(rect)

hello_text = ["H", "e", "l", "l", "o"]
world_text = ["W", "o", "r", "l", "d"]

hello_grp = displayio.Group(max_size=6)
hello_grp.x = 5 ; hello_grp.y = 5
hello_rect = Rect(-2,-1,10,50,fill=0x000000, outline=0x888888)
hello_grp.append(hello_rect)

world_grp = displayio.Group(max_size=6)
world_grp.x = 18 ; world_grp.y = 10
world_rect = Rect(-2,-1,10,50,fill=0x000000, outline=0x888888)
world_grp.append(world_rect)


g2 = displayio.Group(max_size=6)

y=4
for i in range(5):
    lh = label.Label(terminalio.FONT, max_glyphs=1, color=0x440088)
    lh.x=0 ; lh.y=y; lh.text=hello_text[i]
    hello_grp.append(lh)
    lw = label.Label(terminalio.FONT, max_glyphs=1, color=0x008844)
    lw.x=0 ; lw.y=y; lw.text=world_text[i]
    world_grp.append(lw)
    y+=9

group.append(hello_grp)
group.append(world_grp)

while True:
    pass
```

# Use an art canvas to diffuse an RGB matrix

## 64x64 pixel, 3mm pitch

In this section I'll show construction steps for a wall hanging canvas with this 3mm pitch 64x64 matrix panel:

### 64x64 RGB LED Matrix - 3mm Pitch

[64x64 RGB LED Matrix - 3mm Pitch](https://www.adafruit.com/product/4732)
Winter time can be rough in the city. The sky is gray. The weather&nbsp;is unpredictable. So slough off those seasonal blues with&nbsp;some&nbsp;Times Square razzle dazzle from this sweet, ultra-high-density **64x64 RGB LED Matrix**. These panels are typically used to make video...

In Stock
[Buy Now](https://www.adafruit.com/product/4732)
[Related Guides to the Product](https://learn.adafruit.com/products/4732/guides)
![Video of a woman in black slowly rotating a powered-on 64x64 RGB LED Matrix. The matrix displays the Adafruit star flower logo with rainbow sand falling animation.](https://cdn-shop.adafruit.com/product-videos/640x480/4732-04.jpg)

I found 2 kinds of 10x10 inch canvas that looked like a potential fit for this panel. One came in a 'value' 2-pack and the other came as a single.

Both are low profile and you might think they are exactly the same, but turn them around and you'll see the wood frame used in the 2-pack is a bit thinner - meaning more room for a matrix panel inside.

![circuitpython_IMG_6087.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/005/medium640/circuitpython_IMG_6087.jpg?1602964285)

![circuitpython_IMG_6071.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/006/medium640/circuitpython_IMG_6071.jpg?1602964321)

![circuitpython_IMG_6090.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/008/medium640/circuitpython_IMG_6090.jpg?1602964571)

![circuitpython_IMG_6121.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/039/medium640/circuitpython_IMG_6121.jpg?1603055724)

I first tried the 'traditional' canvas with the thicker wood framing. It was very close, but it does fit barely with maybe 1-2 mm to spare.

This actually seems like an ideal pairing. I won't even need offset clips on the bottom because the panel can rest directly on the wood frame.

In the picture below, the Matrix Portal is on the left side, but it will make much more sense to hang this canvas so the Matrix Portal is pointing down and the USB-C cable will then run directly down toward the ground.

![](https://cdn-learn.adafruit.com/assets/assets/000/096/009/medium800/circuitpython_IMG_6101.jpg?1602965511)

The Matrix Portal sits at a bit of an angle where it encounters the canvas frame, but it seems like it will be a good electrical connection.

**Update** : I later added 2 of the 8-pin Arduino headers between the Matrix Portal and the panel, as shown in the previous build, for a better fit than shown in the picture below.

![](https://cdn-learn.adafruit.com/assets/assets/000/096/010/medium800/circuitpython_IMG_6104.jpg?1602965715)

Because I'm using a 64x64 pixel panel, I'll need to solder the "E line" jumper to the 8 pin, [as explained in the Matrix Portal guide](https://learn.adafruit.com/adafruit-matrixportal-m4/pinouts "address E line jumper"). In the picture below you can see the blob of solder I added between the 8 and the E pads on the lower right, near the 3-pin JST connector.

![](https://cdn-learn.adafruit.com/assets/assets/000/096/040/medium800/circuitpython_IMG_6135.jpg?1603056152)

The picture below shows how I'm planning to layout the D-rings and offset clips. We don't need offset clips on the bottom because the matrix panel will rest directly on the wood frame of the canvas. The main purpose of the offset clips here will be to keep the matrix panel from falling out of the canvas when it is taken off the wall and moved around.

I've cut an 8x3 inch piece of foam board, and the plan is to screw it to the matrix panel (with the M3 nylon screws) and then use the offset clips to hold the foam board and panel in place.

![](https://cdn-learn.adafruit.com/assets/assets/000/096/041/medium800/circuitpython_IMG_6181.jpg?1603056686)

Here I've taped two wood screws, face up, over the M3 screw holes. I used this to mark two points on the foam board, pressing down enough to leave an impression and then using an awl to finish poking holes through the foam board.

I'll use the longest type of nylon screws from the M3 kit.

![circuitpython_IMG_6183.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/042/medium640/circuitpython_IMG_6183.jpg?1603057024)

![circuitpython_IMG_6187.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/043/medium640/circuitpython_IMG_6187.jpg?1603057039)

![circuitpython_IMG_6189.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/044/medium640/circuitpython_IMG_6189.jpg?1603057090)

In the picture below, I've attached the D-rings and hanging wire and the offset clips to the canvas frame. I also have the foam board screwed to the matrix panel. It looks like it's ready to hang on the wall...

![](https://cdn-learn.adafruit.com/assets/assets/000/096/046/medium800/circuitpython_IMG_6199.jpg?1603058338)

... but I forgot one thing:&nbsp;I need to cut a squarish hole in the center of the foam board to allow for the matrix panel power cabling.

These pictures show how I cut the hole and then arranged the power cable (mostly) underneath the foam board. Blue masking tape is great for helping with cable management.

![circuitpython_IMG_6202.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/045/medium640/circuitpython_IMG_6202.jpg?1603057924)

![circuitpython_IMG_6205.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/047/medium640/circuitpython_IMG_6205.jpg?1603058484)

![circuitpython_IMG_6212.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/048/medium640/circuitpython_IMG_6212.jpg?1603058497)

I now made 2 final changes to get this system ready to hang:

- Added a piece of electrical tape over the 5V and GND screw terminals.
- Added two screws (#4, 0.75 inch) with 8mm spacers on the bottom of the frame, to avoid the large capacitor on the Matrix Portal bumping against the wall.

![circuitpython_IMG_6718.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/619/medium640/circuitpython_IMG_6718.jpg?1604103625)

![circuitpython_IMG_6721.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/620/medium640/circuitpython_IMG_6721.jpg?1604103640)

![circuitpython_IMG_6724.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/621/medium640/circuitpython_IMG_6724.jpg?1604103679)

![circuitpython_IMG_6727.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/622/medium640/circuitpython_IMG_6727.jpg?1604103768)

![circuitpython_IMG_6729.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/623/medium640/circuitpython_IMG_6729.jpg?1604103783)

At this point, it's ready to hang on the wall. One gotcha is that since the Matrix Portal is pointing down, it's not in its default orientation.

![](https://cdn-learn.adafruit.com/assets/assets/000/096/049/medium800/circuitpython_IMG_6238.jpg?1603058696)

This can be fixed in the CircuitPython code by setting the Display&nbsp;`rotation`property to&nbsp;`270`.

![](https://cdn-learn.adafruit.com/assets/assets/000/096/050/medium800/circuitpython_IMG_6253.jpg?1603058801)

Here is the code for the "Hello World" example used in the picture above:

```python
import board, displayio, terminalio
from adafruit_matrixportal.matrix import Matrix
from adafruit_display_shapes.rect import Rect
from adafruit_display_text import label

matrix = Matrix(width=64, height=64)
group = displayio.Group(max_size=4)
matrix.display.rotation=270
matrix.display.show(group)

rect = Rect(0,0,64,64,fill=0x003377, outline=0x888888)
group.append(rect)

lbl=label.Label(terminalio.FONT, max_glyphs=32, color=0x555500)
lbl.x=16 ; lbl.y=8; lbl.text="Hello\nWorld!"
group.append(lbl)

while True:
    pass
```

# Use an art canvas to diffuse an RGB matrix

## 64x64 pixel, 2.5mm pitch

![](https://cdn-learn.adafruit.com/assets/assets/000/096/052/medium800/circuitpython_IMG_6360.jpg?1603071579)

In this section I'll show how to construct a wall hanging canvas incorporating this 64x64 pixel, 2.5 mm pitch matrix panel:

### 64x64 RGB LED Matrix - 2.5mm Pitch

[64x64 RGB LED Matrix - 2.5mm Pitch](https://www.adafruit.com/product/3649)
Winter time can be rough in the city. The sky is gray. The weather&nbsp;is unpredictable. So slough off those seasonal blues with&nbsp;some&nbsp;Times Square razzle dazzle from this sweet, ultra-high-density **64x64 RGB LED Matrix**. These panels are typically used to make video...

In Stock
[Buy Now](https://www.adafruit.com/product/3649)
[Related Guides to the Product](https://learn.adafruit.com/products/3649/guides)
![Video of two hands flipping over a powered on 64x64 RGB LED Matrix. The matrix display has a falling colored sand effect. ](https://cdn-shop.adafruit.com/product-videos/640x480/3649-06.jpg)

This matrix panel is 6.3x6.3 inches. An ideal frame for it would be probably 8.5x8.5, or maybe 9x9 inches, but those are not standard sizes. So I'll use a 10x10 inch canvas again here, but try one of the "heavy duty" canvases, which are deeper inside with wider wood framing.

With this configuration, there will not be room for the Matrix Portal to connect directly to the HUB75 connector on the matrix panel. Instead, I'll have to rig up something with the grey IDC ribbon cable....

![circuitpython_IMG_5941.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/053/medium640/circuitpython_IMG_5941.jpg?1603072001)

![circuitpython_IMG_5943.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/054/medium640/circuitpython_IMG_5943.jpg?1603072021)

![circuitpython_IMG_5950.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/055/medium640/circuitpython_IMG_5950.jpg?1603074550)

I'd prefer to have a solder-free way of connecting the Matrix Portal to the gray IDC ribbon cable. I was able to do this using extra-long break-away headers, like this:

### Extra-long break-away 0.1" 16-pin strip male header (5 pieces)

[Extra-long break-away 0.1" 16-pin strip male header (5 pieces)](https://www.adafruit.com/product/400)
Breakaway header is like the duct tape of electronics, and this header is one better with extra long pins on **both** sides. This makes it great for connecting things together that have two sockets - especially solderless breadboards. [We also...](https://www.adafruit.com/products/266)

In Stock
[Buy Now](https://www.adafruit.com/product/400)
[Related Guides to the Product](https://learn.adafruit.com/products/400/guides)
![5 pieces of Extra-long break-away 0.1 inch 16-pin strip male header](https://cdn-shop.adafruit.com/640x480/400-03.jpg)

Start with 2 rows of 10 pins each and use a pliers or similar tool to push or pull the individual pins through the encasing plastic until they are mostly on one side of the plastic, as shown in the first picture here.

Then push each row of 10 pins through the front of the connector on the Matrix Portal, as shown, so the pins extend out on the side with the ESP32 chip. Push in each pin so it is flush on the side with the plastic parts.

![circuitpython_IMG_5955.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/056/medium640/circuitpython_IMG_5955.jpg?1603075210)

![circuitpython_IMG_5963.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/057/medium640/circuitpython_IMG_5963.jpg?1603075407)

![circuitpython_IMG_5965.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/058/medium640/circuitpython_IMG_5965.jpg?1603075420)

![circuitpython_IMG_5968.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/059/medium640/circuitpython_IMG_5968.jpg?1603075472)

At this point my mind was blown when I realized that the header on the Matrix Portal is 2x10 pins, but the grey IDC ribbon cable is 2x8.

Apparently, four of the sockets on the Matrix Portal header are just for spacing and not electrical contact.

Using the pliers again I removed the 4 outer pins, so we have a 2x8 array of pins that will mate with the IDC ribbon cable.

![circuitpython_IMG_5971.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/060/medium640/circuitpython_IMG_5971.jpg?1603075601)

![circuitpython_IMG_5973.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/061/medium640/circuitpython_IMG_5973.jpg?1603075746)

You need to be careful here to connect the Matrix Portal to the ribbon cable in the correct orientation. It should be hanging the way it normally would - to the left as shown in the picture below:

![](https://cdn-learn.adafruit.com/assets/assets/000/096/062/medium800/circuitpython_IMG_6011.jpg?1603076011)

Next, I set about creating a foam board backing for the matrix panel. In the picture below, I've cut 2 inches off of an 8x10 piece of foam board - making it 8x8 inches.

I've also selected some 1 inch #4 wood screws for the D-rings. After doing the last few builds I started to think that the 4mm spacers are maybe too short, so I'm going to try using the 6mm Pololu spacers this time.

I'll use 3 of the offset clips - two on the bottom and one on top - to hold the foam board assembly in place.

![](https://cdn-learn.adafruit.com/assets/assets/000/096/063/medium800/circuitpython_IMG_6266.jpg?1603076212)

I'll again tape wood screws upside down on top of the matrix panel mounting holes and use this to mark the 4 points on the foam board where I want to feed through nylon screws.

![circuitpython_IMG_6273.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/064/medium640/circuitpython_IMG_6273.jpg?1603076570)

![circuitpython_IMG_6276.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/065/medium640/circuitpython_IMG_6276.jpg?1603076644)

![circuitpython_IMG_6278.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/066/medium640/circuitpython_IMG_6278.jpg?1603076661)

I also cut away two diagonals of the foam board near the top to make it less likely to interact with the hanging wire.

![](https://cdn-learn.adafruit.com/assets/assets/000/096/067/medium800/circuitpython_IMG_6282.jpg?1603076851)

Next I arranged the power cabling for the Matrix Portal and taped it down into a position where the foam board can be set on top.

![circuitpython_IMG_6304.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/068/medium640/circuitpython_IMG_6304.jpg?1603076953)

![circuitpython_IMG_6306.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/069/medium640/circuitpython_IMG_6306.jpg?1603076987)

I used these "low volt" staples here to fix an extension cable in place just below where it needs to plug into the Matrix Portal.&nbsp;

![circuitpython_IMG_6315.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/070/medium640/circuitpython_IMG_6315.jpg?1603077149)

![circuitpython_IMG_6317.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/071/medium640/circuitpython_IMG_6317.jpg?1603077192)

I need to cut away at the bottom of the foam board a bit more to allow for the cable to enter and for the Matrix Portal buttons to be accessible.

![circuitpython_IMG_6320.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/072/medium640/circuitpython_IMG_6320.jpg?1603077281)

![circuitpython_IMG_6322.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/073/medium640/circuitpython_IMG_6322.jpg?1603077294)

![circuitpython_IMG_6324.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/074/medium640/circuitpython_IMG_6324.jpg?1603077327)

I decided to add a little more spacing inside the canvas, adding 2mm spacers. I taped them onto the standoffs so they don't fall off as I'm trying to attach the nylon screws and foam board.

The extra spacing is to get the matrix panel close to the canvas to avoid a blurry image. In retrospect, I would have tried 4mm or 6mm spacers because, as you'll see, the images are a bit blurry with the 2mm spacers.

**Update:** I tried swapping in the 4mm and 6mm spacers, and they were not enough to eliminate the blurriness. In the end I used 2 of the long nylon standoffs on each mount point (and no spacers) to get a crisp image.

![](https://cdn-learn.adafruit.com/assets/assets/000/096/075/medium800/circuitpython_IMG_6329.jpg?1603077421)

Now the foam board can be screwed on, and then it's just a matter of attaching the offset clips, D-rings and hanging wire.

Note that I cut away a little bit of the foam on top to better fit the third offset clip.

&nbsp;

![circuitpython_IMG_6336.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/076/medium640/circuitpython_IMG_6336.jpg?1603077753)

![circuitpython_IMG_6333.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/077/medium640/circuitpython_IMG_6333.jpg?1603077923)

![circuitpython_IMG_6335.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/078/medium640/circuitpython_IMG_6335.jpg?1603077937)

![circuitpython_IMG_6340.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/079/medium640/circuitpython_IMG_6340.jpg?1603077979)

![circuitpython_IMG_6344.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/080/medium640/circuitpython_IMG_6344.jpg?1603078017)

![circuitpython_IMG_6347.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/081/medium640/circuitpython_IMG_6347.jpg?1603078034)

Now it should be ready to hang on the wall and run. As noted earlier, this one came out a little blurry, indicating the matrix panel is too far from the canvas.

![](https://cdn-learn.adafruit.com/assets/assets/000/096/082/medium800/circuitpython_IMG_6353.jpg?1603078083)

I'm going to take it apart again and adjust the spacing inside to get a crisper image....

# Use an art canvas to diffuse an RGB matrix

## Extra Notes

This page covers a few additional parts I found and things I learned which I didn't use directly but could have in some variation of the designs.

First, the M3 nylon screws and standoff kit was so useful that I did some searching on DigiKey for similar M3 parts and found these:

![](https://cdn-learn.adafruit.com/assets/assets/000/096/316/medium800/circuitpython_IMG_6372.jpg?1603514912)

On the right are the 6mm and 12mm standoffs from the kit Adafruit sells. On the left I'm showing examples of similar black nylon 6mm, 8mm and 10mm spacers that I found on DigiKey.

### Part: HEX STANDOFF M3 NYLON 6MM
quantity: 1
Hex Standoff Threaded M3 Nylon 0.236" (6.00mm) Black
[HEX STANDOFF M3 NYLON 6MM](https://www.digikey.com/en/products/detail/essentra-components/HTSN-M3-6-6-2/3813372)

### Part: HEX STANDOFF M3 NYLON 8MM
quantity: 1
Hex Standoff Threaded M3 Nylon 0.315" (8.00mm) Black
[HEX STANDOFF M3 NYLON 8MM](https://www.digikey.com/en/products/detail/essentra-components/HTSN-M3-8-6-2/3813385)

### Part: HEX STANDOFF M3 NYLON 10MM
quantity: 1
Hex Standoff Threaded M3 Nylon 0.394" (10.00mm) Black
[HEX STANDOFF M3 NYLON 10MM](https://www.digikey.com/en/products/detail/essentra-components/HTSN-M3-10-6-2/3813006)

These parts are fairly expensive to buy in small quantities, but if you need them, you need them!

A similar thing I also found at DigiKey is these M3 standoffs with screw parts at both ends, shown below.

### Part: HEX STANDOFF M3 NYLON 6MM
quantity: 1
Hex Standoff Threaded M3 Nylon 0.236" (6.00mm) Black
[HEX STANDOFF M3 NYLON 6MM](https://www.digikey.com/en/products/detail/essentra-components/HTSN-M3-6-3/3813362)

### Part: HEX STANDOFF M3 NYLON 8MM
quantity: 1
Hex Standoff Threaded M3 Nylon 0.315" (8.00mm) Black
[HEX STANDOFF M3 NYLON 8MM](https://www.digikey.com/en/products/detail/essentra-components/HTSN-M3-8-3/3813381)

### Part: HEX STANDOFF M3 NYLON 10MM
quantity: 1
Hex Standoff Threaded M3 Nylon 0.394" (10.00mm) Black
[HEX STANDOFF M3 NYLON 10MM](https://www.digikey.com/en/products/detail/essentra-components/HTSN-M3-10-3/3813002)

![](https://cdn-learn.adafruit.com/assets/assets/000/096/317/medium800/circuitpython_IMG_6381.jpg?1603515766)

## Additional panel/canvas pairings

I looked at several additional pairings of matrix panels and art canvases. Some of these will work great and others didn't pan out.

First, the 32x32 pixel panel with 6mm pitch shown below measures 190.5x190.5mm. The 64x64 panel with the 3mm pitch used in the third build of this guide is just a tiny bit larger, at 192x192mm. This means the 10x10 inch low profile canvases will work great with this 32x32 pixel panel.

### 32x32 RGB LED Matrix Panel - 6mm pitch

[32x32 RGB LED Matrix Panel - 6mm pitch](https://www.adafruit.com/product/1484)
Bring a little bit of Times Square into your home with this sweet 32 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/1484)
[Related Guides to the Product](https://learn.adafruit.com/products/1484/guides)
![Assembled and powered on 32x32 RGB LED Matrix Panel - 6mm pitch. The matrix lights up "Adafruit 32x32 *RGB*"](https://cdn-shop.adafruit.com/640x480/1484-00.jpg)

Continuing with the above idea, but scaling down a notch, the 2.5mm pitch 64x64 pixel panel is 160x160mm. That's exactly the same as this 5mm pitch 32x32 pixel panel.

### 32x32 RGB LED Matrix Panel - 5mm Pitch

[32x32 RGB LED Matrix Panel - 5mm Pitch](https://www.adafruit.com/product/2026)
Bring a little bit of Times Square into your home with this sweet 32 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/2026)
[Related Guides to the Product](https://learn.adafruit.com/products/2026/guides)
![Video of assembled and powered on 32x32 RGB LED Matrix Panel - 5mm pitch. The matrix displays swirling, psychedelic rainbow colors.](https://cdn-shop.adafruit.com/product-videos/640x480/2026-04.jpg)

I would really like to find a frame thinner than 10x10 inch for the 160x160mm panels.

I tried 2 variations of 8x8 inch canvases. They are described as essentially the same, but the 2-piece "value pack" includes canvases with thinner framing than the single canvas.

Unfortunately, this pairing did not work. It may be hard to see in the pictures here, but the 160x160mm panels are about 4-6mm too large to fit inside even the multi-pack 8x8 inch canvases.

![circuitpython_IMG_6655.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/545/medium640/circuitpython_IMG_6655.jpg?1603854661)

![circuitpython_IMG_6664.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/546/medium640/circuitpython_IMG_6664.jpg?1603854900)

![circuitpython_IMG_6668.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/547/medium640/circuitpython_IMG_6668.jpg?1603854944)

![circuitpython_IMG_6667.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/548/medium640/circuitpython_IMG_6667.jpg?1603854977)

However, the 8x8 inch canvases could be used with the smallest 32x32 pixel matrix, with 4mm pitch.

### 32x32 RGB LED Matrix Panel - 4mm Pitch

[32x32 RGB LED Matrix Panel - 4mm Pitch](https://www.adafruit.com/product/607)
Bring a little bit of Times Square into your home with this totally adorable 5 inch square 32 x 32 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...

In Stock
[Buy Now](https://www.adafruit.com/product/607)
[Related Guides to the Product](https://learn.adafruit.com/products/607/guides)
![Powered 32x32 RGB LED Matrix Panel - 4mm Pitch. Matrix emits blue-green LEDs.](https://cdn-shop.adafruit.com/640x480/607-07.jpg)

The 8x8 inch canvases have about 6x6 inch of interior to work with. The panel above is 5x5 inch (128x128mm), so it will fit.

![](https://cdn-learn.adafruit.com/assets/assets/000/096/549/medium800/circuitpython_IMG_6674.jpg?1603855239)

Finally, I looked at one additional possible pairing: a 6x11 inch low-profile canvas for the 3mm pitch 64x32 pixel panel (used in the second build of this guide).

Unfortunately, this won't work because the panel is 7.5x3.8 inches, but there is only about 3.3 inches of interior space in the second dimension, so it won't fit.

![circuitpython_IMG_6677.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/550/medium640/circuitpython_IMG_6677.jpg?1603855503)

![circuitpython_IMG_6678.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/551/medium640/circuitpython_IMG_6678.jpg?1603855533)

![circuitpython_IMG_6686.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/552/medium640/circuitpython_IMG_6686.jpg?1603855570)

![circuitpython_IMG_6691.jpg](https://cdn-learn.adafruit.com/assets/assets/000/096/553/medium640/circuitpython_IMG_6691.jpg?1603855605)

## Adding flair

The Matrix Portal has a STEMMA-QT port, a JST 3-pin header and several GPIO breakouts, so there are a lot of possibilities for adding extra magic into (or on the front of) your canvas.

In the picture below I'm mocking up an idea where I will string a flexible RGBW LED strip around the inside of a 10x10 inch (low-profile, multi-pack) canvas and place one of the 160x160mm matrix panels in the middle.

![](https://cdn-learn.adafruit.com/assets/assets/000/096/571/medium800/circuitpython_IMG_6713.jpg?1603938382)

I'm using a JST adapter cable to connect the Matrix Portal to the flexible LED strip.&nbsp; These parts are shown below:

### NeoPixel RGBW Neon-like Flex Strip - Cool White 5500K - 1 meter

[NeoPixel RGBW Neon-like Flex Strip - Cool White 5500K - 1 meter](https://www.adafruit.com/product/4689)
Peep this **NeoPixel&nbsp;RGBW Neon-like&nbsp;LED Flex Strip with Silicone Tubing**! OK its a bit of a mouthful but check out the beautiful pics! It has a diffused _look_ like neon, but without the need for expensive transformers, glass tubing, inert gasses, or a Las Vegas...

In Stock
[Buy Now](https://www.adafruit.com/product/4689)
[Related Guides to the Product](https://learn.adafruit.com/products/4689/guides)
![NeoPixel RGBW Neon-like Flex Strip with Cool White 5500K LEDs, lighting up rainbow and white](https://cdn-shop.adafruit.com/product-videos/640x480/4689-00.jpg)

### STEMMA JST PH 2mm 3-Pin to Female Socket Cable - 200mm

[STEMMA JST PH 2mm 3-Pin to Female Socket Cable - 200mm](https://www.adafruit.com/product/3894)
This cable will let you turn a JST PH 3-pin cable port into 3 individual wires with high-quality 0.1" female header sockets on the end. We're carrying these to match up with our Hallowing, for extending and connecting sensors or LEDs - and the wires are even color coded!

<a...></a...>

In Stock
[Buy Now](https://www.adafruit.com/product/3894)
[Related Guides to the Product](https://learn.adafruit.com/products/3894/guides)
![Angled shot of STEMMA JST PH 3-Pin to Female Header Cable - 200mm.](https://cdn-shop.adafruit.com/640x480/3894-03.jpg)

 **Update** :&nbsp; The arrangement above did not work.&nbsp; The NeoPixel strip acts very flakey, in a way that suggests there isn't enough power going through the JST connection.

I tried something else using the same parts. As shown below, I cut the red and black wires on the JST adapter, near the header. Then I stripped the red and black wires and connected the red wire to the 5V screw terminal and the black wire to the GND screw terminal.

![](https://cdn-learn.adafruit.com/assets/assets/000/096/737/medium800/circuitpython_IMG_6777.jpg?1604440609)

This solved the power issue.&nbsp; There is still an issue where the matrix panel LEDs flicker when the NeoPixel strip is being updated. I'm not sure how to fix that, but otherwise it looks really good!

![](https://cdn-learn.adafruit.com/assets/assets/000/096/738/medium800/circuitpython_IMG_6812.jpg?1604440844)

There are lots and lots of other "flair" possibilities, especially with the STEMMA-QT port. Another thing I'd like to try is placing one (or both) of these ranging sensors on the front of the canvas, and then use them to detect presence of someone in front of the canvas.

### Adafruit VL6180X Time of Flight Distance Ranging Sensor (VL6180)

[Adafruit VL6180X Time of Flight Distance Ranging Sensor (VL6180)](https://www.adafruit.com/product/3316)
The **VL6180X** (sometimes called the **VL6180** ) is a Time of Flight distance sensor like no other you've used! The sensor contains a very tiny laser source, and a matching sensor. The VL6180X can detect the "time of flight", or how long the laser light...

In Stock
[Buy Now](https://www.adafruit.com/product/3316)
[Related Guides to the Product](https://learn.adafruit.com/products/3316/guides)
![Video of a white hand hovering over a Adafruit VL6180X Time of Flight Distance Ranging Sensor thats connected to a white breadboard reading the range of motion of the white hand. ](https://cdn-shop.adafruit.com/product-videos/640x480/3316-06.jpg)

### Adafruit VL53L0X Time of Flight Distance Sensor - ~30 to 1000mm

[Adafruit VL53L0X Time of Flight Distance Sensor - ~30 to 1000mm](https://www.adafruit.com/product/3317)
The **VL53L0X** is a&nbsp;_Time of Flight_&nbsp;distance sensor like no other you've used! The sensor contains a very tiny invisible laser source, and a matching sensor. The VL53L0X can detect the "time of flight", or how long the light has taken to bounce...

In Stock
[Buy Now](https://www.adafruit.com/product/3317)
[Related Guides to the Product](https://learn.adafruit.com/products/3317/guides)
![Video of a white hand hovering over a Adafruit VL53L0X Time of Flight Distance Sensor that's connected to a white breadboard reading the range of motion of the white hand. ](https://cdn-shop.adafruit.com/product-videos/640x480/3317-03.jpg)

... I could keep on going with flair ideas, but I think it's time to end this guide. If you're interested in more projects with wall hanging computers on canvas, using a Raspberry Pi for the system controller, check out [this other guide](https://learn.adafruit.com/compucanvas-101 "CompuCanvas 101") I wrote on the topic.


## Featured Products

### Adafruit Matrix Portal - CircuitPython Powered Internet Display

[Adafruit Matrix Portal - CircuitPython Powered Internet Display](https://www.adafruit.com/product/4745)
Folks love our [wide selection of RGB matrices](https://www.adafruit.com/category/327) and accessories, for making custom colorful LED displays... and our RGB Matrix Shields and FeatherWings can be quickly soldered together to make the wiring much easier. But what if we made it...

In Stock
[Buy Now](https://www.adafruit.com/product/4745)
[Related Guides to the Product](https://learn.adafruit.com/products/4745/guides)
### 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)
### 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)
### 64x64 RGB LED Matrix - 3mm Pitch

[64x64 RGB LED Matrix - 3mm Pitch](https://www.adafruit.com/product/4732)
Winter time can be rough in the city. The sky is gray. The weather&nbsp;is unpredictable. So slough off those seasonal blues with&nbsp;some&nbsp;Times Square razzle dazzle from this sweet, ultra-high-density **64x64 RGB LED Matrix**. These panels are typically used to make video...

In Stock
[Buy Now](https://www.adafruit.com/product/4732)
[Related Guides to the Product](https://learn.adafruit.com/products/4732/guides)
### 64x64 RGB LED Matrix - 2.5mm Pitch

[64x64 RGB LED Matrix - 2.5mm Pitch](https://www.adafruit.com/product/3649)
Winter time can be rough in the city. The sky is gray. The weather&nbsp;is unpredictable. So slough off those seasonal blues with&nbsp;some&nbsp;Times Square razzle dazzle from this sweet, ultra-high-density **64x64 RGB LED Matrix**. These panels are typically used to make video...

In Stock
[Buy Now](https://www.adafruit.com/product/3649)
[Related Guides to the Product](https://learn.adafruit.com/products/3649/guides)
### Right Angle USB Type C Adapter - USB 3.1 Gen 4 Compatible

[Right Angle USB Type C Adapter - USB 3.1 Gen 4 Compatible](https://www.adafruit.com/product/4432)
As technology changes and adapts, so does Adafruit, and speaking of _adapting_, this **_right angle_** &nbsp;_ **adapter** _&nbsp;is USB C socket-to-plug.

USB C is the latest industry-standard connector for transmitting...

In Stock
[Buy Now](https://www.adafruit.com/product/4432)
[Related Guides to the Product](https://learn.adafruit.com/products/4432/guides)
### USB C to USB C Cable - USB 3.1 Gen 4 with E-Mark - 1 meter long

[USB C to USB C Cable - USB 3.1 Gen 4 with E-Mark - 1 meter long](https://www.adafruit.com/product/4199)
As technology changes and adapts, so does Adafruit! Rather than the regular USB A, this cable has&nbsp; **USB C to USB C** &nbsp;plugs!

USB C is the latest industry-standard connector for transmitting data&nbsp;_and_&nbsp;power. Like Lightning and MagSafe cables, USB C...

In Stock
[Buy Now](https://www.adafruit.com/product/4199)
[Related Guides to the Product](https://learn.adafruit.com/products/4199/guides)
### USB C to USB C Cable - USB 3.1 Gen 4 with E-Mark - 6" long

[USB C to USB C Cable - USB 3.1 Gen 4 with E-Mark - 6" long](https://www.adafruit.com/product/4198)
As technology changes and adapts, so does Adafruit! Rather than the regular USB A, this cable has&nbsp; **USB C to USB C** &nbsp;plugs!

USB C is the latest industry-standard connector for transmitting data&nbsp;_and_&nbsp;power. Like Lightning and MagSafe cables, USB C...

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

## Related Guides

- [Adafruit MatrixPortal M4](https://learn.adafruit.com/adafruit-matrixportal-m4.md)
- [AdaBox 016](https://learn.adafruit.com/adabox016.md)
- [Matrix Portal M4 Boxing Interval Timer](https://learn.adafruit.com/matrix-portal-m4-boxing-interval-timer.md)
- [Matrix Portal New Guide Scroller](https://learn.adafruit.com/matrix-portal-new-guide-scroller.md)
- [RGB Matrix Automatic YouTube ON AIR Sign](https://learn.adafruit.com/rgb-matrix-automatic-youtube-on-air-sign.md)
- [Network Connected RGB Matrix Clock](https://learn.adafruit.com/network-connected-metro-rgb-matrix-clock.md)
- [Adafruit Protomatter RGB Matrix Library](https://learn.adafruit.com/adafruit-protomatter-rgb-matrix-library.md)
- [RGB LED Matrices with CircuitPython](https://learn.adafruit.com/rgb-led-matrices-matrix-panels-with-circuitpython.md)
- [Matrix Portal Creature Eyes](https://learn.adafruit.com/matrix-portal-creature-eyes.md)
- [Raspberry Pi LED Matrix Display](https://learn.adafruit.com/raspberry-pi-led-matrix-display.md)
- [RGB Matrix Portal Room CO2 Monitor](https://learn.adafruit.com/matrix-portal-room-co2-monitor.md)
- [Adafruit RGB Matrix FeatherWings](https://learn.adafruit.com/rgb-matrix-featherwing.md)
- [Scroll an SMS Text Message on your RGB Matrix](https://learn.adafruit.com/scroll-an-sms-text-message-on-your-rgb-matrix.md)
- [Animated GIF Player for Matrix Portal](https://learn.adafruit.com/animated-gif-player-for-matrix-portal.md)
- [Weather Display Matrix](https://learn.adafruit.com/weather-display-matrix.md)
- [Adafruit 3.5" 480x320 TFT FeatherWing](https://learn.adafruit.com/adafruit-3-5-tft-featherwing.md)
