Очередная железка. Соединяется по ком-порту, всё как обычно. Есть пакеты длиной до 2 кб, которые засылаются туда, и есть пакеты до 2 кб, которые приходят оттуда. В конце пакета -- его контрольная сумма. Это обычная практика в протоколах подобных устройств. Биты бегут по проводам -- и некоторые могут не добежать.

Так вот, в железке, что мне принесли, контрольная сумма -- md5! Чтобы уж точно ошибку не пропустить. Либо можно настроить устройство так, чтобы проверки не было вообще. Но отключать проверку нельзя -- у нас не ядерные технологии, но всё равно будет неприятно, если в данные вкрадётся ошибка. md5 это клёво, конечно, только мы собираемся подключать эту железку к микроконтроллеру. Да, md5 гораздо надёжнее какого-нибудь CRC32, но и считается долго. Особенно на микроконтроллере. Хорошо, что скорости небольшие.

Обычно же в таких устройствах применяют CRC16 или вообще -- просто xor всех байт пакета.