Mount Bi-color LED Matrix Driver Module onto Arduino footprint-compatible board


The Bi-color 8x8 LED Matrix Driver Module from jolliFactory is not designed for use on just a specific micro-controller board but for the general micro-controller boards out there. Above shows an assembled Bi-color LED Matrix Driver Module with the LED Matrix not installed onto it yet.

Arduino micro-controller board is one of the most popular microcontroller boards currently used on a wide variety of projects and there are lots of Arduino shields which are boards that can be plugged on top of the Arduino PCB to extend its capabilities. Use of shields dramatically reduces the number of interconnect wires needed on most projects which is great during prototyping.

Our Bi-color 8x8 LED Matrix Driver Module is not designed to be an Arduino shield but we will show you how to adapt it to mount on Arduino footprint-compatible boards to control it directly without use of interconnecting wires.

LED Matrix Driver Module Assembly for mounting on Arduino Board

The jolliFactory Bi-color 8x8 LED Matrix Driver Module comes as a kit. Assemble the LED Matrix Driver Module Kit according to the youTube video below but leave out the steps to solder the J3 female angle header and J4 male angle header.

Instead of the J3 female angle header and J4 male angle header, solder a 3 pin male header at J3 VCC, GND and N.C. (Not Connected) and another 3 pin male header at J4 DIN, CLK and LOAD as shown in the picture below.

Mount LED Matrix Driver Module on Arduino Board

To mount the LED Matrix Driver Module on any Arduino footprint-compatible boards, align the J3 header pins VCC, GND and N.C.  with the Arduino board’s POWER header pins labelled as 5V, GND and GND respectively and J4 header pins DIN, CLK & LOAD pins with Arduino board’s DIGITAL header pins 7, 6 and 5 respectively.

Below shows a LED Matrix Driver Module mounted on a chipKit UNO32 Arduino compatible board.

If you intend to daisy-chain more Bi-color LED Matrix Driver Modules to the mounted module, you will need to solder another 6 pin female angle header at J3 of the mounted module as shown below.
The pins for VCC, GND and N.C. on this female header will need to be trimmed and solder applied to bridge the pins with the corresponding pins on the 3 pin male straight header at J3.

See the following YouTube Video on how the Bi-color LED Matrix Driver Module is mounted on a Arduino footprint-compatible board and daisy-chained with another 3 modules to form a 4 module Scrolling Text Display.

Arduino Sketch

Visit the link below for a sketch to scroll text message on the LED Matrix Driver Module mounted on an Arduino board.

<Download Arduino Sketch - jolliFactory_4X_Bicolor_ScrollText_V1_0.pde>

*** Note that the pins used for DIN, CLK and LOAD in this sketch is different from that used in the 7 Bi-color LED Matrix scrolling text display example.

7 Bi-color LED Matrix Scrolling Text Display


Here, we show how a 7 Bi-color 8x8 LED Matrix Scrolling Text Display is built in which messages and commands can be sent to it via Bluetooth using an Android Smart Phone. Logically, any devices capable of sending text messages via Bluetooth may be adapted to work with the display.

To build this project, basic electronics component soldering skill and some knowledge on using the Arduino or Arduino based micro-controller is required.

The reason for building a 7 LED Matrices long display is that it is quite adequate for ease of reading scrolling text and also because the largest tinted acrylic sheet easily available in Hobby or Art shops is 18 inches by 12 inches which is just the right length for making the enclosure for the display as each LED matrix is around 60mm x 60mm in size.

You may view the following YouTube video to see what we are building.

LED Matrix Driver Module Assembly

The display is build using seven of the Bi-color (Red and Green) LED Matrix DriverModule kits from jolliFactory. Each of these modules uses two MAX7219 Display Driver ICs to drive a Bi-color LED Matrix. These ICs are excellent because they take a lot of work off the micro-controller and simplify the wiring and logic design. Moreover, there is a ready-made Arduino library for this IC. You can daisy-chain up to four of these Bi-color LED Matrices using only three output pins on the micro-controller for the interface. As our display is make up of seven Bi-color LED Matrices, we need an additional three output pins on the micro-controller to interface with the other three daisy-chained LED Matrices.

You can find this Bi-color LED Matrix Driver Module kit from here with information on assembly of the kit.

