Cannot convert 'String' to 'uint8_t {aka unsigned char}' in initialization
uint8_t first  = atoi (tmp1.substring(1, 3).c_str ());   


Or even:

String data = "#255101987";
uint8_t first  = atoi (data.substring(1, 3).c_str ());