Comments: RGB Panel Hookup Guide

Pages

Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • Member #139693 / about 5 years ago / 2

    If that inspires anyone, here's what I was able to build with 3 panels (96x64) and an ESP32: http://marc.merlins.org/perso/arduino/post_2019-04-08_Clubbing_-EDM-Festival-and-Burning-Man-LED-Pants-and-Shirt-v4-on-ESP32-with-RGBPanels-and-SmartMatrix_GFX.html

  • Member #1637542 / about 3 years ago / 1

    Can someone point me to a utility for generating custom arrays? None of the ones Ive found seem to work for RGB displays

  • Member #139693 / about 5 years ago / 1

    While it's fun to use an arduino mega for smaller RGB Panels, by the time you hit 32x64, and especiallly 64x64 and above, you'll want a teensy or an ESP32, which work best with SmartMatrix.

    If you have GFX based code, or would like to port FastLED Matrix code to RGB Panels, you can use this lib: https://github.com/marcmerlin/SmartMatrix_GFX while this page gives more details on how teensy vs ESP32 and how it all fits together: http://marc.merlins.org/perso/arduino/post_2019-04-01_SmartMatrix_-SmartMatrix-Shield-v4-for-Teensy_-ESP32-shield-with-level-shifter_-and-SmartMatrix_GFX.html Have fun hacking!

  • ------------------------------ Tech Support Tips/Troubleshooting/Common Issues ------------------------------

    Wrong Pin Definition

    If you are using the example code with Adafruit, make sure that you wire and define the pins correctly. This is a common issue. Otherwise, the code will not control the RGB LEDs correctly. Make sure to change the CLK and LAT pin definitions.

    1.) When using the 16x32 panel with the ATmega328P, you would change:

    #define CLK 8  // MUST be on PORTB! (Use pin 11 on Mega)
    #define LAT A3
    #define OE  9
    #define A   A0
    #define B   A1
    #define C   A2
    

    to:

    #define CLK 11  // MUST be on PORTB! (Use pin 11 on Mega) <---CHANGE!
    #define LAT 10  // <---CHANGE!
    #define OE  9
    #define A   A0
    #define B   A1
    #define C   A2
    

    2.) When using the 32x32 panel with the ATmega328P, you would change:

    // If your 32x32 matrix has the SINGLE HEADER input,
    // use this pinout:
    #define CLK 8  // MUST be on PORTB! (Use pin 11 on Mega)
    #define OE  9
    #define LAT 10
    #define A   A0
    #define B   A1
    #define C   A2
    #define D   A3
    

    to:

    // If your 32x32 matrix has the SINGLE HEADER input,
    // use this pinout:
    #define CLK 11  // MUST be on PORTB! (Use pin 11 on Mega) <---CHANGE!
    #define OE  9
    #define LAT 10
    #define A   A0
    #define B   A1
    #define C   A2
    #define D   A3
    

    Otherwise, you will probably see this:

    If you jiggle the wires, you might see this:

    Wrong Pin Connections?

    Make sure you wire to the Arduino to the LED matrix correctly. You can blow out the LED drivers on the RGB matrix if the wiring is incorrect. There was one case where customer had flipped the ground and blue pins, resulting in blowing out the chip. Adafruit has a tutorial also, connectors are the same but they show one image of the cable connector and the connector on the LED matrix. This probably confused the customer and had the connections flipped.

    Hardware Hookup w/ the Arduino Mega

    Most of the wire connections are the same as stated in the table for the hardware hookup https://learn.sparkfun.com/tutorials/rgb-panel-hookup-guide/hardware-hookup with the exception for pins R0, G0, B0, R1, G1, and B1 . The reason is due to the way those pins are defined in the library [explained on line 50 of the RGBmatrixPanel.cpp file https://github.com/adafruit/RGB-matrix-Panel/blob/master/RGBmatrixPanel.cpp ]. Make sure that you are connecting to the correct pins:

    Panel Pin Label <=> Panel Connector Pin # <=> Arduino Uno Pin <=> Arduino Mega Pin  
    R0              <=>           1           <=>         2       <=>          24
    G0              <=>           2           <=>         3       <=>          25
    B0              <=>           3           <=>         4       <=>          26
    ...
    R1              <=>           5           <=>         5       <=>          27
    G1              <=>           6           <=>         6       <=>          28
    B1              <=>           7           <=>         7       <=>          29
    .
    .
    .
    

    If you do not connect to the pins correctly for the Arduino Mega, the LED Panel will not light up correctly. You might see LEDs turning on randomly.

    Loose Connections

    When testing the RGB LED panel with the RGB Panel example code, everything was fine except when I unplugged and plugged in a wire from the RGB LED matrix to one of the Arduino I/O pins. I saw some flickering also on the pixels when the pin was not completely in the Arduino Uno's female header pins. I doubt the code would damage the RGB LED matrix panel but if customers see this, make sure that their connection is solid. If the connection and wires are good, the panel is blown out from the wrong connection.

    Uploading

    When uploading you might see the LED matrix display show the LEDs scroll random colors like below. This is normal. :

    Only Seeing Mostly Red?

    You might not be powering the LED matrix properly. Check your power supply. If the LED display is not being powered sufficiently, it will pull some power from the microcontroller to partially light up the LEDs.

    Additional Project Examples

    Hover Pong with ZX Sensors [ https://github.com/ShawnHymel/HoverPong/tree/master/HoverPong ]

  • Tom Young / about 9 years ago / 1

    Why does the clock have to be on PORTB?

  • Member #625408 / about 9 years ago / 1

    Is there a page for the code for the etch-a-sketch? I see that there is sample code for the Serial Paint, but I can't seem to find anything about the 2 knob etch-a-sketch? Would appreciate some help, thanks!


If you've found an issue with this tutorial content, please send us your feedback!