I have been trying to build Nick Gammon's version of a MAX7219 controlling an 8 x 8 LED matrix.
http://www.gammon.com.au/forum/?id=11516 Now I realise that my question is like asking your car mechanic to diagnose a problem with your car over the telephone or internet as the case may be and I know that while limited advice can be offered in this situation it can still be helpful sometimes. I have double checked all the connections, double checked that I correctly copy / pasted the code into the sketch with font.h file in the same folder (thanks Riva)
The sketch uploads ok but all the LED's in columns 1,2.5.7 and 8 remain constantly on while column 6 lights very occasionally if at all. This leaves the LED's in columns 3 and 4 which change constantly (as if they are the only columns forming part of that letter)
If I change The input in "showString" to only one character then to a different single character I can see the difference in what is being displayed in columns 3 and 4.
Now as I previously stated I know this question is as they say "a big ask" but I have never been backwards in coming forward

Hoping that someone can offer any suggestions as to how I attempt to diagnose this problem as I find this whole project very elegant in it's use of SPI, and especially accessing the text to be scrolled from the font.h file which is stored in PROGMEM. Anything that negates producing large arrays in the actual code running is a god-send in my book.
Thank you for at least reading my question and I hope someone might be able something for me to try to "fix da problem" BluesBoy.
p.s. I have attached Nick's code for reference please keep in mind any advice that you offer will have to be dumbed down, I am a novice here

#include <SPI.h>
#include <avr/pgmspace.h>
#include "font.h"
// define max7219 registers
const byte MAX7219_REG_NOOP = 0x0;
const byte MAX7219_REG_DIGIT0 = 0x1;
const byte MAX7219_REG_DIGIT1 = 0x2;
const byte MAX7219_REG_DIGIT2 = 0x3;
const byte MAX7219_REG_DIGIT3 = 0x4;
const byte MAX7219_REG_DIGIT4 = 0x5;
const byte MAX7219_REG_DIGIT5 = 0x6;
const byte MAX7219_REG_DIGIT6 = 0x7;
const byte MAX7219_REG_DIGIT7 = 0x8;
const byte MAX7219_REG_DECODEMODE = 0x9;
const byte MAX7219_REG_INTENSITY = 0xA;
const byte MAX7219_REG_SCANLIMIT = 0xB;
const byte MAX7219_REG_SHUTDOWN = 0xC;
const byte MAX7219_REG_DISPLAYTEST = 0xF;
void sendByte (const byte reg, const byte data)
{
digitalWrite (SS, LOW);
SPI.transfer (reg);
SPI.transfer (data);
digitalWrite (SS, HIGH);
} // end of sendByte
void letter (const byte c)
{
for (byte col = 0; col < 8; col++)
sendByte (col + 1, pgm_read_byte (&cp437_font [c] [col]));
} // end of letter
void showString (const char * s, const unsigned long time)
{
char c;
while (c = *s++)
{
letter (c);
delay (time);
letter (' '); // brief gap between letters
delay (10);
}
} // end of showString
void setup () {
SPI.begin ();
sendByte (MAX7219_REG_SCANLIMIT, 7); // show all 8 digits
sendByte (MAX7219_REG_DECODEMODE, 0); // using an led matrix (not digits)
sendByte (MAX7219_REG_DISPLAYTEST, 0); // no display test
// clear display
for (byte col = 0; col < 8; col++)
sendByte (col + 1, 0);
sendByte (MAX7219_REG_INTENSITY, 7); // character intensity: range: 0 to 15
sendByte (MAX7219_REG_SHUTDOWN, 1); // not in shutdown mode (ie. start it up)
} // end of setup
void loop ()
{
showString ("Nick Gammon greets you! ", 500);
} // end of loop