Wumpus Geschrieben January 23, 2013 at 20:38 Geschrieben January 23, 2013 at 20:38 Mir sind jetzt schon zwei Bicklets (ein Joystick und ein Dual Relay) nach dem Flashen auf 2.0 gestorben. Das Flashen selbst lief sauber durch, nach dem Reset allerdings werden im besten Fall die Bricklets nicht gefunden, oder aber der Stack hängt sich komplett weg und wird nach dem Reset/Anstecken an USB oder Hochfahren mit WIFI nicht mehr gefunden (keine Elemente im brickv/Linux sichtbar). Das Dual Relay funktioniert prinzipiell noch, wenn ich den Stack mit einem anderen Dual-Relay hochfahre und dann im laufenden Betrieb gegen das "kaputte" austausche (was man eigentlich ja nicht machen sollte). Die gleiche Methode angewandt, um die Bricklets nochmals zu flashen hat auch nicht geholfen. Hier zeigt sich allerdings noch ein kleiner Unterschied: - Beim Joystick Bricklet läuft Flash/Verify ohne Fehler durch, UID lässt sich mit Load auslesen - beim Dual-Relay läuft das Flashen durch, aber das Verify wirft den Fehler "Verification error", UID lässt sich nicht auslesen (liefert 1 zurück) Was kann ich noch tun? Zitieren
borg Geschrieben January 23, 2013 at 21:18 Geschrieben January 23, 2013 at 21:18 Sind die Beinchen im Bricklet-Stecker OK? http://www.tinkerforge.com/doc/FAQ.html#mein-brick-wird-heiss Ansonsten würde ich erstmal klein Anfangen: Nur den Master Brick anschließen: Taucht er vernünftig als Master Brick mit Firmware 2.0 auf? Wenn ja, mit Dual Relay probieren. Wenn dann der Master Brick nicht im Brick Viewer erscheint ist vermutlich die Firmware irgendwie defekt (vielleicht hat das Flashen nicht geklappt). In dem Fall zuerst den Master Brick starten und dann das Dual Relay anschließen. Dann nochmal versuchen über den "Bricklet" Tab zu flashen. Wenn als UID 1 zurückgegeben wird, kann eine neue geschrieben werden? Zitieren
Wumpus Geschrieben January 23, 2013 at 21:52 Autor Geschrieben January 23, 2013 at 21:52 Sind die Beinchen im Bricklet-Stecker OK? http://www.tinkerforge.com/doc/FAQ.html#mein-brick-wird-heiss Extra gerade mit der Digicam zur Sicherheit nochmal ein Macro-Foto vom Stecker gemacht, sieht alles sauber aus. Ich habe ja noch einige Kabel in Verdacht. Musste schon einige aussortieren (auch welche, die ich vorher noch nie in Gebrauch hatte). Jetzt habe ich allerdings ein Kabel in Verwenung, das mit einer ganzen Reihe von anderen Bricklets keine Probleme macht. Ansonsten würde ich erstmal klein Anfangen: Nur den Master Brick anschließen: Taucht er vernünftig als Master Brick mit Firmware 2.0 auf? Ja, Master sicherheitshalber erneut geflasht, sowohl mit Hardware Revision 1.0 als auch 2.0 probiert. Wenn ja, mit Dual Relay probieren. Wenn dann der Master Brick nicht im Brick Viewer erscheint ist vermutlich die Firmware irgendwie defekt (vielleicht hat das Flashen nicht geklappt). In dem Fall zuerst den Master Brick starten und dann das Dual Relay anschließen. Dann nochmal versuchen über den "Bricklet" Tab zu flashen. Master taucht auch mit Dual-Relay im brickv auf, mit Joystick allerdings nicht. Neu flashen auf oben beschriebene Weise funktioniert nicht => Verification failed (bricht quasi schon zu Beginn der Verification ab). Zusätzlich auch noch mit manuell Auswahl einer Firmwaredatei probiert => kein Erfolg Wenn als UID 1 zurückgegeben wird, kann eine neue geschrieben werden? Nein => "Could not write UID: Verification failed" Zitieren
batti Geschrieben January 24, 2013 at 07:21 Geschrieben January 24, 2013 at 07:21 Extra gerade mit der Digicam zur Sicherheit nochmal ein Macro-Foto vom Stecker gemacht, sieht alles sauber aus. Von beiden Steckern? (Am Master Brick und Dual Relay) Master taucht auch mit Dual-Relay im brickv auf, mit Joystick allerdings nicht. Neu flashen auf oben beschriebene Weise funktioniert nicht => Verification failed (bricht quasi schon zu Beginn der Verification ab). Zusätzlich auch noch mit manuell Auswahl einer Firmwaredatei probiert => kein Erfolg Macht jetzt der Joystick Probleme oder wie war das gemeint? Zitieren
Wumpus Geschrieben January 24, 2013 at 07:32 Autor Geschrieben January 24, 2013 at 07:32 Dual-Relay und Joystick machen Probleme: - Dual-Relay angesteckt: Master wird in brickv angezeigt, Dual-Relay nicht, UID vom DR lässt sich nicht auslesen Steckt man zum Booten ein anderes Dual-Relay an und tauscht es im Betrieb, dann funktioniert das Dual-Relay (im Sinne von: man kann schalten). - Joystick angesteckt: Stack wird nicht in brickv erkannt, nachträglich angesteckt kann man allerdings die UID auslesen; Habe leider kein zweites Joystick Bricklet für weitere Tests Beide lassen sich nicht mehr flashen ("Verification Error" zu Beginn der Verification-Phase). Ich habe mehrere Fotos gemacht und keine verbogenen Pins gefunden. Die aktuell verwendeten Kabel habe ich mit einer Reihe von anderen Bricklets getestet und für gut befunden. Zitieren
Nic Geschrieben January 24, 2013 at 10:02 Geschrieben January 24, 2013 at 10:02 Ich hatte in der Vergangenheit insb. beim Dual-Relay anfangs Anschlußprobleme, wie von Dir oben beschrieben. Gelöst habe das letztendlich mit einem anderen Bricklet-Kabel und Port-Anschluß (A,B, C oder D;) am Master. Zitieren
batti Geschrieben January 24, 2013 at 10:19 Geschrieben January 24, 2013 at 10:19 Wumpus, wir können uns das gar nicht erklären. Egal welcher Defekt vorliegen könnte. Das mit dem Joystick ist komisch. Ich fasse nochmal zusammen: Wenn du den Master ohne angeschlossenen Joystick laufen lässt und dann im Betrieb den Joystick anschließt, dann kannst du eine sinnvolle UID auslesen? (würde bedeuten, dass das I2C und EEPROM funktionieren). Wenn du dann versuchst das Plugin zu schreiben, dann schlägt das mit nem Verification Fehler fehl? (würde bedeuten dass es irgendein Problem mit I2C und EEPROM gibt). Irgendwie wiederspricht sich das, kannst du das bitte nochmal testen? Das der Master nicht startet wenn das Joystick Bricklet angeschlossen ist kann eigentlich nur passieren wenn er das Plugin aus dem EEPROM des Joysticks auslesen kann und dieses nun ausführt. Für den Fall das da Müll drinsteht hängt der Master sich auf. Zitieren
Wumpus Geschrieben January 24, 2013 at 12:43 Autor Geschrieben January 24, 2013 at 12:43 Die beiden von mir beschriebenen Fälle sind vollständig separart zu sehen: - kaputtes Dual-Relay Bricklet - kaputtes Joystick Bricklet Die beiden stecke ich niemals zusammen an, weil sie einzeln schon Probleme bereiten. Erstmalig aufgetreten nach "erfolgreichem" Flashen auf 2.0. Zitieren
batti Geschrieben January 24, 2013 at 22:23 Geschrieben January 24, 2013 at 22:23 Wumpus, teste mal bitte ob du die wieder flashen kannst, wenn du den "Update/Flashing" Dialog öffnest und den Reiter Bricklet auswählst. Danach mache bitte folgendes: 1) Brick vom Rechner abstecken 2) Bricklet vom Brick abstecken 3) Brick wieder an den Rechner anschließen 4) Warten bis gestartet 5) Bricklet wieder anschließen 6) Im noch offenen "Bricklet" Tab mal die UID auslesen, wenn das nicht geht versuchen UID zu setzen. Wenn eines von beiden funktioniert, dann Plugin neu schreiben 7) Brick neu starten und im Brickv alles testen Zitieren
Wumpus Geschrieben January 24, 2013 at 22:33 Autor Geschrieben January 24, 2013 at 22:33 Habe ich gemacht, ich kann aber weder die UID auslesen, noch eine neue UID schreiben. Flashen bricht mit Verification failed ab. Jetzt wird es aber noch merkwürdiger; Das Dual-Relay Bricklet kann ich am Servo-Brick (solo) völlig sauber betreiben. UID lesen, erfolgreich flashen, Schalten, etc., nur an den Mastern geht es nicht mehr/immer noch nicht. Es liegt nicht am Port oder Kabel, weil ich ein weiteres anderes Dual-Relay Bricklet mit selbem Kabel am selben Port des Master Bricks einwandfrei betreiben kann. Ebenso funktioniert das "kaputte" Bricklet, wenn ich mit einem anderen Dual-Relay den Stack hochfahre und dann im laufenden Betrieb das Bricklet gegen das "kaputte" Dual-Relay austausche. Flashen und UID lesen/schreiben geht dann allerdings immer noch nicht... PS: Man kann nicht im Reiter Bricklet bleiben, da der Reiter ausgraut, wenn man das Brick vom USB abzieht. Zitieren
batti Geschrieben January 25, 2013 at 09:15 Geschrieben January 25, 2013 at 09:15 Echt schräg. Nur um das klar zu bekommen. Alle Bricks und Bricklets sind auf die aktuelle Version geflasht. Das "böse" Dual Relay kannst du an einem nicht Master Brick vollständig betreiben (UID lesen/schreiben geht etc.). Das "gute" Dual Relay geht auch an den Mastern inkl. UID lesen/schreiben? Wenn du dann nach dem Hochfahren das "gute" Dual Relay per hotplug durch das "böse" ersetzt, dann kannst du es zwar schalten aber nicht die UID lesen/setzen, korrekt? Du hast immer das gleiche Brickletkabel und den gleichen Port am Master Brick benutzt, korrekt? (D.h. nur die Dual Relays getauscht) Falls ja ist es ein lokales I2C Problem bei dem "bösen" Dual Relay. Bitte überprüf nochmal den Bricklet Stecker vom Dual Relay, dass da wirklich nichts krum ist. Auf der Dual Relay sitzt an einer Bohrung ein 8 beiniges IC (das EEPROM). Gucke mal bitte ob du da und an den Pins vom Brickletstecker irgendwelche Brücken/Verschmutzungen o.ä. siehst. Zitieren
borg Geschrieben January 25, 2013 at 18:07 Geschrieben January 25, 2013 at 18:07 @Wumpus: Kannst du nochmal mit Brickv 2.0.1 versuchen die Bricklets zu flashen? Das wird damit leider immernoch nicht gehen, wir haben aber mehr Fehlermeldungen eingebaut um hoffentlich differenzieren zu können was dort passiert. Deine Probleme sind sowas von komisch, wir versuchen hier schon den ganzen Tag rauszubekommen was dort Sache ist. Vor allem da es mit dem Servo Brick geht, macht überhaupt keinen Sinn ! Monti scheint ja in dem anderem Thread ähnliche Probleme mit einem Distance IR zu haben (kann UID nicht ändern). Komisch ist, dass sich bzgl Bricklet flashen im Prinzip nichts geändert hat zwischen den Protokollversionen . Zitieren
Wumpus Geschrieben January 26, 2013 at 10:09 Autor Geschrieben January 26, 2013 at 10:09 @batti: Richtig wiedergegeben, wobei ich jetzt einfach mal den Fall "böser Joystick" aussen vor gelassen habe. Der verhält sich leicht anders von der Problematik. @borg: Ich habe gerade sowohl mit der brickv Version im Downloadbereich (source zip) probiert, als auch aus dem Git die neueste Version ausgecheckt. Beide verhalten sich so wie es vorher auch schon war. Fehlermeldung ist stets bei schreibenden Operationen (UID save/FW save) "Verification failed". UID lesen liefert immer "1" zurück."böses" Dual-Relay wird nur am Servobrick erkannt und funktioniert dort einwandfrei... PS: Unter drei verschiedenen Betriebssystemen getestet (Ubuntu x64, Gentoo x86, WindowsXP) Zitieren
Wumpus Geschrieben January 26, 2013 at 13:32 Autor Geschrieben January 26, 2013 at 13:32 Witzig: Lese ich die UID vom "bösen" Dual-Relay Bricklet aus, erhalte ich den Wert "1". Drücke ich dann auf "Save" und schreibe den Wert "1" zurück, erhalte ich die Meldung "Successfully wrote UID". Am Servo-Brick ist allerdings nach wie vor die richtige UID auslesbar... Zitieren
Loetkolben Geschrieben January 26, 2013 at 13:49 Geschrieben January 26, 2013 at 13:49 Probier mal eine UID >1. Da gab es doch mal Probleme mit der UID 1?! BTW: Wie lang sind die Kabel und hoch ist die Spannung die am Bricklet noch ankommt? Der Loetkolben Zitieren
Wumpus Geschrieben January 26, 2013 at 14:06 Autor Geschrieben January 26, 2013 at 14:06 Ja, habe ich natürlich probiert, aber Werte ungleich 1 führen wieder zur Fehlermeldung. Kabellängen habe ich verschiedene durchprobiert, und ich bin jetzt bei 15cm. An der Stromversorgung sollte es auch nicht liegen, denn ich habe auch bereits mit Step-Down zusätzlich probiert. Weiterhin habe ich jetzt auch noch probiert, das "böse" Dual-Relay Bricklet an einem Master 1.0 zurück auf Protokoll 1.0.x zu flashen, was aber leider genauso fehlgeschlagen ist, wie dort nochmals die UID zu schreiben. Zitieren
borg Geschrieben January 26, 2013 at 15:11 Geschrieben January 26, 2013 at 15:11 Witzig: Lese ich die UID vom "bösen" Dual-Relay Bricklet aus, erhalte ich den Wert "1". Drücke ich dann auf "Save" und schreibe den Wert "1" zurück, erhalte ich die Meldung "Successfully wrote UID". Am Servo-Brick ist allerdings nach wie vor die richtige UID auslesbar... Das macht in gewisser Weise Sinn. Das schreiben klappt nicht (die alte UID bleibt bestehen), dann liest er zum verifizieren die UID wieder aus. Da liest er dann wieder eine 1, da das auslesen auch nicht klappt und für ihn sieht es so aus als habe das schreiben funktioniert. Also wir können definitiv ausschließen, dass es sich um einen Hardwaredefekt handelt: Das Dual Relay funktioniert am Servo Brick und der Master funktioniert mit einem anderen Dual Relay (und er kann es auch flashen). Damit sollte sichergestellt sein, dass weder das "böse" Dual Relay noch der Master einen Hardwaredefekt haben. Richtig? Jetzt muss sich das "böse" Dual Relay ja irgendwie von dem funktionierenden unterscheiden, anders geht es ja nicht. Der einzige Unterschied kann der Inhalt des EEPROMs sein, alles andere ist ja Softwareseitig nicht veränderbar auf einem Dual Relay. So weit so gut. Nun versucht der neue Brick Viewer ein wenig Magie zu machen, um herauszubekommen ob ein Bicklet eine Firmware hat, die noch das alte Protokoll spricht (wird dann rot hinterlegt im Auto-Update Fenster). An dieser Stelle muss natürlich das EEPROM gelesen werden und hier könnte in Theorie irgendein Fehler existieren der zu Problemen führt. Bis hierhin macht alles noch Sinn. Jetzt kommt der kritische Teil: Wenn du jetzt hergehst und folgendes machst: * Nur den Master Brick anschließen. * Das Update/Flashing Fenster öffnen (jetzt wird versucht herauszubekommen ob sich 1.x.y Bricklets am Master befinden). * Dann erst das Bricklet anschließen und über den "Bricklet" Reiter flashen oder UID auslesen. Jetzt wurde vorher nie mit dem EEPROM kommuniziert und es wird ausschließlich der Code zum auslesen bzw schreiben des EEPROMs ausgeführt, der genauso auch auf dem Servo Brick ist und dort funktioniert. Nun sind auf einmal alle möglichen Fehlerquellen ausgeschlossen und es funktioniert trotzdem nicht. Wirklich komisch... Zitieren
Loetkolben Geschrieben January 26, 2013 at 15:54 Geschrieben January 26, 2013 at 15:54 Master sicherheitshalber erneut geflasht, sowohl mit Hardware Revision 1.0 als auch 2.0 probiert. Es ist spannend hier mitzulesen und wenn mir die Ideen ausgehen fange ich manchmal wild an zu spekulieren. Also: Die beiden Masterbricks sind HW 1.0 und HW 2.0? Was ist wenn das EEPROM des Bricklets einen "Hau" hat und irgendein Transistor im EEPROM mal eine Ueberspannung (trocke Luft im Winter und anfassen) bekommen hat. Wenn sich nun die beiden Master. bzw. Servobrick so unterscheiden, dass sie minimal anders sind (Spannung/Strom/Empfindlichkeit) koennte das eine Erklaerung sein. Was fuer Bricks hast du probiert. Zaehle sie mal genau auf. Sichlerlich etwas weit hergeholt, aber man koennte mal drueber nachdenken. Hast du das "boese" Bricklet mal am Servo neu geflasht oder geht das garnicht? Der Loetkolben Zitieren
Wumpus Geschrieben January 26, 2013 at 18:53 Autor Geschrieben January 26, 2013 at 18:53 Flashen am Servo-Brick funktioniert. Ich habe jetzt mal am Servo die UID vom "bösen" Dual-Relay Bricklet verändert, den Brick stromlos gemacht, den brickv beendet und neu gestartet und dann den Servo Brick mit "bösem" Dual-Relay wieder angeschlossen. Bricklet wird erkannt und hat die neue UID. Nur am Master Brick wird das Bricklet immer noch nicht gefunden... Nachtrag: Am Master, an dem das "böse" Dual-Relay nicht erkannt wird, mit einem "guten" Dual-Relay Bricklet am selben Port/selbes Kabel die UID erfolgreich geändert und ausgelesen. @borg: Vorgehensweise durchprobiert, aber ohne Erfolg. Bricklet UID kann nicht gelesen/geschrieben werden. @Loetkolben: Bricks: Servo, Master HW 1.1 (FW 1.x), Master HW 1.1 (FW 2.0), Master HW 2.0 (FW 2.0) Noch interessant: Nach dem Hinweis von Loetkolben habe ich mir die beiden Dual-Relay Bricklets nochmals genauer angeschaut. Beim "guten" sind andere Relays drauf (größere Bauhöhe/Volumen). Platine ist jeweils Revision 1.1. Ausserdem beobachtet, dass beim Reset-Knopf drücken am Master, die beiden LEDs vom "guten" Dual-Relay kurz aufblitzen, wogegen beim "bösen" Bricklet nichts zu sehen ist, beim Anstecken des USB-Kabels aber schon. Zitieren
batti Geschrieben January 27, 2013 at 10:17 Geschrieben January 27, 2013 at 10:17 Das mit den Relays hat nichts zu sagen. Das mit den höheren Relais ist aus einer neueren Charge. Auch das mit dem Aufblitzen sollte nichts bedeuten. Zitieren
Wumpus Geschrieben January 27, 2013 at 15:43 Autor Geschrieben January 27, 2013 at 15:43 Zwischendurch mal etwas Positives: Mit der von borg beschriebenen Methode (Bricklet erst anstecken, wenn man im Reiter "Bricklet" beim Flashen ist) habe ich heute den Joystick neu flashen können. Danach wird er nun wieder einwandfrei erkannt. Mit dem Dual-Relay komme ich leider nicht weiter... Zitieren
Loetkolben Geschrieben January 27, 2013 at 15:49 Geschrieben January 27, 2013 at 15:49 Master HW 1.1 (FW 1.x), Master HW 1.1 (FW 2.0) Koenntest du mal beide HW 1.1 Master auf die FW 2.0 flashen und sagen was passiert? Ist das Problem bei allen 3 Mastern (wenn sie FW 2.0) haben identisch? Der Loetkolben Zitieren
BorgelMorgel Geschrieben January 28, 2013 at 14:21 Geschrieben January 28, 2013 at 14:21 Ich hab nach der Umstellung auf 2.0.0 auch Probleme mit dem Joystick Bricklet. Der erscheint ganz normal im Viewer (2.0.1) und ich hab auch die FW auf die aktuelle gestellt. Hab dann die exaples ausprobiert, also bloß meine UID eingetragen und bei dem "find corners" haut das nicht hin. bezieht sich immer auf die callback funktionen. Unten steht dann ein Timeout Error: in send_request raise Error(Error.TIMEOUT, msg) Error: -1: Did not receive response for function 9 in time Der meckert auch wegen der set_debounce_period(200) und dem set_debounce_period self.ipcon.send_request(self, BrickletJoystick.FUNCTION_SET_DEBOUNCE_PERIOD, (debounce,), 'I', '') Tritt das evtl. auch bei jemand anderen auf oder bin ich einfach nur Blind und hab wieder was vergessen. Hab im Beispiel selber aber nichts geändert, außer der UID. Zitieren
photron Geschrieben January 28, 2013 at 16:47 Geschrieben January 28, 2013 at 16:47 BorgelMorgel, daran ist einen Fehler in der 2.0.0 Firmware des Joysticks schuld, wodurch das Bricklet nicht auf alle Anfragen richtig geantwortet hat. In Version 2.0.1 ist der Fehler behoben. Danke für den Hinweis. Durch eine Änderung der Logik des Joystick Bricklets (war schon im Juni 2012) funktionierte das Find Corners Example nicht mehr wie vorgesehen. Das ist allerdings erst jetzt aufgefallen . Daher gibt es jetzt stattdessen das Find Borders Example. Zitieren
BorgelMorgel Geschrieben January 29, 2013 at 06:59 Geschrieben January 29, 2013 at 06:59 Super! Hab die FW 2.0.1 drauf gemacht und das Beispiel "Find_Borders" ausprobiert. Bei mir funktioniert jetzt alles so wie es soll. Werde meine anderen Programme mal umstellen, aber das sollte jetzt alles passen. 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.