Go Down

Topic: Scrolling LED matrix display - Parola for Arduino (Read 157793 times) previous topic - next topic

marco_c

@MOTP - one of the examples for Parola or MD_MAX72xx is reads from the SD card and displays on the matrix.

@ieee488 - scrolling top to bottom, rotated 90 degrees clockwise, is scrolling right to left. Physically rotate the breadboard.
Arduino Libraries http://arduinocode.codeplex.com
Parola for Arduino http://parola.codeplex.com
Arduino++ blog https://arduinoplusplus.wordpress.com

ieee488

#856
Jul 05, 2016, 04:22 am Last Edit: Jul 05, 2016, 04:23 am by ieee488
@ieee488 - scrolling top to bottom, rotated 90 degrees clockwise, is scrolling right to left. Physically rotate the breadboard.
I had expected it to work with the display inserted in the breadboard such that pins 16-8 are at the top and pins 1-7 at the bottom = plastic tab at the bottom.


To sum it up, if one is using the 1088BS which is row anode-column cathode, the best result is achieved by using #define USE_OTHER_HW 0 which in MD_MAX72xx.h and making no changes to MD_MAX72xx_lib.h

And have the 8x8 LED matrix's plastic tab at the top in the breadboard, and make the connections to the MAX7219 using the circuit diagram for that I have included in my previous post.

Thank you for the library.






MOTP

#857
Jul 10, 2016, 08:28 pm Last Edit: Jul 10, 2016, 08:34 pm by MOTP
Hello Marco:

I have been tinkering the whole weekend trying to get my led matrix made out of 8 generic modules work. So far, I've got the two first modules displaying scrolling text and the rest sometimes are fully on or fully off. For the two first, the text is rotated and mirrored, so I need to add a transform() somewhere, but I don't know where. How can I add a transformation? I've been using the examples that come with the Parola library (Daft Punk and so on).

And do you have a clue why the other modules are working like that? Regarding the SPI connection to the Arduino, I've tried dozens of pin possibilities already  :(

Thank you for your help!

marco_c

#858
Jul 11, 2016, 01:10 am Last Edit: Jul 12, 2016, 11:37 pm by marco_c
Firstly make sure you have the latest version of the libraries. They have not changed in a while so they are very stable.

1. Please make sure you have read the documentation for how to adapt the MD_MAX72xx library to your hardware setup. Your modules should be set up as 'USE_GENERIC_HW' (all the other selections for hardware should be set to zero).

2. Ensure that the right number of modules is set at the top of the example code. Most of the examples use 8 or 6 so you should be ok. Worst case you would see repeats of patterns or incomplete words.

3. With your modules you should be using a separate power supply as the Arduino can't provide poser for more that 2-3 modules reliably.

4. Try swapping modules for the 3rd+ positions. Maybe build up from 2 to 3 to 4 etc. Looks like something is wrong with the hardware.

5. If you are using an Arduino Uno and the hardware SPI setup, DATA is pin 11, CLK is pin 13 and LD or SS is pin 10. If you are not using hardware supported SPI just nominate the pins you are actually using.
Arduino Libraries http://arduinocode.codeplex.com
Parola for Arduino http://parola.codeplex.com
Arduino++ blog https://arduinoplusplus.wordpress.com

MOTP

Hello Marco:

Thank you for your quick response. Going through your points, here's what I can tell:

0. Library is up to date, I downloaded it last week.

1. Library is adapted to my hardware, setting 'USE_GENERIC_HW' to 1 and the rest to 0.

2. Right number of devices is set on top of the the code, right before the SPI pins setting.

3. Maximum number of modules working: 7.

4. I have swapped some modules, checked the MAX7219 IC connection, wires..., and you were right, there was a hardware problem. Now I can have up to 7 modules working.

5. I'm using pins 10 (CS), 11 (DIN) and 13 (CLK), that's to say, hardware setup, although I have software SPI setup set to 1 in the library. I have changed that to 0 though for checking. Nothing changed.

Although I have more modules working now, they still display scrolling text rotated and mirrored :(

For my project (displaying text from a SD card), I would like to have a longer matrix than what I have so far (I need 8 to 10 modules). Do you think it is possible to achieve that with my current hardware by lowering light intensity, so that I don't have to use an external power supply?

Once again, thank you for helping me and for your kindness.

marco_c

Quote
1. Library is adapted to my hardware, setting 'USE_GENERIC_HW' to 1 and the rest to 0.
If this is not working try the other settings. If they also don't work use the HW_Mapper example program to work out what the configuration should be. They look like Generic modules but clearly they must be wired differently.

Quote
5. I'm using pins 10 (CS), 11 (DIN) and 13 (CLK), that's to say, hardware setup, although I have software SPI setup set to 1 in the library. I have changed that to 0 though for checking. Nothing changed.
As soon as you get even 1 module working the comms pins are right and you should not change this any more. I would recommend using the hardware setting as this will be faster.

Quote
Do you think it is possible to achieve that with my current hardware by lowering light intensity, so that I don't have to use an external power supply?
That depends on a lot of things, like how many LEDs wold be on at the same time, the intensity you are runnning, etc. The main parameter you can change is the Rset resistor on the boards. Please see my blog article at https://arduinoplusplus.wordpress.com/2015/09/12/max7219-and-led-matrix-power-requirements/ for some more information.
Arduino Libraries http://arduinocode.codeplex.com
Parola for Arduino http://parola.codeplex.com
Arduino++ blog https://arduinoplusplus.wordpress.com

MOTP

#861
Jul 14, 2016, 06:22 pm Last Edit: Jul 14, 2016, 07:41 pm by MOTP
Hello Marco:

I must be doing something wrong because no matter which hardware configuration I set to 1 in the library, the behaviour of the led matrix is always the same (text displayed rotated and mirrored). I have also tried the HW_Mapper returning the same configuration as the 'USE_GENERIC_HW' one (010). After modification, I save the changes in the library, close it and restart the Arduino IDE. Do you have any clue what can be happening?

Thank you. Cheers.

marco_c

#862
Jul 15, 2016, 01:26 am Last Edit: Jul 15, 2016, 01:26 am by marco_c
Your problem is not something I have ever seen before, so I am guessing that something is not being set right in the libraries. Here's two suggestions:

1. Make absolutely sure that all the USE_* settings that you are not using are set to 0. Any that are set after your intended setting will replace the intended setting. An approach may be to go back to a MD_MAX72xx library from the download package, now that you know a bit more about what you are meant to do.
The settings I am concerned about are in the MD_MAX72xx.h file:
Code: [Select]
USE_PAROLA_HW
USE_GENERIC_HW
USE_ICSTATION_HW
USE_FC16_HW
USE_OTHER_HW

Also, there should have been no changes to the MD_MAX72xxlib.h file.

2. In the first post you asked "do I need to add a transform() somewhere" and the answer is NO. Did you do this in the past and have forgotten about it?
Arduino Libraries http://arduinocode.codeplex.com
Parola for Arduino http://parola.codeplex.com
Arduino++ blog https://arduinoplusplus.wordpress.com

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy