"does anyone have an idea about why the scroll letters would be backwards? "
Easy to fix: change these to count from 8 to 1 instead of 1 to 8:
digitRegister = 0x01; // digit0, up to 0x08 for digit7
digitalWrite (ss3, LOW);
for (x = displayStart; x<(displayStart +8); x=x+1){
SPI.transfer (digitRegister);
SPI.transfer(displayArray[x]);
digitRegister = digitRegister+1;
}
digitalWrite (ss3, HIGH);
Here's how I did it:
//Serial.print ("digit 0: ");
startX = displayStart + 7;
endX = displayStart-1;
digitRegister = 0x01; // digit0, up to 0x08 for digit7
for (x = startX; x>endX; x=x-1){
digitalWrite (ss0, LOW);
SPI.transfer (digitRegister);
SPI.transfer(displayArray[x]);
digitalWrite (ss0, HIGH);
/*
Serial.print (" R");
Serial.print (digitRegister);
Serial.print (" ");
Serial.print (displayArray[x],HEX);
*/
digitRegister = digitRegister+1;
}
//Serial.println(";");
// next digit
//Serial.print ("digit 1: ");
startX = displayStart + 15;
endX = displayStart + 7 ;
digitRegister = 0x01; // digit0, up to 0x08 for digit7
for (x = startX; x>endX; x=x-1){
digitalWrite (ss1, LOW);
SPI.transfer (digitRegister);
SPI.transfer(displayArray[x]);
digitalWrite (ss1, HIGH);
/*
Serial.print (" R");
Serial.print (digitRegister);
Serial.print (" ");
Serial.print (displayArray[x],HEX);
*/
digitRegister = digitRegister+1;
}
//Serial.println(";");
// next digit
//Serial.print ("digit 2: ");
startX = displayStart + 23;
endX = displayStart + 15;
digitRegister = 0x01; // digit0, up to 0x80 for digit7
for (x = startX; x>endX; x=x-1){
digitalWrite (ss2, LOW);
SPI.transfer (digitRegister);
SPI.transfer (displayArray[x]);
digitalWrite (ss2, HIGH);
/*
Serial.print (" R");
Serial.print (digitRegister);
Serial.print (" ");
Serial.print (displayArray[x],HEX);
*/
digitRegister = digitRegister+1;
}
//Serial.println(";");
// next digit
//Serial.print ("digit 3: ");
startX = displayStart + 31;
endX = displayStart +23;
digitRegister = 0x01; // digit0, up to 0x80 for digit7
for (x = startX; x>endX; x=x-1){
digitalWrite (ss3, LOW);
SPI.transfer (digitRegister);
SPI.transfer(displayArray[x]);
digitalWrite (ss3, HIGH);
/*
Serial.print (" R");
Serial.print (digitRegister);
Serial.print (" ");
Serial.print (displayArray[x], HEX);
*/
digitRegister = digitRegister+1;
}