program stops after approx 4hrs

evanmars:
...
or at String

Delta_G:
...
dataString isn't a member of the String class is it? The String class, and specifically the + operator used to do concatenation tends to fragment memory since it has to allocate larger and larger pieces every time and leaves holes in the heap. Get enough holes and your heap hits the stack and all bets are off. String is great on a PC with tons of memory and garbage collection. But on a microcontroller it is a thing to be avoided and is known for causing random crashes after a program runs for some time.