Jump to content

Stepperbrick - Probleme mit mehreren USB Geräten


dehansen
 Share

Recommended Posts

Ich habe ein Problem sobald mehr als nur der Stepperbrick am Rechner hängt.

Solange der Brick allein ist funktioniert alles einwandfrei. Sobald aber ein weiteres Gerät an einen USB Port (kein Hub) angeschlossen wird werden offenbar Steuersignale "verschluckt", der Schrittmotor bewegt sich nicht mehr einwandfrei. Habe das Phänomen mit einer Digitalkamera reproduzieren können, sobald die Kamera eingesteckt wird wird die Bewegung des Schrittmotors gestört. System läuft auf einem Laptop unter Ubuntu 12.04 64 Bit. Da ich aber 2 Geräte brauche die für die für die benötigte Synchronizität auch beide am gleichen Rechner hängen müssen ist das ein richtiges Problem,

 

Gibt es hier Ideen oder gar Lösungsansätze?

Link to comment
Share on other sites

Theoretisch denkbar, aber das Problem tritt bereits dann auf wenn die Kamera nur eingesteckt wird, anschließend ausgehangen wird, trotzdem Probleme. An der Stelle kommt noch nicht viel an Datenverkehr zusammen.

 

Ich fahre den Schrittmotor mit 1000 Steps/Sekunde, das Ganze geht per USB 2.0 raus, produziert das dermaßen viel Datenverkehr?

 

Unter Ubuntu 10.4 hatte es diese Probleme noch nicht gegeben.

Link to comment
Share on other sites

2013-02-01 11:33:02.200978 <W> <transfer.c:68> Read transfer 0x9d47890 returned with an error from Stepper Brick [6qZ4GM]: LIBUSB_TRANSFER_ERROR (1)

2013-02-01 11:33:02.201959 <W> <transfer.c:68> Read transfer 0x9d478f8 returned with an error from Stepper Brick [6qZ4GM]: LIBUSB_TRANSFER_ERROR (1)

2013-02-01 11:33:02.202957 <W> <transfer.c:68> Read transfer 0x9d47960 returned with an error from Stepper Brick [6qZ4GM]: LIBUSB_TRANSFER_ERROR (1)

2013-02-01 11:33:02.203957 <W> <transfer.c:68> Read transfer 0x9d479c8 returned with an error from Stepper Brick [6qZ4GM]: LIBUSB_TRANSFER_ERROR (1)

2013-02-01 11:33:02.204174 <W> <transfer.c:68> Read transfer 0x9d47828 returned with an error from Stepper Brick [6qZ4GM]: LIBUSB_TRANSFER_ERROR (1)

 

 

 

Genau diese Zeilen kommen immer wieder in der gleichen Reihenfolge. Ich brauche genau die Kamera am Rechner. Sobald die Kamera rankommt, egal ob da Bilder gezogen werden oder nicht kommt der Fehler.

Link to comment
Share on other sites

Dass heißt, die 5 libusb Read Transfers, die brickd pro Brick benutzt um über USB Daten vom Brick zu lesen, brechen mit LIBUSB_TRANSFER_ERROR ab. Brick Daemon sollte dann versuchen diese Read Transfers neu abzuschicken.

 

Kommen diese Warnings immer und immer wieder solange wie die Kamera angesteckt ist, oder nur einmal beim Anstecken der Kamera und dann ist wieder Ruhe?

 

Deine Kamera schafft es irgendwie die USB Kommunikation zwischen Brick Daemon und Brick zu stören. Mir ist nicht klar wie oder warum. LIBUSB_TRANSFER_ERROR ist hier als Fehlermeldung leider nicht sehr aussagekräftig, der Fehler kann in libusb an vielen Stellen auftreten. Ich werde versuchen ob ich da libusb noch mehr Information entlocken kann.

 

Hast du mal versucht Brick und Kamera an andere USB Anschlüsse anzuschließen? Vielleicht tritt das Problem nur in bestimmter Kombination auf.

Link to comment
Share on other sites

Habe die Ports ausprobiert.

Nimmt man die beieinanderliegenden Ports ist es schlimmer, die auseinanderliegenden Ports sind etwas besser aber nicht fehlerfrei.

Auch die Reihenfolge hat keine Auswirkungen.

 

Es sind übrigens nicht die Fehlermeldungen, die tauchen nur auf wenn der USB Stecker des Bricks gezogen wird und der Viewer noch läuft.

 

