Arduino Due Serial Hangs

Hi, thanks for the response. I like many did not know that the serial messages could be corrupted on one byte only.

Since you have pointed it out and "bank" was the only part of the message not being tested I'll make that change.

I've also made changes to ensure that each section of code only runs once, since then the code has been running for over 18 hours.

What is this code supposed to do?

  if (started == true){

if (currentMillis>MAXTIME ){
     
      if (currentMillis-MAXTIME > messageRxd ){




comparing currentMillis to MAXTIME like that won't work across wrap-around. However
this won't bite till many days.

I'm not quite sure of your meaning, if millis wraps around then currentMillis will, for a time less than MAXTIME, not be greater than MAXTIME and that part of the code will not be executed. Or is there something I've missed?
I agree that this section of code is probably not required