Arduino Projects

8×8 LED Matrix MAX7219 Control using Bluetooth and Arduino

8×8 led matrix Project Description:


In this tutorial, you will learn how to make your 8×8 led matrix moving display system using Max7219, Arduino Uno or Mega and HC-05 Bluetooth Module. This 8×8 moving display system will be controlled using the android cell phone application. The Bluetooth module used in this project is HC-05 but if you want you can also use HC-06 Bluetooth module.  Without any further delay let’s get started!

The components that we will need for this project are

  1. 8×8 led matrix
  2. Arduino Uno or Mega
  3. MAX7219
  4. Bluetooth Module HC-05 or HC-06
  5. Jumper wires
  6. Finally an android cell phone

Amazon Links:

Arduino Nano USB-C Type (Recommended)

12v Adaptor:

MAX7219 8X8 LED Matrix module:

Bluetooth Module: Hc-05:

Other Tools and Components:

ESP32 WiFi + Bluetooth Module (Recommended)

Top Arduino Sensors:

Super Starter kit for Beginners

Digital Oscilloscopes

Variable Supply

Digital Multimeter

Soldering iron kits

PCB small portable drill machines

*Please Note: These are affiliate links. I may make a commission if you buy the components through these links. I would appreciate your support in this way!

MAX7219 8×8 led matrix:

8x8 led matrix

We have a total of 5 input Pins. The green one is the clock, the yellow one is the CS “ Load Pulse “. The third Pin is the DIN “Data in”. The Black one is the Ground and the 5th one which is the red is the VCC 5 volts. Similarly, on the output side, we have the same number of Pins with the same names and in the same order. The only difference is that instead of the DIN its Dout. The black chip as you can see in the picture is the MAX7219.

The 8×8 led matrix is divided among the rows and columns. We have a total of 8 rows and 8 columns. Each row or column has 8 LEDs.

So 8×8 = 64

8×8 led matrix and Max7219 Interfacing with Arduino :

The interfacing of the MAX7219 is really simple.

  1. Connect VCC of the MAX7219 breakout board with the Arduino’s 5 volts.
  2. Connect the Ground of the MAX7219 with the Arduino’s Ground.
  3. Connect CK “Clock” pin of the MAX7219 with Pin number 10 of the Arduino.
  4. Connect CS pin of the board with Pin number 11 of the Arduino.
  5. And finally, connect DIN pin of the board with pin number 12 of the Arduino.

The rest of the connections is then really easy. Now to make a chain of the 8×8 led Matrix. Connect the output pins of one board with the input pins of the other and so on.

The Dout of the first board will be connected with the Din of the other board. Connect the remaining 4 pins in the same way.

8x8 led matrix

HC-05 Bluetooth Module:

8x8 led matrix

This is the HC-05 Bluetooth module, as you can see I have already connected some jumper wires so that it can be easily interfaced with the Arduino.

8x8 led matrix

It has a total of six male headers clearly labeled with





VCC and


The EN pin also has a push-button, which is used for activating the AT command mode, which I will explain in a minute. now before we interface the Bluetooth module with the Arduino, first let’s open a basic Arduino sketch consisting of the void setup and void loop functions.

8x8 led matrix

As you can see these functions have no coding. Before you upload this program first of all make sure that the Arduino is connected with the laptop, and the right board and right comport is selected, then click on the upload button and wait for a while.

  • Connect the en pin of the Bluetooth module with 3.3volt.
  • connect the VCC of the Bluetooth module with 5 volts.
  • connect the ground with the Arduino’s ground.
  • connect the RX pin of the Bluetooth module with the RX pin of the Arduino and
  • connect the tx pin of the Bluetooth module with the tx pin of the Arduino,

so we are done with the interfacing. Now for the AT commands watch video give at the end of this Article.

8x8 led matrix


Download the android application APK file BlueserialApp

8×8 led matrix project Testing:

After all the connections are done and the program has been uploaded, the next step will be to pair the Bluetooth module, then open the application and start sending the messages to the 8×8 led matrix.

8x8 led matrix

8×8 led matrix Arduino Programming:

This program is originally developed by Marcelo Moraes but I did some modifications in the code so that the 8×8 LED matrix can be controlled using an android cell phone. The mobile apk file down link is already provided.

8×8 led matrix Project Video Tutorial:

Engr Fahad

My name is Shahzada Fahad and I am an Electrical Engineer. I have been doing Job in UAE as a site engineer in an Electrical Construction Company. Currently, I am running my own YouTube channel "Electronic Clinic", and managing this Website. My Hobbies are * Watching Movies * Music * Martial Arts * Photography * Travelling * Make Sketches and so on...

Related Articles


  1. Hello sir,
    Good morning
    Your code is working perfectly but after I load the program in Arduino it’s print the horizontal data ( all 4*1 matrix print individual data)
    So, if possible then help me sir
    Thank you

      1. I checked the program as well as a connection but the error is still.
        What do I do?
        How to solve the printing error?
        If there is any other solution please suggest to me and if there is any other way to interfacing the same project then please suggest to me.

        Thank you so much for helping, suggestions and also for the contribution.

  2. hello sir! when i compile this code it is giving an error that ‘prog_uchar ‘ does name a type ..So, if possible then help me sir
    Thank you

    1. Use ” PROGMEM const unsigned char CH[] = { ” instead of ” PROGMEM prog_uchar CH[] = { ” . This change is due to difference between the old and new versions. That’s it. 🙂

  3. Arduino: 1.8.10 (Windows 10), Board: “Arduino Nano, ATmega328P”

    bluettoo:30:9: error: ‘prog_uchar’ does not name a type; did you mean ‘getchar’?

    PROGMEM prog_uchar CH[] = {


    C:\Users\slpsln\Documents\Arduino\bluettoo\bluettoo.ino: In function ‘void printCharWithShift(char, int)’:

    bluettoo:213:20: error: ‘CH’ was not declared in this scope

    memcpy_P(buffer, CH + 7*c, 7);


    C:\Users\slpsln\Documents\Arduino\bluettoo\bluettoo.ino:213:20: note: suggested alternative: ‘ZH’

    memcpy_P(buffer, CH + 7*c, 7);


    C:\Users\slpsln\Documents\Arduino\bluettoo\bluettoo.ino: In function ‘void printString(char*)’:

    bluettoo:238:22: error: ‘CH’ was not declared in this scope

     memcpy_P(buffer, CH + 7*c, 7);

    C:\Users\slpsln\Documents\Arduino\bluettoo\bluettoo.ino:238:22: note: suggested alternative: ‘ZH’

     memcpy_P(buffer, CH + 7*c, 7);

    Multiple libraries were found for “MaxMatrix.h”
    Used: C:\Users\slpsln\Documents\Arduino\libraries\MaxMatrix
    Multiple libraries were found for “SoftwareSerial.h”
    Used: C:\Program
    Not used: C:\Users\slpsln\Documents\Arduino\libraries\SoftwareSerial-master
    exit status 1
    ‘prog_uchar’ does not name a type; did you mean ‘getchar’?

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button