How to Make an Individually Addressable LED Matrix Sign

Picture of How to Make an Individually Addressable LED Matrix Sign
A few days ago, Adafruit posted a blog about their new NeoMatrix library.  They don't have any tutorials up, but linked to their github for anyone who just can't wait can go ahead and have a hack at it.  So last night I pulled their code to my machine, soldered together some 60-LED density individually addressable strips that I had lying around, and voila:

Remove these adsRemove these ads by Signing Up

Step 1: Solder together some LED strips into a matrix

Picture of Solder together some LED strips into a matrix
Adafruit is awesome.  The NeoMatrix library gives you several options for setting up your LED matrix.  As you solder your LED strips together, you'll have to match up their physical configuration with what you have in your code.  Here is an example of how I configured mine.

When you download the code from github, you'll see a folder called "examples".  Make sure this folder is in your "Arduino" folder (NEXT TO "libraries"--NOT inside of "libraries").  Make sure you download NeoMatrix AS WELL AS NeoPixel and GFX, and put them all in your "libraries" folder.  Check the image of my folder structure to make sure yours is similar. 

Now that your code is in the right place, open "examples", and find "matrixtest".  Open this file up.

You'll see, near the top, the line of code to define your matrix object.  Here's mine:
Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(5, 7, 3,
  NEO_RGB            + NEO_KHZ800);

Here's what that code means:
Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(  = "build me a new matrix"
5 = "that is 5 pixels wide"
7 = "and 7 LED strips tall."
3 = "I will plug my blue data wire from my LED strips into pin 3 on my arduino."
NEO_MATRIX_TOP + NEO_MATRIX_LEFT = "The beginning of my strip, nearest the arduino, is at the top left corner of my matrix."
NEO_MATRIX_ROWS = "I'm orienting my strips horizontally, not vertically."
NEO_MATRIX_ZIGZAG = "I'm soldering my strips in a zigzag pattern, not a progressive pattern."
NEO_RGB = "My strips have RGB LEDs, not GRB LEDs."       
NEO_KHZ800 = "My strips work at 800KHz."  (These last two will be on the data sheet for the LED strips you bought.)

Note in the picture that I have 5 LEDs per strip on 7 strips.  My arduino is in the top left corner of the matrix.  My LED strips are horizontal, and I soldered them together in a "zigzag" pattern.

KingtarLED3 days ago

Is there anybody need individually addressable rgb led strips ?

spike-kent5 months ago
Great work, thank you. It has been a great help, I've just finished 30 x 10 pixel matrix.
I even worked out your puzzle :-)
Qtechknow9 months ago
Awesome!!! Can't wait to try this out on my RGB LED strips!!!

Get More Out of Instructables

Already have an Account?


PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!