Jump to content

Messfehler bei Temp. Bricklet


thunderbird
 Share

Recommended Posts

Hallo,

ich nutze das Temp. Bricklet um kontinuierlich per Interrupt(alle 10sec.) die Temperatur aufzuzeichnen. Leider kommt es so ca. 30 bis 40 mal am Tag zu Messfehlern.

 

11.62
11.68
11.62
-95.06
11.62
11.56
11.62
11.56
11.5
11.56
11.5
11.56
11.5
-127.06
11.5

 

Das passiert sowohl positiv als auch negativ.

Und die Übertragung läuft über Chibi Extension Signalstärke 27 bis 30 dBm

 

Habt ihr ne Idee was das sein könnte ???

 

Link to comment
Share on other sites

Oh, das ist komisch. Wir schicken ja mit CRC und überprüfen die auch. Ist es für dich möglich zu testen ob dieses Problem auch ohne Chibi auftritt? Vor allem die gleiche Bricklet-Kabellänge verwenden!

 

Bei Messungen alle 10 Sekunden ist das eine Fehlerrate von ~0,5% wenn ich mich nicht verrechnet hab. Das so oft ein Fehler auftreten soll der durch die CRC Prüfung rutscht kann ich mir gar nicht vorstellen.

 

Welche Version haben deine Master denn? Wir haben in letzter Zeit viel am Chibi Code gearbeitet, die neueste Version ist 1.1.7: http://download.tinkerforge.com/firmwares/bricks/master/

 

Ich werde das hier mal nachstellen und über Nacht laufen lassen, mal gucken was dabei rum kommt.

Link to comment
Share on other sites

Ja ich werd es auch mal mit einem anderen Temp. Bricklet testen.

Ich nutze ein 2m Kabel. Ich werde den Testaufbau ohne Chibi auch mal die ganze Nacht über laufen lassen und dann morgen wieder schreiben. Alle anderen Sensoren auch an 2m Kabel sind übrigens Fehlerfrei. Und ich nutze im Moment die Version 1.1.3 Das werde ich morgen auch mal ändern.

Link to comment
Share on other sites

Sooo also es liegt nicht an der Chibi auch bei dem direkt angeschlossenen Temp. Bricklet habe ich den Fehler auch wenn er mit Chibi scheinbar öfter auftaucht. Das ganze lief jetzt ca. 20 Stunden.

 

Sensor ohne Chibi

2012-04-03 10:56:36	-0.06
2012-04-03 15:48:00	-0.06
2012-04-03 17:38:53	-0.06

 

Sensor mit Chibi

2012-04-03 12:40:08	-127.06
2012-04-03 17:33:40	-127.06
2012-04-03 13:01:25	-111.06
2012-04-03 14:44:17	-95.06
2012-04-03 08:00:42	96.93
2012-04-03 09:14:27	96.93
2012-04-03 12:09:01	80.93
2012-04-03 16:20:16	80.93
2012-04-03 16:48:37	80.93
2012-04-03 10:54:51	32.93
2012-04-03 17:20:50	32.93
2012-04-03 17:37:55	32.93

 

Ich werde jetzt mal das Update auf Version 1.1.7 machen und dann nochmal bis morgen Abend laufen lassen.

Link to comment
Share on other sites

Ich kann das Problem bei mir nicht erzeugen. Hab es über Nacht laufen lassen (~6 Stunden) sowohl mit einem 2m als auch mit einem 15cm Kabel.

 

Das erste was ich dann jetzt probieren würde ist ein kürzeres Kabel. Um zu gucken ob es am langen Kabel liegt.

Link to comment
Share on other sites

Das ist komisch. Wenn du einen anderen Master da hast probier den doch mal bitte.

 

Sonst würde das ja bedeuten, dass der Temperatur-Mess-IC auf dem Temperature Bricklet einen defekt hat (wenn er nicht richtig angelötet wäre o.ä. hättest du definitiv eine höhere Fehlerquote).

 

