- uart->available(); returns uint32 but was stored locally as int32 and treated as uint32. Now stored correctly as uint32 - some variables were set to zero at start of function, then reset to zero before being used. wasted work