We have built quite a few projects using our jolliFactory designed Bi-color (Red and Green) LED Matrix Driver Module kits and have published them as instructables here. 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. These modules are designed to be chain-able so you may daisy-chain them together to form a longer display for your project.
Driving a Bi-color LED Matrix module using the MAX7219 ICs is much more difficult and tricky than driving a single color LED Matrix module.
Brohogan, the author of the article which can be found at http://playground.arduino.cc/Main/MultiplexMAX72xx have developed a technique to drive Bi-color LED matrix modules using MAX72xx ICs.
He created his original Life Clock in 2008. Recently, he discovered our Bi-color LED Matrix kit on Tindie. Since our kit really simplified construction and reduced cost, he revamped his original Life Clock and made into a kit to work with our kit set. If you are interested in Brohogan's Life Clock, you may check it here.
We at jolliFactory drew our inspiration from the article contributed by Brohogan and successfully came up with quite a number of interesting projects built using our Bi-color LED matrix kit. We are sure many others will benefit from what Brohogan have contributed to the community.
The following are some of our instructable projects built using our Bi-color LED Matrix kit:
- 7 Bi-color LED Matrix Scrolling Text DisplayArduino (SPI) 7 Bi-color LED Matrix Scrolling Text Display
- Voice Input Arduino Bi-color LED Matrix Scrolling Text Display (Bluetooth + Android)
- Arduino based Bi-color LED Matrix Audio Spectrum Visualizer
- Arduino based Bi-color LED Matrix Tetris Game
- Arduino based Bi-color LED Matrix Snake Game
- Arduino based Bi-color LED Matrix Pong Game
In this instructable, we will show you how to easily convert the jolliFactory Bi-color LED Matrix module (MAX72xx IC based) into a single color LED Matrix module and build a project with these modified modules.
There are already many single color LED Matrix modules (MAX72xx IC based) available, so you may be wondering why there is a need to degrade the jolliFactory Bi-color LED Matrix Module from bi-color to single color instead of just purchasing single color LED Matrix modules.
There are Arduino entry level hobbyists purchasing our kit sets for projects. Working on projects with single color LED Matrix modules is easier than bi-color LED Matrix modules which this group of hobbyists may find difficult to use.
Projects using single color LED Matrix modules can readily be found online for hobbyists to work on. Hopefully, through experimentation with these single color LED Matrix module projects, they could progress and then work on bi-color LED Matrix module projects. By easily converting these LED Matrix modules back to bi-color, they could then work on these projects without the need to make further purchases.
In this instructable, we are going to build an Arduino based clock cum temperature/humidity LED Matrix display with the modified modules based on one of the examples from the awesome Parola library created by Marco Colli. You may find more about the Parola library here.
You may view the following YouTube video to see what we are building.
For this project, you will need to be familiar with the Arduino platform, have basic electronics knowledge and some soldering skills.
Step 1: Building the Bi-color LED Matrix Driver Modules
We will be building a 7 LED Matrix long display here driven by an Arduino Nano. We will need 7 of the Bi-color (Red/Green) LED Matrix Driver Module Kits from jolliFactory. You can find this Bi-color LED Matrix Driver Module kit here. This kit comes with all through-hole components and someone with basic soldering skill should be able to assemble it without much difficulty.
See the following YouTube video on how to assemble the LED Matrix Driver Module Kit:
Step 2: Convert Bi-color LED Matrix Driver Module From Bi-color to Single Color
Converting the jolliFactory Bi-color LED Matrix modules from bi-color to single color is very simple. You just need to solder a jumper wire to the back of the module and remove one of the MAX7219 ICs.
To modify the module to become a single Red color LED Matrix module , solder a jumper wire between J3 DOUT and IC1 Pin 24 and remove the MAX7219 IC from IC2 socket as shown in the first picture above.
To modify the module to single Green color LED Matrix module, solder a jumper wire between J4 DIN and IC2 Pin 1 and remove the MAX7219 IC from IC1 socket as shown in the second picture above.
For our project, we will need 7 of these Bi-color LED Matrix modules and convert 3 of them for GREEN display and 4 for RED display.
Step 3: Building the Arduino Clock Cum Temperature/humidity LED Matrix Display
With the Bi-color LED Matrix modules modified for single color use, we are going to build an Arduino clock cum temperature and humidity display based largely on the Parola_Zone_TimeMsg.ino sketch from the Parola Library v2.1 example.
The Parola_Zone_TimeMsg sketch calls for a DS1307 clock module and a DHT11 temperature cum humidity module. However, for this project, we will be replacing the DS1307 clock module with a DS3231 clock module which is also suitable for use. The DS3231 is an extremely accurate I²C real-time clock (RTC) with an integrated temperature-compensated crystal oscillator.
The first picture above shows the wiring diagram on how the LED Matrix modules, the clock and temperature/humidity modules are connected to the Arduino Nano.
The second picture shows how the LED Matrix modules, clock module, temperature/humidity module and Arduino Nano are connected together using the JF Interface Board 1 which makes everything here modular and neat.
The example uses the Parola library's zone feature to display the time in one zone at the left hand side and the other information scrolling through in another zone on the right of the display. We shall be using a total of 7 Bi-color LED Matrix modules modified with 3 to display in GREEN and 4 to display in RED. The 3 GREEN LED Matrix modules shall display the time in the left zone and the 4 RED LED Matrix modules shall display the date, temperature and humidity information scrolling in the right zone.
Step 4: Programming the Arduino Board
We used Arduino IDE V1.05 for this project. The Arduino sketch used for this project is based largely on the Parola_Zone_TimeMsg.ino sketch from the Parola Library v2.1 example.
For this project, you will need to install the following Arduino libraries:
MD_Parola Library (Parola library v2.1) from https://parola.codeplex.com
MD_MAX72xx Library (Max72XX LED Matrix Display Library v2.6) from http://arduinocode.codeplex.com
MD_DS1307 Library (DS1307 Real Time Clock Library) from http://arduinocode.codeplex.com
DHT Library (DHT11, DHT21/22 temp and humidity sensor Library) from http://playground.arduino.cc/Main/DHTLib
We are using a different DHT Library for this project as we intend to use a different DHTxx sensor in future such as the DHT21/22 which is quite similar to the DHT11 and has a greater accuracy (one decimal) and range (negative temperatures) which is not supported in the DHT11 Library.
Do note that older version of the MD_MAX72xx Library (versions earlier than V2.6) will not work with our modified Bi-color LED Matrix module.
We need to modify the MD_MAX72xx.h file for it to work with our modified jolliFactory LED Matrix modules which work similarly to the FC16 LED Matrix modules.
Basically, for the MD_MAX72xx.h file, we need to amend it to specify that we are not using the Parola Hardware with
#define USE_PAROLA_HW 0 //1
and instead specify that we are using the FC16 Hardware which is compatible with our modified LED Matrix module with
#define USE_FC16_HW 1 //0
Below is an extract from the modified MD_MAX72xx.h file showing the changes.
/** \def USE_PAROLA_HW Set to 1 (default) to use the Parola hardware modules. The software was originally designed to operate with this hardware type. */ #define USE_PAROLA_HW 0 //1 /** \def USE_GENERIC_HW Set to 1 to use 'generic' hardware modules commonly available, with connectors at the top and bottom of the PCB, available from many sources. */ #define USE_GENERIC_HW 0 /** \def USE_ICSTATION_HW Set to 1 to use ICStation DIY hardware module kits available from http://www.icstation.com/product_info.php?products_id=2609#.UxqVJyxWGHs This hardware must be set up with the input on the RHS. */ #define USE_ICSTATION_HW 0 /** \def USE_FC16_HW Set to 1 to use FC16 hardware module kits. FC16 modules are similar in format to the ICStation modules but are wired differently. Modules are identified by a FC-16 designation on the PCB */ #define USE_FC16_HW 1 //0 /** \def USE_OTHER_HW Set to 1 to use other hardware not defined above. Module 0 (Data In) must be set up on the RHS and the CUSTOM hardware defines must be set up in the MD_MAD72xx_lib.h file under for this section, using the HW_Mapper utility to work out what the correct values to use are. */ #define USE_OTHER_HW 0
If you may need to set the time on your clock module, use the example sketch MD_DS1307_Control.ino from the DS1307 library (MD_DS1307) found at http://arduinocode.codeplex.com and upload to your Arduino board to set it.
As we are using only 3 LED Matrices at the left zone to display time, the 5 dot wide Fixed-Width font originally used in the Parola example is too wide to fit nicely. We have modified the font for numeric display to be only 4 dot wide. We also need to modify the Parola_Zone_TimeMsg.ino for it to work with only 7 LED Matrix modules.
You may download the modified sketch together with the required font file below.
Then upload the sketch to the Arduino board. If everything is set up right, you will see the left zone showing the time in GREEN and date, temperature and humidity information scrolling in the right zone in RED.
Step 5: Putting Them Together
We have not built a proper enclosure for the project yet. We simply put the 7 LED matrices long display together with a blue tinted protective cover over them to see the display effect and we are very please with the effect. We are sure there are many handy and creative people around who will be able to come up with aesthetically pleasing enclosures if they were to embark on this project.
By demonstrating how our Bi-color LED Matrix module is able to be converted for single color display opens the door of opportunity to work and experiment with many exciting projects already out there.
Parola for Arduino library is great work by Marco Colli who have put in a lot of time and effort into it and we are glad our modified Bi-color LED matrix is able to work with it. You may want to check out the other exciting Parola library examples.