Introduction: How to Make a Diffusor for Your LED Matrix

Hi, in this Instructable I want to show you how to create your own diffusor for a LED Matrix. To do this we will use a 3D printer and OpenSCAD. In this tutorial I will use a LOL-Shield by Jimmie ( ) also I will explain, how to design a diffusor for different matrix sizes and shapes.

As I recently was at the 31C3 in Hamburg i got a LOL-Shield from Jimmie. This shield is holding 126 LED´s which are Charlieplexed. After coding some animations and a game on it I thought that the LED´s where too bright. Because I wanted to keep the greyscale ( dimming ) of the matrix I decided to design and build a diffusor.


Step 1: Requirements


A LED Matrix

Black Filament

White Filament ( or in the color your LED Matrix is )


A 3D Printer ( Single Extruder )

A working bench



Additional: A mallet or a rubber mallet



Step 2: Measure the Matrix

Our first step is to measure the matrix.

What we need:

Total lengh ( with planned border )

Total width ( with planned border )

Total height ( optional LED height + 3 - 4 mm )

Led size ( normally 3 or 5 mm sometimes 8 or 1 mm )

Spacing between Led`s

Optional you can measure the PCB to add holders / screws / a housing

I didnt do it, I only added spacers ( you will see later )

So the measurements of my board where:

Lengh: 70mm ( boarder 1 mm each )

Width: 42 ( boarder 1 mm each )

Height: 6.5 mm

Led size: 3 mm

Spacing: x = 1.6 y = 2 (i got not a square matrix)

Step 3: Generate Frame

Now we have to generate the frame in OpenSCAD. I wrote a simple code for that, you can fill in your measurements in the top and then press F5 to preview your frame. If you are good with it you can press F6 to render it and then File >> Export >> As STL to create a printable file.


lengh = 70;

width = 42;

height = 6.5;
numberx = 9;

numbery = 14;

boarders = 1;

led_size = 3;

spacingx = 1.6;

spacingy = 2;







for(i = [0:numberx -1]){

for(j = [0:numbery -1]){

translate([(i*(led_size+spacingx))+boarders,(j*(led_size+spacingy))+boarders,-1]) cube([led_size*1.025,led_size*1.025,10]);

} } } }

Step 4: Generate Diffusor

Now we need to generate the diffusor. The diffusor is ( are ) tiny white squares which you put into the frame, to generate them we also have a OpenSCAD code. Fill the Led size in the following code.

Change the height to get the darkening effect you desire, 2 worked best for me.

led_size = 3;

height = 2;

numberx = 9;

numbery = 14;

for( i = [0:numberx-1]){

for(j = [0:numbery-1]){



} }

Step 5: Print It

Now we need to print it, I printed the frame in black and the diffusor in white.

Infill: 50%

Step 6: Assemble It

Now we need to assemble it, this is the most annoying part but it is worth it ;)

I did it by pressing the white squares into the frame and then pressing the frame onto the table. Maybe you want to use a rubber mallet.

Please comment how you did it!

After that press it onto the matrix, it should fit perfectly and stay in place.

Step 7: Finish!

And now you have your super awesome led matrix diffuser, Congratulations! :)

I hope you enjoied this Instructable, please vote for me and check out Jimmie´s website for the LOL-Shield.

You can find this project also on Github:

Protected Contest

Participated in the
Protected Contest

3D Design Contest

Participated in the
3D Design Contest

Make it Glow!

Participated in the
Make it Glow!