RE: KLIPPER - MK3
Danke Karl, für deine PN.
da ich nur (bis jetzt) beschränkte Kenntnisse (Linux) besitze, würde ich gerne auf dein Angebot annehmen.
Gruß Rico
Ist das noch aktuell? Dann würde ich die nächsten Tage ein Image vorbereiten und zum Download zur Verfügung stellen. Allerdings müssen einige Anpassungen durchgeführt werden (IP Adressen, dev id's, Hardware Erweiterungen usw.). Man kommt aber nicht an Linux, Moonraker, Mainsail und Klipperkonfigs vorbei. Damit muss man sich beschäftigen und eine Portion Zeit mitbringen.
Falls Du nur einen Drucker ohne MMU2 verwendest, tust Du Dir leichter, wenn Du Kiauh und mithilfe dieser Erweiterung Klipper installierst. Die printer.cfg kann ich dann gerne zur Verfügung stellen (welche Du natürlich auch anpassen musst). Evtl. verwendest Du eine vordefinierte Basisvariante (so zum einleben...).
Der Link zu Kiauh: https://github.com/dw-0/kiauh
Schöne Grüsse,
Karl
Moin Karl,
ja das würde ich sehr sehr gerne testen, aber macht dir keinen Stress bin grad unterwegs / Urlaub .
vielen lieben Dank
Gruß Rico
RE: KLIPPER - MK3
Dann wünsche ich einen erholsamen Urlaub 👍
Schöne Grüsse,
Karl
Statt zu klagen, dass wir nicht alles haben, was wir wollen, sollten wir lieber dankbar sein, dass wir nicht alles bekommen, was wir verdienen.
RE: KLIPPER - MK3
Generell bediene ich den Drucker bzw. Klipper über Mainsail. Im Vergleich zu DWC biete Klipper keine Auswertungen zu den Leveling Variablen "Mittelwert, Standardabweichung und Min/Max Abweichung" an. Aus diesem Grund habe ich ein kleines Makro geschrieben, welches eine numerische Übersicht zur Leveling Auswertung zeigt. Liegen die Werte, insbesonders Min/Max im Toleranzbereich, ist keine Bettkorrektur notwendig.
Wie gesagt, es handelt sich um eine nummerische (keine grafische) Übersicht. Sollten die Abweichungen außerhalb des Toleranzbereiches liegen, muss über Mainsail justiert werden.
[gcode_macro Z_MIN_MAX]
variable_average: '-'
variable_deviation: '-'
variable_minmax: '-'
gcode:
#printer.bed_mesh.probed_matrix; 3x3 - 9x9 points
#calculate bsd_mesh z min/max values
#SAVE_VARIABLE VARIABLE=bedmesh_minmax VALUE={printer.bed_mesh.probed_matrix}
# average
{% set list = printer.bed_mesh.probed_matrix %}
{% set x = namespace(c = 0) %}
{% set z = namespace(c = 0) %}
{% set s = namespace(c = 0) %}
{% for item in list %}
{% for item in item %}
{% set z.c = z.c + 1 %}
{% set x.c = x.c + item %}
{% endfor %}
{% endfor %}
{% set average = x.c/z.c %}
SET_GCODE_VARIABLE MACRO=Z_MIN_MAX VARIABLE=average VALUE={average} # make average global
M118 Mittelwert = {'%0.3f'|format(average)}
# standard deviation
{% for item in list %}
{% for item in item %}
{% set s.c = s.c + ((item-x.c/z.c)**2) %}
{% endfor %}
{% endfor %}
{% set s.c = ((s.c/z.c)**0.5) %} # square root
{% set deviation = s.c %}
SET_GCODE_VARIABLE MACRO=Z_MIN_MAX VARIABLE=deviation VALUE={deviation} # make deviation global
M118 Standartabweichung = {'%0.3f'|format(deviation)}
# min/max deviation
{% set float_lst = [] %}
{% set counter = namespace(value=(list|length)**2) %}
{% for item in list %}
{% for item in item %}
{% set float_lst = float_lst.append(item) %}
{% endfor %}
{% endfor %}
{% set minmax = float_lst|max - float_lst|min %}
SET_GCODE_VARIABLE MACRO=Z_MIN_MAX VARIABLE=minmax VALUE={minmax} # make minmax global
M118 min/max Abweichung = {'%0.3f'|format(minmax)}
und hier die Menu Auswertung:
[menu __main __control __mesh __leveling]
type: command
name: Starte leveling
gcode:
{% if printer.toolhead.homed_axes != "xyz" %}
HOME_XYZ
{% endif %}
G80
[menu __main __control __mesh __average]
type: command
name: Mittelwert: {'%0.3f'% printer["gcode_macro Z_MIN_MAX"].average}
[menu __main __control __mesh __deviation]
type: command
name: Standartabw.: {'%0.3f'% printer["gcode_macro Z_MIN_MAX"].deviation}
[menu __main __control __mesh __minmax]
type: command
name: min/max Abw.: {'%0.3f'% printer["gcode_macro Z_MIN_MAX"].minmax}
[menu __main __control __mesh __exit]
type: command
name: Mainmenu
index: 99
gcode: {menu.exit()}
Schöne Grüsse,
Karl
Statt zu klagen, dass wir nicht alles haben, was wir wollen, sollten wir lieber dankbar sein, dass wir nicht alles bekommen, was wir verdienen.
RE: KLIPPER - MK3
Installiert ist der "Federmod". Der Begriff "Bettkorrektur" bezieht sich auf die Höhenjustage des Druckbettes über die gefederten Schrauben (9 Punkte). In der Regel muss ich da selten nachjustieren, es sei denn, es wurden Demontagen oder Wartungsarbeiten durchgeführt. Als Feinschliff werde ich noch ein akustisches Warnsignal implementieren falls das Min/Max Ergebnis ausserhalb des Bereichs von 0.1mm liegt.
Schöne Grüsse,
Karl
Statt zu klagen, dass wir nicht alles haben, was wir wollen, sollten wir lieber dankbar sein, dass wir nicht alles bekommen, was wir verdienen.
RE: KLIPPER - MK3
Kann akustisch z.B. so erweitert werden (am Ende des Z_MIN_MAX Makros):
{% if minmax > 0.1 %}
M300 S1250 P300 ;First beep
M300 S0 P200 ;Wait
M300 S1250 P300 ;Second beep
M300 S0 P200 ;Wait
M300 S1250 P300 ;Second beep
{% endif %}
Das M300 Makro zur Übersicht:
[gcode_macro M300]
gcode:
{% set S = params.S|default(1000)|int %} #S sets the tone frequency
{% set P = params.P|default(100)|int %} #P sets the tone duration
{% set L = 0.5 %} #L varies the PWM on time, close to 0 or 1 the tone gets a bit quieter. 0.5 is a symmetric waveform
{% if S <= 0 %} #dont divide through zero
{% set F = 1 %}
{% set L = 0 %}
{% elif S >= 10000 %} #max frequency set to 10kHz
{% set F = 0 %}
{% else %}
{% set F = 1/S %} #convert frequency to seconds
{% endif %}
SET_PIN PIN=BEEPER_Pin VALUE={L} CYCLE_TIME={F} #Play tone
G4 P{P} #tone duration
SET_PIN PIN=BEEPER_Pin VALUE=0
Schöne Grüsse,
Karl
Statt zu klagen, dass wir nicht alles haben, was wir wollen, sollten wir lieber dankbar sein, dass wir nicht alles bekommen, was wir verdienen.
RE: KLIPPER - MK3
Ki Karl hab mich mal heute an die Instalation gemacht, kann es sein das deine config noch auf ein Altes mainsail basiert die configs und logs befinden sich jetzt in /home/pi/printer_data/ LG Lino
RE: KLIPPER - MK3
Klipper, Moonraker und Mainsail halte ich immer aktuell. Die Config's sollten alle mit den aktuellen Versionen laufen.
Hier eine Übersicht:
Schöne Grüsse,
Karl
Statt zu klagen, dass wir nicht alles haben, was wir wollen, sollten wir lieber dankbar sein, dass wir nicht alles bekommen, was wir verdienen.
RE: KLIPPER - MK3
Ah du bist noch auf buster deswegen past das wohl nicht,
lg Lino
RE: KLIPPER - MK3
Ich würde eher behaupten, dass es daran liegt, dass die Klipper-Installation an sich älter ist. Der Pfad zu den Konfigurationsdateien wird über die Systemd Service Files als Kommandozeilenparameter an Klipper + Moonraker übergeben und das ändert sich offenbar bei anschließenden Software-Updates nicht mehr. Habe mich vor einigen Wochen bei meiner eigenen Klipper-Installation auch darüber gewundert, nachdem ich den Raspberry auf einer größeren SD-Karte neu aufgesetzt hatte.
RE: KLIPPER - MK3
Nachdem ich nach der Installation von "bullseye" mit div. Problemen (Instabilitäten udevs und Videotreiber) zu kämpfen hatte, bin ich bei "buster" geblieben. Der Pfad meiner Config Dateien lautet: /home/pi/klipper_config.
Inhalt der klipper.service:
#Systemd Klipper Service
[Unit]
Description=Starts Klipper and provides klippy Unix Domain Socket API
Documentation= https://www.klipper3d.org/
After=network.target
Before=moonraker.service
Wants=udev.target
[Install]
Alias=klippy
WantedBy=multi-user.target
[Service]
Environment=KLIPPER_CONFIG=/home/pi/klipper_config/printer.cfg
Environment=KLIPPER_LOG=/home/pi/klipper_logs/klippy.log
Environment=KLIPPER_SOCKET=/tmp/klippy_uds
Type=simple
User=pi
RemainAfterExit=yes
ExecStart= /home/pi/klippy-env/bin/python /home/pi/klipper/klippy/klippy.py ${KLIPPER_CONFIG} -l ${KLIPPER_LOG} -a ${KLIPPER_SOCKET}
Restart=always
RestartSec=10
Schöne Grüsse,
Karl
Statt zu klagen, dass wir nicht alles haben, was wir wollen, sollten wir lieber dankbar sein, dass wir nicht alles bekommen, was wir verdienen.
RE: KLIPPER - MK3
Hab eben wieder etwas Zeit in die Klipperconfigs investiert, einige bugs ausgemärzt und die MMU um einige Funktionen erweitert. Schön langsam geht's dem Finale zu, aber wie bei den div. Prusa FW Varianten, kann man immer weiter Verbesserungen und Erweiterunen hinzufügen.
Vorteil bei Klipper: Fast unbegrenzt Speicher und kein FW Kompilieren notwendig.
Wer schon meinen link zu den Klipperconfigs hat, kann das aktualisierte Paket runterladen.
Schöne Grüsse,
Karl
Statt zu klagen, dass wir nicht alles haben, was wir wollen, sollten wir lieber dankbar sein, dass wir nicht alles bekommen, was wir verdienen.
RE: KLIPPER - MK3
Hallo karl-herbert,
habe auch noch einen Mk3s mit Klipper laufen. Aktuell läuft neiner mit RAtOS. Hast du mal deine Configs würde gerne in mit MMU betreiben. Kann ich das EInsy verwenden oder lieber ein vorhandenes SKR/Octopus?
Gruß
RE: KLIPPER - MK3
In meiner Konfiguration verwende ich das originale Prusa Einsy Rambo v1.0a, für die MMU2 ein SKR Mini E3 V2 und als Host ein Pi4 mit Buster (Bullseye war mir dazumal zu fehleranfällig). Andere Konstellationen habe ich nicht getestet. Das SKR Octopus sollte jedoch funktionieren, nur muss man eben auf die Pin Konfiguration achten.
Warum das SKR Mini? Das originale Board der MMU2 ist lt. Klipper Autor zu fehleranfällig und bietet auch nicht ausreichend Speicherresourcen für eine Klipper Installation. Jedenfalls hat sich bislang niemand die Mühe gemacht, dieses Board für Klipper zu konfigurieren.
The official MMU2S device from Prusa is not currently supported by Klipper. It would need a developer willing to implement it (either by porting Klipper to the micro-controller or by implementing support in Klipper to communicate with the existing firmware). Several users have just replaced the controller hardware and used a regular low-cost control board running standard Klipper instead - as the control board in the official mmu2s is quite quirky.
-Kevin
Schöne Grüsse,
Karl
Statt zu klagen, dass wir nicht alles haben, was wir wollen, sollten wir lieber dankbar sein, dass wir nicht alles bekommen, was wir verdienen.
RE: KLIPPER - MK3
Klasse,
denke sollte man versuchen 😉 Habe hier diverse BTT Boards und Pin anpassung ist klar. Hst du mal deine Daten/Image etc. ?
Gruß
RE:
Die Klipper configs versende ich per PN - ohne Gewährleistung und Support. Die verschiedenen Konfigurationen musst Du an Deine Umgebung anpassen (Viele Einstellungen sind in den configs dokumentiert). Ich habe über ein Jahr (inkl. Druckeraufbau. Viele Komponenten wurden vom Prusa MK3 verwendet, lediglich die Führungen, Netzteil und Extruder sind umgebaut) daran entwickelt und gearbeitet. Die gezippte Datei beeinhaltet alle configs, bash und python scripte.
Die configs sind aktuell vom 03.12.2023, diverse Bugs wurden eliminiert und soweit läuft das Werk. Fehler und Bugfreiheit ist jedoch nicht garantiert.
Viel Spaß!
Karl
Statt zu klagen, dass wir nicht alles haben, was wir wollen, sollten wir lieber dankbar sein, dass wir nicht alles bekommen, was wir verdienen.
RE: KLIPPER - MK3
Vielen Dank,
mit geht es um die MMu . Hierzu werde ich bestimmt die ein oder andere Frage hier stellen 😉
RE: KLIPPER - MK3
Eine vordefinierte MMU config findest Du auch hier: https://github.com/Klipper3d/klipper/blob/master/config/sample-mmu2s-diy.cfg
Ich habe diese config als Basis verwendet und massiv umgemodelt. Pin Konfiguration SKR Mini E2 V2 ist sogar zur V3 unterschiedlich. Da musst Du für Dein verwendetes Board evtl. im Netz wühlen.
Schöne Grüsse,
Karl
Statt zu klagen, dass wir nicht alles haben, was wir wollen, sollten wir lieber dankbar sein, dass wir nicht alles bekommen, was wir verdienen.
RE:
Falls Du für die MMU ein SKR Mini E3 verwendest, kann ich Dir STL Daten zum Aufbau auf die MMU2 bereitstellen. Das SKR Mini ist wesentlich breiter als das orig. Prusa Board, lässt sich aber gut integrieren. Eine eigene vernünftige Stromversorgung ist allerdings empfehlenswert.
Wie man die FW auf's SKR Mini bringt ist hier beschrieben: https://docs.vorondesign.com/build/software/miniE3_v20_klipper.html
Schöne Grüsse,
Karl
Statt zu klagen, dass wir nicht alles haben, was wir wollen, sollten wir lieber dankbar sein, dass wir nicht alles bekommen, was wir verdienen.
RE:
Hier noch ein Bildchen zur MMU mit SKR Mini:
Trotz der breiteren Ausführung lässt sich das Oberteil zu Wartungs- und Reinigungszwecken gut aufklappen.
Schöne Grüsse,
Karl
Statt zu klagen, dass wir nicht alles haben, was wir wollen, sollten wir lieber dankbar sein, dass wir nicht alles bekommen, was wir verdienen.
RE: KLIPPER - MK3
Falls Du Dich selber an die Makro Programmierung machst, würde ich empfehlen folgendes zu beachten:
Makros werden zunächst vollständig ausgewertet und erst dann werden die daraus resultierenden Befehle ausgeführt. Wenn ein Makro einen Befehl ausgibt, der den Zustand des Druckers ändert, sind die Ergebnisse dieser Zustandsänderung während der Auswertung des Makros nicht sichtbar.
Aus diessem Grund habe ich viele Macros aufgesplitet und verschachtelt bzw. für viele Funktionen eigene Makros geschrieben, z.B. das Auslesen des FINDA Status (Makro E_STAT).
Das ist etwas gewöhnungsbedürftig, aber mit der Zeit, und etwas Geduld lebt man sich da gut rein.
Schöne Grüsse,
Karl
Statt zu klagen, dass wir nicht alles haben, was wir wollen, sollten wir lieber dankbar sein, dass wir nicht alles bekommen, was wir verdienen.