Arduino Uno Strucks Randomly

adwsystems:
I'm not sure you can declare btDataStartMillis like this

unsigned long btDataStartMillis = millis();

I would declare btDataStartMillis as a global, and in setup() execute the assignment btDataStartMillis = millis();. I know that will work.

Will do that.

is it safe to assume that code size not the issue in this case ?
btw what are the Max limit for code size (like 75 % ?)

My Tx Batteries just died, i have to wait until they are back to test the code.