Номиналы С8 и С9 перепутаны между собой. 100 мкф норм... Почему бы и нет. Очень нужно меньше? Ну надо пробовать... Если пульсаций не будет то можно и меньше.
Значит за 1мс не появляется очередной символ в сериал. if ( Serial.available()>0) Чтобы не подбирать время паузы и вообще не использовать паузу нужно проверять Serial.available() перед каждым чтением. И читать второй символ протокола только когда Serial.available() больше нуля.
Это можно реализовать разными способами. Например читать из сериал не побайтово а сразу весь пакет. И парсить его. Или читать побайтово, проверять на символ начала пакета потом в бесконечном цикле ждать когда Serial.available()будет больше нуля и читать очередной символ.
Звучит все супер, но по факту я сижу разбираюсь и потом пишу статьи которые более понятны чем выше описанная муть. Сейчас тяжело найти очень хорошие описание, по которому с первого раза все будет работать как тебе надо.
Хотя идея понятна и нужная. Согласен нет доступной целостной обучающей программы. В которой выверено давались бы знания нужных фактов и навыки самостоятельного изучения возникающих вопросов при минимуме затрат времени и сил.
Ксожелению более или менее понятная и отличная информация, у самоучек на английском языке. Толи мы так просто развиты. толи наш рынок туреда не требует таких высоких специалистов.