Drucker automatisch starten, wenn man etwas drucken möchte

ich habe vor, dass wenn ich auf Repetier Server auf Drucken Drücke, dass mein Drucker automatisch über das erste Relay mein 2. Relay kurz aktiviert, dass mein Drucker über M81 oder über das Display von dem (Lerdge K) Board herunter gefahren werden kann. 
(Relay 1 ist am Board angeschlossen und Relay 2 am pi)


ich habe gedacht, das ich über den Gcode ";@webAction Anschalten" bei "Sende vor einem Druckauftrag" bei Ereignisabhängig, G-Code ich den Drucker so starten kann, leider geht das nicht.
also habe ich versucht ob der link funktioniert, und der Befehl schaltet mein Drucker auch an. 
Wenn der Drucker eingeschaltet ist kann ich den Befehl auch senden, und das Relay schaltet auch

Web Action UHL:
http://localhost:3344/printer/api/Sapphire_Plus?a=runExternalCommand&data={%22confirm%22:%22%20Soll%20ich%20Sapphire%20Plus%20an%20schalten?%22,%22execute%22:%22bash%20/home/pi/scripts/relay_01_on.sh%20%22,%22icon%22:%22%22,%22id%22:2,%22local%22:true,%22name%22:%22Sapphire%20Plus%20AN%22,%22permAdd%22:false,%22permConfig%22:false,%22permDel%22:false,%22permPrint%22:true,%22remote%22:true,%22slug%22:%22%22}&apikey=API-Key-hier-Eingeben



in der "relay_01_on.sh" Datei im Verzeichnis "/home/pi/scripts" Steht:

gpio mode 7 out
gpio write 7 1
sleep 2
gpio write 7 0


unter "/var/lib/Repetier-Server/database" in der datei "extcommands.xml"
die Datei habe ich noch in die External Command liste zum ausführen am ende vor "</config>" eingetragen: 

<command>
        <name>Sapphire Plus AN</name>
        <execute>bash /home/pi/scripts/relay_01_on.sh </execute>
        <confirm> Soll ich Sapphire Plus an schalten?</confirm>
    </command>

ich nutze den Sapphire Plus Drucker Gehäuse, deshalb ist überall der Name

(wenn jemand das gleiche vor hat kann er es übernehmen ohne Funktion gewähr. erstellt mit V. 1.0.3 funktioniert noch mit V. 1.0.4)



Gibt es eine Möglichkeit den Drucker zum an zu schalten, wenn man auf drucken druckt? also man drückt auf drucken, er führt den Befehl aus und startet dann den druck automatisch mit.

