Я передаю HEX как символы ASCII, поэтому управляющие символы не попадают в диапазон значений "0" до "F" и ":".
Контроль потока нужен для повышения скорости прошивки, сейчас после каждого символа я делаю паузу 2 мс, а это слишком много.., такая пауза нужна только в момент записи Flash MCU.