Der Sketch meiner Uhr umfasst 780 Zeilen (mit Leerzeilen) und ist ca 28kb groß.
Angeschlossen ist ein DS3231, TM1637 LCD 4 Digit, eine WS2812 LED, ein LDR und ein Taster.
Aufgebaut ist alles noch auf einem Breadboard mit entsprechender Verkabelung.
Vom TM1637 ist CLK an D6 und DIO an D5
Vom DS3231 ist SCL an D1 und SDA an D2
Im Sketch selbst mache ich keinerlei i2c Einstellungen.
Zum testen lade ich den Sketch über USB immer wieder mal auf den Wemos D1 mini hoch. Manchmal auch kurz hintereinander. Normalerweise funktioniert alles einwandfrei aber manchmal findet er das RTC Modul nicht. Mache ich dann einen i2c Scan, meldet er für jede Adresse Unknown error at address .... No I2C devices found
Der Fehler kann nicht am Sketch liegen, da es ja zuvor und auch später mit genau dem gleichen Sketch funktioniert.
Am Wemos kann es auch nicht liegen, da ich es schon mit 3 Modulen verschiedener Herkunft versucht habe.
Trenne ich usb ab (und somit auch die Stromversorgung) und schließe es wieder an, besteht der Fehler weiter. Auch wenn ich den Sketch neu hochlade oder den Wemos resette.
Ich habe auch schon "Reset all Flash contents" in der Arduino IDE eingestellt, dennoch funktioniert das i2c nicht.
Auch wenn ich das höchste debug level einstelle, bekomme ich keine Meldungen.
//Edit:
Trenne ich DS3231 ab, dann findet der i2c Scanner keine Geräte, bringt aber keine Fehler mehr. Verbinde ich das Modul wieder, funktioniert alles normal. Der i2c Scanner findet fehlerfrei beides (DS3231 und EEprom vom Modul) an 0x57 und 0x68
Auch wenn ich mit dem ESPFlasher Blank, Flash, Irom und default flashe und dann wieder den Sketcch, funktioniert alles.
Das ganze passiert immer nur nach dem Upload des Sketches. Nie im normalen betrieb des Programms.
Hat jemand eine Idee woran das liegen könnte und wie ich das beheben kann?