Klipperscreen - Klipper über ein Display steuern
Klipper Screen ist eine Klipper Erweiterung, mit der man einen Linux PC mit idealerweise einem Touch-Display in eine Steuerung für das Klipper Interface verwandeln kann. Man kann den Raspberry Pi. oder welchen MiniPC man für Klipper verwendet nutzen und dann diesen einen Touch Monitor anschließen und bekommt so ein Touch optimiertes Userinterface. Über ein Display kann man auch mehrere Klipper-Instanzen ansteuern, also es funktioniert auch einen PC zum Ansteuern von mehreren Druckern mittele Klipper anzusteuern und diese über das Touch Display zu steuern.
Installation
Kompatible Geräte
Grundsätzlich kann man Klipper Screen auf jedem Gerät installieren auf dem Linux läuft. Idealerweise sollte das Gerät ein Touch-Display haben um das beste Nutzererlebnis zu gewährleisten. Meiner Ansicht nach ist es am besten einen Raspberry Pi oder ähnlichen Microcontroller zu verwenden. Entschließt man sich für einen Raspberry Pi Nachbau muss unbedingt die Kompatibilität der Geräts bzw. der Ports geprüft werden wenn auf diesem auf Klipper installiert sein soll. Will man zum Beispiel den BTT CB1 verwenden, so ist dieser ein preiswerter Klipper-Host, jedoch unterstützt dieser kein DSI (Display Anschluss über Flachbandkabel) & CSI ( Verwendung der Pi-Cam über Flachbandkabel) und so kann nur ein HDMI Display verwendet werden.
Achtung
Seit dem letzten Update wird der NetworkManager benötigt um Wifi netzwerke suchen zu können. Wer bereits ein fertig eingerichtetes Netzwerk hat, dem rate ich dazu ab diese Erweiterung zu installieren, da ich diesen bei bisher keiner Installatin zum laufen bekommen habe.
Mehr dazu:
https://klipperscreen.readthedocs.io/en/latest/Troubleshooting/Network/
https://github.com/danfruehauf/NetworkManager-ssh
Ausführung zulassen
Damit KlipperScreen ausgeführt werden kann muss dieser die benötigten Rechte in moonraker.conf mit dem Eintrag 127.0.0.1 erhalten.
[authorization] trusted_clients: 127.0.0.1
Code in Ablage kopierenUpdate Pfad
Damit Klipper einfach über Moonracker Updates erhalten kann muss folgendes in moonraker.conf eingefügt werden:
[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
managed_services: KlipperScreen
Code in Ablage kopierenMacros
Damit Klipper Screen ordnungsgemäß läuft müssen einige Macros implementiert sein. Ich habe hier wieder ein Beispiel meiner Konfigurationsdateien angehängt:
Warnung: Die Macros bitte nicht einfach per "Copy & Paste" einfügen, sonder die Macros durchgehen und sicherstellen, dass die Werte zu deinem Drucker passen und bei Abweichungen unbedingt anpassen, bevor diese eingesetzt werden!
[respond]
[gcode_macro LOAD_FILAMENT]
variable_load_distance: 10
variable_purge_distance: 10
gcode:
{% set speed = params.SPEED|default(300) %}
{% set max_velocity = printer.configfile.settings['extruder'].max_extrude_only_velocity * 60 %}
SAVE_GCODE_STATE NAME=load_state
G91
G92 E0
G1 E{load_distance} F{max_velocity} # fast-load
G1 E{purge_distance} F{speed} # purge
RESTORE_GCODE_STATE NAME=load_state
[gcode_macro UNLOAD_FILAMENT]
variable_unload_distance: -10
variable_purge_distance: -10
gcode:
{% set speed = params.SPEED|default(300) %}
{% set max_velocity = printer.configfile.settings['extruder'].max_extrude_only_velocity * 60 %}
SAVE_GCODE_STATE NAME=unload_state
G91
G92 E0
G1 E{purge_distance} F{speed} # purge
G1 E-{unload_distance} F{max_velocity} # fast-unload
RESTORE_GCODE_STATE NAME=unload_state
Code in Ablage kopierenMenü Configuration
- KlipperScreen.conf
Code in Ablage kopieren[printer SJT S1] z_babystep_values: 0.05, 0.1 Bed Screws # define the screw positons required for odd number of screws in a comma separated list (CSV) # possible values are: bl, br, bm, fl, fr, fm, lm, rm, center # they correspond to back-left, back-right, back-middle, front-left, front-right, front-middle, left-middle, right-middle # example: screw_positions: bl, fl, rm #printer.bltouch # Available if bltouch section defined in config [main] use_default_menu: false [menu __main homing] name: Home icon: home method: printer.gcode.script params: {"script":"G28"} [menu __main disable] name: Disable Motor icon: motor-off method: printer.gcode.script params: {"script":"M84"} [menu __main temperature] name: Temperature icon: heat-up panel: temperature [menu __main extrude] name: Extrude icon: extrude panel: extrude [menu __main calibrate] name: Calibrate icon: settings [menu __main calibrate inputshaper] name: Input Shaper icon: move #method: printer.gcode.script #params: {"script":"TEST_RESONANCES AXIS=X"} panel: input_shaper [menu __main calibrate bed_leveling] name: Bed Level icon: bed-level panel: bed_level [menu __main calibrate bed_mesh] name: Bed Mesh icon: bed-mesh panel: bed_mesh [menu __main calibrate z_calibrate] name: Z Calibrate icon: z-tilt panel: zcalibrate [menu __main settings] name: Settings icon: settings [menu __main settings limits] name: Limits icon: fine-tune panel: limits [menu __main settings retraction] name: Retraction icon: retraction panel: retraction [menu __main settings spoolman] name: Filament icon: spool panel: spoolman [menu __main settings console] name: Console icon: console panel: console [menu __main settings system] name: System icon: info panel: system [menu __main settings save_config] name: Save Config icon: sd method: printer.gcode.script params: {"script":"save_config"} [menu __main settings klipper_screen] name: Klipper Screen icon: klipper panel: example [menu __main settings network] name: Network icon: network panel: network [menu __main settings notifications] name: Notifications icon: notifications panel: notifications [menu __main settings Macros] name: Macros icon: custom-script panel: macros [menu __main settings LED] name: LED icon: light panel: led [menu __main settings FAN] name: FAN icon: fan panel: fan [menu __main settings move] name: Move icon: move panel: move #[menu __main Leveloption] #name: Bed Leveling Options #icon: print #method: printer.gcode.script #params: {"script":"SHOW_PROMPT"} [menu __main print] name: Print icon: print panel: print #Materials [preheat PLA] extruder: 220 #extruder1: 60 heater_bed: 40 # Use the name #chamber: 60 # or the full name #heater_generic chamber: 60 # or for example apply the same temp to devices of the same type #temperature_fan: 40 #heater_generic: 60 # optional GCode to run when the option is selected gcode: #MY_HEATSOAK_MACRO [preheat PETg] extruder: 240 #extruder1: 60 heater_bed: 60 # Use the name #chamber: 60 # or the full name #heater_generic chamber: 60 # or for example apply the same temp to devices of the same type #temperature_fan: 40 #heater_generic: 60 # optional GCode to run when the option is selected gcode: #MY_HEATSOAK_MACRO #~# --- Do not edit below this line. This section is auto generated --- #~# #~# #~# [main] #~# theme = material-dark #~# print_estimate_method = slicer #~# screen_blanking = 60 #~# autoclose_popups = False #~# show_scroll_steppers = True #~# auto_open_extrude = False #~# print_sort_dir = date_desc #~# print_view = list #~# #~# [graph SJT S1] #~# extruder = False #~#{tabend}
Troubleshooting
Startet der Screen nicht in den modus, dann kann es sein, dass nicht alle Berechtigungen richtig gesetzt wurden:
Prüfen on in moonraker.conf der Eintrag 127.0.0.1 unter trusted Clients existiert !
Damit bei mir bei der Neuinstallation von Klipper auf einem nackten Pi-OS light alles lief musste ich folgende Zeilen in der
/boot/config.txt
Code in Ablage kopierensudo nano /boot/config.txt)auskommentieren (# davor schreiben)
Code in Ablage kopieren# dtoverlay=vc4-kms-v3d # max_framebuffers=2SourcesHilfestellungen
QuicktipsIn Projekten eingesetzt

SJT S1 mein erster Modularer 3D Drucker
Da ich beruflich schon über 5 Jahre mit 3D Druck zu tun hatte und privat auch schon mehrere Jahre einen günstigen China 3D Drucker hatte, aber einfach nicht mit der Leistung zufrieden war, aber auch keinen Drucker kaufen konnte, der all meine Anforderungen auf der Wunschliste abhakte, begann ich meinen eigenen zu entwickeln.

SJT S2 Modularer High End 3D Drucker
Nachdem ich sehr zufrieden mit dem Konzept meines SJT S1 mein erster Modularer 3D Drucker, wollte ich endlich einen High End Drucker, mit dem es mir endlich möglich ist, technische Kunststoffe wie vor allem ABS und PC verarbeiten zu können. Dafür ist zuerst ein komplett geschlossener Bauraum und idealerweise eine Bauraumheizung Nötig. Um das ganze abzurunden, da der Drucker im Wohnbereich verwendet wird, soll ein Filter integriert sein, der die Schadstoffe herausfiltert, die beim Drucken entstehen.
Updates
| 2025-01-01 | Hinweis zur Installation des Network Managers |