Verbesserung der Stabilität der BOB-Firmware

Bei mir misst er jede 5 sec mit Senden und Schreiben auf SD. Ich habe den FiPy 2 mal so lange laufen lassen bis die Powerbank mit 10000 mAh leer war. es waren fast 25000 cycle in fast 35 Stunden.

ok klingt super! dann schau ich morgen noch mal.

Hallo @Diren , der FTP-Server scheint nicht mehr stabil zu laufen.
Die Software misst bei mir alle 5 sec

Ich habe noch diese zwei bugs bei der aktuellen Version (2020-02-28, ca. 8:30h) gefunden.

  • Bei der Konfiguration der Temperatursensoren werden die aktuell gemessenen Werte nicht mehr angezeigt, siehe unten. Auf der Test Sensors-Seite aber schon, d.h. das Auslesen generell läuft nicht schief, sondern vermutlich die Darstellung hier auf der Seite.

  • Weiter wird nach dem Justieren der Waage über Scale (HX711) und wechseln auf Test Sensors der Gewichts-Wert falsch berechnet. Nach einem restart tauchen sie dann dort auch korrekt auf.

Den ersten bug hatte ich bisher so nicht gesehen, beim zweiten bin ich mir nicht sicher, ob das schon länger ein Problem ist / bereits in den letzten Versionen so war.

Stimmt war mir auch schon aufgefallen. Nach Neustart und nochmaligen öffnen des AP war, glaube ich, wieder alles Ok denke die Werte werden nur gespeichert, aber nicht sofort aktualisiert.

1 Like

Wenn ich den WLAN-Router ausschalte, am FiPy nichts ändere und dann nach einer Zeit den Router wieder einstecke schaut es so aus als ob sich der FiPy nicht wieder reconnected, d.h. wenn er ein mal die connectin verliert ist er for ever weg vom Netz und überträgt nichts mehr??!! Ist das bei euch auch so, das wäre natürlich eine massiver Verschlechterung der Funktionalität und geht so nicht für den Produktivbetrieb!

@Diren hat den Pull request von mir zum Reconect glaube iich noch nicht eingebunden.

Füg den Mal manuell bei dir ein, dann müsste es funktionieren.

1 Like

Danke für die ganzen Bugreports!
Müsste jetzt alles laufen.

Stimmt, bei mir auch. Weiß nicht, wie ich drauf gekommen war, das er langsamer misst. Sorry!

Ich hab den FTP-Server glaub ich noch nie benutzt, das musst du mir vielleicht mal genauer erklären.

Stimmt. Das lag daran, dass in Didis Update die Temperatur als String gespeichert wurde. @didilamken ich hab das wieder zu int geändert. Ist das ok, oder war das ein Fix für einen anderen Bug?
image

Sollte gefixt sein.

Ich hab mich jetzt für folgende Lösung entschieden: wlan reconnect · Hiverize/FiPy@d2b733e · GitHub
Gerne ordentlich reviewen und testen.

Wenn du dazu noch was raus finden kannst, wäre natürlich cool!

1 Like

Ich hatte das in String geändert, da ich einen CRC-Error gerne als ’ ’ ( Leerstring ) kennzeichnen würde. Ausserdem ist das beim OLED-Display und beim Speichern auf SD-Karte praktischer, da braucht man einen String.

       try:
            tmp = self.read_temp(rom)
            ds18b20tmp = int(tmp*10)/10
        except:
            print("CRC-Err", end = ' ')
            # ds18b20tmp =  '99.9'
            ds18b20tmp =  '    '

hier gibt es Probleme bei CRC-Error : String, sonst Zahl

Gibt es nicht sowas wie NaN oder None? Wir sollten schon in der numerischen Domäne bleiben!

Am besten wäre…

None ist unpraktisch bei der Ausgabe auf OLED und SD-Karte.
Und was macht BEEP mit z.B. ‘t_i_1’: None ?
Auf der SD-Karte brauche ich Platzhalter für CRC-Error, damit die Spalten stimmen

z.B.{‘key’: ‘E421ET8aqCTm1234’, ‘t_i_1’: ‘23.8’, ‘t_i_3’: ’ ', ‘t_i_2’: ‘23.8’, usw.
Man kann die Werte sofort prüfen und formatiert als String in data[ ] zwischenspeichern. Auch überflüssige Nachkommastellen braucht man nicht mitzuschleppen.

So entstehen an dieser Stelle keine Werte. Auch nicht None.

Ich werde mal versuchen, wie sich das bei der OLED- und SD-Ausgabe verhält

Dort wäre das dann ggf. am besten entsprechend zu kompensieren.

Das sieht gut aus:

Die blanks sind CRC-Fehler, aber sie tauchen in data[ ] nicht mehr auf.

image

Edit:
Vermutlich stürzt der Stand von heute 17 Uhr hier ab: ds18b20tmp = int(tmp*10)/10 OHNE str()

Der FTP-Server lädt nur kurze Files auf den PC. Nach 4 sec bricht er ab.
Gibt es einen geänderten Timeout in wlanmanager.py?

Mit den Dragonfly- und Squirrel-Firmwares haben wir ein paar Bugs in der LittleFS- und der FTP-Server-Implementierung behoben. Wenn es damit weitere Probleme gibt, sind wir daran sehr interessiert. Welche Firmware hast Du denn auf dem Gerät?

Die Firmware ist immer die gleiche:

Pycom MicroPython 1.20.1.r1-0.7.0-vanilla-dragonfly-onewire-i2s [daf40f36-dirty] on 2019-12-04; FiPy with ESP32

Ich habe hiverize/Fipy am 20.2 von github geladen, da ist alles ok.
Am 28.2. habe ich die SW mit den Änderungen von @Diren geladen. Da kann man nur kleine Files mit Filezilla auf den PC holen, nach 4 sec bricht der FiPy die Verbindung ab.
Wenn ich das Projekt vom 20.2. lade, geht wieder alles.
An den Unterschieden in wlanmanager.py liegt es definitiv nicht. Das habe ich getestet.

Die folgende CRC-Error Behandlung funktioniert:
image
Im Mess-Modus funktioniert String sehr gut ( Senden, OLED, SD-Karte )
Im AP-Modus muss getestet werden

Man glaubt es kaum:

    wlan = network.WLAN(mode=network.WLAN.STA)
    rssi = str(wlan.joined_ap_info().rssi)

Diese Zeilen beeinflussen den FTP-Server