Klipperscreen - Klipper über ein Display 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
Update 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
Macros
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
Updates
2025-01-01 | Hinweis zur Installation des Network Managers |