Creating 32x126 Display with MAX7219 for Time Display (Arduino MEGA + RTC)

Hello everyone,

I am working on a college project where I need to create a 32x126 dot matrix display using 4-in-1 MAX7219 dot matrix modules (16 modules in total). The goal is to display the current time on the display using an Arduino MEGA and an RTC module (e.g., DS3231 or DS1307).

But for now i have tried to make a double stack using 2 displays and UNO but the display is showing random lights
If anyone could share:

here is the ino code:

include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>

// Define hardware type and connections
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 8
#define CLK_PIN   13
#define DATA_PIN  11
#define CS_PIN    10

// Initialize the Parola object
MD_Parola P = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);

// Include custom font files
#include "BigFontLower.h"
#include "BigFontUpper.h"

void setup() {
  // Initialize Parola
  P.begin(2); // 2 zones

  // Set zone sizes
  P.setZone(0, 0, MAX_DEVICES / 2 - 1);             // Lower half
  P.setZone(1, MAX_DEVICES / 2, MAX_DEVICES - 1);   // Upper half

  // Load custom fonts
  P.setFont(0, BigFontLower);
  P.setFont(1, BigFontUpper);

  // Set text alignment
  P.displayZoneText(0, "HELLO", PA_CENTER, 100, 0, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
  P.displayZoneText(1, "HELLO", PA_CENTER, 100, 0, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
}

void loop() {
  // Animate text
  if (P.displayAnimate()) {
    P.displayReset(0);
    P.displayReset(1);
  }
}
#ifndef BIGFONTUPPER_H
#define BIGFONTUPPER_H

#include <stdint.h>

MD_MAX72XX::fontType_t BigFontUpper[] PROGMEM = {
    0x00, // 0 (ASCII - Non-printable)
    0x00, // 1 (ASCII - Non-printable)
    // Define the upper portion of 'A'
    0b00000000, // Space between characters
    0b00011100, //     ###
    0b00100010, //    #   #
    0b00100010, //    #   #
    0b00111110, //    #####
    0b00100010, //    #   #
    0b00100010, //    #   #
    0b00000000, // Space
    // Define the upper portion of 'B'
    0b00111100, //    ####
    0b00100010, //    #   #
    0b00111100, //    ####
    0b00100010, //    #   #
    0b00100010, //    #   #
    0b00111100, //    ####
    0b00000000, // Space
    // Add more characters as needed (repeat structure above)
};

#endif
#ifndef BIGFONTLOWER_H
#define BIGFONTLOWER_H

#include <stdint.h>

MD_MAX72XX::fontType_t BigFontLower[] PROGMEM = {
    0x00, // 0 (ASCII - Non-printable)
    0x00, // 1 (ASCII - Non-printable)
    // Define the lower portion of 'A'
    0b00100010, //    #   #
    0b00100010, //    #   #
    0b00100010, //    #   #
    0b00100010, //    #   #
    0b00100010, //    #   #
    0b00100010, //    #   #
    0b00000000, // Space
    // Define the lower portion of 'B'
    0b00100010, //    #   #
    0b00100010, //    #   #
    0b00100010, //    #   #
    0b00100010, //    #   #
    0b00100010, //    #   #
    0b00111100, //    ####
    0b00000000, // Space
    // Add more characters as needed (repeat structure above)
};

#endif

What's your budget and required completion date? Tanstaafl, after all.

  • What will be your contribution ?

I'm thinking if their contribution isn't a large amount of money up front, they're unlikely to find anyone with few enough principles to take on the job.

i have already brought the 16 displays and tried to program it but it was not perfect so i am looking for someone who has already did this type of displays or who has some knowledge on it, all i need is the code so i am willing to pay 1k for the code

In that case I have moved your topic to the Jobs and Paid Consultancy category.

Take a look here: 5A-75E/5A-75B - Colorlight - the software is free to use, the boards are ~ 25 bucks on aliexpress.

In case you really want to pay for it by the hour: be in for a surprise how much that will cost.

I guess you mean 32x128.
There are limits to the number of MAX7219 modules which can be in the same chain so your early experiments should verify a method of connecting all these to an microcontroller. Look at how libraries like "Parola" work to see methods for controlling large composite displays.

make clear at an early stage what currency units are meant here to avoid any disappointment.

He's Indian, so he probably means Rupees.

So 1k INR = 12$

Even so, enough for a couple of small beers and you may even get some change out of that too.

can you give me more details on this module and how i can interface this to the matrix displays

Hi, @exotic_namruth

How much allowance do college students get these days?
Sorry but why don't you go and ask chatGPT to help you commit fraud!!

Have you exhausted your college resources?
Lecturers, tutors, computing department.

If they are supposed to be teaching you this stuff, then they must have the resources to help you.

Tom.. :smiley: :+1: :coffee: :coffee: :australia:

1 Like

actually i am in diploma in ECE, my college doesn't teach me the programing or the basics but i am doing this project as a contribution

There are a whole lot of blog posts for Parola on the Arduino++ blog site. Search for "Parola A to Z" and you will find information that will help you resolve your issue.

With no additional information about your hardware setup and connections, I would guess that a power supply and/or signal propagation issue.

You appear to have defined the fonts for the characters "A" and "B" only so attempting to print "HELLO" is unlikely to be successful.

Thanks for the notic, but i have changed them to "A" and "B" but it still gives random lights in both the display

here is my hardware connections.
i have also tried the example code in the parola library but it doesn't work the display goes blank

Those are your connections to the CPU board, and they are NOT correct for the MEGA board's hardware SPI interface.
When you work out th right connections, try to use the examples for just one set of 4 modules (for example, just scrolling text)? This will verify your connections are working properly, which will be a big start.

Then

  • How have you connected between sets of 4 modules?
  • Where is module 0 in the chain?
  • How have you connected the power supply?
  • What power supply are you using?

There are articles about all of these.

Hi, @exotic_namruth

How have you got the displays powered?
What is their power supply?

Thanks.. Tom... :smiley: :+1: :coffee: :australia:

i have used 12v 2A adapter to power up the Arduino and used 5V power pins to the display