@ Serenifly
Ich nutze i.d.R. 57600 - nur Testweise hatte ich mal auf 9600 gestellt. Gleiches Prob.
Als "delay" sind zwar die Serial.pint's in der Leseroutine, aber das delay() selbst steht in der Loop.
Anmerkung dazu siehe unten.
@ Uwe
Ich warte ja schon auf z.Zt. min. 14 Zeichen im Puffer (11x Header, 3x Marker).
Das liest die Routine ja auch anständig aus - ggf auch mit angehängten Daten-bytes.
@ dsyleixa
Hier ist eben das Prob, dass das nicht ein 0815-Ding ist, sondern eben etwas komplexer und eigentlich auch nur mit einem "Master" arbeitet, welcher eine Telegramm (Header mit Markern) sendet, diese wieder empfängt und auch wieder prüft.
Wer das richtig testen will, braucht schon meine kleines "DINO-CCOM-Tool" für den PC.
Wenn das anwenderfreundlicher geworden ist, poste ich das hier auch noch.
Hier ist etwas mehr Vorstellungskraft nötig ...
Zum möglichen Gedankenfehler:
Mich beschleicht eher mehr das Gefühl, das CMD_Check ( & CMD_Echo) in der Loop viel zu schnell wieder aufgerufen wird.
D.h., Serial macht alles asynchron und blockt nichts (?!), Routine ist fertig und der nächste Aufruf kommt, bevor der Puffer richtig leer ist

Mit delay(20) klappt das gut - mit weniger (<= 10) verhaspelt sich das wieder.