Comments

  • Seit 1.0.4 kannst du auch gpio direkt über den server steuern.
    G-Codes kann man nur senden wenn der Drucker verbunden ist (grünes icon). Die Frage ist also läuft die Firmware über USB versorgt oder erst wenn der Strom an ist. Wenn er erst Hauptstrom braucht must du ihn erst herstellen über gpio im Menü und kannst dann drucken. Wenn nciht könntest du das im start gcode einbauen das er die Stromversorgung startet.
  • edited April 4
    Repetier said:
    Seit 1.0.4 kannst du auch gpio direkt über den server steuern.
    G-Codes kann man nur senden wenn der Drucker verbunden ist (grünes icon). Die Frage ist also läuft die Firmware über USB versorgt oder erst wenn der Strom an ist. Wenn er erst Hauptstrom braucht must du ihn erst herstellen über gpio im Menü und kannst dann drucken. Wenn nciht könntest du das im start gcode einbauen das er die Stromversorgung startet.
    ja, das stimmt, dass ich die gpio direkt ansteuern kann (habe ich schon gesehen) aber leider nicht ein Tastendruck simulieren. die Firmware wird extern versorgt (Nicht über den pi. die +5V Verbindung habe ich gekappt, da die bei octoprint früher nie so wie es soll funktioniert hat, wegen dem Port offen und das Bord war off)

    also geht das (Noch?) nicht, dass er interne G-Codes ausführt (;@webAction ;Anschalten), wenn der Drucker nicht verbunden ist?

    zurzeit mache ich es über extcommands.xml ihn zu starten. und dann den duck starten, möchte ich aber dass es mit einem Tastendruck funktioniert. leider kann man nicht die Standard anschalt M80 Code ändern (bei mir in ;@webAction ;Anschalten) und dann so den Drucker automatisch starten lassen 

    leider steht nicht dabei, mit welchem gpio zahlen layout nummern die gpios angesteuert werden mit BCM oder wiringPi?

  • Sie mal hier:
    https://www.repetier-server.com/gpio-tutorial/
    da steht auch das die pins BCM Nummerierung nutzen. Du kannst bei Tasten auch eine Webaction als ziel hinerlegen.

    Da server Befehle dazu gedacht sind im g-code eingebettet zu werden klappen diese nur bei aktiver Verbindung. Daher ist auch in der Konsole die Eingabe dann nicht erreichbar.
  • edited April 5
    ah okay, eventuell nächstes Update dann der Schriftzug "GPIO Pin" in "GPIO Pin (BCM)" umbenennen, dann weiß man es gleich. (ist nur ein Vorschlag)

    Ich habe es halt jetzt über ein Umweg erstellt. (Da gab es die V1.0.4 noch nicht)

    Also geht es nicht, den Drucker automatisch zu starten?
    Eins, was ich mich Frage, warum kann man bei der G-Code Einstellungen Drucker herunterfahren G-Code erstellen (das ich mit M81 nutze) aber nicht den Drucker starten. Dort könnte man ja mit web Aktionen den Drucker automatisch theoretisch starten über verschiedene Wege
  • ist eigentlich ganz einfach : solange der Drucker läuft besteht die Verbindung , also kann er den M81 emfangen.

    wenn der Drucker aus ist , gibts keine Verbindung also kann der Drucker nichts empfangen und der Server tut nichts solange er die Verbindung nicht hat

  • edited April 5
    RAyWB
    Es geht ums automatisch an schalten über gpio, aus schalten geht über M81
    An und aus schalten geht, nur geht das an schalten noch direkt nach dem "Druck starten" nicht

    muss zurzeit noch zwei Klicks machen, möchte aber nur ein klick machen.

    ich kann zurzeit mein Drucker mit dem G-Code ";@webAction Anschalten", mit der uhl (im haupt post ist er zu sehen) an schalten oder im Haupt Dropdown Menü
  • > eventuell nächstes Update dann der Schriftzug "GPIO Pin" in "GPIO Pin (BCM)" umbenennen
    nicht zielführend. Das system ist für alle linux versionen und BCM ist die nummerierung des chips aber nur beim Pi heist die so weil der chip BCM... heißt. Bei allen anderen wäre es falsch. Darum erwähnen wir es aber in der Anleitung.
  • Moin, ich nutze Repetier-Server unter Ubuntu Bionic-Beaver auf einem Lenovo Miix310 und habe einen FTDI232HQ Adapter mit dran, wie finde ich da denn jetzt den GPIO-Port heraus zum überwachen?

    Gibt es einen Monitor, wo ich sehen kann welcher Port sich verändert?

  • Das ist doch ein Laptop? Hat der überhaupt externe pins für bastler?
    Die usb serial adapter nutzen nicht die GPIO ports. Da gibt es einfach eine serieller Schnittsteller unter /dev/serial/by-path or by-id wenn du den Drucker verbindest und in Linux serielle Schnittstellen mit einkompiliert wurden.
  • Repetier said:
    Das ist doch ein Laptop? Hat der überhaupt externe pins für bastler?
    Die usb serial adapter nutzen nicht die GPIO ports. Da gibt es einfach eine serieller Schnittsteller unter /dev/serial/by-path or by-id wenn du den Drucker verbindest und in Linux serielle Schnittstellen mit einkompiliert wurden.
    Zitat "und habe einen FTDI232HQ Adapter mit dran" dieser stellt GPIO Ports extern zur verfügung
  • Ja genau. Das ist ein seriell->usb wandler. Damit gehe ich davon aus das du die usb Seite ins Laptop steckst und es daher wie jeder andere Drucker der den Chip im Drucker hat funktioniert das sich mit usb Kabel verbindet. Die pins werden ja dann vom FTDI kontrolliert und können dann direkt auf die seriellen pins des Druckers geklemmt werden nehme ich an. Wobei eigentlich alle einen usb Konverter haben, verstehe also eigentlich nicht den aufwand.
  • Und noch einmal, es ist ein Adapter der mir GPIO Ports zur Verfügung stellt.
    Es ist kein reiner USB / Seriell Wandler !!!

    https://amzn.to/3g7RYny

    Diese gibt es auch von Adafruit: https://learn.adafruit.com/adafruit-ft232h-breakout/wiring

    Diese stellen einem SPI / GPIO / UART zur Verfügung, entweder als Python Bibliothek, oder auch als Kernelmode Treiber, usw.

    Das ganze hin und her lenkt aber von meiner Grundfrage ab, wie finde ich den getriggerten / genutzten GPIO Port heraus???
  • Ok, verstehe worauf du hinaus willst, kann es aber nicht sagen. Wir nutzen nur die von linux über /sys/class/gpio zur verfügung gestellte Schnittstelle. Es ist also die Nummer die Linux den pins zugewiesen hat, wenn die Treiber geladen sind. Nehme an das es die gleichen sind wie in den Beispielen, aber kann es nicht sagen. Ich weiß nur für den Pi wie die Nummerierung ist.
  • So, bin bei meiner suche mal endlich auf bissel Infos für Ubuntu gestoßen die nützlich sind:

    http://trac.gateworks.com/wiki/gpio
  • Habe nun aktuell ein Pythonscript am laufen, welches die GPIO Pins vom FT232H abfragt.
    Klappt auch ganz gut, hab dazu was bei Facebook gepostet:
    https://www.facebook.com/groups/743464196012583/permalink/1408161549542841

    Wäre schön, wenn man die Abfragen direkt in Repetier-Server machen könnte.

    Realisierung recht simpel: Pin wird entweder auf Masse oder 5V gezogen, also High or Low Pegel.
    Python fragt den Status ab, und startet mein kleines schon geschriebenes Shell Script.
    Müsste aber eigentlich diese Shell-Scripte auch weglassen können und alles direkt in Python machen, dann kann ich aber nicht mehr von der Repetier-Server Seite aus die Scripte starten.
  • Das ganze um zum Duet Server zu wechseln? Da hab ich eine gute nachricht. Ab 1.0.5 kannst du den Link unter externe Links ablegen mit eigenem icon sogar und innerhalb unseres UI anzeigen. Der Rahmen links und oben bleiben, so kommst du auch jederzeit wieder zurück.

    Wenn du startprobleme vom Server aus bekommst liegt das eigentlich immer an den Rechten wenn es sonst klappt. Das Grundprogramm wird immer als user "repetierserver" gestartet. Dateien müssen also so zugreifbar sein. Als test einfach den Eintrag in extcommands.com genau so starten:
    sudo -u repetierserver  <dein Befehl hier>

    dann siehst du besser Fehler und wo sie auftreten. Wenn das klappt klappt es auch im Server.
  • Repetier said:
    Das ganze um zum Duet Server zu wechseln? Da hab ich eine gute nachricht. Ab 1.0.5 kannst du den Link unter externe Links ablegen mit eigenem icon sogar und innerhalb unseres UI anzeigen. Der Rahmen links und oben bleiben, so kommst du auch jederzeit wieder zurück.

    Wenn du startprobleme vom Server aus bekommst liegt das eigentlich immer an den Rechten wenn es sonst klappt. Das Grundprogramm wird immer als user "repetierserver" gestartet. Dateien müssen also so zugreifbar sein. Als test einfach den Eintrag in extcommands.com genau so starten:
    sudo -u repetierserver  <dein Befehl hier>

    dann siehst du besser Fehler und wo sie auftreten. Wenn das klappt klappt es auch im Server.
    Der wechsel zum DWC ist ja nicht das Problem, das konnte ich auch mit einem "external command" erledigen, aber versuche mal vom DWC dann wieder zum repetier zu kommen. Da müsste ja ins DWC ein Link eingebaut werden, der dann auf dem PC die Webseite wechselt.

    Daher die Lösung über einen GPIO Pin. Und außerdem, ich finde den mechanischen Schalter von der Haptik her cooler :P

  • Bei unserer webseiten Lösung wird das dwc interface als iframe innerhalb unserer top zeile und linker spalte eingebaut, so dass man mit unserem home button jederzeit zurück kommt.
Sign In or Register to comment.