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

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*"
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...
$44.95
In Stock

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

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.

If the framing was just 2mm thinner, I think it would fit.  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:

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.

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.

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

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

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.

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.

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

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

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

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

This guide was first published on Nov 10, 2020. It was last updated on Oct 07, 2020.

This page (64x32 pixel, 3mm pitch) was last updated on Oct 07, 2020.

Text editor powered by tinymce.