This kit comes with all through-hole components and someone with basic soldering skill should be able to assemble it without much difficulty.

Below shows an assembled Bi-color LED Matrix Driver Module with the LED Matrix not installed onto it.


After all the kits are completed, they are connected together with the micro-controller as shown below (LED Matrices not installed for better view). Note the header for J3 is modified for the fourth LED Matrix Driver module from the right such that only VCC and GND are connected to the fifth module. This is because the first four daisy-chained modules from the right shall be driven by 3 output pins (Digital pins 2, 3 & 4) from the micro-controller and the last three daisy-chained modules shall be driven by another 3 output pins (Digital pins 5, 6 & 7).


Here, we use the chipKit UNO32 micro-controller board which is based on the popular Arduino Open Source hardware platform to drive the display. However, you may instead use any suitable Arduino boards if slower scrolling speed is acceptable to you. The chipKit UNO32 board is much more capable of producing faster and better scrolling text effect than Arduino boards of around the same price range.

We use a HC-07 Bluetooth Wireless Serial Port Module connected to the TX and RX pin of the micro-controller for Bluetooth communications between the display and the Android Smart Phone. This Bluetooth Wireless Serial Port Module is not expensive, easy to work with and quite easily available from online shops. You may instead use any Bluetooth Wireless Serial Port Modules you are familiar with.

Note the use of 10Kohms pull-down resistors on the DATA IN, CLK and LOAD input pins. When power is first applied to the micro-controller or when they are reset, their I/O lines float. The MAX7219 can see this as valid data and display garbage until the micro-controller gains control. The pull-down resistors prevent these problems.

Arduino Sketch

Thankfully, there is an excellent library that has been specifically written for the MAX7219 which greatly simplifies the sketch – the LedControl library. You will need to download and install the library.
See the following link for more information about this library and to download the library.

*** Do note that all the examples that come with the library cater to single color LED Matrix driven by a single MAX7219 IC each and needs to be adapted for use with our Bi-color LED Matrix Driver Modules which is using 2 MAX7219 ICs for each module. Otherwise, there may be some form of 'ghosting' on the displays and may be mistaken to be a hardware issue.

You may also want to check out the original LedControl documentation for more details.

The micro-controller needs to be loaded with the Arduino sketch to run the display.

Download the Arduino sketch below which is used in this project. You may amend and enhance the sketch to suit your project.

** Note that before downloading sketch to the micro-controller, the connections to the TX and RX pins for the HC-07 Bluetooth Wireless Serial Port Module must be removed for the download to be successful.

Testing the display 

Install the free Bluetooth spp pro Apps onto your Android Smart Phone, power up the display and establish Bluetooth communications between them. Then set up the Bluetooth spp pro Apps buttons for sending messages and commands accordingly.

Below shows some screenshots of the Bluetooth spp pro Apps.

See some examples of how we set up the configurable 'ClickMe' buttons for testing below:

Btn name: RED
Send val: (100)Scrolling . . .

Btn name: GREEN
Send val: (200)Scrolling . . .

Btn name: ORANGE
Send val: (300)Scrolling . . .

Btn name: RED*
Send val: (100)*

Btn name: GREEN*
Send val: (200)*

Btn name: ORANGE*
Send val: (300)*

Btn name: Speed Up
Send val: (00>)*

Btn name: Speed Down
Send val: (00<)*

Btn name: Dimmer
Send val: (0<0)*

Btn name: Brighter
Send val: (0>0)*

Btn name: jolliFactory
Send val: Powered by jolliFactory

Test the display by clicking on the buttons to send messages and commands to the display.

If you do not have  a Bluetooth Wireless Serial Port Module connected, you may test the display by sending messages and commands via the Arduino's Serial Monitor.

Display Enclosure

We will not delve into the detail on building the display enclosure here. We used a 2mm thick blue tinted acrylic strip for the display front protective cover which is bent using a self-made strip heater and another black opaque acrylic strip for the back cover. The LED Matrix Driver Modules are secured with ¾ inch stand-offs to the back cover and we managed to place the micro-controller and Bluetooth wireless Serial Port Module below them. The result is a compact 7 LED Matrix Scrolling Text Display controlled via Bluetooth.