Shift register limitations???

PaulRB:
EDIT: wait I think I understand. You have been putting fixed values in place of "GEAR INDICATOR" and "RPM LEDS" and running that - the 'test data' you were talking about.

That's correct, I just inserted that text so you could see where I had been inputting fake data. I was sending random number values to the RPM LED's and sending "REVERSE", "ONE", "TWO" etc to the segment display. Sorry, should have been more clear with that.

PaulRB:
First impressions of your sketch:

if (Serial.available() > 0) {

if (Serial.available() > 9) {



If there are more than 9 bytes/characters of serial data avilable, there must be more than zero, so no point doing that first check!

Why 9? The data packet seems to be 13 bytes long: a value of 255 followed by 12 bytes of telemetry. Is that right? If so, you should be checking for 13 bytes.

This is a left over/incorrect value from some code I had originally copied that serial read group from. I agree, it should be 13 and in another version of the sketch, I had 13 instead of 9 like the sketch I quoted from.

I apologise for these two mistakes which have added to the confusion.

I will upload your revised sketch later tonight and give it a test then report back. I really, REALLY appreciate the help, time and advice given.