Klipper Screen für Touchscreen-Bedienung am 3D Drucker installieren

Raspberry Pi 7-Zoll-Touchscreen-Display mit Gehäuse Rahmen - 1024x600 Unterstützung, Type-C, IPS 178° Ultra-Weitwinkel-Monitor mit Kühlungslüfter, 10 Finger Capacitive Touch
Raspberry Pi 7-Zoll-Touchscreen-Display mit Gehäuse Rahmen - 1024x600 Unterstützung, Type-C, IPS 178° Ultra-Weitwinkel-Monitor mit Kühlungslüfter, 10 Finger Capacitive Touch
--

Für alle die einen 3D Drucker besitzen und diesen gerne direkt per Touchscreen steuern möchten, habe ich hier einmal grob zusammen geschrieben, was Ihr tun müsst, den Drucker auf Klipper mit KlipperScreen umzurüsten.

Klipper ist ganz einfach gesagt eine Software die Beispielsweise auf einem Raspberry Pi läuft und die Steuerung des Druckers übernimmt. Eine weitere Komponente ist Mainsail. Dabei handelt es sich um ein Web-Frontend, womit wir den Drucker über einen Browser von jedem beliebigen Gerät in unserem Netzwerk steuern können. Die Kommunikation zwischen Mainsail und Klipper erfolgt über die API Moonraker. Darüber lässt sich der Drucker ebenfalls in externe Systeme wie Home Assistant einbinden.

Das klingt jetzt erst mal alles kompliziert und nach viel Arbeit, geht aber eigentlich recht schnell von der Hand. Die größte Kunst besteht eigentlich darin, die passende Drucker-Konfiguration für den eigenen Drucker zu erstellen. Da diese aber von Drucker zu Drucker unterschiedlich ist kann ich hier keine konkrete Konfiguration zur Verfügung stellen, die jeder 1:1 übernehmen kann. Ich verlinke aber die Konfiguration meines Druckers als Grundlage.


Video zur Klipper Screen Installation

Zusätzlich zur Anleitung habe ich das ganze auch noch einmal in einem Video zusammengefasst:

YouTube

Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von YouTube.
Mehr erfahren

Video laden

https://youtu.be/QTZITwR73VE


Benötigte Hardware

Bevor wir loslegen hier einmal die wichtigsten Bauteile, die Ihr benötigt, um einen Touchscreen an eurem 3D Drucker zu betreiben.

Raspberry Pi 3 Model B ARM-Cortex-A53 4x 1,2GHz, 1GB RAM, WLAN, Bluetooth, LAN, 4x USBRaspberry Pi 3 Model B ARM-Cortex-A53 4x 1,2GHz, 1GB RAM, WLAN, Bluetooth, LAN, 4x USB *38,66 €SanDisk Extreme microSDHC 32GB + SD Adapter + Rescue Pro Deluxe 100MB/s A1 C10 V30 UHS-I U3SanDisk Extreme microSDHC 32GB + SD Adapter + Rescue Pro Deluxe 100MB/s A1 C10 V30 UHS-I U3 *10,44 €Raspberry 4596 Pi - offizielles Netzteil für Raspberry Pi 4 Model B, USB-C, 5.1V, 3ARaspberry 4596 Pi - offizielles Netzteil für Raspberry Pi 4 Model B, USB-C, 5.1V, 3A *8,06 €Raspberry Pi Monitor, EVICIV 7 Inch Touchscreen-Monitor Mit Micro-USB-Anschluss, HDMI-Anschlüsse, Verwendung Für Smart Home Center, Networked Ai Core, Roboterhirn, Media Center, Werkscontroller, EtcRaspberry Pi Monitor, EVICIV 7 Inch Touchscreen-Monitor Mit Micro-USB-Anschluss, HDMI-Anschlüsse, Verwendung Für Smart Home Center, Networked Ai Core, Roboterhirn, Media Center, Werkscontroller, Etc *--

Weitere Touchscreen Monitore findet Ihr im UPERFECT Store:
https://amzn.to/3vaOh6a *



Mainsail OS installieren (Enthält Mainsail, Moonraker und Klipper)

Beginnen wir nun mit der Installation von Mainsail OS. Dabei handelt es sich um ein Betriebssystem, welches direkt alle notwendigen Komponenten wie Mainsail, Moonraker und Klipper beinhaltet. So spart man sich direkt einiges an Arbeit.

Das Mainsail OS kann man als fertige Image-Datei für den Raspberry PI herunterladen und einfach mit einem Programm wie “Win32 Disk Imager” auf die SD-Karte schreiben.

Die aktuellen Image-Dateien findet Ihr im GitHub Repository der mainsail-crew unter:
https://github.com/mainsail-crew/MainsailOS/releases

Das Image müsst Ihr nach dem Download entpacken und könnt anschließend die img-Datei mit Win32 Disk Imager auf die SD-Karte schreiben. Wählt dazu einfach als Image File die zuvor entpackte img-Datei aus und als Device den Laufwerksbuchstaben eures SD-Kartenlesers. Dann müsst Ihr nur noch auf “Write” klicken und warten bis der Schreibvorgang abgeschlossen ist.

Image mit Win32 Disk Imager auf SD schreiben


WLAN Zugang einrichten

