Scrolling text on LED matrices using SPI and arduino Mega2560

"Arduino is so much fun.....debugging and all..."
I know what you mean - epsecially doing things like copying addresses wrong from the datasheet - took me two nights to figure that one out!
Or even better - I was saving stuff to EEPROM - totally overlooking the fact that there are only 1023 bytes, while the code happily wrote to 1500 bytes & hosed the data I was putting there. Someone else spotted that for me. Worked great while I was buffering in the 2048 bytes of SRAM even!

The other thing I did was to write 0's to all the digit registers before anything else, right after the pinMode commands, so when they then come out of shutdown mode they don't turn on by themselves.

  // clear the MAX7219 digit registers

  digitRegister = 0x01;  // digit0, up to 0x80 for digit7
  for (x = 0; x<8; x=x+1){  
    digitalWrite (ss0, LOW);
    SPI.transfer (digitRegister);
    SPI.transfer(0);
    digitalWrite (ss0, HIGH);
    digitRegister = digitRegister+1;
  }
  // next digit
  digitRegister = 0x01;  // digit0, up to 0x80 for digit7
  for (x = 0; x<8; x=x+1){  
    digitalWrite (ss1, LOW);
    SPI.transfer (digitRegister);
    SPI.transfer (0);
    digitalWrite (ss1, HIGH);
    digitRegister = digitRegister+1;
  }

  // next digit
  digitRegister = 0x01;  // digit0, up to 0x08 for digit7
  for (x = 0; x<8; x=x+1){  
    digitalWrite (ss2, LOW);
    SPI.transfer (digitRegister);
    SPI.transfer(0);
    digitalWrite (ss2, HIGH);
    digitRegister = digitRegister+1;
  }

  // next digit
  digitRegister = 0x01;  // digit0, up to 0x08 for digit7
  for (x = 0; x<8; x=x+1){  
    digitalWrite (ss3, LOW);
    SPI.transfer (digitRegister);
    SPI.transfer(0);
    digitalWrite (ss3, HIGH);
    digitRegister = digitRegister+1;
  }