Arduino WordClock

In order to make it work with the three MAX7219, I had to modify the MAX library provided by Riva.
Initially, the library only supported 2 MAX ICs and to make the four corner leds work, I had to make it support all possible addresses of the three MAXes.

The library is just a cut down version of the LedControl library. I had cut it down because the original clock used a ATmega8 and I was running out of Flash memory. The current code has a constant to define how many MAX chips are connected and should work.
Code:
const int numDevices = 2; // Number of MAX7219 LED Driver Chips (1-8)

Well, I did saw that constant and it was the first logic change I've made.
What I described was what was happening after changing that constant. I now understand that the problem was the "stripped down" version of the MAX library...

I just didn't realize yet how I will introduce some extended ASCII characters.

Just add then to this array.

prog_uchar font10x7 [] PROGMEM = {      // Large Ascii Font Matrix

[/quote]

Well, that was what I have tried, but without success even after changing the upper limit from 0x7f (127) to 0xff (255) as you suggest below.

Here is what I did:
After the last character you have in the font10x7 - the symbol º (that by the way is not in the correct position of the ASCII, but I understand that you put it there just for convenience), I created a new character that for this matter isn't relevant. That additional character will be in the 128 position (original 127 plus 1).
The quick test I've made was to call that new character I've added (at the position 0x80) after the 0x7f (º) you concatenate at the end of the temperature scrolling string.
The result is just a blank space...

I didn't yet found where should I extend the loadBufferLong to accept all of the 255 characters. I think it is from the standard AVR library...

The loadBuferLong is not from the ARV library. Just change the 0x7F to the new upper limit on the characters in the font10x7 array.

void loadBufferLong(int ascii){

if (ascii >= 0x20 && ascii <=0x7f){


[/quote]

Yes, I did that. I changed the upper limit to 0xff which is 255 and the only position I used was after 0x7f which is 0x80 (which is position 128).
I then changed the end of the temperature string to test the new character visibility, like so:


int x=strlen(chrBuffer);
    hrBuffer[x++] = 0x7f; // the º character at the position 127
    chrBuffer[x++] = 0x80; // my new character at the position 128 which don't show in the scrolling text
    chrBuffer[x++] = ' ';
    chrBuffer[x++] = ' ';
    chrBuffer[x] = 0x0;
    scrollRamMessage();
[/color]






> You will also need to adjust this code to send pixel data to the extra MAX chip.
> 
> 
> ```
> // Display Buffer on LED matrix

void printBufferLong(){
    for (int a=0;a<7;a++){                              // Loop 7 times for a 10x7 font
        unsigned long x = bufferLong [a];              // Get buffer entry
        int y = (x>>24) & 0xff;                        // Mask off left hand character
        lc.setRow(1,a,y);                              // Send row to relevent MAX7219 chip
        y = (x>>16) & 0xff;                            // Mask off right hand character
        lc.setRow(0,a,y);                              // Send row to relevent MAX7219 chip
    }
}

Thanks for the tip, but I think I don't need this because the third MAX only controls the four leds on each corner. It is not used to show anything when a message is scrolling.

The other suggestion of replacing some unused characters of the fefault ASCII table is easier to implement. The only problem is that I did not figured yet how can I concatenate a character specified at the position 0x7f (for example) in an Birthday message or in a string of a Month...
I did see that for example you've used the character 0x7f (the 127 position) with the º character and that you've specified it's use in the temperature string.
How can I use such a character in a month string? Let's say "Março" that means March?

If your using Windows then you could use character map to build the string up using the characters you need and then copy/paste into the sketch. As your matrix is a higher density you probably don't need the extra wide font I use and could maybe find/define the entire ASCII set with little problem.

I think I don't understand.
Consider that the string you defined as March is written like this: Márch (acute in a).
Consider that the "á" (acute a) is defined at the position 128 (0x80) and that you are able to show it alone in the scrolling text (I'm not at this moment).
How do you redefine the code for March string in the following code so is shows as Márch (small a with acute) and not March?

prog_uchar Month03[] PROGMEM = {

"March \0"};

Thanks for your time and help.