LED matrix display - MD_Parola, MD_MAX72xx and MD_MAXPanel

I suggest that you make sure you are running the latest libraries before going too far (Parola and MAX72xx).

A PM to Akorede may be more effective if you have not also done so.

Hi Marco, great library you wrote (/extended), fast as well!

Last year I did one of my first Arduino projects with a 4x 8x8 MAX7219 LED display (the link is here if you're interested ericBcreator - Hackster.io).

The LedControlMS.h library was slow and I had to use the setColumn instead of the setRow to have the letters show properly (they were rotated 90 degrees) which made it even slower.
Instead of trying to improve it, I decided to use it as a feature by slowly 'wiping' the columns which looks pretty nice (IMO).

Anyway, I decided to use one of those 4x 8x8 displays with your library (and MD_MAX72xx LED).
It works but the text is mirrored. Sure I can reverse the columns with #define HW_REV_COLS 1 but then the order of the displays is still wrong: 4-3-2-1 instead of 1-2-3-4.

I tested the MD_MAX72xx_PrintText example by letting the mx.setColumn count up instead of down and that worked fine but that would mean adjusting a lot of the library. Maybe you have a faster suggestion?

If not, no problem.

Take care, Eric

You need to edit the MD_MAX72xx.h to tell the library what type of hardware you are using. Set one of the USE_*_HW defines to match your hardware.

Yes, I did. Today I tried another module with the #define USE_FC16_HW 1 setting and that one is working fine now.

Hi.

I want to know if anyone know how to use the awesome Parola library but to do a smoth rolling scroll (not only a "standard" scroll) that show next message at same time (in the same animation process) is doing dissapairing the actual message.

A real example about this effect will be much more explanatory:

Any points to reach the goal will be really gratefully.

Regards.

You cannot do that with Parola, but the MD_MAX72xx library has an example call Pushwheel that is exactly the same thing.

So many thanks for your quick reply Marco.

I take a look at Pushwell example that you pointed with MD_MAX72xx library, and see if I can manage to make it work.

Sure I need more help and hope you can still follow pointed me.

Thanks again.

Best regards.

Jose

Dear marco,

sorry for bothering you again. recently i mix up your parola bluetooth with double height. within my knowledge i tried it. now bluetooth function work properly also double height font shown but the problem is that upper zone are not working. it remaining blank. i attached the sketch. can you please help me to overcom these.i am using fc-16 module for these project.

TIA

Parola_Bluetooth_Control_la_1_1.ino (18.6 KB)

Font_Data.h (12.5 KB)

Before I spend time on this please confirm:

  1. You have checked the wiring between the lower and upper section.
  2. You have swapped the sections to confirm that you do not have a defective module. Alternatively, have you run the upper module by itself and confirm that it works ok?

Dear marco,

Thanks for your reply. Yes all wiring are ok and also upper module are ok because when i ran only double height display v1 & v2 & test all the module and both upper & lower section work perfectly.

static uint8_t cycle = 0;

This is no longer required as you now only have a High and Low string to write. Delete this and correct all the mistakes that this array referencing is causing. There must be compiler warnings telling you that you are misusing characters as pointers.

dear marco,

i did what you say but no luck. same result as previous.

Dear sir, after changing some swapping method the sketch is working perfectly now with all function. Thank you very much for your library and support. God bless you.

Re Arduino++ Fonts in MD_MAX72XX

I have a 6 col Teletext Font 'fontLorenz' to use initially with MD_MAX72XX Print.

This is fine for the defined A to X etc characters, but I need the undefined keyboard characters to be ignored - they appear to give 'random' patterns.

Is this "undefined characters", defaulting to system font, to avoid execution errors?

I have FontData.h, fontLorenz[], mx.setFont(fontLorenz).

bedstone

Set the characters to 0 width in the font and they should result in 'nothing' being displayed.

Alternatively, strip them out of the characters string before you have that over to the Parola library.

Dear marco, can you plz tell how can i change the default text & text effect in bluetooth parola. i change according to below but no change!

if (bInit || G.signature[0] != SIG0 || G.signature[1] != SIG1)
// set the default parameters
{
PRINTS("\nInitialising Global");
G.signature[0] = SIG0;
G.signature[1] = SIG1;
G.scrollSpeed = 25;
G.scrollPause = 2000;
G.effectI = G.effectO = 5;
G.align = 1;
G.intensity = 7;
G.bInvert = false;
strcpy(G.msgL, " hhhhh");

writeGlobal();
}

This

if (bInit || G.signature[0] != SIG0 || G.signature[1] != SIG1)

makes sure that the default is set only if there is no previous default.

Either just save a new configuration from the BT interface with you new default set, or swap the SIG0 and SIG1 values so that it does not recognise the existing configuration.

Please read the code. A lot of what you are asking is actually about understanding the code.

G.effectI = G.effectO = 5;

Also, make sure you use the PA_* constants for the animation. I will not guarantee that 5 will remain the same text effect in future versions of the library.

Dear marco,

Thanks for your reply. now its working perfectly. though i dont understand program good thats why i bothering you again & again.

What a great piece of library you wrote@marco_c

I was struggling with 2 different kinds of module with LedControl.h and then I found your library!! I had read about it on older posts and thought it was parola dedicated... but no actually!

I found out that my matrix were FC16 type, I just edited the MAX72xx.h file to configure this type of matrix and TADAAA!!

In your example "MD_MAX72xx_Test.ino" your effects are great!
Thanks for sharing your splendid work: karma added 8)

I have a question: I haven't found in the documentation how to justify text?
by default it is LEFT -> The leftmost column for the first character will be on the left side of the display.

But I wish I could have
CENTER -> The text will be placed with equal number of blank display columns either side
RIGHT -> The rightmost column of the last character will be on the right side of the display

thanks for any hint

Hint: read the library documentation :slight_smile: