Odyssee beendet: Ager wieder stabil

jetzt wieder topstabil!

Nachdem ich bereits glaubte durch die Änderung der Stromversorgung  etwas zur Stabilität beigetragen zu haben, tauchten leider sporadisch immer noch Probleme auf. Diese waren nach wie vor in keinem Log zu erkennen und wegen des sporadischen Auftretens auch nicht zb. im Logic Analyzer oder Ozilloskop aufzuzeichnen.

Dies sind die durchgeführten Hardwareverbesserungen im Ausschlussprinzip:

– Kabel und Box mit Alu abgeschirmt:   crash
– Relais entfernt und durch SSR ersetzt:   crash
– ESP ohne die langen Kabel / Antennen laufen lassen:   crash
– andere Stromversorgung verwendet:    crash
– nur noch VIN bedienen, nicht mehr 3.3V parallel versorgen:    crash
– glättenden Kondensator an der Stromversorgung:    crash
– Wifi Kommunikation reduziert durch neues Protokoll:    crash
– MQTTget und push deaktiviert:    crash
– 2k2 pullups statt 10k auf i2c: crash

Des Rätsels Lösung konnte ich dann mit Unterstützung durch stickbreaker erschlagen: Bei der Kommunikation über i2c trat – ausgelöst durch einen Bug im Arduino Core – ein Crash auf sobald ein READ Kommando mit 0 bytes Länge abgesetzt wurde. Daraufhin landete der Slave in einer unbegrenzten Warteschleife und das STOP Kommando konnte nie abgesetzt werden. Und somit war der ganze Chip in einem permanenten WAIT Status während SDA nie auf high gehen konnte (“Stop”).

Ja, das ist gemein und betrifft alle ESP32 Arduino Cores vor Commit 9a7946e (Version 1.0.1-rc4) und nach irgend einer Version aus dem September 2018.

jetzt wieder super stabil!

2 comments on “Odyssee beendet: Ager wieder stabil”

  1. Pingback: openAger: den Instablitäten auf der Spur | valki.com

Leave A Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.