.gcode Dateien automatisch auf Elegoo Neptune 4 (pro) und andere 3d Drucker hochladen

Posted on 2024-01-16 in 3dprint

.gcode Dateien automatisch auf Elegoo Neptune 4 (pro) per SSH hochladen

Ich bin nur im Besitz des Elegoo Neptune 4 Pro. Die Anleitung sollte aber so auch sicherlich auf anderen Elegoo Druckern funktionieren.

Wer viel mit dem 3D Drucker druckt kennt das Problem, dass die .gcode Dateien nachdem sie aus dem Slicer gespeichert wurden, irgendwie auf den 3D Drucker übertragen werden müssen. Eine Möglichkeit ist diese auf einen USB Stick zu speichern und diesen dann in den 3D Drucker zu stecken. So hatte ich es am Anfang auch gemacht, bis ich dann schließlich doch ein Netzwerkkabel zum Drucker gelegt habe. Ab dann habe ich die Dateien über die Weboberfläche auf den Drucker geladen. Aber auch das hat mich nach einer Weile genervt, da es immer einen Zwischenschritt bedeutet hat. Hat man einen Ordner auf seinem PC in dem man seine ganzen Vorlagen sortiert hat, wäre es doch naheliegend, diesen Ordner einfach automatisch auf den Drucker zu übertragen.

rsync to the rescue!

! Achtung ! Voraussetzung hier ist, dass ihr auf einem Mac oder anderem Linux basierenden System seid.

Da der Elegoo Neptune 4 Pro (und vermutlich auch andere Drucker von Elegoo) auf einem Linux System basiert und der Zugang zum System offen ist, kann man mit rsync seine .gcode Daten einfach auf den Drucker übertragen. Ich habe dazu noch einen SSH-Key angelegt, damit ich nicht jedesmal das Passwort eingeben muss und den Befehl in eine .sh Datei gespeichert. Damit reicht ein einfacher Aufruf der .sh Datei und die Daten werden zum Drucker geladen. Aber der Reihe nach...

SSH-Key erstellen

Wie du einen SSH-Key erstellen und auf dein Zielsystem kopieren kannst, habe ich in diesem Post bereits erklärt.

https://sebastian-muthwill.de/ssh-key_erstellen_und_auf_server_anmelden.html#ssh-key_erstellen_und_auf_server_anmelden

Um den SSH-Key auf den Drucker zu kopieren benötigst du einmalig den Benutzernamen und das Passwort. Diese sind bei meinem Drucker:

Benutzer: mks Passwort: makerbase

Das sollte lt. einiger Foren bei den Elegoo Geräten eigentlich standard sein.

Nachdem du den SSH-Key erstellt und einen eigenen Config-Eintrag erstellt hast, solltest du an dieser Stelle in der Lage sein dich mit dem Befehl: ssh 3dprinter automatisch auf deinem Drucker anzumelden. Das ist Voraussetzung für den nächsten Schritt.

rsync Shell Skript zum Uploaden erstellen

Zunächst möchte ich auf den rsync Befehl an sich eingehen. Denn das Shell-Skript ist eigentlich nur notwendig, damit der Befehl nicht jedesmal neu eingetippt werden muss.

rsync is ein Kommandozeilenprogramm mit dem man Daten synchronisieren bzw. sichern kann. Das schöne daran ist, dass es auch über das Netzwerk passieren kann. Hierzu nutzt rsync SSH.

Der Befehl ist relativ einfach aufgebaut:

rsync -a quellordner/ server:/home/user/zielordner

Für Unseren Zweck müssen wir den Befehl etwas anpassen, damit wir folgendes erreichen:

  • Daten werden nur vom lokalen Rechner zum Drucker geladen
  • es werden nur .gcode Dateien geladen (alle anderen werden weggelassen)
  • lokal gelöschte Dateien werden auch auf dem Drucker gelöscht
  • nur geänderte Dateien werden auf den Drucker geladen

Somit sieht unser Befehl nun so aus:

rsync -rh --delete --progress --include="*/" --include="*.gcode" --exclude="*" 3dprinting/ 3dprinter:/home/mks/gcode_files/3dprint

Schauen wir uns aber die einzelnen Teile genauer an:

rsync                 rsync Programm
-r                    recursive - beachtet auch Unterordner
-h                    menschenlesbare Zahlen - damit die Größenangaben in MB angezeigt werden
--delete              löscht Dateien im Zielordner wenn sie im Quellordner gelöscht wurden
--progress            zeigt den Fortschritt an
--include="*/"        erstellt auch Unterordner
--include="*.gcode"   kopiert nur .gcode Dateien
--exclude="*"         ignoriert alle anderen Dateien
3dprinting/           Quellordner
3dprinter:/home/mks/gcode_files/3dprint    Zielordner auf dem 3D Drucker

Nachdem wir den Befehl zum Kopieren der Dateien haben, können wir ein Shell-Skript erstellen welches den Befehl beim aufrufen ausführt.

Dazu erstellt man eine Datei mit touch 3dprinter-sync.sh in einem Ordner seiner Wahl. Ich hab das direkt im Home Verzeichnis gemacht, damit ich schnell darauf zugreifen kann.

Nun könnt ihr mit nano oder dem Editor eurer Wahl die Datei öffnen und den oberen Befehl hinein kopieren.

Jetzt muss nur noch die Datei mit chmod +x ausführbar gemacht werden.

Und fertig. Ab jetzt könnt ihr mit ./3dprinter-sync.sh eure lokalen .gcode Dateien auf eurem Elegoo Neptune 4 Pro automatisch laden.