Dieser Guide basiert auf der Arbeit von Eric Zimmerman und beschreibt den Weg Configs, Macros etc. manuell oder automatisch in das eigene Github-Repository hochzuladen und bei Bedarf auch als Backup auf seinem 3D-Drucker wiederherzustellen. Um den Guide besser folgen zu können, sind alle Konsolenbefehle für Copy&Paste vorbereitet. Ebenso sind diesem Guide Bilder hinzugefügt um einzelne Schritte besser verständlich zu machen.
Important
Der in diesem Guide gezeigte Access-Token sowie das Repository wurden nur für diesen Guide erstellt. Beides wurde bereits gelöscht. Nur für den Fall das jemand mit diesen Daten versucht Zugriff zu erlangen. 😄
- ein 3D-Drucker
- Putty für eine SSH-Verbindung
- einen Account bei Github (den wir in diesem Guide erstellen)
Wer seinen Drucker optimiert und zusätzliche Software installiert, ändert zwangsläufig seine Configs. Dabei kann etwas schiefgehen, man hat alte Werte vergessen oder komplett gelöscht. Mit diesem Guide hat man die Möglichkeit bequem über Github seine Daten zu sichern und nachzuvollziehen, welche Änderungen man wo gemacht hat und diese bei Bedarf zu ändern. Das nachfolgende Bild zeigt eine Änderung eines Kommentars in der printer.cfg.
- Rot ist der urspüngliche Wert und grün zeigt den derzeitigen Wert.
Note
Solltest du noch keinen Github-Account besitzen, kannst du dir hier einen Account erstellen.
- Einloggen in den erstellten Github Account.
- Erstellen eines neuen Github Repository durch klicken auf NEW.
Die nächsten Schritte sind die Namensfindung, Zugriffsberechtigung und diverse andere Einstellungen.
-
Namen des Repository
- Einen aussagekräftigen Namen wählen. Falls man plant mehrere Drucker einzupflegen, wäre hier der Name des jeweiligen Drucker sinnvoll.
-
Beschreibung Repository
- Die Beschreibung des Respository ist optional. Hier könnte der Drucker detailierter beschrieben werden.
-
Public oder privat
- Soll das Repository für alle zugänglich sein muss "public" gewählt werden, andernfalls "private" wählen.
-
Initialisierung des Repositorys
- Dieser Teil definiert welche Grunddateien im Repository enthalten sind. Wie im nachfolgenden Bild auswählen.
- Add a README file - Checkbox leer
- Add .gitignore - NONE
- Choose a licence - NONE - Dieser Punkt ist optional. Wer mag kann sich die entsprechgende Lizenz seiner Wahl auswählen.
- Dieser Teil definiert welche Grunddateien im Repository enthalten sind. Wie im nachfolgenden Bild auswählen.
-
Repository erstellen
- Mit Klick auf "create repository" wird das eigene Repository erstellt.
Nach Erstellung des Repository erfolgt eine Weiterleitung zum derzeitigen "Root-Verzeichnis". Kopiert die HTTPS-URL eurers Repository und fügt diese in einen Texteditor eurer Wahl ein.
Um Zugriff auf das Repository über den Drucker zu erhalten, benötigen wir ein "access token" welches wir hier erstellen.
- Auf "Generate new token" klicken.
- "Generate new token (classic) wählen.
Im nächsten Schritt wird das Token mit entsprechenden Zugriffsrechten konfiguriert.
- Namen des Tokens
- Unter "Note" wählt ihr einen passenden Namen, welcher mit eurem Drucker in Verbindung gebracht werden kann.
- Gültigkeitsdauer
- Unter Expiration "No expiration" auswählen.
Tip
Wer mag kann hier auch einen Zeitraum wählen nach dem das Zugriffs-Token seine Gültigkeit verliert. Nach Ablauf dieser Zeitspanne ist kein Zugriff auf das Repository durch den Drucker möglich und das Token muss erneuert werden.
- Zugriffsbereiche wählen
- Für die Definierung der Zugriffsbereiche nur "workflow" und "read:org" wählen.
- Abschluss Konfiguration
- Ganz nach unten scrollen und auf "Generate token" klicken.
- Sicherung des Tokens
- Nach dem das Token erstellt wurde, befinden wir uns in der Verwaltungsübersicht aller bisher erstellten Tokens.
Caution
Dies ist der einzige Moment in dem ihr eurer Token auf Github sehen werden! Es ist wichtig, dass das Token entsprechend gesichert wird, da es nicht von Github wiederhergestellt werden kann! Sollte der Zugriff auf dieses Token verloren gehen, muss ein neues erstellt werden. Fall jemand auf die Idee kommen sollte, das Token in Github hochzuladen - vergesst diese Idee. Github erkennt das Token und wird es löschen!
Kopiert das Token in die Text-Datei in die ihr die HTTPS-URL euers Repository kopiert habt.
Als nächster Schritt müssen Token und URL kombiniert werden.
- Fügt in der URL hinter den beiden // ein @ ein.
- Kopiert euer Token in die Zwischenablage und fügt das Token zwischen // und dem @ ein. Das nachfolgende Bild zeigt wie die URL aussehen muss.
Note
Nur noch mal zur Erinnerung. Das für diesen Guide erstellte Repository und Token wurden nach Erstellung der Anleitung gelöscht!
Mit dem Tool euer Wahl per SSH auf den Drucker verbinden. Ich benutze in diesem Guide "Putty"
-
mit folgendem Befehl das Verzeichnis wechseln
cd ~/printer_data/config
-
Wir benötigen einen Ordner mit dem Namen "Scripts", den wir mit folgendem Befehl erstellen:
mkdir Scripts
-
mit nachfolgendem Befehl wird das autocommit-Script heruntergeladen
wget -O ~/printer_data/config/Scripts/autocommit.sh https://raw.githubusercontent.com/EricZimmerman/VoronTools/main/autocommit.sh
-
Als nächstes wird die bevorzugte Weboberfläche ausgewählt. Wer Mainsail benutzt, entfernt die # in der Mainsail-Zeile. Wer Fluidd nutzt entsprechend bei Fluidd. Dafür öffnen wir mit folgendem Befehl die autocommit.sh
nano ~/printer_data/config/Scripts/autocommit.sh
-
Nachfolgendes Bild zeigt die Konfiguration für Mainsail. Fluidd ist entsprechend auskommentiert.
-
Die autocommit.sh mit STRG+O und danach Enter speichern
-
STRG+X schließt den Editor und wir befinden uns wieder im Pfad "printer_data/config/"
-
Mit folgendem Befehl das Verzeichnis wechseln:
cd Scripts
-
Mit nachfolgenden Befehl geben wir uns sowie allen anderen Usern des Systems die Berechtigung die autocommit.sh auszuführen
chmod +x autocommit.sh
-
Mit folgenden Befehl prüfen ob die Berechtigungen, wie auf dem nachfolgenden Bild gezeigt, richtig gesetzt sind.
ls -la autocommit.sh
-
Für den Export und Backup der data.mdb benötigen wir noch ein weiteres Tool, welches mit nachfolgenden Befehl installiert wird.
sudo apt install lmdb-utils
Important
In den Standard-Einstellungen werden ALLE Tabellen der data.mbd im Repository gesichert. Wer mit API-Schlüsseln und anderen Benutzerdaten arbeitet kann dies verhindern, in dem in der "autocommit.sh" der Bereich "history_only" auf "true" gesetzt wird.
Um Github auf das Backup unserer Daten vorzubereiten, müssen wir folgenden Befehl in die Konsole einfügen:
git init -b main
Nun müssen wir Git mitteilen über welche URL auf unser Repository zugegriffen werden soll.
- nachfolgenden Text in die Zwischenablage kopieren und in die Textfile vor die Token-URL einfügen:
git remote add origin
-
Den in der Textfile erstellten Befehl aus dem vorherigen Bild in die Konsole eingeben.
-
Als nächstes erfolgt eine Verifizierung mit folgendem Befehl:
git remote -v
-
Nun müssen wir Git noch unsere Email sowie euren Namen mitteilen. Dabei handelt es sich um die Email und den Namen, den ihr bei Github verwendet. Dafür werden folgende Befehle verwendet, die entsprechend mit euren Daten ergänzt werden.
git config --global user.email "[email protected]" git config --global user.name "your name"
Damit wir nicht unnötige Dateien sichern, benötigen wir eine Ausschlußliste, die wie folgt erstellt wird:
-
Wir sollten uns derzeit noch im Verzeichnis "printer_data/config/" befinden. Wenn nicht mit nachfolgendem Befehl dort hin wechseln.
cd ~/printer_data/config
-
Mit diesem Befehl erstellen wir die Datei .gitignore. Wichtig ist der Punkt vor gitignore!
nano .gitignore
-
Im Editor nun die Pfade der Dateien eintragen, die NICHT gesichert werden sollen. Da ich Klippain Shake&Tune installiert habe, wären das dann diese Pfade. Speichern der Datei mit STRG+O, gefolgt von Enter und dann STRG+X
K-ShakeTune_results/belts/*.csv K-ShakeTune_results/belts/*.png K-ShakeTune_results/inputshaper/*.csv K-ShakeTune_results/inputshaper/*.png K-ShakeTune_results/vibrations/*.tar.gz K-ShakeTune_results/vibrations/*.png
Note
Das Ausschließen von Dateien ist ein optionaler Schritt! Wer alle Daten aus dem Ordner printer_data/config sichern möchte, lässt die .gitignore leer.
Wir sind soweit das erste Backup zu erstellen.
-
Nachfolgenden Befehl in die Konsole einfügen:
cd ~/printer_data/config/Scripts sh autocommit.sh
-
Wenn alle notwendigen Schritte zuvor richtig ausgeführt wurden, sollte es in der Konsole in etwas so aussehen. Da ich für diesen Guide ein eigenes System aufgesetzt habe, werden bei euch die übermittelten Daten von der Anzahl her höher sein.
-
Wenn der Befehl sh.autocommit.sh erneut in die Konsole eingefügt wird, ohne das es Änderungen am System gab, sollte es so wie auf dem Bild aussehen.
-
Wie eine Änderung an einer Config angezeigt wird zeigt nachfolgendes Bild. Als Beispiel dient eine Änderung in der printer.cfg
Schauen wir uns nun den Änderungsverlauf auf Github an. Im Root-Verzeichnis des Repository auf Commits klicken
Es werden alle derzeit getätigten Änderungen angezeigt. Diese werden nach Datum und Uhrzeit sortiert angezeigt.
Mit einem Klick auf eine der Commits öffnet sich die Vergleichsansicht. In diesem Fall wurde der Wert von max_accel avon 1000 auf 10000 gesetzt.
Um komfortabel ein Backup per Macro zu erstellen fügt ihr folgenden Code in die Datei ein, die eure Macros enthält. Solltet ihr meinen Guide des Komplett-Updates des Druckers durchgeführt haben, sollte das Macro in die Macros/macro.cfg eingefügt werden.
[gcode_shell_command backup_cfg]
command: ~/printer_data/config/Scripts/autocommit.sh
timeout: 30
verbose: True
[gcode_macro BACKUP_CFG]
description: Backs up config directory GitHub
gcode:
RUN_SHELL_COMMAND CMD=backup_cfg
[delayed_gcode auto_backups]
initial_duration: 10 #Nach 10 Sekunden wird automatisch ein Backup erstellt
gcode:
RUN_SHELL_COMMAND CMD=backup_cfg
Wir nähern uns dem Ende, benötigen aber noch das Tool "gcode_shell_command". Solltet ihr Klippain Shake&Tune installiert haben, entfällt dieser Schritt, da Klippain Shake&Tune das Script mit installiert. Für den Fall das Klippain Shake&Tune noch nicht installiert wurde, gibt es jetzt 2 Wege für die Installation.
- Entweder über KIAUH über Punkt 4 und dann Punkt 8.
- Weg 2 wäre über nachfolgenden Befehl in der Konsole:
wget -O ~/klipper/klippy/extras/gcode_shell_command.py https://raw.githubusercontent.com/th33xitus/kiauh/master/resources/gcode_shell_command.py
In der Macro-Übersicht befindet sich nun das Macro "BACKUP CFG". Dies ist der manuelle Weg seine Daten zu sichern.
Zusätzlich wird bei jedem Neustart von Klipper nach 10 Sekunden das Macro automatisch aufgerufen.
Die Wiederherstellung des aktuellsten Backups erfolgt mit folgenden Befehlen. Es muss natürlich eure Token-URL eingefügt werden. Daran denken, dass in der .gitignore hinterlegte Dateien und Pfade nicht gesichert werden und dem entsprechend auch nicht wiederhergestellt werden können!
cd ~/printer_data/config
git init -b main
git remote add origin https://<token>@github.com/leadustin/testconfig.git
git fetch
git reset origin/main
git reset --hard HEAD
Wenn dir dieser Guide gefallen hat: