update: figured out the problem.
this loop
for (int n = 0; n < 11; n++){ //fill visible array with first char of string
visible[n] = c[n];
}
would fill the visible array without a null termination if there were more than 11 char causing an error in the drawString function.
I fixed it by adding a
visible[11]='\0';
before the drawString call to always have a null terminated string.
the only problem is the scrolling for characters > 11 is weird. The characters will not pop up till the exiting char is 4 pixels off the screen.
I will post code once solved.