Ich sehe, dass du innerhalb der Verarbeitungs-Schleife
1
if(Serial.available()>0){
2
incomingByte=Serial.read();
3
...
4
}
Ausgaben auf das Display machst. Diese brauchen signifikant Zeit, deswegen brauchst du einen Puffer am seriellen Port. Vermutlich ist der vorhanden, aber ist er auch groß genug?
Ändere den Code mal so dass display.display() verzögert aufgerufen wird. Und zwar nachdem alle Bytes verarbeitet wurden, also Serial.available() == 0 ist.
Ein Schaltplan wäre nicht schlecht. Denn mit Fotos vom Aufbau muss man erst noch die Module und deren Pinbelegung herauskramen und sich in Gedanken diesen Schaltplan aufmalen. Das tue ich mir ehrlich gesagt nicht an. An einem Schaltplan sieht man fundamentale Designflaws auf einen Blick...
Sieht so aus als ob mehr als nur die "4 Byte" übertragen würden.
Der Pegel zwischen den Datenpaketen ist 3V3 (das wolltest Du, Stefan, vermutlich wissen)
Und es werden die ganze Zeit (nicht mit einer Pause wie bei den Empfangenen beiden "68 FF") Daten gesendet.
TX (vom MBus-Board) und RX (vom ESP) sind verbunden, somit (erwartbare)
0.000V
Eben nicht. UART Rx und Tx Leitungen müssen im Ruhezustand auf HIGH Pegel sein, also idealerweise 3,3 Volt. Alles was davon abweicht könnte ein Hinweis auf die Fehlerursache sein.
Kontrolliere, ob die Stromversorgungs-Schienen des Steckbrettes an den markierten Stellen unterbrochen sind. Das ist bei einigen Steckbrettern der Fall.
Wenn sie bei dir unterbrochen sind, dann fehlt bei dir eine GND Verbindung, was die Ursache für die falschen LOW Pegel sein könnte.
Du hast den Rx Eingang des ESP8266 doppelt belegt.
Um das internet Signal (vom USB-UART) durch externe Beschaltung (dein MBus Board) zu übersteuern, muss deine Quelle einen kräftigen niederohmigen Ausgang haben. Hat es aber nicht.
Du brauchst einen Buffer zwischen den beiden Boards, z.B. 74HC125
Das klingt sehr plausibel und erklärt eigentlich auch die Reproduzierbarkeit.
Zu Beginn des Datenpaketes gehen die Signalspitzen ein wenig weiter Richtung 0V und steigen dann rasch an.
Das werden die ersten beiden Byte sein, die gerade noch so durchkommen. Dann ist Sense.
...es gibt auch Wemos Boards, bei denen der Widerstand auf 150Ohm reduziert wurde. Daran bin ich mit einem Auswerter für einen Stromzähler zunächst gescheitert. Widerstand vergrößert und es lief wieder...