Nano Deadloop?

Hallo,

ich habe mir einen Arduino Nano seit ca 6 Monaten in Betrieb.

Der Nano misst Sensorwerte und sendet diese über USB an eine PI.

Jetzt das Problem:
Alle paar Wochen scheint sich der Nano in einer Art Deadloop zu verfangen und reagiert nicht mehr.
Wenn ich versuche den Nano neu zu flashen, kommen Fehler wie "not in sync"...
Die rote LED blinkt hierbei heftig.

Ich muss den Nano dann vom Strom entfernen und wieder anschließen. Dann funktioniert alles wie vorher.

Watchdog habe ich auch aktiviert, bringt aber nichts..

Info: Auch bei einem simplen Programm, das nur eine Schleife im Sekunden Takt durchgeht, stürzt der Nano nach ein paar Wochen ab. Dann blinkt die rote LED wieder wie verrückt.

Vielleicht habt ihr ja eine Idee :wink:

Viele Grüße

Da stört was oder das Programm tut doch nicht was Du erwartest. Oder schlechte Verbindung, kalte Lötstelle ... da gibt's 1001 Möglichkeiten.

Ich habe die Sensoren abgenommen vom Nano, habe das Testprogramm aufgespielt, das nur eine while-Schleifen beinhaltet, die den Watchdog sekündlich zurücksetzt.

Selbst dann hängt der Nano sich auf.. Aber immer erst nach mehreren Wochen..

Auch bei einem simplen Programm, das nur eine Schleife im Sekunden Takt durchgeht, stürzt der Nano nach ein paar Wochen ab.

Darf ich raten?
Nach recht genau 49, bis 50, Tagen erfolgt das Versagen.

Tipp:
Wenn ein Programm nicht funktioniert, und man weiß nicht warum, ist es wenig hilfreich, zu jammern, ohne das defekte Programm zu zeigen.
Es sei denn, man will nur jammern.

Also vom Prinzip her funktioniert das schon, ich habe z.b einen UNO im Dachboden laufen.
Der sendet via 433mhz Wetterdaten. Und läuft 24/7 durch ohne Probleme.

Vermute bei dir ein Problem mit der Hardware oder mit der Stomversorgung.
Schon mal einen anderen Nano getestet ?

combie:
Darf ich raten?
Nach recht genau 49, bis 50, Tagen erfolgt das Versagen.

Das kommt ungefähr hin, ja..

Hier ein Testprogramm, das das selbe Phänomen aufzeigt

#include <avr/wdt.h>
 
void setup()
{
  Serial.begin(9600);  

  wdt_enable(WDTO_2S);
}
 
void loop()
{
  Serial.println("Test");
  wdt_reset();

  delay(1000);
}

Hier ein Testprogramm, das das selbe Phänomen aufzeigt

Da kann ich natürlich nicht den 49,x Tage Fehler sehen.

Aber ich kann dir evtl. den "Die rote LED blinkt hierbei heftig" erläutern.
Denn das ist ein Zeichen dafür, dass der Watchdog für Dauerresets sorgt.

Folgendes passiert:
Du machst Strom auf den Nano.
Der macht einen PowerOnReset.
Der Bootloader läuft durch (ca 2s)
Dann startest du den Watchdog (2s)

Aus irgend einem Grund erfolgt dann ein Reset.
Egal welcher Grund, BOD, WDT, Resetknopf, egal.
Der WDT läuft weiter.
Nur jetzt mit seinen Default Werten.
Und damit ist die Zeit zu kurz, als dass der Bootloader durch laufen könnte.
Die Folge: Dauerresets.
Und damit dauerndes Bootloader Leuchten Blink.
Erst ein PowerOnReset kann ihn aus dem Zustand raus holen.

Die Lösung für "dieses" Problem: Einen Bootloader aufspielen, welcher als erstes den WDT deaktiviert.
Davon gibts einige...
Alternativ: Auf den Bootloader verzichten.

Top Erklärung Combie.
Wußte ich so detailiert nicht, hatte da zwar was mal gelesen... egal

Das Eingangsposting kam für mich so rüber, das es auch passiert wenn man den Watchdog nicht anfasst.

Danke, ich werde das am Wochenende gleich mal ausprobieren! :slight_smile:

Der Watchdog ist die ganze Zeit schon aktiviert.. ich weiß eigentlich garnicht wie es ohne wäre :open_mouth: