Forum: Mikrocontroller und Digitale Elektronik ESP32S2 mit DS18B20. Sporadische fehler?


von Hadmut F. (hadmut)


Lesenswert?

Die sensoren liefen an einem esp8266 2 jahre lang fehlerfrei.
3-wire, 2 sensoren.
Seit dem wechsel auf ESP32S2 und der aktuellen 1-wire lib gibt es etwa 
alle 10 min einen fehler. Andere leute berichten von demselben problem. 
Darum kümmern tut sich niemand.
Mit einer älteren 1-wire lib tritt nach berichten der fehler nicht auf. 
Weiss jemand was drüber?

Hat jemand schon die "ESP32's RMT peripheral" lib auf esp32s2 zum laufen 
gebracht?

von Falk B. (falk)


Lesenswert?

Hadmut F. schrieb:
> Seit dem wechsel auf ESP32S2 und der aktuellen 1-wire lib gibt es etwa
> alle 10 min einen fehler.

Und was für einen Fehler? Siehe Netiquette.

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Hadmut F. schrieb:
> Mit einer älteren 1-wire lib tritt nach berichten der fehler nicht auf.

Dann nimm die doch, oder finde den Knackpunk und korrigiere den Code, 
damit das

> Darum kümmern tut sich niemand.

ein Ende hat.

von Hadmut F. (hadmut)


Angehängte Dateien:

Lesenswert?

Falk B. schrieb:
> Und was für einen Fehler?

siehe bild

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Hadmut F. schrieb:
> siehe bild

Das wird noch lange dauern.

von Ralf X. (ralf0815)


Lesenswert?

Hadmut F. schrieb:
> Falk B. schrieb:
>> Und was für einen Fehler?
>
> siehe bild

Sieht mir nach dem typischen Rotfehler aus.

von Hadmut F. (hadmut)


Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> Dann nimm die doch, oder finde den Knackpunk

"Für dieses projekt die 2.x lib verwenden" möchte ich vermeiden.
Und für stundenlang im code rumzusuchen bin ich zu alt.

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Deine Ideallösung wird nicht zufällig vom Himmel fallen. Da du keine 
Zeit investieren willst: wie sieht es mit Geld aus? Willst du es 
entwickeln lassen?

von Falk B. (falk)


Lesenswert?

Hadmut F. schrieb:
> Falk B. schrieb:
>> Und was für einen Fehler?
>
> siehe bild

Du solltest das Thema Netiquette nochmal durcharbeiten, auch in 
deinem hohen 70+ Alter (geraten).

"Daran denken, dass die Leute im Forum nicht neben einem sitzen und 
alles so vor sich sehen wie der Fragesteller"

Was zeigen deine Linien? Was ist die rote Zacke?
Die Sensoren nutzen beim Auslesen der Temperatur eine CRC. Die 
sollte man prüfen und im Fehlerfall die Daten wegwerfen und neu über den 
Bus lesen.
Wenn die CRC stimmt, aber dennoch die Temperatur einen Ausreißer hat, 
muss man weiter denken.

von Rainer W. (rawi)


Lesenswert?

Hadmut F. schrieb:
> siehe bild

Die vernünftige graphische Darstellung einer Zeitserie sieht anders aus.
Wenigstens irgendwelche Zahlen könntest du an die Achsen schreiben.
Wie sehen die Rohdaten aus, die bei Auftreten des Fehlers übertragen 
werden und was macht deine Software daraus für einen Temperaturwert?

von Wolle G. (wolleg)


Lesenswert?

Hadmut F. schrieb:
> siehe bild
Man sieht zwar 4 „Kurven“, aber  keine Beschriftung der x- und y-Achse.

von J. S. (jojos)


Lesenswert?

Die günstigen DS18B20 sind doch meist billigere Nachbauten. Ich meine 
das Problem ist das da nach einiger Zeit das EEPROM kaputtgeschrieben 
wird.
Auf GitHub gibt es auch ein Projekt um das zu checken, den Link habe ich 
aber nicht griffbereit, kann ich morgen nochmal suchen.

von J. S. (jojos)


Lesenswert?

J. S. schrieb:
> Die günstigen DS18B20 sind doch meist billigere Nachbauten. Ich
> meine
> das Problem ist das da nach einiger Zeit das EEPROM kaputtgeschrieben
> wird.
> Auf GitHub gibt es auch ein Projekt um das zu checken, den Link habe ich
> aber nicht griffbereit, kann ich morgen nochmal suchen.

Edit:
Ok google findet es schnell:
https://github.com/cpetrich/counterfeit_DS18B20

von Falk B. (falk)


Lesenswert?

J. S. schrieb:
> Die günstigen DS18B20 sind doch meist billigere Nachbauten. Ich meine
> das Problem ist das da nach einiger Zeit das EEPROM kaputtgeschrieben
> wird.

Kaum. Denn der EEPROM wird im Normalbetrieb gar nicht beschrieben.

von Hadmut F. (hadmut)


Lesenswert?

J. S. schrieb:
> Die günstigen DS18B20 sind doch meist billigere Nachbauten. Ich meine
> das Problem ist das da nach einiger Zeit das EEPROM kaputtgeschrieben
> wird.

Kaum.
Das eeprom wird gar nicht gebraucht, und die sensoren (alles clones) 
arbeiten am esp8266 oder mit version 2.x der lib einwandfrei.

Es ist ein firmware fehler in der lib 3.x

