Introduction: 64x32 RGB LED Matrix With Arduino Mega

I enjoyed learning how to use LED matrix and addressable LEDs. They are a lot of fun when you figure out how it comes together. I have put together this tutorial explaining each steps in a simple and coherent manner for others to learn. So enjoy. Let me know if you have any questions.


RGB LED Matrix Module 64x32 pixel

Arduino Mega

Jumper Cables

USB Cable

USB power adapter with 2 input plugs

Step 1: The 64x32 RGB LED Matrix Module

Product Name
RGB LED Matrix Module P4 SMD2121 256x128mm 64x32 pixel

Pixel pitch: 4mm Individual

LED Size: SMD2121 2.1 x 2.1 mm

Indoor full colour Surface Mount Device

Max power consumption: 20W

Avg power consumption: 6.7W

Input voltage: DC5V

Step 2: Connecting the 64x32 LED Matrix Panel With Arduino Mega

Follow the diagram to connect pins to jumper cable connector.

You must attach a 5V power into the power input for the model to display properly. With power only from the board is not enough because some of the LED and colours do not turn on with full brightness.

Reference website:

Another instruction with a hookup table - Lots of details.

Step 3: Why Use Arduino Mega?

Arduino Mega has 256 KB of flash memory which is suitable for displaying many bitmaps on the LED matrix. The Arduino Uno has only 32KB of flash memory and is limited for use.

  • Arduino Uno - 32 KB Flash Memory
  • Arduino Mega - 256 KB Flash
  • ESP8266 D1 mini - 80 KiB
  • ESP-32S WROOM-32 - 4MiB Flash

Step 4: Programming for the LED Matrix Panel

Download and install Arduino software from the official website.

Install the RGB Matrix Panel library from Arduino library manager or GitHub website.

Install the Adafruit GFX Library from Arduino library manager or GitHub website.

Install Adafruit BusIO from Arduino library manager or GitHub website.

Open up example codes by going to File > Examples > RGB Matrix Panel > Pick from list.

Connect Arduino Mega to computer. Select the correct device and port. Upload and run the code.

Step 5: Setup RGB Matrix Panel Library Examples for the 64x32 Module

The examples in the library were made for smaller LED matrix modules. To run it on the 64x32 module we need to modify the code.

For all the examples in the library:

  • colorwheel_32x32
  • colorwheel_progmem_32x32
  • PanelGFXDemo_16x32
  • plasma_16x32
  • plasma_32x32
  • scrolltext_16x32
  • testcolors_16x32
  • testshapes_16x32
  • testshapes_32x32
  • testshapes_32x64

For each of the examples, the following changes needed to be made.
Add the line:

#define D A3

Modify the line:

RGBmatrixPanel *matrix = new RGBmatrixPanel(A, B, C, CLK, LAT, OE, true);

Adding D after C and 64 after true. The line should be like this.

RGBmatrixPanel *matrix = new RGBmatrixPanel(A, B, C, D, CLK, LAT, OE, true, 64);

Step 6: Convert Bitmap Images for the 64x32 LED Matrix Panel

Convert bitmap image to c file by going here:

Add the bitmap code to the top section.

Add the follow to “void loop() {}” function:

matrix->drawRGBBitmap(0, 0, (const uint16_t *)surface, 64, 32);



matrix->clear(); //Set image to black

This function is used to draw the bitmap.
matrix->drawRGBBitmap(x, y, bitmap, w, h);

  • x and y is the position on the board.
  • w and h is the width and height.
  • bitmap is the reference to the bitmap code at the top.

Get my final Arduino code here on GitHub:

Arduino Code on GitHub