Hast du denn ein größeres System am laufen (zum testen jetzt)? Wenn ja probier doch mal eine Zeit lang nur den Master mit einem Temperature Bricklet laufen zu lassen! Vielleicht hat es ja mit der Kombination von irgendwas zu tun.

Link to comment
Share on other sites

Scheinbar hast du recht. Ich habe jetzt mal 2 Tests gemacht:

 

1. MasterBrick + Temp. Bricklet seit heute morgen Fehlerfrei

 

2. Bei meiner Wetterstation habe ich mal alle anderen Sensoren abgezogen, so das ich nur noch MasterBrick mit Chibi am PC und MasterBrick mit Temp. Bricklet und Chibi dran habe. Das läuft auch seit fast 3 Stunden Fehlerfrei. Um sicher zu gehen werd ich es noch nen paar Stunden laufen lassen dann werde ich nach und nach mal die anderen Sensoren wieder hinzufügen. Das sind ein Humidity Bricklet, ein AnalogIN Bricklet für den Luftdrucksensor und ein IO4 Bricklet das die Anzahl der Umdrehungen des Windmessers zählt(über Reedkontakt).

 

Link to comment
Share on other sites

Aha! Das ist ja interessant. Vielleicht ist es dann doch ein Software Fehler. Ich werde das mal am Dienstag genauso nachstellen und die ganze Software im Debug Modus laufen lassen. Ich bin gespannt.

 

Grundsätzlich gibt es keinen Grund warum das nicht gehen sollte, also gibt es da auch einen Fix falls es an der Software liegt!

 

Erstmal vielen Dank für deine ganzen Mühen, es ist leider immer viel Aufwand bis man solche Bugs findet die mit so vielen Elementen gleichzeitig zu tun haben.

Link to comment
Share on other sites

Ok gut :-)

Ich werde mich hier melden wenn ich noch was rausbekomme. Ich habe jetzt mal das Humidity Bricklet hinzugenommen mal sehen ob es bis morgen ohne Fehler läuft.

Achja alle Bricklets sind an 2m Kabeln aber das dürfte doch eigentlich nichts ausmachen.

 

Wünsche euch schöne Ostern

 

Link to comment
Share on other sites

Kurzer Zwischenbericht:

Gestern Abend habe ich so gegen 8 das Humidity Bricklet wieder mit angeklemmt und siehe da nach 45 min hatte ich wieder diesen Fehler. Habe das dann wieder abgezogen und die Nacht nur das Temp. Bricklet durchlaufen lassen. Keine Fehler. Heute so gegen 12 habe ich dann das AnalogIn Bricklet dazu genommen. Bis jetzt nach 3,5 Stunden keine Fehler. Sieht so aus als ob das Problem vom Humidity Bricklet kommt. Ist die Frage ob es ein Software oder Hardware Problem ist. Ich habe leider kein zweites zum Testen. Ich werde aber in den nächsten Tagen mal das Kabel tauschen nicht das es da Probleme gibt.

Link to comment
Share on other sites

OK, da bleibt dann als Fehlerursache wohl nur die Länge des I2C Busses über. Der Temperatursensor auf dem Temperature Bricklet wird über I2C ausgelesen (die anderen von dir verwendeten Bricklets benutzen kein I2C, daher der Fehler nur beim Temperature Bricklet).

 

Die Länge des I2C Busses setzt sich zusammen aus der Summe alle angeschlossenen Bricklet Kabel. Dazu fallen mir mehrere Ideen ein:

 

[*]Kürzere Kabel verwenden (geht wahrscheinlich nicht)

[*]Das Temperature Bricklet mit einer geringeren Frequenz auslesen, die Temperatur ändert sich ja nicht jede ms, da muss also nicht unbedingt die volle Geschwindigkeit genutzt werden

