Очередная железка, очередные запросы и ответы на них.

Разработчик придумал прошивку и всё у себя протестировал. Работает. Приносит на тестирование уже мне.

И выясняется, что я посылаю запросы совсем не так, как он посылал их при тестировании. Я могу послать запрос в момент, когда устройство занято. Могу послать противоречащий запрос, когда предыдущий ещё не выполнился. Могу запросить данные, которые ещё не готовы. И многое другое.

Его прошивка к такому оказалась не готова. Какие-то команды игнорируются, какие-то вешают прошивку.

Виноват ли я? Нет. Я работал с другим, похожим устройством. Оно корректно отрабатывало любые команды в любой последовательности.

Лучше бы так было и с данным устройством. Если же корректно отработать какую-либо комбинацию команд невозможно, то в документации должно быть чётко указано, какие команды недопустимы.

И уж при любых условиях прошивка не должна виснуть.