Memory and weird behavior from a PROGMEM matrix

Hey, not sure if I've done something really dumb, but I guess asking for help doesn't cost anything.
I'm making a 3x5x7 led matrix that can display time and some text for a school project. To make the fonts I went online and found a 5x7 dot matrix font (here). To make things easier I took the three matrixes and put them into a single 96x7 one. Since that took too much RAM, I declared it as PROGMEM.
Sadly, I don't have any code to show right now cause it's in my school computer and I haven't had time to get it.
Well, I made a routine to get a string and convert it to a 15x7 matrix and display it in my led matrix and displayed it's contents using serial to test everything. It was a complete failure, the matrix was full of garbage (like actual random data).
After a long troubleshooting session I was able to find my routine was reading random data from the font matrix. That would probably mean I've done something wrong with it. Something I also observed was that I was able to read the right data inside the setup function.

Remember that the compiler doesn't keep track of which pointers point into SRAM memory and which pointers point into PROGMEM (FLASH) memory. THAT IS UP TO YOU. If you want to fetch data from PROGMEM you have to use the special functions for that. See: PROGMEM - Arduino Reference

Without code it is difficult to understand how you went from 5x7 to 3x5x7 to 15x7 to 96x7.
Also, we do not know how you made use of PROGMEM.

I may be wrong but I think this: An array is treated by the compiler as a pointer to a portion of memory. You wanted that portion to be in program memory, but unless handled very very carefully PROGMEM tends to put only the pointer into program memory. Someone (not me) needs to show you the proper syntax so that your array goes into program memory.

johnwasser:
Remember that the compiler doesn't keep track of which pointers point into SRAM memory and which pointers point into PROGMEM (FLASH) memory. THAT IS UP TO YOU. If you want to fetch data from PROGMEM you have to use the special functions for that.

Didn't notice that at all when I read the documentation. Thanks a lot for pointing it out!

vaj4088:
Without code it is difficult to understand how you went from 5x7 to 3x5x7 to 15x7 to 96x7.
Also, we do not know how you made use of PROGMEM.

Oops...
It's a 15x7 matrix meant to display 3 5x7 characters (3x5x7). 96x7 is the size of the data array

vaj4088:
I may be wrong but I think this: An array is treated by the compiler as a pointer to a portion of memory. You wanted that portion to be in program memory, but unless handled very very carefully PROGMEM tends to put only the pointer into program memory. Someone (not me) needs to show you the proper syntax so that your array goes into program memory.

That's right. I took a look at the documentation and managed to make it work, thanks!