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:
(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:
(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.
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
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
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.
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?
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.
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
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ü
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.
Gibt es einen Monitor, wo ich sehen kann welcher Port sich verändert?
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.
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???
http://trac.gateworks.com/wiki/gpio
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.
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.
Daher die Lösung über einen GPIO Pin. Und außerdem, ich finde den mechanischen Schalter von der Haptik her cooler :P