Willkommen! Anmelden Ein neues Profil erzeugen

Erweiterte Suche

Pronterface setzt Reset auf High

geschrieben von TheZock 
Pronterface setzt Reset auf High
01. May 2013 05:14
Hi.

Eine Frage die ich Ad-Hoc nirgends im Forum gefunden habe. Ich habe eine Wolfstrap gebaut, mit Traumflug's Gen7 Board und Teacup Firmware. Beim testen mit der Arduino-Software funktioniert alles wie es sollte. G-Code wird angenommen und ausgeführt.

Wenn ich Pronterface starte und mich mit dem Board verbinde scheint Pronterface die RTS-Leitung auf High zu setzen, was für das Board ein High an Reset bedeutet. Damit resettet das Board für ewig und Pronterface bekommt keine Verbindung.

Dieses Reset ist für das Firmware-Upload sehr praktisch und funktioniert dabei auch so wie es sollte.

Wenn ich die Reset-Leitung auftrenne funktioniert auch Pronterface wie es sollte, aber mir währe wesentlich lieber Pronterface würde die RTS-Leitung einfach in Ruhe lassen.

Lässt sich das irgendwie erreichen?

Grüße

TheZock
Re: Pronterface setzt Reset auf High
01. May 2013 06:29
Dieses Auto-Reset ist eigentlich ein Missbrauch der Hardware-Handshake-Leitungen. Hat man das, darf man keinen Hardware-Flow-Control mehr verwenden. Mit ein bisschen Glück kann man im Windows einstellen, dass diese Schnittstelle keinen Flow Control (Flusskontrolle) verwendet. Software-Flusskontrolle (XON/XOFF) geht, wenn man das in der Teacup extra anschaltet (config.h). Ist jedoch mit Pronterface überflüssig.


Generation 7 Electronics Teacup Firmware RepRap DIY
     
Re: Pronterface setzt Reset auf High
11. May 2013 11:39
Hi.

Nach einigen experimenten bin ich jetzt soweit das ich langsam Python verstehe :-) Leider hat mir das alles nichts gebracht da es einfach nicht so funktioniert wie es in der Dokumentation steht.

Sobald pronterface (bzw. printcore.py) die serielle Schnittstelle öffnet (über pyserial) wird rts auf high gesetzt.

Sie betreffende Zeile:
self.printer = Serial(port = self.port, baudrate = self.baud, timeout = 0.25)

Es gibt einen Parameter (laut Doku) namens rtscts mit dem man das Hardware-Handshake beeinflussen kann. Mal steht in der Doku das man hier =1 oder =0 angeben kann, wenig später ist es =True oder =False :-P Ich habe die Zele mal geändert und egal was man dort einträgt. rtscts = False, oder rtscts = 0 oder auch mal = None oder vielleicht mal = 1 oder = True ... es wird IMMER RTS aus High gesetzt. Der Parameter scheint keinerlei Wirkung zu haben. Zumindest bei mir unter Windows nicht. Ich habe zu dem Thema bei Google auch nichts gefunden.

Wenn man direkt nach dem öffnen den RTS-Status auf Low setzen möchte ... bringt's leider auch nichts.

Die Einstellungen im Gerätemanager zum USB-COM-Port steht ebenfalls auf "Kein Handshake".

Diese Reset-Leitung kostet mich gerade echt nerven! Bzw. eher Python oder PySerial ... ich hab keine Ahnung wer hier nicht ganz sauber tickt. Aber wenn ich mir PySerial anschauen ... dann ist's wohl PySerial was nicht macht was es sollte.

Grüße

TheZock
Re: Pronterface setzt Reset auf High
11. May 2013 11:53
Versuch doch mal Repetier Host.

mfg
Re: Pronterface setzt Reset auf High
12. May 2013 10:28
Eigentlich ist es ja die DTR Leitung die getoggelt wird um den Reset auszuführen. Repetier-Host macht dies derzeit auch, setzt die aber wieder auf low zurück in der aktuellen Version. Das RTS auch ein reset auslöst ist mir neu.


Repetier-Software - the home of Repetier-Host (Windows, Linux and Mac OS X) and Repetier-Firmware.
Repetier-Server - the solution to control your printer from everywhere.
Visit us on Facebook and Twitter!
Re: Pronterface setzt Reset auf High
12. May 2013 18:59
Quote

Eigentlich ist es ja die DTR Leitung die getoggelt wird um den Reset auszuführen. Repetier-Host macht dies derzeit auch, setzt die aber wieder auf low zurück in der aktuellen Version. Das RTS auch ein reset auslöst ist mir neu.

Ich habe gerade mal bei einem der Adapter nachgeschaut, die die Gen7 v1.4 verwendet hat. Dieser Adapter führt RTS gar nicht raus, nur DTR. Sanguinololu und zwei Arduinos habe ich auch nachgeschaut, alle verwenden DTR für das Reset.

Da bin ich natürlich erst mal erschrocken. Auf der Gen7 Wiki-Seite wird nur RTS erwähnt. Ausgerechnet danach habe ich mich gerichtet und weil das funktioniert hat, habe ich mich auch nicht weiter drum gekümmert. Also wäre schleunigst Gen7 v1.5.1 angesagt ...

... doch ein Blick ins Datenblatt des MCP2200 zeigt folgendes Block-Diagramm:



Da gibt's gar kein DTR!

Hmm. An der Stelle muss ich gestehen, dass ich erst mal nicht weiter weiss.


Generation 7 Electronics Teacup Firmware RepRap DIY
     

Anhänge:
Öffnen | Download - MCP2200 Block Diagram.png (36.6 KB)
Re: Pronterface setzt Reset auf High
13. May 2013 02:20
Hi.

Kurzer Einwurf... mit Repetier-Host funktioniert's, da RTS wohl nicht genutzt wird.

Das DTR für's Reset verwendet wird habe ich auch im Pronterface-Source so gesehen. Wenn man da auf Reset drückt wird DTR kurz getooglet. Hatte micht gewundert und das im Source auf RTS geändert. Hat aber mein Problem natürlich nicht beeinflusst.

RTS wurde ja so wie ich das verstanden habe genutzt da damit Arduino vor dem Upload das Board resetten kann. Tooglet die Arduino-Software denn auch DTR vor'm Upload???

Grüße

TheZock
VDX
Re: Pronterface setzt Reset auf High
13. May 2013 02:40
... ist doch irgendwie logisch, den (nicht benötigten/verwendeten) DTR-Pin direkt auf RST zu legen und für einen Reset kurz auf LOW zu ziehen ... müßte sonst aber immer HIGH sein ...


Viktor
--------
Aufruf zum Projekt "Müll-freie Meere" - [reprap.org] -- Deutsche Facebook-Gruppe - [www.facebook.com]

Call for the project "garbage-free seas" - [reprap.org]
Re: Pronterface setzt Reset auf High
13. May 2013 03:02
Die Arduino boards nutzen einen Kondensator/widerstand um beim Toggeln reset kurz auszulösen. Daher macht es keinen unterschied ob dtr von low->high oder high->low wechselt. Er darf danach auch konstant high oder low bleiben. Wobei mache boards laut userberichten mehr kommunikationsfehler haben, wenn er high bleibt.


Repetier-Software - the home of Repetier-Host (Windows, Linux and Mac OS X) and Repetier-Firmware.
Repetier-Server - the solution to control your printer from everywhere.
Visit us on Facebook and Twitter!
In diesem Forum dürfen leider nur registrierte Teilnehmer schreiben.

Klicke hier, um Dich einzuloggen