[*]Die Temperatur immer mehrfach auslesen und Ausreißer aussortieren

 

Ich hab mal auf die Schnelle eine Firmware gemacht welche die Temperatur mit 100khz statt 400khz ausliest:

http://download.tinkerforge.com/_stuff/temperature-bricklet-100khz.bin

 

Das könnte die Probleme schon beseitigen, ich tendiere aber gerade dazu auf dauer Möglichkeit 3 zu implementieren. Das muss ich dann aber vernünftig testen damit ich nicht mehr Fehler reinbaue als ich fixe  ;). Gucke ich mir dann am Dienstag oder Mittwoch an.

Link to comment
Share on other sites

Ah, ich meinte nicht die Interrupt Zeit die du extern setzt, die ändert nichts daran wie schnell ich die Temperatur intern auslesen. Das sollte an der Stelle also egal sein.

 

Im gegenteil, um zu testen ob der Fehler noch auftritt macht es wahrscheinlich Sinn die Interrupt Zeit möglichst klein zu machen :).

Link to comment
Share on other sites

Gut zu wissen das es so funktioniert! Dann sollten wir wohl noch was zu Kabellänge und I2C in die Doku schreiben.

 

Zu deiner Frage: Das werde ich so nicht in die normale Firmware übernehmen, ganz einfach weil da jetzt zuviel Zeit für die Kommunikation mit dem Temperatursensor drauf geht. Das ist beim Master Brick egal, bei Bricks die viel berechnen (z.B. IMU Brick) kann das aber kritisch sein.

 

Ich schreib hier nochmal wenn ich eine Lösung implementiert habe mit der ich rundum zufrieden bin :-). Kannst du dann ja nochmal testen, wenn du lust hast.

Link to comment
Share on other sites

  • 2 months later...

Dann grab ich mal das Thema hier aus:

Meine 2 Temperatur-sensoren liefern falsche Werte:

 

sensor1
112.93	03:43:35 01.06.2012
80.93	14:29:50 02.06.2012
64.93	01:06:23 03.06.2012
-0.06	20:54:48 06.06.2012
-0.06	21:28:56 06.06.2012
64.93	17:50:27 20.05.2012
0.93	18:43:20 20.05.2012
96.93	00:49:22 28.05.2012
-95.06	01:51:03 29.05.2012
112.93	03:04:11 29.05.2012
-47.06	14:25:20 29.05.2012
-0.93	21:02:36 30.05.2012
80.93	18:53:26 13.06.2012

sensor2
0.93	07:22:17 01.06.2012
-31.06	10:14:55 02.06.2012
96.93	11:03:15 04.06.2012
-111.06	16:55:58 05.06.2012
0.93	07:52:33 07.06.2012
112.93	02:28:45 08.06.2012
80.93	02:41:07 08.06.2012
-127.06	12:23:49 08.06.2012
-79.06	21:35:02 08.06.2012
96.93	08:50:45 10.06.2012
-111.06	17:33:48 11.06.2012
80.93	15:33:54 12.06.2012
-63.06	17:13:48 13.06.2012
80.93	21:41:10 14.06.2012

 

Setup; 2 Masterbricks mit Chibi; am Host hängt Sensor1 (15cm), ein AmbientLight-Bricklet(1m), und ein LCD(1m), am Slave hängt je ein Temperatur, Humidity und AmbientLight-Bricklet(alle 1m).

Die Callback-Zeit steht auf 10s.

 

Am 30.5. habe ich auf den Temperatur-Bricklets die Firmware von oben aufgespielt.

Link to comment
Share on other sites

Jopp sieht genauso aus wie bei mir vorher.

Seitdem ich aber diese Firmware drauf habe läuft es problemlos.

 

Ich denke es wäre Hilfreich wenn du auch mal testest ob das Bricklet alleine problemlos läuft. Und versuch mal bitte die Callback Zeit 30s(meine jetztige Einstellung).

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...