A002 wieder aufgewacht…

Am 22.01.2020 ging gegen 13:33 Uhr der letzte Ping der Sonde ein. Bei einem Besuch vor Ort am frühen Abend gab es bei der Sichtprüfung keine Auffälligkeiten. Da die Status LED vom Sim800L blinkte, wurde ein Problem mit der Spannungsversorgung ausgeschlossen.
Der Arduino hat den Befehl entweder alle 256 Zyklen oder wenn die Kommunikation mit dem Sim800L abbricht (keine Antwort auf „AT“-Ping) sich selbst und das GSM-Modul (per Reset-Pin) zurück zu setzten. Aus dem Blinkmodus der der Status LED vom Sim800L konnte festgestellt werden, dass die Verbindung um Funknetz besteht und kein Reset statt findet. Da der Atmega-328p keine Status-LED besitzt, konnte über seinen Zustand nichts in Erfahrung gebracht werden. Der letzte Neustart des Systems lag 10 Stunden zurück, der nächste Reset wurde grob auf den 23.01.2020 21-22Uhr berechnet.
Ich entschied mich auf den Reset zuwarten, um fest zustellen ob das System selbständig den Fehler lösen kann. Am 23.01.2020 um 22:30 Uhr sendete A002 verspätet den ersten Datensatz wieder.

Fazit:
Auf Grund der Symptome des Problems lässt sich auf ein Problem beim Sim800 zurück schließen. Zwar antwortet das Sim auf Pings aber hat Probleme bei der Umsetzung des Befehls. Dies lässt sich normalerweise mit einem einfachen Reset beheben. Der Atmega hat den Befehl die Anweisungen an das Sim zu wiederholen, sofern dieses nicht die richtige Antwort liefert (TimeOut). Dadurch vergeht Zeit, was zu einem verzögerten Reset geführt hat.

Folgen:
Es wird ein kleines Patch erstellt, welches ein TimeOut-Counter enthält. Sofern die Fehleranzahl bei zwei Sendeversuchen in Folge über 50% liegt startet das System verfrüht neu. Dadurch müsste ein Fehler nach spätestens 30 Minuten sich selbstständig lösen.

Schreibe einen Kommentar