Die Fehler treten bei forward Kommandos wesentlich häufiger auf als bei backward. Man kann es richtig hören uns natürlich auch sehen. Es werden dabei in den Logs keine Fehler etc. gemeldet.

Link to comment
Share on other sites

Es sind übrigens nicht die Fehlermeldungen, die tauchen nur auf wenn der USB Stecker des Bricks gezogen wird und der Viewer noch läuft.

 

Ah, okay, das im Prinzip erwartet, dass beim abziehen des Bricks diese Fehler auftreten. Eigentlich sollte libusb es ordentlich mitbekommen, wenn ein USB Gerät entfernt wird. Allerdings ist Hotplug in libusb je nach der Version und Betriebssystem unterschiedlich gut unterstützt. Du kannst also abbrechende Read Transfers beim Abstecken des Bricks ignorieren. Die haben nichts mit deinem Problem zu tun.

 

Die Fehler treten bei forward Kommandos wesentlich häufiger auf als bei backward. Man kann es richtig hören uns natürlich auch sehen. Es werden dabei in den Logs keine Fehler etc. gemeldet.

 

Was genau tust du denn? Konfigurierst du den Stepper Brick im Brick Viewer und lässt ihn dann per Forward Knopf einfach fahren? Und während der fährt und du im Brick Viewer nichts tust läuft der Motor nicht gleichmäßig und stottert?

 

Das ist interessant, denn wenn du im Brick Viewer oder durch dein eigenes Programm keine Steuerbefehle absetzt, fährt der Stepper ja einfach vor sich hin ohne das über USB Kommuniziert wird.

Link to comment
Share on other sites

Ja, ich lasse den einfach mal losfahren, ist der andere Port mit der Kamera belegt stottert der Motor hin und wieder mal, manchmal setzt der, im Vorwärtslauf, auch komplett aus (bzw. er scheint einen Schritt vor und einen zurückzumachen und somit zu stehen).

Ziehe ich die Kamera raus läuft der Motor einwandfrei. Stecke ich die Kamera wieder rein gibt es wieder Probleme.

 

Ist aber nicht nur im Viewer so, meine Software hat dieselben Probleme.

Link to comment
Share on other sites

Okay, dass heißt also, dass die Kamera den Brick stört, selbst wenn dieser einfach nur vor sich hin den Motor fährt. Es findet keine aktive Kommunikation mit dem Brick zu diesem Zeitpunkt statt, welche von der Kamera gestörte werden könnte.

 

Vielleicht ist es die Stromversorgung des Bricks, die die Kamera irgendwie stört. Wie versorgst du Brick und Motor? Ist der Brick über USB versorgt? Wenn ja hast du einen aktiven USB Hub den du zwischen PC und Brick stecken kannst, wobei die Kamera nicht an den Hub darf. Oder hast du eine Step-Down Power Supply um darüber den Brick zu versorgen.

Link to comment
Share on other sites

Ein Verteiler speist alle elektrischen Geräte.

An diesem hängen dran :

 

1 Laptop

1 Schrittmotor (Netzteil)

1 Canon Spiegelreflexkamera (Netzteil)

 

Der Laptop hat 3 USB Ports, einer ist mit dem Stepperbrick und einer mit der Kamera belegt. Der 3. Port ist frei.

 

Ich hänge mal einen aktiven USB Hub rein, mal sehen was das bringt.

Link to comment
Share on other sites

Interessant. Ist das eine Anordnung fürs Focus-Stacking ? Welche Software läuft auf dem PC um die Kamera anzusprechen ?

Ev. hab ichs übersehen, aber warum muss die Kamera am USB-Port im laufenden Betrieb des Steppers abgezogen bzw. angeschlossen werden ?

Alternativ würde ich die Kamera nur mal mit Akku betreiben.

Link to comment
Share on other sites

Ich habe nun den aktiven Hub ausprobiert und nach einigem Hin und Her eine Lösung gefunden.

 

Ist die Kamera am Hub und der Stepperbrick am Computer läuft es einwandfrei. Jede andere Kombination funktioniert nicht. Die Kamera wird grundsätzlich per Netzteil versorgt, Strom sollte also eigentlich kein Thema sein. Keine Ahnung warum der Schrittmotor gestört wird wenn die Kamera nicht an einer eigenen USB Stromquelle hängt. Möglicherweise ist der Brick ja sehr empfindlich was das angeht?

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...