Da die Sonde über ein Tag keinen Datensatz mehr gesendet hat, wurde heute ein kleiner Patch auf den Atmega-328p aufgespielt. Dieser soll den GSM Chip bei Problemen einfach neu starten. Hoffentlich tritt das Problem nicht mehr auf.
Danach hatte ich noch etwas Zeit für dieses schöne Foto 🙂
Am 22.01.2020 war gegen 13:33 Uhr der letzte Datensatz von der Testboje eingegangen. Bei einem Besuch vor Ort am frühen Abend war keine Auffälligkeit bei der Sichtprüfung festzustellen. Da die Status LED vom Sim800L blinkte, wurde ein Problem mit der Spannungsversorgung ausgeschlossen. Der Atmega hat die Aufgabe entweder alle 256 Zyklen oder wenn die Kommunikation mit dem Sim800L abbricht sich selbst und das GSM-Modul zu rebooten. Der Blinkmodus der Status LED vom Sim800L gab an, dass die Verbindung zum Mobilfunknetz besteht. Da der Atmega-328p keine Status-LED besitzt, konnte über seinen Zustand nichts in Erfahrung gebracht werden. Der nächste Neustart des Systems müsste, wenn alles funktioniert, am 23.01.2020 21-23Uhr stattfinden. Ich entschied den Reset zuwarten, um festzustellen ob das System selbständig den Fehler lösen kann. Am 23.01.2020 um 22:30 Uhr sendete A002 etwas verspätet den ersten Datensatz wieder.
Fazit: Auf Grund der Symptome lässt sich das Problem auf das Sim800 zurückführen. Zwar antwortet das Modul auf die Anfragen des Atmegas hat aber scheinbar Probleme bei der Umsetzung. Da die Sonde nach dem Neustart wieder sendete lässt sich das Problem mit einem Reboot beheben. Um das Problem in der Zukunft zu verhindern, arbeite ich aktuell an einem kleinen Update. Dieses soll einen TimeOut-Counter einführen. Sofern bei zwei Sendeversuchen in Folge zu Problemen kommt startet das System verfrüht neu. Dadurch müsste ein Fehler nach spätestens 30 Minuten sich selbstständig lösen.
Der AtmosFX-Translator wurde mit der Version 2020012001 an die neue Serverstruktur angebunden. Ein Update von einer alten Build auf die neue ist leider nicht möglich. Darüber hinaus gibt es statt dem alten Papieranmeldeformular ein neues digitales Anmeldeformular.
Nach erfolgreichem Abschluss vom Outdoor-Testlauf 3 befindet sich A002 jetzt auf einem See in der Nähe von Walldorf. Hier soll die Sonde mindestens einen Monat verbringen, um Langzeit-Erfahrungen mit der Technik zu gewinnen.
A002 hat eben ein kleines Software Patch bekommen, in welchem der Schlafzyklus zwischen den Messungen von 4 auf 8 Zyklen verdoppelt wurde. Dadurch ergibt sich folgender Messzyklus:
9x
8x Acht Sekunden SleepMode (PowerDown) Wecken über WatchDog Interupt
Abfrage der Temperatur Sensoren
Messwerte durch 9 teilen und zum Mittelwert dazu addieren
GMS Chip aufwecken
GMS Chip Kommunikationstest
GMS Chip Akkustand messen
Datensatz zusammen setzten
Datensatz senden
GMS Chip schlafen legen
Ein Zyklus ist damit ca.10 Minuten lang. Was 6 Messungen in der Stunde bzw. 144 am Tag ergibt.
Nach den ersten 30 Stunden sieht das Fazit sehr gut aus. Der Atmega wurde nach 22,5 Stunden erfolgreich neu gestartet und das Solarpanel hat über den Tag den Akku trotz bewölktem Himmel von 62% auf 80% aufgeladen. Bei einem Temperatursensor gab es eine kleine Anomalie. Da in der bisherigen Entwicklung zuvor nie vorgekommen ist, halte ich das Problem für einen Einzelfall und beobachte es erstmal nur.
Betreffendes System: Prototyp A002 (Akkustand bei 60%)
Nach dem die Probleme mit der Instabilität von der Kommunikation zwischen Atmega382P und dem Sim800L gelöst wurde und die Software 48 Stunden stabil lief, wurde ein neuer Anlauf für den Outdoor Test gestartet. Ein kleiner Patch lässt den Atemega alle 256 Zyklen bzw. alle 22,5 Stunden neustarten, welcher dabei das Sim800L ebenfalls neustarten lässt. Auf diese Weise sollen evtuelle Probleme mit dem RAM vorzeitig umgangen werden.
Darüber hinaus wurde die Sonde auf einem Schwimmbrett montiert, welches als Schwimmkörper für den ersten Testlauf auf einem See dienen soll.
Der Test soll mindestens 5 Tage laufen. Sofern dieser erfolgreich verläuft, wird A002 demnächst in einem See in der Nähe getestet.
Leider läuft der Fortschritt etwas schleppend. Nach dem der Atmega seine Programmierung erfolgreich entgegen genommen hatte, wurde direkt der Outdoor Testlauf 2 gestartet. Leider stellte die Sonde nach 4 bis 12 Stunden immer den Betrieb ein. Nach mehreren erfolglosen Lösungsversuchen wurde nach einem Tipp aus dem Arduino-Forum alle Strings in c-Strings umgewandelt.
Dies führte leider nicht zum Erfolg. Nach dem mehrmals versucht wurde mit dem SeriellenMonitor den Fehler zu finden, wurden der Serielle Output für den SeriellenMonitor deaktiviert. Danach lief das Programm ohne Probleme. Nach dem das Programm 48h lang erfolgreich lief wird morgen der Outdoor-Testlauf 3 angestrebt.
Die neue Platine für den Prototyp A002 ist fertig! Der Umstieg vom Arduino Nano auf den Atmega382P-PU hat sich gelohnt. Befindet sich der Chip und das Sim800L im Sleepmode beträgt der Stromverbrauch nur noch 1-2mA statt 12mA! Während dem Sendevorgang liegt der Stromverbrauch zwar höher, dieser ist aber nur alle 5 Minuten für 10 Sekunden. Erste Test werden in den kommenden Tagen durchgeführt. Sofern alles klappt kann dann der erste Test auf einem See in der Umgebung angestrebt werden.