Falk B. schrieb:
> Du solltest das Thema Netiquette nochmal durcharbeiten,

Für solchen stuss habe ich weder die zeit noch die geduld.


Dasmit dem "RMT peripheral", das heisst hardware verwenden anstatt wie 
bisher bitbang mit delay hat noch niemand versucht?

: Bearbeitet durch User
von N. M. (mani)


Lesenswert?

Hadmut F. schrieb:
> Dasmit dem "RMT peripheral", das heisst hardware verwenden anstatt wie
> bisher bitbang mit delay hat noch niemand versucht?

Doch, ich hab vor ein paar Monaten Mal die hier verwendet:
https://github.com/junkfix/esp32-ds18b20
Lief ohne jegliche Probleme auf einem CYD mit grafischer Ausgabe.

Hadmut F. schrieb:
> Hat jemand schon die "ESP32's RMT peripheral" lib auf esp32s2 zum laufen
> gebracht?

Was läuft da bei dir nicht?

von Hadmut F. (hadmut)


Lesenswert?

N. M. schrieb:
> Lief ohne jegliche Probleme auf einem CYD mit grafischer Ausgabe.

Yup. Jetzt geht das bei mir auch. TY.
Nur seriell/debug braucht immer reset aber das ist egal.

: Bearbeitet durch User
von Rahul D. (rahul)


Lesenswert?

> Falk B. schrieb:
>> Du solltest das Thema Netiquette nochmal durcharbeiten,
>
> Für solchen stuss habe ich weder die zeit noch die geduld.

Erwartest aber andererseits von allen anderen hellseherische 
Fähigkeiten?
Ganz mein Humor.

Meine ESP8266 (mit Display und SHT22 oder DS18S20) funktionieren 
komischerweise auch nicht mehr. Das liegt aber wohl eher daran, dass ich 
eine neue Fritzbox seit meinem Umzug besitze und die SSID nicht auf die 
alte gesetzt habe.

von Obelix X. (obelix)


Lesenswert?

Hadmut F. schrieb:
> Yup. Jetzt geht das bei mir auch. TY.

Dann wäre es super, wenn du allen anderen die das gleiche Problem haben, 
die Lösung hier mitteilst.

von Hadmut F. (hadmut)


Lesenswert?

Obelix X. schrieb:
> die Lösung hier mitteilst.

Proggi im ordner "example" laden. funktioniert.
Weiss nicht warum das beim ersten versuch niocht ging.

von Rainer W. (rawi)


Lesenswert?

Hadmut F. schrieb:
> Weiss nicht warum das beim ersten versuch niocht ging.

Hadmut F. schrieb:
> Andere leute berichten von demselben problem.
> Darum kümmern tut sich niemand.

Vielleicht hatte sich doch schon jemand darum gekümmert.
Rennst du immer gleich weinend zum Forum, wenn irgendetwas beim ersten 
Versuch nicht funktioniert?

Ein Fehler sollte wenigstens bei einem selbst reproduzierbar sein, bevor 
anderen die Schuld in die Schuhe geschoben wird - sry

: Bearbeitet durch User
von Hadmut F. (hadmut)


Lesenswert?

Rainer W. schrieb:
> Hadmut F. schrieb:
>> Weiss nicht warum das beim ersten versuch niocht ging.
>
> Hadmut F. schrieb:
>> Andere leute berichten von demselben problem.
>> Darum kümmern tut sich niemand.

Der Rainer hat nicht begriffen dass das 2 verschiedene firmwares sind 🤡

von Hadmut F. (hadmut)


Angehängte Dateien:

Lesenswert?

Scheint mit hardwarebasiertem timing bestens zu funktionieren.
Das hier https://github.com/junkfix/esp32-ds18b20
rot vorlauf, blau rücklauf.

Das ist meine fussbodenheizung von hier:
Beitrag "DIY Heizmischer steuerung"

: Bearbeitet durch User
von N. M. (mani)


Lesenswert?

Hadmut F. schrieb:
> Scheint mit hardwarebasiertem timing bestens zu funktionieren.
> Das hier https://github.com/junkfix/esp32-ds18b20

Naja, die kopiert halt wenn ein CRC Fehler vorliegt keinen neuen Wert 
auf deine übergebene Variable.
Du müsstest Mal den Return Wert der getTemp mit ausgeben. Ansonsten 
weißt du nicht ob es wirklich besser ist.

von Hadmut F. (hadmut)


Lesenswert?

Hauptsache er regelt nicht falschen werten hinterher:
  {
    ds.request();
    delay(900);
    err1 = ds.getTemp(addr[0], act_temp1);
    err2 = ds.getTemp(addr[1], act_temp2);
    if (err1 + err2 == 0) tempOK = true;
  }

von Frank O. (frank_o)


Lesenswert?

Hadmut F. schrieb:
> Scheint mit hardwarebasiertem timing bestens zu funktionieren.

Hast du den parasite power mode oder fest verdrahtet?

von Hadmut F. (hadmut)


Lesenswert?

3-wire. Mit pullup. 1K? habs vergessen.
Parasite ist fehleranfällig.

: Bearbeitet durch User
von Frank O. (frank_o)


Lesenswert?

Datenblatt sagt 4.7k. Ich habe aber auch immer weniger genommen.
Weil der schon bis zu 1,5mA ziehen kann.
Ich glaube, müsste ich aber jetzt gucken, ich habe immer 2.7k genommen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.