remotecontrol Geschrieben December 29, 2014 at 17:38 Geschrieben December 29, 2014 at 17:38 Hallo TF-Team, ich habe meinen Aufbau (der jetzt 8 Monte fulltime stabil lief) nochmal mit einem neuen Gehäuse versehen (mit Makerbeams) und dabei die Firmware aller Master auf 2.3.0 aktualisiert, d.h. auch den Stack komplett zerlegt und wieder zusammen gesetzt. Seit diesem Update habe ich den Effekt, dass sich das LCD sporadisch komisch verhält: teilweise wird die letzte Zeile nicht aktualisiert, teilweise ist der Cursor noch sichtbar, obwohl der Befehl gekommen ist, diesen abzuschalten. Stackaufbau (3 Master mit 10 Bricklets), ganz unten Step-Down: Device: uid=62DrY6, type= MASTER, fw=2.3.0 at port '0' of 0 (main master) Device: uid= avN, type= LIGHT, fw=2.0.3 at port 'a' of 62DrY6 Device: uid= iSG, type= MOTION, fw=2.0.0 at port 'b' of 62DrY6 Device: uid= iEQ, type= SOUND, fw=2.0.2 at port 'c' of 62DrY6 Device: uid= iUj, type=REMOTE_RELAY, fw=2.0.1 at port 'd' of 62DrY6 Device: uid=6Ct7da, type= MASTER, fw=2.3.0 at port '1' of 62DrY6 Device: uid=6Kuxh6, type= MASTER, fw=2.3.0 at port '2' of 62DrY6 Device: uid= dFs, type= TEMPERATURE, fw=2.0.2 at port 'a' of 6Ct7da Device: uid= deY, type= HUMIDITY, fw=2.0.2 at port 'a' of 6Kuxh6 Device: uid= moe, type= SOUND_INPUT, fw=2.0.1 at port 'b' of 6Ct7da Device: uid= d7C, type= BAROMETER, fw=2.0.2 at port 'b' of 6Kuxh6 Device: uid= iJF, type= TOUCHPAD, fw=2.0.0 at port 'c' of 6Ct7da Device: uid= cCm, type= DISPLAY, fw=2.0.6 at port 'd' of 6Ct7da Ich schneide inzwischen den IP-Traffic zwischen IPConnection und brickd mit. Hier ein Beispiel: # Time length UID fun sq - data 1419872659.490810 1E 000098C8 01 90 - 00 00 20 20 53 74 61 72 74 20 4F 53 2D 43 6F 6D 6D 61 6E 64 20 20 1419872659.490845 1E 000098C8 01 A0 - 01 00 20 57 4C 41 4E 20 6F 66 66 20 20 20 20 20 20 20 20 20 20 20 1419872659.490882 1E 000098C8 01 B0 - 02 00 20 57 4C 41 4E 20 6F 6E 20 20 20 20 20 20 20 20 20 20 20 20 1419872659.490914 1E 000098C8 01 C0 - 03 00 20 53 48 55 54 44 4F 57 4E 20 20 20 20 20 20 20 20 20 20 20 1419872659.490950 1E 000098C8 01 D0 - 02 13 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1419872659.490980 0A 000098C8 06 E0 - 01 01 1419872659.491003 1E 000098C8 01 F0 - 02 13 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1419872659.491036 0A 000098C8 06 10 - 01 01 1419872659.491061 0E 0000E830 01 20 - 1E 00 00 00 E8 03 1419872661.078934 1E 000098C8 01 30 - 00 13 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1419872661.078984 0E 0000E830 01 40 - 1E 00 00 00 E8 03 1419872661.323173 1E 000098C8 01 50 - 01 13 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1419872661.323208 0E 0000E830 01 60 - 1E 00 00 00 E8 03 1419872661.567169 1E 000098C8 01 70 - 02 13 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1419872661.567229 0E 0000E830 01 80 - 1E 00 00 00 E8 03 1419872662.850181 1E 000098C8 01 90 - 00 00 32 39 2E 44 65 7A 20 31 38 3A 30 34 20 20 7C 0C 0B 0C 0C 7C 1419872662.850218 1E 000098C8 01 A0 - 01 00 20 20 32 31 2E 39 20 DF 43 20 20 20 20 20 33 38 33 20 32 78 1419872662.850254 1E 000098C8 01 B0 - 02 00 20 20 34 36 2E 37 20 25 72 48 20 20 20 20 20 20 20 20 20 20 1419872662.850286 1E 000098C8 01 C0 - 03 00 20 39 36 38 2E 34 20 6D 62 61 72 20 09 20 20 31 30 20 4C 78 1419872662.850321 0A 000098C8 06 D0 - 00 00 1419872662.850342 0E 0000E830 01 E0 - 1E 00 00 00 E8 03 1419872663.257915 1E 000098C8 01 F0 - 00 00 32 39 2E 44 65 7A 20 31 38 20 30 34 20 20 7C 0C 0B 0C 0C 7C 1419872663.448983 1E 000098C8 01 10 - 03 00 20 39 36 38 2E 34 20 6D 62 61 72 20 09 20 20 31 30 20 4C 78 000098C8 ist das LCD. Ich habe "virtuelle" Displays in der Anwendung (nur interner Puffer mit 4*20 Zeichen) und per Touch kann ich die Art der Anzeige ändern. Eine Anzeige nutzt den Cursor, die meisten anderen nicht. Im obigen Beispiel werden alle 4 Zeilen des LCD mit Text gefüllt, dann der Cursor aktiviert, ein wenig verschoben und etwas "gepiept" (ein Piep je Touch). Mit dem Timestamp "1419872662.850181" wird auf den Hauptscreen gewechselt und danach kommt ein lcd_20x4_set_config(false,false), Timestamp 1419872662.850321 - aber der Cursor blieb sichtbar! Ich habe teilweise auch den Effekt, dass beim Screen-Wechsel, wo ich definitiv immer alle 4 Zeilen neu sende, die 4. Zeile nicht aktualisiert wird. Dumm an der Sache: das passiert leider sporadisch, nicht immer gleich, aber erst seit Firmware 2.3.0 und es ist entweder Zeile 4, die den alten Inhalt behält, obwohl ich alle Zeilen neu sende oder der Cursor-Status wird nicht aktualisiert. Ich habe jetzt schon Stunden verbracht, mit dem Versuch das weiter einzugrenzen, aber die Commands werden korrekt zum LCD gesendet, Stecker sind auch alle fest. Ich habe keine andere Idee mehr, als dass hier Commands verloren gehen ? Vielleicht fällt Euch noch was ein? Brickd ist 2.2.0 und der meldet keine Fehler im Protokoll. Der Stack hängt per USB an einem ARM Board. Zitieren
remotecontrol Geschrieben January 4, 2015 at 09:12 Autor Geschrieben January 4, 2015 at 09:12 Da ich auch noch ein paar neue Funktionen entwickle starte ich die Anwendung gerade öfter neu ... Dabei musste ich nun feststellen, dass auch die Callback-Initialisierung vom SoundIntensity-Bricklet nicht mehr stabil funktioniert, d.h. ich starte die Anwendung, setzte einen Callback mit Min 950 (Option '>' und alle 40ms) und der Callback wird nicht aufgerufen . Am leichten Blinken der Master-LEDs kann ich inzwischen erkennen, ob der Callback aktiv ist oder nicht (und nur nicht an der Anwendung ankommt) und hier ist der Callback nicht aktiv gewesen. Starte ich die Anwendung danach nochmal neu (Initialisierung ist immer gleich ...) => der Callback wird mit hoher Wahrscheinlichkeit wieder aufgerufen (Stack dabei nicht neu gestartet). Ein Gedanke war noch, dass es aufgrund der vielen Bricklets und Kabel zu Störungen kommt. Aber sind 10 Bricklets viel? Kabel verkürzen ist eigentlich kaum mehr möglich, aktuell habe ich 1x 6cm, 7x 15cm und 2x 20cm (die 'alten' nicht gedrehten Kabel). Ich werde wohl nicht drum herum kommen, als alles wieder zu zerlegen und nochmal die alte Firmware drauf zu spielen. Zitieren
remotecontrol Geschrieben January 17, 2015 at 15:14 Autor Geschrieben January 17, 2015 at 15:14 Schwitz - Gehäuse wieder komplett zerlegt alle Bricklets weg, Stack ausgebaut, Downgrade auf Firmware 2.2.0 und alles wieder zusammensetzen... Dabei konnte ich mit etwas Gefummel 2 Brickletkabel noch von 15 auf 6cm verkürzen. Dafür habe ich gleich noch ein "Sparekabel" ohne Bricklet am letzten freien Port nach außen gelegt (bloß nicht nochmal alles zerlegen). Und: Effekt ist weg ! Freut mich zwar, aber die Ursache ist leider ungeklärt ... Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.