Wenn der PI über WLAN in euer Netzwerk verbinden soll, müsst Ihr nun noch die Datei “mainsailos-wpa-supplicant.txt” bearbeiten. Verwendet dazu einen Texteditor wie z.B. Notepad++ und nicht den normalen Editor aus Windows um Probleme mit Zeichensätzen und Sonderzeichen zu vermeiden.

Entfernt in der Datei die vorangestellte Rauten der 4 Zeilen entsprechend eurer WLAN-Verschlüsselung und tragt hinter ssid und psk eure SSID und Passwort ein.

WLAN konfigurieren


KIAUH installieren

Nachdem Ihr MainsailOS incl. WLAN nun auf der SD-Karte eingerichtet habt, könnt Ihr diese nun in den PI stecken und diesen starten. Der erste Start dauert einen Moment. Anschließend sollte die Weboberfläche bereits über http://mainsailos.local erreichbar sein.

Mainsail OS

Nun verbindet Ihr mit Putty auf euren Raspberry PI. Dazu tragt Ihr bei Host Name ebenfalls “mainsailos.local” ein, Port 22 sollte voreingestellt sein. Nun stellt Ihr durch einen Klick auf “Open” die Verbindung her.

Verbindung mit Putty herstellen

Standard Benutzer und Passwort lauten “pi” und “raspberry”.

Nach erfolgreicher Anmeldung installiert Ihr mit den folgenden Befehlen KIAUH:

git clone https://github.com/th33xitus/kiauh.git
chmod +x kiauh/kiauh.sh kiauh/scripts/*

Nach Abschluss der Installation können Ihr KIAUH starten:

cd kiauh
./kiauh.sh
KIAUH


KlipperScreen installieren

Um nun Klipper zu installieren wählt Ihr den Menüpunkt 1.

KIAUH Installationsmenü

Im Installationsmenü wählt Ihr nun 5 (KlipperScreen) aus.


Klipper Firmware flashen

Nun wechselt Ihr mit “B” wieder zurück ins Hauptmenü und wählt nun den Punkt 4 (Advanced) aus. Hier wählt Ihr den Punkt 5 (Build + Flash). Ab hier muss der Drucker per USB mit dem Raspberry PI verbunden sein.

Im folgenden Dialog müsst Ihr die entsprechende Architektur und Prozessor-Modell entsprechend eures 3D Druckers auswählen und anschließend den Dialog mit [ESC] beenden um den Build der Firmware zu starten.

Anschließend müsst Ihr noch die “Regular flashing Method” auswählen und anschließend den Seriellen Anschluss auswählen. Nach einer Sicherheitsabfrage startet dann der Flash-Vorgang und die Firmware wird auf den 3D Drucker geschrieben.


BOOT-CONFIG anpassen

Jetzt müsst Ihr noch die Boot-Konfiguration für die Verwendung eines HDMI-Monitors anpassen.

Dazu öffnet Ihr die Datei im Texteditor “nano” mit folgendem Befehl:

sudo nano /boot/config.txt

Hier müsst Ihr nun die folgende 3 Zeilen einfügen
(Falls eine der Zeilen bereits vorhanden ist, müsst Ihr nur die fehlenden ergänzen)

max_usb_current=1
config_hdmi_boost=10
hdmi_force_hotplug=1


Klipper Screen in Update-Manager integrieren

Jetzt könnt Ihr noch dafür sorgen, dass KlipperScreen auch über den Update-Manager verwaltet werden kann. Dieser Schritt ist nicht zwingend notwendig, sorgt aber dafür, dass Ihr KlipperScreen auch über die Browser-Oberfläche aktualisieren könnt.

Öffnet dazu die Datei moonraker.conf ebenfalls mit “nano”.

sudo nano /home/pi/klipper_config/moonraker.conf

Nun fügt Ihr in der Datei die folgenden Zeilen hinzu:

[update_manager KlipperScreen]
type: git_repo
path: ~/KlipperScreen
origin: https://github.com/jordanruthe/KlipperScreen.git
env: ~/.KlipperScreen-env/bin/python
requirements: scripts/KlipperScreen-requirements.txt
install_script: scripts/KlipperScreen-install.sh

Alternativ könnt Ihr die Datei auch über die Mainsail Oberfläche im Browser bearbeiten und dort die Zeilen einfügen.
Nach einem Neustart erscheint nun auch KlipperScreen im Update Manager. Ebenfalls habt Ihr nun über das “Power Menü” oben rechts die Möglichkeit KlipperScreen neu zu starten.


Drucker config: Beispiele im WebUI (mainsail) unter Maschiene – config_examples
oder im repo unter: https://github.com/Klipper3d/klipper/tree/master/config

Anmerkungen / Hinweise

  • WARNUNG: KIauh nur drin arbeiten, wenn NICHT gedruckt wird!!! Startet gerne mal neu.
  • Klipper Update am besten einmal Board neu flashen
    (Falls build bereits konfiguriert wurde kann man im menü ESC drücken)
  • Für Load und Unload von Filament direkt im Klipperscreen müssen die zugehörigen Makros einen bestimmten Namen tragen:
    [gcode_macro UNLOAD_FILAMENT] bzw. [gcode_macro LOAD_FILAMENT]

https://media.discordapp.net/attachments/892021685606318140/956533010503729202/20220324_133948.jpg?width=1023&height=1365


Weitere Informationen zu optischen Anpassungen:

https://smarthomeyourself.de/wiki/3ddruck/mainsail-theme-aendern/

https://smarthomeyourself.de/wiki/3ddruck/klipperscreen-theme-aendern/