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:

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.

If you do not like messing around with too many wires and connectors, you may use the JF Interface Board 1 which is available at our Tindie store to put everything together easily.

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.

 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

 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

 Set to 1 to use ICStation DIY hardware module kits available from 
 This hardware must be set up with the input on the RHS.

 \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

 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.

< Download JF_Parola_Zone_TimeMsg_V1_0 sketch and font file >

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.

<p>I recommend this project is perfect thanks to the attention and help that the author offers you, only has a small error the diagram, the dht11 pin in the ilistracion marks it in d2 and has to be ed d9</p>
<p style="background-color: transparent;">Thanks for pointing out the mistake. We have already amended the diagram.</p>
<p>Please check Step 4: Programming the Arduino Board. You may need to modify the MD_MAX72xx.h file for it to work with your Matrix Display module.</p>
<p style="background-color: transparent;">Could you provide the version number for the following libraries as they may not be the same as those we are using? We will try to re-create the error and see if we can help.</p><p style="background-color: transparent;">MD_Parola Library (Parola library v2.1)</p><p style="background-color: transparent;">MD_MAX72xx Library (Max72XX LED Matrix Display Library v2.6)</p><p style="background-color: transparent;">MD_DS1307 Library (DS1307 Real Time Clock Library)</p>
<br><br>These are the versions, the download site you recommend<br><br>(Parola library v2.4)<br> (Max72XX LED Matrix Display Library v2.8)<br> (DS1307 Real Time Clock Library)<br><br>Which is the place where I can download them or do not publish them as in other projects for download with whom you work for them<br>
<p style="background-color: transparent;">Some changes in the new libraries is causing errors during compiling.</p><p>Please download our amended program at </p><p><a href="https://sites.google.com/site/jollifactory/JF_Parola_Zone_TimeMsg_V1_2.zip?attredirects=0&d=1">https://sites.google.com/site/jollifactory/JF_Paro...<br></a></p><p style="background-color: transparent;">It compiles successfully using the following library versions but we have yet to test it with the actual hardware used for the project:</p><p>(Parola library v2.4)<br> (Max72XX LED Matrix Display Library v2.9)<br> (DS1307 Real Time Clock Library v1.2)</p><p></p>
<p style="background-color: transparent;">If you are still encountering errors during compilation, you may want to check the folders for these downloaded libraries and copy all the files in the src folder one level out of the folder. </p>
<p>See our reply to Rudyard on the errors during compiling.</p>
<p style="background-color: transparent;">The Arduino sketch for this project written then works with Arduino IDE version 1.0.5. If you are using Arduino IDE version 1.6 and above, you may check out the amended sketch found in the link below;</p><p>https://sites.google.com/site/jollifactory/JF_Parola_Zone_TimeMsg_V1_1.zip?attredirects=0&amp;d=1</p>
<p>Our Arduino sketch works with the old Arduino IDE 1.0.5. If you are using newer Arduino IDE 1.6.0 and above, you may download our amended sketch at </p><p>https://sites.google.com/site/jollifactory/JF_Parola_Zone_TimeMsg_V1_1.zip?attredirects=0&amp;d=1 to see if it works for you. We have not tested it with all the hardware connected.</p>
<p>What are the compilation errors you encountered?</p>
<p>the diagram there is an error with the ds3231 the terminal GND is inverted with the VCC</p>
<p>Thanks for pointing out the mistake. We have already amended the image.</p>
<p>Thanks for the instructable, I'm currently using this as a basis for my own clock. I'm using 4 modules, so only showing time and temperature. To save space, I'm trying to display 12h time format. I've tried a simple if statement to subtract 12 from the hour, however the display shows '09' instead of '9'. Any ideas how to modify the code to make it work? Its totally beyond me! </p>
<p>Beautiful and interesting design!</p><p>What should be changed in the code to do only with Red LED Matrix modules?</p><p>Thank you</p>
<p>There is no need for any change in the program code if you are using Parola compatible Red LED Matrix modules. You just need to make some changes to the MD_MAX72xx.h header file to reflect which LED Matrix modules you are using.</p>

About This Instructable




More by jollifactory:IKEA Frame Hack > sLOMO (Slow Motion) Frame JolliCube Audio/Music Visualizer JolliCube (8x8x8 LED Cube) with MD_Cubo library 
Add instructable to: