
<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://www.rf1000.de/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mhier</id>
	<title>RF1000 Wiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://www.rf1000.de/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mhier"/>
	<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php/Spezial:Beitr%C3%A4ge/Mhier"/>
	<updated>2026-05-03T00:49:19Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper_auf_PC&amp;diff=1204</id>
		<title>Klipper auf PC</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper_auf_PC&amp;diff=1204"/>
		<updated>2024-01-10T20:05:21Z</updated>

		<summary type="html">&lt;p&gt;Mhier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Klipper]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achtung: Diese Anleitung befindet sich noch im Entstehen!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Es gibt prinzipiell 3 realistische Möglichkeiten, die je nach Einsatz ihre Vor- und Nachteile haben:&lt;br /&gt;
&lt;br /&gt;
1. Einen auch sonst genutzen PC mittels USB-Stick mit Linux booten. Das taugt für gelegentliches Nutzen, der PC ist dann aber weitgehend blockiert für andere Aufgaben (naja, nen Browser kann man schon noch benutzen). Insbesondere der Zugriff auf Windows-Dateien ist evtl. nicht oder nur eingeschränkt möglich. Wenn das der PC ist, mit dem man auch sliced, wird das schnell lästig ;-)&lt;br /&gt;
&lt;br /&gt;
2. Linux in Virtueller Maschine installieren. Im Gegensatz zur Lösung 1 kann der PC im Prinzip weiter genutzt werden, wobei dringend Vorsicht angebracht ist während gedruckt wird. Wenn Klipper nicht genügend Rechenleistung abbekommt für einen Moment, kann das einem den Druck versauen. Für erste Tests wird es alle Male reichen. Ich habe diese Lösung allerdings nicht selbst getestet.&lt;br /&gt;
&lt;br /&gt;
3. Einen ausrangierten PC mit Linux neu installieren. Den ausrangierten PC muss man natürlich haben, evtl. kann man was günstig auf E-Bay gebraucht bekommen. Diese Lösung taugt gut als permanenter Einsatz, wenn man aus irgendwelchen Gründen keinen Raspberry Pi nutzen kann/möchte. Monitor und Tastatur muss nicht zwingen angeschlossen sein außer zum Setup.&lt;br /&gt;
&lt;br /&gt;
Alle drei Möglichkeiten setzen ein relativ ähnliches Vorgehen voraus:&lt;br /&gt;
&lt;br /&gt;
A. Linux auf das jeweilige Medium installieren.&amp;lt;br/&amp;gt;&lt;br /&gt;
B. OctoPrint installieren.&amp;lt;br/&amp;gt;&lt;br /&gt;
C. Klipper installieren.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Schritt A: Linux installieren ==&lt;br /&gt;
&lt;br /&gt;
Für alle drei Lösungen muss man sich erstmal ein Ubuntu-ISO-Image herunterladen. Das geht hier:&lt;br /&gt;
https://ubuntu.com/#download&lt;br /&gt;
&lt;br /&gt;
Je nachdem, ob man hinterher eine graphische Oberfläche haben möchte (Lösungen 1 und 2) oder nicht (Lösung 3) wählt man &amp;quot;Ubuntu Desktop&amp;quot; oder &amp;quot;Ubuntu Server&amp;quot;. Ubuntu Desktop ist deutlich umfangreicher, während Ubuntu Server weniger Platz und Download-Kapazitäten benötigt. In jedem Fall kann man aber später auch noch die Desktop-Pakete nachinstallieren bzw. den Fernzugriff aktivieren und die grafische Oberfläche ignorieren. Diese Entscheidung ist also nicht endgültig, macht aber hinterher einiges leichter.&lt;br /&gt;
&lt;br /&gt;
Für die Lösungen 1 und 3 benötigt man einen bootfähigen USB-Stick. Dafür gibt es eine Anleitung hier:&lt;br /&gt;
https://ubuntu.com/tutorials/create-a-usb-stick-on-windows#1-overview&lt;br /&gt;
&lt;br /&gt;
=== Weiteres Vorgehen für Lösung 1: USB-Stick ===&lt;br /&gt;
&lt;br /&gt;
Der USB-Stick sollte direkt bootfähig sein. Wenn man davon bootet, wird man gefragt, ob man Ubuntu installieren oder ausprobieren möchte. Man wählt hier erst deutsch als Sprache und dann &amp;quot;Ubuntu ausprobieren&amp;quot;, dann wird Ubuntu gebootet. Da USB-Sticks langsam sind, dauert das ne Ecke länger als bei einer richtigen Installation, vor allem beim ersten Mal ;-)&lt;br /&gt;
&lt;br /&gt;
=== Weiteres Vorgehen für Lösung 2: Virtuelle Maschine ===&lt;br /&gt;
&lt;br /&gt;
1. VirtualBox herunterladen und installieren (https://www.virtualbox.org/)&lt;br /&gt;
&lt;br /&gt;
2. VirtualBox starten&lt;br /&gt;
&lt;br /&gt;
3. Neue VM anlegen (blauen Stern &amp;quot;Neu&amp;quot; aklicken)&lt;br /&gt;
&lt;br /&gt;
4. Name aussuchen, Typ &amp;quot;Linux&amp;quot;, Version &amp;quot;Ubuntu (64-bit)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. RAM-Größe auswählen: Das hängt davon ab, wie viel RAM euer PC hat. Nehmt die Hälfte, wobei 1GB eher knapp sind und mehr als 4GB eher keinen Sinn machen. Lässt sich hinterher noch leicht ändern.&lt;br /&gt;
&lt;br /&gt;
6. Neue Virtuelle Festplatte erzeugen, als VDI (VrtualBox Disk Image), dynamisch alloziert, Größe z.B. 100 GB. Diese Größe lässt sich hinterher schlecht erweitern, aber die 100 GB werden nicht sofort komplett reserviert (da dynamisch alloziert). Dadurch sollte man immer eine deutlich zu große Größe wählen. Es kommt nicht so drauf an, aber 10 GB wie vorausgewählt sind definitiv arg knapp.&lt;br /&gt;
&lt;br /&gt;
7. Neue Virtuelle Maschine starten. Es popt ein Fenster auf, in dem das ISO-Image, das vorher herunter geladen wurde, ausgewählt werden sollte.&lt;br /&gt;
&lt;br /&gt;
8. Der Ubuntu installer sollte jetzt starten. &amp;quot;Install Ubuntu&amp;quot; wählen und einfach den weiteren Instruktionen folgen (Minimale Installation genügt). Keine Angst: Ubuntu kann euch nichts löschen, denn es läuft abgekapselt in eben einer Virtuellen Maschine. Daher ruhig mit den Voreinstellungen die gesamte Festplatte benutzen lassen, denn das ist nur die virtuelle Festplatte.&lt;br /&gt;
&lt;br /&gt;
9. Nach der Installation fällt auf, dass der dargestellte Bildschirm sehr klein ist. Um das zu verbessern, klickt ihr auf die 9 Punkte unten links und tippt &amp;quot;terminal&amp;quot; ein. Dann klickt ihr auf das dann erscheinende Symbol &amp;quot;Terminal&amp;quot;. Dort tippt ihr ein &amp;quot;sudo apt install virtualbox-guest-x11&amp;quot;. Nach Eingabe des Passworts bestätigt ihr mit &amp;quot;j&amp;quot;. Danach müsst ihr das System einmal neustarten -&amp;gt; Oben rechts auf das Ausschalt-Symbol, Ausschalten/Abmelden, Ausschalten..., Neu starten. Danach sollte sich der Inhalt an die Fenstergröße automatisch anpassen.&lt;br /&gt;
&lt;br /&gt;
=== Weiteres Vorgehen für Lösung 3: Ausrangierter PC ===&lt;br /&gt;
&lt;br /&gt;
Von USB-Stick booten. Sprache auf Deutsch und dann &amp;quot;Ubuntu Installieren&amp;quot; wählen und einfach den weiteren Instruktionen folgen (Minimale Installation genügt, ich empfehle die Installation von Software von Drittanbietern für Grafik-Hardware etc. zu aktivieren). Achtung: Am besten sollte die Festplatte keine wichtigen Daten mehr beinhalten. Dann kann einfach die gesamte Festplatte gelöscht und für Ubuntu verwendet werden. Das ist der einfachste Weg, daher bitte vorher alle Daten vond er Platte holen, damit hier kein Unglück passiert. (Bei einem *ausrangierten* PC gehe ich eigentlich davon aus, aber sicherheitshalber noch mal der Hinweis...)&lt;br /&gt;
&lt;br /&gt;
== Einschub: Linux benutzen ==&lt;br /&gt;
&lt;br /&gt;
So jetzt solltet ihr ein laufendes Linux-System haben. Wichtigstes Feature: Das Terminal, wo man Linux-Befehle eingeben kann. Dieses startet ihr, in dem ihr auf die 9 Punkte unten links und tippt &amp;quot;terminal&amp;quot; ein. Dann klickt ihr auf das dann erscheinende Symbol &amp;quot;Terminal&amp;quot;. Da wir dieses Terminal eigentlich ständig brauchen, empfehle ich, jetzt (wo das Terminal läuft) in der linken Leiste einmal mit rechts auf das Terminal-Icon zu klicken und &amp;quot;zu Favoriten hinzufügen&amp;quot; auszuwählen. Dadurch bleibt dieses Icon in der linken Leiste auch dann, wenn das Terminal geschlossen wird und ihr könnt es damit schnell neu öffnen.&lt;br /&gt;
&lt;br /&gt;
Fast alle Installationsanleitungen erfordern, dass dort Befehle eingegeben werden, nicht selten ohne das explizit zu erwähnen. Wenn also irgendwo Linux-Befehle auftauchen, gehören die hier rein.&lt;br /&gt;
&lt;br /&gt;
Eine kleine Übericht über die wichtigsten Befehle findet ihr hier: https://www.pcwelt.de/ratgeber/Die_10_wichtigsten_Linux-Befehle_fuer_Einsteiger-Kommandozeile_alias_Terminal-8858519.html&lt;br /&gt;
&lt;br /&gt;
Ab jetzt sollten sich alle drei Lösungen weitgehend gleich verhalten, bis auf ein Trick, der für die Virtuelle Maschine nötig ist, dazu später mehr.&lt;br /&gt;
&lt;br /&gt;
== Schritt B: OctoPrint installieren. ==&lt;br /&gt;
&lt;br /&gt;
Eine Installationsanleitung gibt es hier:&lt;br /&gt;
https://community.octoprint.org/t/setting-up-octoprint-on-a-raspberry-pi-running-raspbian-or-raspberry-pi-os/2337&lt;br /&gt;
&lt;br /&gt;
Die ist zwar für Raspbian gedacht, aber unser Ubuntu ist ausreichend ähnlich. Beim Schritt mit &amp;quot;usermod&amp;quot;, wo der Nutzer in Gruppen hinzugefügt wird, müsst ihr allerdings den Benutzernamen &amp;quot;pi&amp;quot; durch den ersetzen, den ihr euch bei der Installation ausgesucht habt.&lt;br /&gt;
&lt;br /&gt;
Die Anleitung ist unnötig lang - ihr braucht das nur bis einschließlich &amp;quot;Automatic start up&amp;quot; zu befolgen. Für Testzwecke genügt es sogar, OctoPrint immer manuell zu starten, also ist auch der Schritt optional.&lt;br /&gt;
&lt;br /&gt;
== Schritt C: Klipper installieren ==&lt;br /&gt;
&lt;br /&gt;
Hier kann man jetzt wieder der eigentlichen Anleitung auf der Seite [[Klipper]] folgen.&lt;br /&gt;
&lt;br /&gt;
Im Fall der Virtuellen Maschine muss man noch dafür sorgen, dass die USB-Verbindung in die Virtuelle Maschine hindurch gereicht wird. Dazu klickt man unten rechts auf das Symbol mit dem blauen USB-Stecker und wählt dort das richtige Gerät aus. Wenn ihr nicht wisst, welches das ist, einfach mal den Stecker ziehen und schauen, welches dann nicht mehr dort aufgeführt wird...&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1203</id>
		<title>Klipper MKS SKIPR</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1203"/>
		<updated>2024-01-10T20:04:50Z</updated>

		<summary type="html">&lt;p&gt;Mhier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Klipper]]&lt;br /&gt;
&lt;br /&gt;
= Anleitung zum Einrichten von Klipper mit einem Makerbase MKS SKIPR Board =&lt;br /&gt;
&lt;br /&gt;
Das Makerbase MKS SKIPR Board (sprich: &amp;quot;Skipper&amp;quot;) ist ein Drucker-Mainboard, bei dem sozusagen der Raspberry Pi bereits integriert ist. Da es sich nicht um einen Original-Raspberry-Pi handelt, sondern um einen vergleichbaren, aber eben etwas anderen Einplatinen-Computer, wird dieser künftig schlicht mit &amp;quot;Pi&amp;quot; bezeichnet. Auf dem Mainboard befindet sich ebenfalls ein Microcontroller, welcher im folgenden als MCU bezeichnet wird.&lt;br /&gt;
&lt;br /&gt;
Weitere Infos zum Board:&lt;br /&gt;
* https://github.com/makerbase-mks/MKS-SKIPR/tree/main/hardware/MKS%20SKIPR%20V1.0_002&lt;br /&gt;
* https://github.com/makerbase-mks/MKS-SKIPR/blob/main/README.md&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Hinweis: Diese Seite befindet sich noch im Aufbau!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Teileliste ==&lt;br /&gt;
&lt;br /&gt;
* Ein Renkforce RF1000, RF2000 oder RF2000v2 mit funktionierendem Original-Mainboard (das kann auch komplett ersetzt werden z.B. bei einem Defekt, dies wird aber zunächst nicht in dieser Anleitung behandelt)&lt;br /&gt;
* Makerbase SKR PI Board&lt;br /&gt;
* Zwei Micro-SD-Karten: Eine, um das Linux-Betriebssystem für den Pi zu speichern sowie alle Nutzerdaten. Die zweite wird lediglich für das Firmware-Update der MCU benötigt (sollte aber idealerweise dauerhaft im Gerät verbleiben).&lt;br /&gt;
* Ein ziemlich kurzes USB-Kabel vom Type USB A auf USB B, wie es auch zum Anschluss des originalen Mainboards an einen Computer benutzt wird.&lt;br /&gt;
* WLAN-Stick, möglichst klein, z.B. Edimax EW-7811Un (ok, der ist &amp;quot;etwas&amp;quot; alt und wohl nicht mehr erhältlich -&amp;gt; Alternative finden)&lt;br /&gt;
* Gehäuselüfter!&lt;br /&gt;
* Befestigungsmaterial:&lt;br /&gt;
** 5x M3x35 Senkkopf (DIN7991) + Muttern&lt;br /&gt;
** 4x M3x8&lt;br /&gt;
** 3x M4x30 + Muttern + Beilagscheiben&lt;br /&gt;
** 3 Spacer für M4 (Länge ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* 2 Sperrholzbretter (Abmessungen ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* Dickeres 2-adriges Kabel zur Stromversorgung, z.B. Lautsprecherkabel, minimum 1.5mm^2&lt;br /&gt;
* Bei Verwendung neuer Motortreiber (prinzipiell optional, aber empfohlen):&lt;br /&gt;
** 4x (bzw. 5x bei Dual-Extruder) StepStick-kompatible Motortreiber, z.B. TMC2209 oder TMC2226 (letztere laufen etwas effizienter, also kühler)&lt;br /&gt;
** 3x JST-XH Steckergehäuse 3 Pin (für die Endschalter-Kabel)&lt;br /&gt;
** Teilumrüstungen sind möglich, Endschalter und zugehöriger Stepper sollten aber auf dem selben Board sein&lt;br /&gt;
&lt;br /&gt;
== SD-Karte mit Linux vorbereiten ==&lt;br /&gt;
&lt;br /&gt;
Installationsanleitung: https://github.com/makerbase-mks/MKS-SKIPR/blob/main/README.md#software-preparation&lt;br /&gt;
&lt;br /&gt;
== Mechanische und elektronische Installation ==&lt;br /&gt;
&lt;br /&gt;
Muss noch ausgearbeitet werden, erstmal nur Stichpunkte für mich zur Erinnerung:&lt;br /&gt;
&lt;br /&gt;
* Sperrholzbretter vorbereiten als &amp;quot;Adapter&amp;quot;&lt;br /&gt;
* Erdungskabel versetzen&lt;br /&gt;
* Altes Mainboard versetzen&lt;br /&gt;
* Stromkabel an neues Mainboard und Netzteil&lt;br /&gt;
* SD-Karten einstecken&lt;br /&gt;
* WLAN-Stick einstecken (Welcher Slot!?)&lt;br /&gt;
* Neues Mainboard installieren&lt;br /&gt;
* Endschalter-Kabel auf 3-Pin-Gehäuse umbauen und aufstecken&lt;br /&gt;
* Stepper-Treiber einstecken&lt;br /&gt;
** Jumper für UART nicht vergessen, 2. Position von grünem Connector aus gezählt&lt;br /&gt;
** Bei mir: Schwarzer connecter an schwarz, roter connector an grün. Viele Mainboards haben wohl schwarz+rot statt schwarz+grün)&lt;br /&gt;
* Stepper-Kabel einstecken&lt;br /&gt;
* USB-Kabel installieren&lt;br /&gt;
&lt;br /&gt;
== Software Einrichten ==&lt;br /&gt;
&lt;br /&gt;
* Passwörter ändern&lt;br /&gt;
* Git-Repo auf Community ändern&lt;br /&gt;
* Empfohlen: Dateisystem auf sync ändern&lt;br /&gt;
* Macros kategorisieren&lt;br /&gt;
&lt;br /&gt;
== Klipper auf den MCUs updaten ==&lt;br /&gt;
&lt;br /&gt;
* Update des STM32 Microcontroller auf dem SKIPR erfolgt über SD-Karte (FAT-formatiert, keine Partitionen): klipper.bin in Stammverzeichnis kopieren als &amp;quot;FIRMWARE.BIN&amp;quot;. Damit die MCU booten.&lt;br /&gt;
&lt;br /&gt;
* Script zur Automatisierung: https://github.com/RF1000community/klipper/blob/wip-loadcellprobe/update-rf1000%2Bskipr-mcus.sh&lt;br /&gt;
* Speichern nach ~/klipper&lt;br /&gt;
* chmod +x ~/klipper/update-rf1000%2Bskipr-mcus.sh&lt;br /&gt;
* Starten:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/klipper&lt;br /&gt;
./update-rf1000%2Bskipr-mcus.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cura Verbindung und Startcode ==&lt;br /&gt;
&lt;br /&gt;
* Plugin aus Cura Marketplace: Connect Moonraker&lt;br /&gt;
* Optional: Startcode-Macros und Material Settings Plugin&lt;br /&gt;
&lt;br /&gt;
== Display ==&lt;br /&gt;
&lt;br /&gt;
Fehlt noch komplett. 3D-Modell nötig!&lt;br /&gt;
&lt;br /&gt;
== Linux-Update (Armbian) ==&lt;br /&gt;
&lt;br /&gt;
* Normale Updates (Sicherheits-Patches etc.):&lt;br /&gt;
** apt update&lt;br /&gt;
** apt dist-upgrade&lt;br /&gt;
* Paket linux-dtb-edge-rockchip64 darf nicht geupdated werden&lt;br /&gt;
** Da drin ist der &amp;quot;Device Tree&amp;quot; (https://en.wikipedia.org/wiki/Devicetree), der vom Hersteller modifiziert wurde (leider ohne das in Armbian/Debian einzupflegen)&lt;br /&gt;
** Deshalb ausführen: apt-mark hold linux-dtb-edge-rockchip64&lt;br /&gt;
** Falls Device Tree doch mal überschrieben wird: Inhalt von /boot/dtb aus dem Original-Image wiederherstellen&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1202</id>
		<title>Klipper</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1202"/>
		<updated>2024-01-10T20:04:24Z</updated>

		<summary type="html">&lt;p&gt;Mhier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Klipper]]&lt;br /&gt;
&lt;br /&gt;
Klipper ist eine Firmware für 3D Drucker. Diese kann alternativ zu der Repetier-basierten Original-Firmware von Conrad oder der auf dieser Original-Firmware basierenden Community-Version auf den Druckern RF1000, RF2000 oder RF2000v2 verwendet werden. Die dafür nötige Konfiguration ist für die Drucker RF2000 und RF2000v2 noch nicht vollständig. '''Für den RF1000 ist die Konfiguration abgeschlossen und wird seit Jahren bereits produktiv eingesetzt zum Drucken und Fräsen.''' Für die anderen Drucker werden Tester gesucht, die bereit sind, die Konfiguration an das jeweilige Modell anzupassen und beizusteuern.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Klipper ist gut dokumentiert auf seiner Webseite, allerdings nur in Englisch: [https://www.klipper3d.org https://www.klipper3d.org]&lt;br /&gt;
&lt;br /&gt;
Das Grundprinzip weicht von der Repetier-basierten Firmware und anderen 3D-Drucker-Firmwares deutlich ab. Statt alle Berechnungen im Microcontroller (im Folgenden MCU genannt) des Druckers auszuführen, werden zeitintensive Berechnungen auf einem Host-System durchgeführt. Als Host-System eignet sich z.B. ein Raspberry Pi oder auch ein herkömmlicher Linux-PC. Auf dem selben Host-System kann (bzw. sollte) auch Octoprint o.ä. ausgeführt werden. Wer also bereits Octoprint etc. nutzt, benötigt keine weitere Hardware.&lt;br /&gt;
&lt;br /&gt;
Da die zur Verfügung stehende Rechenpower so um Größenordnungen höher ist, können deutlich präzisere Berechnungen durchgeführt werden. Die Motoren laufen spürbar ruhiger, und höhere Schrittfrequenzen sind ebenfalls problemlos möglich. Außerdem ist eine höhere Flexibilität möglich. Auch ohne Programmierkenntnisse kann das Verhalten der Firmware über Konfigurations-Dateien beeinflusst werden, sogar neue G-Codes können so eingeführt werden. Die Firmware ist größtenteils in Python geschrieben und sehr modular gehalten, wodurch die Einstiegshürde für Entwickler sehr viel geringer ist.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
Was schon funktioniert:&lt;br /&gt;
* Natürlich alle Grundfunktionen, die jeder normale Drucker hat (Bewegen, Heizen, Lüfter etc.)&lt;br /&gt;
** Dokumentation der unterstützten G-Codes: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
* Heizbett-Scan: heißt bei Klipper Bed Mesh Leveling&lt;br /&gt;
** Es lassen sich beliebig viele benannte Meshes (entspricht den Matrizen) speichern&lt;br /&gt;
** Es gibt kein Software-Limit wie groß die Werte im Mesh werden dürfen&lt;br /&gt;
** Interpolation zwischen den Punkten des Meshes ist deutlich besser, daher sollten weniger Punkte ausreichen&lt;br /&gt;
* Z-Offset-Scan&lt;br /&gt;
** Korrigiert nicht mehr die Matrix/das Mesh, sondern kalibriert die Z-Koordinate des Z-Endstop.&lt;br /&gt;
** Ebenfalls keinerlei Software-Limit auf den Wert des &amp;quot;Offsets&amp;quot;.&lt;br /&gt;
** Homing gegen Z-Max ist problemlos ebenfalls möglich.&lt;br /&gt;
* Menü (im Original-Zustand von Klipper, daher noch etwas rudimentär vielleicht): die Bedienlogik ist etwas anders&lt;br /&gt;
** Die Nach-Rechts-Taste wird eigentlich nicht gebraucht und wurde daher als Not-Aus umfunktioniert.&lt;br /&gt;
** Die Tasten zum Bewegen des Heizbetts und des Extruders fahren in vorgegebenen Schritten. Gedrückthalten für längere Fahrten ist nicht möglich (Einschränkung in Klipper).&lt;br /&gt;
* Pause und Fortsetzen über Tasten (funktioniert evtl. nur mit Octoprint?)&lt;br /&gt;
* Sense offset&lt;br /&gt;
* Emergency Stop (bei zu hohem Druck auf die Wägezellen), funktioniert nur während eines Z-Scans.&lt;br /&gt;
* Kanten antasten in X/Y (Fräsen)&lt;br /&gt;
&lt;br /&gt;
Was fehlt:&lt;br /&gt;
* Konfigurationen für den RF2000 und RF2000v2 (für RF2000v2 single extruder ist eine Konfiguration vorhanden, muss aber geupdated werden)&lt;br /&gt;
* Sagt ihr es mir!&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Eine Ausführliche Installationsanleitung gibt es auf der Webseite: [https://www.klipper3d.org/Installation.html https://www.klipper3d.org/Installation.html]&lt;br /&gt;
&lt;br /&gt;
Eine Installationsanleitung für Klipper auf dem MKS SKIPR Board gibt es hier: [[Klipper_MKS_SKIPR]]&lt;br /&gt;
&lt;br /&gt;
Eine Installationsanleitung für Klipper auf dem PC gibt es hier: [[Klipper auf PC]]&lt;br /&gt;
&lt;br /&gt;
Da die nötigen Modifikationen und Beispielkonfigurationen noch nicht Teil der offiziellen Klipper-Firmware sind, muss der folgende Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/Klipper3d/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
durch diesen ersetzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/RF1000community/Klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem gibt es bereits eine Konfigurations-Datei für den RF1000. Ich würde daher empfehlen, die Konfigurations-Datei printer.cfg mit folgendem Inhalt zu erstellen:&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf1000.cfg]&lt;br /&gt;
&lt;br /&gt;
[mcu]&lt;br /&gt;
serial: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_&amp;lt;hier_richtige_ID_einfügen&amp;gt;-port0&lt;br /&gt;
&lt;br /&gt;
[stepper_z]&lt;br /&gt;
position_endstop: 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dadurch wird der Inhalt von klipper/config/printer-rf1000.cfg benutzt, aber alle folgenden Einstellungen überschreiben ggf. bereits vorhandene Einstellungen aus der printer-rf1000.cfg Datei. Die Angabe des position_endstop für die Z-Achse ist nötig, da diese durch den Z-Offset-Scan überschrieben wird, was nur funktioniert, wenn diese Angabe direkt in der printer.cfg gemacht wird (nicht im Include).&lt;br /&gt;
&lt;br /&gt;
Nach der Installation bitte unbedingt die Anleitung zum Prüfen der Konfiguration befolgen:&lt;br /&gt;
https://www.klipper3d.org/Config_checks.html&lt;br /&gt;
&lt;br /&gt;
Es ist ebenfalls empfehlenswert, die Konfiguration auf diese Weise nach jedem Update zu prüfen, weil durch das [include] Änderungen aus der Konfigurationsdatei automatisch übernommen werden.&lt;br /&gt;
&lt;br /&gt;
=== Octoprint ===&lt;br /&gt;
&lt;br /&gt;
Die Installationsanleitung geht von einer Octoprint Installation aus.&lt;br /&gt;
&lt;br /&gt;
=== Repetierserver ===&lt;br /&gt;
&lt;br /&gt;
Man kann auf einem normalen RasPi Installation zuerst Repetier-Server aufsetzen und dann erst Klipper. Die Verbindung von Repetier-Server zu Klipper funktioniert aber nicht, da die beiden Programme unter verschiedenen Benutzern arbeiten und die Standard Serial-Emulation das Problem nicht lösen kann.&lt;br /&gt;
&lt;br /&gt;
Abhilfe: (Siehe [Repetier-Server Knowledgebase https://www.repetier-server.com/knowledgebase/klipper/])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/lib/klipper&lt;br /&gt;
sudo chmod 777 /var/lib/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und dann die Änderung in den Einstellungen von Klipper bekannt machen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/defaults/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dort die Zeile am Ende zu &amp;lt;pre&amp;gt;KLIPPY_ARGS=&amp;quot;/home/pi/klipper/klippy/klippy.py /home/pi/printer.cfg -l /tmp/klippy.log -I /var/lib/klipper/connect&amp;quot;&amp;lt;/pre&amp;gt; ergänzen. Anschliessend das Service von Klipper neu starten. Damit kann man sich in Repetier-Server mit Gerät/Port /var/lib/klipper/connect verbinden.&lt;br /&gt;
&lt;br /&gt;
Repetierserver älter als 0.99.4: Bei den Befehlen muss man ein Raute Zeichen # voranstellen, damit es richtig von Repetier-Server weitergegeben wird. Ist bei Version 1.x und besser nicht mehr der Fall.&lt;br /&gt;
&lt;br /&gt;
== Klipper Befehle ==&lt;br /&gt;
&lt;br /&gt;
Klipper unterstützt natürlich alle gängigen G-Code-Befehle, die die Slicer erzeugen. Es wird allgemein empfohlen, den Slicer auf &amp;quot;Marlin&amp;quot; oder &amp;quot;Smoothieware&amp;quot; zu stellen (sofern keine direkte Unterstützung für Klipper vorhanden ist). &lt;br /&gt;
Für erweiterte G-Code-Befehle verfolgt Klipper eine etwas andere Philosophie als andere Firmwares: Statt kryptische M-Befehle zu erdenken, werden sprechende Namen benutzt. Gleiches gilt für die Parameter, die üblicherweise die Form &amp;quot;NAME=Wert&amp;quot; haben. Groß- und Kleinschreibung spielt keine Rolle.&lt;br /&gt;
&lt;br /&gt;
Es ist möglich, mittels Macros eigene G-Code-Befehle zu definieren. Das funktioniert über die Konfiguration und ist in [https://github.com/KevinOConnor/klipper/blob/master/config/example-extras.cfg#L395 example-extras.cfg] im Abschnitt &amp;quot;[gcode_macro my_cmd]&amp;quot; dokumentiert. Dadurch könnte man sich z.B. seinen Start-Code statt im Slicer in der Konfiguration definieren (und so auch leichter ändern, ohne neu slicen zu müssen), oder Befehle, die von Klipper nicht unterstützt aber durch den Slicer erzeugt werden, implementieren.&lt;br /&gt;
&lt;br /&gt;
Siehe [[Klipper_GCodes]] mit der Übersicht der GCodes die von Klipper verstanden werden, auch mit den Erweiterungen die im Repository von rf1000.de enthalten sind.&lt;br /&gt;
Original-Dokumentation: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
&lt;br /&gt;
Hinweis: Einige der dort beschriebenen Befehle sind nur aktiv, wenn bestimmte Module geladen sind. Daher gehen manche Befehle nicht, es sei denn, das Modul wird über die Konfiguration eingeschaltet.&lt;br /&gt;
&lt;br /&gt;
=== Reset ===&lt;br /&gt;
Einen Reset von Klipper, das auch die Firmware zurücksetzt führt man mit dem Kommando &lt;br /&gt;
&amp;lt;pre&amp;gt;FIRMWARE_RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
durch. Dabei wird auch die printer.cfg neu eingelesen. Bei Problemen in der printer.cfg kann es sein, das ein Klipper: Disconnect erscheint. Dann läuft Klipper nicht und man darf den Fehler suchen.&lt;br /&gt;
&lt;br /&gt;
Mit dem GCode M112 wird Klipper einfach heruntergefahren und man muss sich neu verbinden.&lt;br /&gt;
&lt;br /&gt;
Möchte man nur die printer.cfg neu laden, genügt der Befehl&lt;br /&gt;
&amp;lt;pre&amp;gt;RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PID durchführen ===&lt;br /&gt;
Für den Hotend 1&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=extruder TARGET=210&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für das Heizbett&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=heater_bed TARGET=60&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Daten werden mit SAVE_CONFIG abgespeichert.&lt;br /&gt;
&lt;br /&gt;
=== Z Offset ===&lt;br /&gt;
Um den Z-Offset bzw. die Z-Position des Endschalters zu kalibrieren, gibt es das Macro&lt;br /&gt;
&amp;lt;pre&amp;gt;Z_CALIBRATE&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies führt einen Scan an der Position x=100,y=100 durch. Wichtig ist, dass die Position des Endschalters schon so weit bekannt sein muss, dass Z=2mm zuverlässig '''über''' dem Bett liegt (nicht zu weit, sonst dauert der Scan zu lange), denn diese Position wird vor dem Scan angefahren.&lt;br /&gt;
&lt;br /&gt;
Wenn man testen möchte, ob der Scan zuverlässig funktioniert, kann dieser Befehl benutzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;PROBE_ACCURACY&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das führt dann an der aktuellen XY Position 10 mal einen Z-Scan durch und bestimmt Mittelwert und Standardabweichung etc. Standardabweichung ist also in unteren bis mitteleren einstelligen Mikrometerbereich, der &amp;quot;Maximalfehler&amp;quot; (range) besser als 1/100mm. [https://www.rf1000.de/viewtopic.php?f=7&amp;amp;t=2610&amp;amp;start=60 Mehr Info zu PROBE_ACCURACY siehe Post Nr 62]&lt;br /&gt;
&lt;br /&gt;
=== Bed Mesh Kalibration durchführen ===&lt;br /&gt;
Zum kalibrieren des Bed Mesh (Äquivalent zum Heat Bed Scan der Repetier-Firmware) wird folgendes Macro empfohlen:&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_CALIBRATE&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies führt zunächst ein Z_CALIBRATE durch (ebenfalls an x=100,y=100). Anschließend wird das Bett im Raster vermessen. Die Konfiguration wird am Ende automatisch gespeichert (was zu einem Firmware-Neustart führt).&lt;br /&gt;
&lt;br /&gt;
Dadurch, dass zuerst ein Z_CALIBRATE durchgeführt wird, kann anschließend jederzeit ein Z_CALIBRATE genutzt werden, um z.B. nach einem Düsenwechsel den Abstand zwischen Bett und Düse neu zu kalibrieren, ohne dass ein vollständiger Bed Mesh Scan nötig wäre. Wichtig dafür ist, dass die beiden Z_CALIBRATEs an der selben X/Y-Position ausgeführt werden (deshalb ist diese Position im Macro festgelegt).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_OUTPUT&amp;lt;/pre&amp;gt;&lt;br /&gt;
gibt das aktuelle Mesh aus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_CLEAR&amp;lt;/pre&amp;gt;&lt;br /&gt;
setzt alle Werte des aktuellen Meshes auf 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_PROFILE LOAD=&amp;lt;name&amp;gt; SAVE=&amp;lt;name&amp;gt; REMOVE=&amp;lt;name&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
erlaut das Mesh zu speichern, zu laden, oder ein gespeichertes Mesh zu löschen.&lt;br /&gt;
&lt;br /&gt;
Übrigens kann das Mesh mit OctoPrint visualisiert werden, wenn man sich das Bed Visualizer Plugin installiert.&lt;br /&gt;
&lt;br /&gt;
=== Positionen Abfragen ===&lt;br /&gt;
Damit sieht man die aktuellen Positionen in den verschiedenen Koorinaten-Systeme. Beispiel nach &amp;quot;G1 Z0&amp;quot; auf der Position X=57.5 und Y=50.0&lt;br /&gt;
&amp;lt;pre&amp;gt;Send:16:32:28.975: #GET_POSITION&lt;br /&gt;
Recv:16:32:28.976: // mcu: stepper_x:2 stepper_y:-50 stepper_z:2499&lt;br /&gt;
Recv:16:32:28.976: // stepper: stepper_x:57.500625 stepper_y:49.999688 stepper_z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // kinematic: X:57.500625 Y:49.999688 Z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // toolhead: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode base: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode homing: X:0.000000 Y:0.000000 Z:0.000000&lt;br /&gt;
Recv:16:32:28.976: ok&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man sollte man die Z-Koordinaten zwischen toolhead und kinematic vergleichen. Der Unterschied sollte genau die Korrektur aus dem Mesh-Leveling an dem Punkt sein. Andernfalls ist da irgendwo noch ein anderer Offset im Spiel.&lt;br /&gt;
&lt;br /&gt;
=== Speichern der Configuration ===&lt;br /&gt;
Mit dem Kommando save_config kann man die Änderungen, die durch die Abgleichfunktionen (PID, HBS, Z-Offset,...) ermittelt wurden, in der Konfigurationsdatei abspeichern:&lt;br /&gt;
&amp;lt;pre&amp;gt;SAVE_CONFIG&amp;lt;/pre&amp;gt;&lt;br /&gt;
Danach startet die Firmware neu, und es muss neu gehomed werden.&lt;br /&gt;
&lt;br /&gt;
== Konfigurationsdatei ==&lt;br /&gt;
=== Basiskonfigurationen ===&lt;br /&gt;
Im Verzeichnis von Klipper stehen unter /config die verschiedenen Konfigurationsdateien für Klipper. Aktuell ist für den RF1000 und den RF2000V2 mit Single Extruder eine Konfigurationsdatei vorhanden. Diese Konfigurationsdateien sollte man dort belassen und auch nicht ändern. &lt;br /&gt;
&lt;br /&gt;
=== Eigene printer.cfg ===&lt;br /&gt;
Bei Klipper verwendet man am besten eine eigene printer.cfg, die nicht einfach von einer Vorlage kopiert wird, sondern die die Vorlage ergänzt, ändert und erweitert.&lt;br /&gt;
&lt;br /&gt;
In der printer.cfg steht am Anfang normalerseise immer der Basisdrucker, von dem die aktuelle Konfiguration abgeleitet wird. Wie alle Parametergruppen wird das ganze von eckigen Klammern [] umschlossen.&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf2000v2-single.cfg]&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dannach kann man dann seine geänderten oder neue Parameter hinzufügen. Das folgende ist aus einer Konfiguration für den RF2000V2 single. Zuerst wird der maximale Fahrweg in X und Y anders definiert und anschliessend für Z die Werte angepasst. Dannach kommt die Konfiguration für den HBS.&lt;br /&gt;
&amp;lt;pre&amp;gt;[stepper_x]&lt;br /&gt;
position_max: 210&lt;br /&gt;
&lt;br /&gt;
[stepper_y]&lt;br /&gt;
position_max: 290&lt;br /&gt;
&lt;br /&gt;
[stepper_z]&lt;br /&gt;
position_min: -2.0&lt;br /&gt;
position_max: 185&lt;br /&gt;
&lt;br /&gt;
[bed_mesh]&lt;br /&gt;
speed: 30&lt;br /&gt;
horizontal_move_z: 2&lt;br /&gt;
mesh_min: 10,50&lt;br /&gt;
mesh_max: 200,230&lt;br /&gt;
algorithm:lagrange&lt;br /&gt;
probe_count: 5,5&lt;br /&gt;
fade_start: 1.0&lt;br /&gt;
fade_end: 10.0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach den Parametern kann man sich auch Makros definieren. In dem Beispiel ein Markro zum Auswurf des Objektes, das man einfach mit OUTPUT_OBJECT aufrufen kann.&lt;br /&gt;
&amp;lt;pre&amp;gt;[gcode_macro OUTPUT_OBJECT]&lt;br /&gt;
gcode:&lt;br /&gt;
	G90&lt;br /&gt;
	#G1 Z180	F540&lt;br /&gt;
	G1 Z80	F540&lt;br /&gt;
	G1 Y245 F4800&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als letzte Abschnitt kommen die gespeicherten - durch SAVE_CONFIG - Parameter und Werte. Diese NICHT selbst verändern, sondern immer nur durch das Programm.&lt;br /&gt;
&amp;lt;pre&amp;gt;#*# &amp;lt;---------------------- SAVE_CONFIG ----------------------&amp;gt;&lt;br /&gt;
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.&lt;br /&gt;
#*#&lt;br /&gt;
#*# [extruder]&lt;br /&gt;
#*# control = pid&lt;br /&gt;
#*# pid_kp = 33.373&lt;br /&gt;
#*# pid_ki = 2.060&lt;br /&gt;
#*# pid_kd = 135.160&lt;br /&gt;
#*#&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1201</id>
		<title>Klipper</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1201"/>
		<updated>2024-01-06T19:58:13Z</updated>

		<summary type="html">&lt;p&gt;Mhier: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Klipper]]&lt;br /&gt;
&lt;br /&gt;
Klipper ist eine Firmware für 3D Drucker. Diese kann alternativ zu der Repetier-basierten Original-Firmware von Conrad oder der auf dieser Original-Firmware basierenden Community-Version auf den Druckern RF1000, RF2000 oder RF2000v2 verwendet werden. Die dafür nötige Konfiguration ist für die Drucker RF2000 und RF2000v2 noch nicht vollständig. '''Für den RF1000 ist die Konfiguration abgeschlossen und wird seit knapp einem Jahr bereits produktiv eingesetzt zum Drucken und Fräsen.''' Für die anderen Drucker werden Tester gesucht, die bereit sind, die Konfiguration an das jeweilige Modell anzupassen und beizusteuern.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Klipper ist gut dokumentiert auf seiner Webseite, allerdings nur in Englisch: [https://www.klipper3d.org https://www.klipper3d.org]&lt;br /&gt;
&lt;br /&gt;
Das Grundprinzip weicht von der Repetier-basierten Firmware und anderen 3D-Drucker-Firmwares deutlich ab. Statt alle Berechnungen im Microcontroller (im Folgenden MCU genannt) des Druckers auszuführen, werden zeitintensive Berechnungen auf einem Host-System durchgeführt. Als Host-System eignet sich z.B. ein Raspberry Pi oder auch ein herkömmlicher Linux-PC. Auf dem selben Host-System kann (bzw. sollte) auch Octoprint o.ä. ausgeführt werden. Wer also bereits Octoprint etc. nutzt, benötigt keine weitere Hardware.&lt;br /&gt;
&lt;br /&gt;
Da die zur Verfügung stehende Rechenpower so um Größenordnungen höher ist, können deutlich präzisere Berechnungen durchgeführt werden. Die Motoren laufen spürbar ruhiger, und höhere Schrittfrequenzen sind ebenfalls problemlos möglich. Außerdem ist eine höhere Flexibilität möglich. Auch ohne Programmierkenntnisse kann das Verhalten der Firmware über Konfigurations-Dateien beeinflusst werden, sogar neue G-Codes können so eingeführt werden. Die Firmware ist größtenteils in Python geschrieben und sehr modular gehalten, wodurch die Einstiegshürde für Entwickler sehr viel geringer ist.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
Was schon funktioniert:&lt;br /&gt;
* Natürlich alle Grundfunktionen, die jeder normale Drucker hat (Bewegen, Heizen, Lüfter etc.)&lt;br /&gt;
** Dokumentation der unterstützten G-Codes: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
* Heizbett-Scan: heißt bei Klipper Bed Mesh Leveling&lt;br /&gt;
** Es lassen sich beliebig viele benannte Meshes (entspricht den Matrizen) speichern&lt;br /&gt;
** Es gibt kein Software-Limit wie groß die Werte im Mesh werden dürfen&lt;br /&gt;
** Interpolation zwischen den Punkten des Meshes ist deutlich besser, daher sollten weniger Punkte ausreichen&lt;br /&gt;
* Z-Offset-Scan&lt;br /&gt;
** Korrigiert nicht mehr die Matrix/das Mesh, sondern kalibriert die Z-Koordinate des Z-Endstop.&lt;br /&gt;
** Ebenfalls keinerlei Software-Limit auf den Wert des &amp;quot;Offsets&amp;quot;.&lt;br /&gt;
** Homing gegen Z-Max ist problemlos ebenfalls möglich.&lt;br /&gt;
* Menü (im Original-Zustand von Klipper, daher noch etwas rudimentär vielleicht): die Bedienlogik ist etwas anders&lt;br /&gt;
** Die Nach-Rechts-Taste wird eigentlich nicht gebraucht und wurde daher als Not-Aus umfunktioniert.&lt;br /&gt;
** Die Tasten zum Bewegen des Heizbetts und des Extruders fahren in vorgegebenen Schritten. Gedrückthalten für längere Fahrten ist nicht möglich (Einschränkung in Klipper).&lt;br /&gt;
* Pause und Fortsetzen über Tasten (funktioniert evtl. nur mit Octoprint?)&lt;br /&gt;
* Sense offset&lt;br /&gt;
* Emergency Stop (bei zu hohem Druck auf die Wägezellen), funktioniert nur während eines Z-Scans.&lt;br /&gt;
* Kanten antasten in X/Y (Fräsen)&lt;br /&gt;
&lt;br /&gt;
Was fehlt:&lt;br /&gt;
* Konfigurationen für den RF2000 und RF2000v2 (für RF2000v2 single extruder ist eine Konfiguration vorhanden, muss aber geupdated werden)&lt;br /&gt;
* Sagt ihr es mir!&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Eine Ausführliche Installationsanleitung gibt es auf der Webseite: [https://www.klipper3d.org/Installation.html https://www.klipper3d.org/Installation.html]&lt;br /&gt;
&lt;br /&gt;
Eine Installationsanleitung für Klipper auf dem MKS SKIPR Board gibt es hier: [[Klipper_MKS_SKIPR]]&lt;br /&gt;
&lt;br /&gt;
Eine Installationsanleitung für Klipper auf dem PC gibt es hier: [[Klipper auf PC]]&lt;br /&gt;
&lt;br /&gt;
Da die nötigen Modifikationen und Beispielkonfigurationen noch nicht Teil der offiziellen Klipper-Firmware sind, muss der folgende Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/Klipper3d/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
durch diesen ersetzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/RF1000community/Klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem gibt es bereits eine Konfigurations-Datei für den RF1000. Ich würde daher empfehlen, die Konfigurations-Datei printer.cfg mit folgendem Inhalt zu erstellen:&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf1000.cfg]&lt;br /&gt;
&lt;br /&gt;
[mcu]&lt;br /&gt;
serial: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_&amp;lt;hier_richtige_ID_einfügen&amp;gt;-port0&lt;br /&gt;
&lt;br /&gt;
[stepper_z]&lt;br /&gt;
position_endstop: 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dadurch wird der Inhalt von klipper/config/printer-rf1000.cfg benutzt, aber alle folgenden Einstellungen überschreiben ggf. bereits vorhandene Einstellungen aus der printer-rf1000.cfg Datei. Die Angabe des position_endstop für die Z-Achse ist nötig, da diese durch den Z-Offset-Scan überschrieben wird, was nur funktioniert, wenn diese Angabe direkt in der printer.cfg gemacht wird (nicht im Include).&lt;br /&gt;
&lt;br /&gt;
Nach der Installation bitte unbedingt die Anleitung zum Prüfen der Konfiguration befolgen:&lt;br /&gt;
https://www.klipper3d.org/Config_checks.html&lt;br /&gt;
&lt;br /&gt;
Es ist ebenfalls empfehlenswert, die Konfiguration auf diese Weise nach jedem Update zu prüfen, weil durch das [include] Änderungen aus der Konfigurationsdatei automatisch übernommen werden.&lt;br /&gt;
&lt;br /&gt;
=== Octoprint ===&lt;br /&gt;
&lt;br /&gt;
Die Installationsanleitung geht von einer Octoprint Installation aus.&lt;br /&gt;
&lt;br /&gt;
=== Repetierserver ===&lt;br /&gt;
&lt;br /&gt;
Man kann auf einem normalen RasPi Installation zuerst Repetier-Server aufsetzen und dann erst Klipper. Die Verbindung von Repetier-Server zu Klipper funktioniert aber nicht, da die beiden Programme unter verschiedenen Benutzern arbeiten und die Standard Serial-Emulation das Problem nicht lösen kann.&lt;br /&gt;
&lt;br /&gt;
Abhilfe: (Siehe [Repetier-Server Knowledgebase https://www.repetier-server.com/knowledgebase/klipper/])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/lib/klipper&lt;br /&gt;
sudo chmod 777 /var/lib/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und dann die Änderung in den Einstellungen von Klipper bekannt machen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/defaults/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dort die Zeile am Ende zu &amp;lt;pre&amp;gt;KLIPPY_ARGS=&amp;quot;/home/pi/klipper/klippy/klippy.py /home/pi/printer.cfg -l /tmp/klippy.log -I /var/lib/klipper/connect&amp;quot;&amp;lt;/pre&amp;gt; ergänzen. Anschliessend das Service von Klipper neu starten. Damit kann man sich in Repetier-Server mit Gerät/Port /var/lib/klipper/connect verbinden.&lt;br /&gt;
&lt;br /&gt;
Repetierserver älter als 0.99.4: Bei den Befehlen muss man ein Raute Zeichen # voranstellen, damit es richtig von Repetier-Server weitergegeben wird. Ist bei Version 1.x und besser nicht mehr der Fall.&lt;br /&gt;
&lt;br /&gt;
== Klipper Befehle ==&lt;br /&gt;
&lt;br /&gt;
Klipper unterstützt natürlich alle gängigen G-Code-Befehle, die die Slicer erzeugen. Es wird allgemein empfohlen, den Slicer auf &amp;quot;Marlin&amp;quot; oder &amp;quot;Smoothieware&amp;quot; zu stellen (sofern keine direkte Unterstützung für Klipper vorhanden ist). &lt;br /&gt;
Für erweiterte G-Code-Befehle verfolgt Klipper eine etwas andere Philosophie als andere Firmwares: Statt kryptische M-Befehle zu erdenken, werden sprechende Namen benutzt. Gleiches gilt für die Parameter, die üblicherweise die Form &amp;quot;NAME=Wert&amp;quot; haben. Groß- und Kleinschreibung spielt keine Rolle.&lt;br /&gt;
&lt;br /&gt;
Es ist möglich, mittels Macros eigene G-Code-Befehle zu definieren. Das funktioniert über die Konfiguration und ist in [https://github.com/KevinOConnor/klipper/blob/master/config/example-extras.cfg#L395 example-extras.cfg] im Abschnitt &amp;quot;[gcode_macro my_cmd]&amp;quot; dokumentiert. Dadurch könnte man sich z.B. seinen Start-Code statt im Slicer in der Konfiguration definieren (und so auch leichter ändern, ohne neu slicen zu müssen), oder Befehle, die von Klipper nicht unterstützt aber durch den Slicer erzeugt werden, implementieren.&lt;br /&gt;
&lt;br /&gt;
Siehe [[Klipper_GCodes]] mit der Übersicht der GCodes die von Klipper verstanden werden, auch mit den Erweiterungen die im Repository von rf1000.de enthalten sind.&lt;br /&gt;
Original-Dokumentation: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
&lt;br /&gt;
Hinweis: Einige der dort beschriebenen Befehle sind nur aktiv, wenn bestimmte Module geladen sind. Daher gehen manche Befehle nicht, es sei denn, das Modul wird über die Konfiguration eingeschaltet.&lt;br /&gt;
&lt;br /&gt;
=== Reset ===&lt;br /&gt;
Einen Reset von Klipper, das auch die Firmware zurücksetzt führt man mit dem Kommando &lt;br /&gt;
&amp;lt;pre&amp;gt;FIRMWARE_RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
durch. Dabei wird auch die printer.cfg neu eingelesen. Bei Problemen in der printer.cfg kann es sein, das ein Klipper: Disconnect erscheint. Dann läuft Klipper nicht und man darf den Fehler suchen.&lt;br /&gt;
&lt;br /&gt;
Mit dem GCode M112 wird Klipper einfach heruntergefahren und man muss sich neu verbinden.&lt;br /&gt;
&lt;br /&gt;
Möchte man nur die printer.cfg neu laden, genügt der Befehl&lt;br /&gt;
&amp;lt;pre&amp;gt;RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PID durchführen ===&lt;br /&gt;
Für den Hotend 1&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=extruder TARGET=210&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für das Heizbett&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=heater_bed TARGET=60&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Daten werden mit SAVE_CONFIG abgespeichert.&lt;br /&gt;
&lt;br /&gt;
=== Z Offset ===&lt;br /&gt;
Um den Z-Offset bzw. die Z-Position des Endschalters zu kalibrieren, gibt es das Macro&lt;br /&gt;
&amp;lt;pre&amp;gt;Z_CALIBRATE&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies führt einen Scan an der Position x=100,y=100 durch. Wichtig ist, dass die Position des Endschalters schon so weit bekannt sein muss, dass Z=2mm zuverlässig '''über''' dem Bett liegt (nicht zu weit, sonst dauert der Scan zu lange), denn diese Position wird vor dem Scan angefahren.&lt;br /&gt;
&lt;br /&gt;
Wenn man testen möchte, ob der Scan zuverlässig funktioniert, kann dieser Befehl benutzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;PROBE_ACCURACY&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das führt dann an der aktuellen XY Position 10 mal einen Z-Scan durch und bestimmt Mittelwert und Standardabweichung etc. Standardabweichung ist also in unteren bis mitteleren einstelligen Mikrometerbereich, der &amp;quot;Maximalfehler&amp;quot; (range) besser als 1/100mm. [https://www.rf1000.de/viewtopic.php?f=7&amp;amp;t=2610&amp;amp;start=60 Mehr Info zu PROBE_ACCURACY siehe Post Nr 62]&lt;br /&gt;
&lt;br /&gt;
=== Bed Mesh Kalibration durchführen ===&lt;br /&gt;
Zum kalibrieren des Bed Mesh (Äquivalent zum Heat Bed Scan der Repetier-Firmware) wird folgendes Macro empfohlen:&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_CALIBRATE&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies führt zunächst ein Z_CALIBRATE durch (ebenfalls an x=100,y=100). Anschließend wird das Bett im Raster vermessen. Die Konfiguration wird am Ende automatisch gespeichert (was zu einem Firmware-Neustart führt).&lt;br /&gt;
&lt;br /&gt;
Dadurch, dass zuerst ein Z_CALIBRATE durchgeführt wird, kann anschließend jederzeit ein Z_CALIBRATE genutzt werden, um z.B. nach einem Düsenwechsel den Abstand zwischen Bett und Düse neu zu kalibrieren, ohne dass ein vollständiger Bed Mesh Scan nötig wäre. Wichtig dafür ist, dass die beiden Z_CALIBRATEs an der selben X/Y-Position ausgeführt werden (deshalb ist diese Position im Macro festgelegt).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_OUTPUT&amp;lt;/pre&amp;gt;&lt;br /&gt;
gibt das aktuelle Mesh aus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_CLEAR&amp;lt;/pre&amp;gt;&lt;br /&gt;
setzt alle Werte des aktuellen Meshes auf 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_PROFILE LOAD=&amp;lt;name&amp;gt; SAVE=&amp;lt;name&amp;gt; REMOVE=&amp;lt;name&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
erlaut das Mesh zu speichern, zu laden, oder ein gespeichertes Mesh zu löschen.&lt;br /&gt;
&lt;br /&gt;
Übrigens kann das Mesh mit OctoPrint visualisiert werden, wenn man sich das Bed Visualizer Plugin installiert.&lt;br /&gt;
&lt;br /&gt;
=== Positionen Abfragen ===&lt;br /&gt;
Damit sieht man die aktuellen Positionen in den verschiedenen Koorinaten-Systeme. Beispiel nach &amp;quot;G1 Z0&amp;quot; auf der Position X=57.5 und Y=50.0&lt;br /&gt;
&amp;lt;pre&amp;gt;Send:16:32:28.975: #GET_POSITION&lt;br /&gt;
Recv:16:32:28.976: // mcu: stepper_x:2 stepper_y:-50 stepper_z:2499&lt;br /&gt;
Recv:16:32:28.976: // stepper: stepper_x:57.500625 stepper_y:49.999688 stepper_z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // kinematic: X:57.500625 Y:49.999688 Z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // toolhead: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode base: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode homing: X:0.000000 Y:0.000000 Z:0.000000&lt;br /&gt;
Recv:16:32:28.976: ok&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man sollte man die Z-Koordinaten zwischen toolhead und kinematic vergleichen. Der Unterschied sollte genau die Korrektur aus dem Mesh-Leveling an dem Punkt sein. Andernfalls ist da irgendwo noch ein anderer Offset im Spiel.&lt;br /&gt;
&lt;br /&gt;
=== Speichern der Configuration ===&lt;br /&gt;
Mit dem Kommando save_config kann man die Änderungen, die durch die Abgleichfunktionen (PID, HBS, Z-Offset,...) ermittelt wurden, in der Konfigurationsdatei abspeichern:&lt;br /&gt;
&amp;lt;pre&amp;gt;SAVE_CONFIG&amp;lt;/pre&amp;gt;&lt;br /&gt;
Danach startet die Firmware neu, und es muss neu gehomed werden.&lt;br /&gt;
&lt;br /&gt;
== Konfigurationsdatei ==&lt;br /&gt;
=== Basiskonfigurationen ===&lt;br /&gt;
Im Verzeichnis von Klipper stehen unter /config die verschiedenen Konfigurationsdateien für Klipper. Aktuell ist für den RF1000 und den RF2000V2 mit Single Extruder eine Konfigurationsdatei vorhanden. Diese Konfigurationsdateien sollte man dort belassen und auch nicht ändern. &lt;br /&gt;
&lt;br /&gt;
=== Eigene printer.cfg ===&lt;br /&gt;
Bei Klipper verwendet man am besten eine eigene printer.cfg, die nicht einfach von einer Vorlage kopiert wird, sondern die die Vorlage ergänzt, ändert und erweitert.&lt;br /&gt;
&lt;br /&gt;
In der printer.cfg steht am Anfang normalerseise immer der Basisdrucker, von dem die aktuelle Konfiguration abgeleitet wird. Wie alle Parametergruppen wird das ganze von eckigen Klammern [] umschlossen.&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf2000v2-single.cfg]&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dannach kann man dann seine geänderten oder neue Parameter hinzufügen. Das folgende ist aus einer Konfiguration für den RF2000V2 single. Zuerst wird der maximale Fahrweg in X und Y anders definiert und anschliessend für Z die Werte angepasst. Dannach kommt die Konfiguration für den HBS.&lt;br /&gt;
&amp;lt;pre&amp;gt;[stepper_x]&lt;br /&gt;
position_max: 210&lt;br /&gt;
&lt;br /&gt;
[stepper_y]&lt;br /&gt;
position_max: 290&lt;br /&gt;
&lt;br /&gt;
[stepper_z]&lt;br /&gt;
position_min: -2.0&lt;br /&gt;
position_max: 185&lt;br /&gt;
&lt;br /&gt;
[bed_mesh]&lt;br /&gt;
speed: 30&lt;br /&gt;
horizontal_move_z: 2&lt;br /&gt;
mesh_min: 10,50&lt;br /&gt;
mesh_max: 200,230&lt;br /&gt;
algorithm:lagrange&lt;br /&gt;
probe_count: 5,5&lt;br /&gt;
fade_start: 1.0&lt;br /&gt;
fade_end: 10.0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach den Parametern kann man sich auch Makros definieren. In dem Beispiel ein Markro zum Auswurf des Objektes, das man einfach mit OUTPUT_OBJECT aufrufen kann.&lt;br /&gt;
&amp;lt;pre&amp;gt;[gcode_macro OUTPUT_OBJECT]&lt;br /&gt;
gcode:&lt;br /&gt;
	G90&lt;br /&gt;
	#G1 Z180	F540&lt;br /&gt;
	G1 Z80	F540&lt;br /&gt;
	G1 Y245 F4800&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als letzte Abschnitt kommen die gespeicherten - durch SAVE_CONFIG - Parameter und Werte. Diese NICHT selbst verändern, sondern immer nur durch das Programm.&lt;br /&gt;
&amp;lt;pre&amp;gt;#*# &amp;lt;---------------------- SAVE_CONFIG ----------------------&amp;gt;&lt;br /&gt;
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.&lt;br /&gt;
#*#&lt;br /&gt;
#*# [extruder]&lt;br /&gt;
#*# control = pid&lt;br /&gt;
#*# pid_kp = 33.373&lt;br /&gt;
#*# pid_ki = 2.060&lt;br /&gt;
#*# pid_kd = 135.160&lt;br /&gt;
#*#&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1200</id>
		<title>Klipper MKS SKIPR</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1200"/>
		<updated>2024-01-06T19:57:16Z</updated>

		<summary type="html">&lt;p&gt;Mhier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Anleitung zum Einrichten von Klipper mit einem Makerbase MKS SKIPR Board =&lt;br /&gt;
&lt;br /&gt;
Das Makerbase MKS SKIPR Board (sprich: &amp;quot;Skipper&amp;quot;) ist ein Drucker-Mainboard, bei dem sozusagen der Raspberry Pi bereits integriert ist. Da es sich nicht um einen Original-Raspberry-Pi handelt, sondern um einen vergleichbaren, aber eben etwas anderen Einplatinen-Computer, wird dieser künftig schlicht mit &amp;quot;Pi&amp;quot; bezeichnet. Auf dem Mainboard befindet sich ebenfalls ein Microcontroller, welcher im folgenden als MCU bezeichnet wird.&lt;br /&gt;
&lt;br /&gt;
Weitere Infos zum Board:&lt;br /&gt;
* https://github.com/makerbase-mks/MKS-SKIPR/tree/main/hardware/MKS%20SKIPR%20V1.0_002&lt;br /&gt;
* https://github.com/makerbase-mks/MKS-SKIPR/blob/main/README.md&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Hinweis: Diese Seite befindet sich noch im Aufbau!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Teileliste ==&lt;br /&gt;
&lt;br /&gt;
* Ein Renkforce RF1000, RF2000 oder RF2000v2 mit funktionierendem Original-Mainboard (das kann auch komplett ersetzt werden z.B. bei einem Defekt, dies wird aber zunächst nicht in dieser Anleitung behandelt)&lt;br /&gt;
* Makerbase SKR PI Board&lt;br /&gt;
* Zwei Micro-SD-Karten: Eine, um das Linux-Betriebssystem für den Pi zu speichern sowie alle Nutzerdaten. Die zweite wird lediglich für das Firmware-Update der MCU benötigt (sollte aber idealerweise dauerhaft im Gerät verbleiben).&lt;br /&gt;
* Ein ziemlich kurzes USB-Kabel vom Type USB A auf USB B, wie es auch zum Anschluss des originalen Mainboards an einen Computer benutzt wird.&lt;br /&gt;
* WLAN-Stick, möglichst klein, z.B. Edimax EW-7811Un (ok, der ist &amp;quot;etwas&amp;quot; alt und wohl nicht mehr erhältlich -&amp;gt; Alternative finden)&lt;br /&gt;
* Gehäuselüfter!&lt;br /&gt;
* Befestigungsmaterial:&lt;br /&gt;
** 5x M3x35 Senkkopf (DIN7991) + Muttern&lt;br /&gt;
** 4x M3x8&lt;br /&gt;
** 3x M4x30 + Muttern + Beilagscheiben&lt;br /&gt;
** 3 Spacer für M4 (Länge ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* 2 Sperrholzbretter (Abmessungen ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* Dickeres 2-adriges Kabel zur Stromversorgung, z.B. Lautsprecherkabel, minimum 1.5mm^2&lt;br /&gt;
* Bei Verwendung neuer Motortreiber (prinzipiell optional, aber empfohlen):&lt;br /&gt;
** 4x (bzw. 5x bei Dual-Extruder) StepStick-kompatible Motortreiber, z.B. TMC2209 oder TMC2226 (letztere laufen etwas effizienter, also kühler)&lt;br /&gt;
** 3x JST-XH Steckergehäuse 3 Pin (für die Endschalter-Kabel)&lt;br /&gt;
** Teilumrüstungen sind möglich, Endschalter und zugehöriger Stepper sollten aber auf dem selben Board sein&lt;br /&gt;
&lt;br /&gt;
== SD-Karte mit Linux vorbereiten ==&lt;br /&gt;
&lt;br /&gt;
Installationsanleitung: https://github.com/makerbase-mks/MKS-SKIPR/blob/main/README.md#software-preparation&lt;br /&gt;
&lt;br /&gt;
== Mechanische und elektronische Installation ==&lt;br /&gt;
&lt;br /&gt;
Muss noch ausgearbeitet werden, erstmal nur Stichpunkte für mich zur Erinnerung:&lt;br /&gt;
&lt;br /&gt;
* Sperrholzbretter vorbereiten als &amp;quot;Adapter&amp;quot;&lt;br /&gt;
* Erdungskabel versetzen&lt;br /&gt;
* Altes Mainboard versetzen&lt;br /&gt;
* Stromkabel an neues Mainboard und Netzteil&lt;br /&gt;
* SD-Karten einstecken&lt;br /&gt;
* WLAN-Stick einstecken (Welcher Slot!?)&lt;br /&gt;
* Neues Mainboard installieren&lt;br /&gt;
* Endschalter-Kabel auf 3-Pin-Gehäuse umbauen und aufstecken&lt;br /&gt;
* Stepper-Treiber einstecken&lt;br /&gt;
** Jumper für UART nicht vergessen, 2. Position von grünem Connector aus gezählt&lt;br /&gt;
** Bei mir: Schwarzer connecter an schwarz, roter connector an grün. Viele Mainboards haben wohl schwarz+rot statt schwarz+grün)&lt;br /&gt;
* Stepper-Kabel einstecken&lt;br /&gt;
* USB-Kabel installieren&lt;br /&gt;
&lt;br /&gt;
== Software Einrichten ==&lt;br /&gt;
&lt;br /&gt;
* Passwörter ändern&lt;br /&gt;
* Git-Repo auf Community ändern&lt;br /&gt;
* Empfohlen: Dateisystem auf sync ändern&lt;br /&gt;
* Macros kategorisieren&lt;br /&gt;
&lt;br /&gt;
== Klipper auf den MCUs updaten ==&lt;br /&gt;
&lt;br /&gt;
* Update des STM32 Microcontroller auf dem SKIPR erfolgt über SD-Karte (FAT-formatiert, keine Partitionen): klipper.bin in Stammverzeichnis kopieren als &amp;quot;FIRMWARE.BIN&amp;quot;. Damit die MCU booten.&lt;br /&gt;
&lt;br /&gt;
* Script zur Automatisierung: https://github.com/RF1000community/klipper/blob/wip-loadcellprobe/update-rf1000%2Bskipr-mcus.sh&lt;br /&gt;
* Speichern nach ~/klipper&lt;br /&gt;
* chmod +x ~/klipper/update-rf1000%2Bskipr-mcus.sh&lt;br /&gt;
* Starten:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/klipper&lt;br /&gt;
./update-rf1000%2Bskipr-mcus.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cura Verbindung und Startcode ==&lt;br /&gt;
&lt;br /&gt;
* Plugin aus Cura Marketplace: Connect Moonraker&lt;br /&gt;
* Optional: Startcode-Macros und Material Settings Plugin&lt;br /&gt;
&lt;br /&gt;
== Display ==&lt;br /&gt;
&lt;br /&gt;
Fehlt noch komplett. 3D-Modell nötig!&lt;br /&gt;
&lt;br /&gt;
== Linux-Update (Armbian) ==&lt;br /&gt;
&lt;br /&gt;
* Normale Updates (Sicherheits-Patches etc.):&lt;br /&gt;
** apt update&lt;br /&gt;
** apt dist-upgrade&lt;br /&gt;
* Paket linux-dtb-edge-rockchip64 darf nicht geupdated werden&lt;br /&gt;
** Da drin ist der &amp;quot;Device Tree&amp;quot; (https://en.wikipedia.org/wiki/Devicetree), der vom Hersteller modifiziert wurde (leider ohne das in Armbian/Debian einzupflegen)&lt;br /&gt;
** Deshalb ausführen: apt-mark hold linux-dtb-edge-rockchip64&lt;br /&gt;
** Falls Device Tree doch mal überschrieben wird: Inhalt von /boot/dtb aus dem Original-Image wiederherstellen&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1199</id>
		<title>Klipper MKS SKIPR</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1199"/>
		<updated>2024-01-06T19:53:07Z</updated>

		<summary type="html">&lt;p&gt;Mhier: /* Klipper auf den MCUs updaten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Anleitung zum Einrichten von Klipper mit einem Makerbase MKS SKIPR Board =&lt;br /&gt;
&lt;br /&gt;
Das Makerbase MKS SKIPR Board (sprich: &amp;quot;Skipper&amp;quot;) ist ein Drucker-Mainboard, bei dem sozusagen der Raspberry Pi bereits integriert ist. Da es sich nicht um einen Original-Raspberry-Pi handelt, sondern um einen vergleichbaren, aber eben etwas anderen Einplatinen-Computer, wird dieser künftig schlicht mit &amp;quot;Pi&amp;quot; bezeichnet. Auf dem Mainboard befindet sich ebenfalls ein Microcontroller, welcher im folgenden als MCU bezeichnet wird.&lt;br /&gt;
&lt;br /&gt;
Weitere Infos zum Board:&lt;br /&gt;
* https://github.com/makerbase-mks/MKS-SKIPR/tree/main/hardware/MKS%20SKIPR%20V1.0_002&lt;br /&gt;
* https://github.com/makerbase-mks/MKS-SKIPR/blob/main/README.md&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Hinweis: Diese Seite befindet sich noch im Aufbau!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Teileliste ==&lt;br /&gt;
&lt;br /&gt;
* Ein Renkforce RF1000, RF2000 oder RF2000v2 mit funktionierendem Original-Mainboard (das kann auch komplett ersetzt werden z.B. bei einem Defekt, dies wird aber zunächst nicht in dieser Anleitung behandelt)&lt;br /&gt;
* Makerbase SKR PI Board&lt;br /&gt;
* Zwei Micro-SD-Karten: Eine, um das Linux-Betriebssystem für den Pi zu speichern sowie alle Nutzerdaten. Die zweite wird lediglich für das Firmware-Update der MCU benötigt (sollte aber idealerweise dauerhaft im Gerät verbleiben).&lt;br /&gt;
* Ein ziemlich kurzes USB-Kabel vom Type USB A auf USB B, wie es auch zum Anschluss des originalen Mainboards an einen Computer benutzt wird.&lt;br /&gt;
* WLAN-Stick, möglichst klein, z.B. Edimax EW-7811Un (ok, der ist &amp;quot;etwas&amp;quot; alt und wohl nicht mehr erhältlich -&amp;gt; Alternative finden)&lt;br /&gt;
* Gehäuselüfter!&lt;br /&gt;
* Befestigungsmaterial:&lt;br /&gt;
** 5x M3x35 Senkkopf (DIN7991) + Muttern&lt;br /&gt;
** 4x M3x8&lt;br /&gt;
** 3x M4x30 + Muttern + Beilagscheiben&lt;br /&gt;
** 3 Spacer für M4 (Länge ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* 2 Sperrholzbretter (Abmessungen ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* Dickeres 2-adriges Kabel zur Stromversorgung, z.B. Lautsprecherkabel, minimum 1.5mm^2&lt;br /&gt;
* Bei Verwendung neuer Motortreiber (prinzipiell optional, aber empfohlen):&lt;br /&gt;
** 4x (bzw. 5x bei Dual-Extruder) StepStick-kompatible Motortreiber, z.B. TMC2209 oder TMC2226 (letztere laufen etwas effizienter, also kühler)&lt;br /&gt;
** 3x JST-XH Steckergehäuse 3 Pin (für die Endschalter-Kabel)&lt;br /&gt;
** Teilumrüstungen sind möglich, Endschalter und zugehöriger Stepper sollten aber auf dem selben Board sein&lt;br /&gt;
&lt;br /&gt;
== SD-Karte mit Linux vorbereiten ==&lt;br /&gt;
&lt;br /&gt;
Installationsanleitung: https://github.com/makerbase-mks/MKS-SKIPR/blob/main/README.md#software-preparation&lt;br /&gt;
&lt;br /&gt;
== Mechanische und elektronische Installation ==&lt;br /&gt;
&lt;br /&gt;
Muss noch ausgearbeitet werden, erstmal nur Stichpunkte für mich zur Erinnerung:&lt;br /&gt;
&lt;br /&gt;
* Sperrholzbretter vorbereiten als &amp;quot;Adapter&amp;quot;&lt;br /&gt;
* Erdungskabel versetzen&lt;br /&gt;
* Altes Mainboard versetzen&lt;br /&gt;
* Stromkabel an neues Mainboard und Netzteil&lt;br /&gt;
* SD-Karten einstecken&lt;br /&gt;
* WLAN-Stick einstecken (Welcher Slot!?)&lt;br /&gt;
* Neues Mainboard installieren&lt;br /&gt;
* Endschalter-Kabel auf 3-Pin-Gehäuse umbauen und aufstecken&lt;br /&gt;
* Stepper-Treiber einstecken&lt;br /&gt;
** Jumper für UART nicht vergessen, 2. Position von grünem Connector aus gezählt&lt;br /&gt;
** Bei mir: Schwarzer connecter an schwarz, roter connector an grün. Viele Mainboards haben wohl schwarz+rot statt schwarz+grün)&lt;br /&gt;
* Stepper-Kabel einstecken&lt;br /&gt;
* USB-Kabel installieren&lt;br /&gt;
&lt;br /&gt;
== Software Einrichten ==&lt;br /&gt;
&lt;br /&gt;
* Passwörter ändern&lt;br /&gt;
* Git-Repo auf Community ändern&lt;br /&gt;
* Empfohlen: Dateisystem auf sync ändern&lt;br /&gt;
* Macros kategorisieren&lt;br /&gt;
&lt;br /&gt;
== Klipper auf den MCUs updaten ==&lt;br /&gt;
&lt;br /&gt;
* Update des STM32 Microcontroller auf dem SKIPR erfolgt über SD-Karte (FAT-formatiert, keine Partitionen): klipper.bin in Stammverzeichnis kopieren als &amp;quot;FIRMWARE.BIN&amp;quot;. Damit die MCU booten.&lt;br /&gt;
&lt;br /&gt;
* Script zur Automatisierung: https://github.com/RF1000community/klipper/blob/wip-loadcellprobe/update-rf1000%2Bskipr-mcus.sh&lt;br /&gt;
* Speichern nach ~/klipper&lt;br /&gt;
* chmod +x ~/klipper/update-rf1000%2Bskipr-mcus.sh&lt;br /&gt;
* Starten:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/klipper&lt;br /&gt;
./update-rf1000%2Bskipr-mcus.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cura Verbindung und Startcode ==&lt;br /&gt;
&lt;br /&gt;
* Plugin aus Cura Marketplace: Connect Moonraker&lt;br /&gt;
* Optional: Startcode-Macros und Material Settings Plugin&lt;br /&gt;
&lt;br /&gt;
== Display ==&lt;br /&gt;
&lt;br /&gt;
Fehlt noch komplett. 3D-Modell nötig!&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1198</id>
		<title>Klipper MKS SKIPR</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1198"/>
		<updated>2023-11-27T21:52:21Z</updated>

		<summary type="html">&lt;p&gt;Mhier: /* Klipper auf den MCUs updaten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Anleitung zum Einrichten von Klipper mit einem Makerbase MKS SKIPR Board =&lt;br /&gt;
&lt;br /&gt;
Das Makerbase MKS SKIPR Board (sprich: &amp;quot;Skipper&amp;quot;) ist ein Drucker-Mainboard, bei dem sozusagen der Raspberry Pi bereits integriert ist. Da es sich nicht um einen Original-Raspberry-Pi handelt, sondern um einen vergleichbaren, aber eben etwas anderen Einplatinen-Computer, wird dieser künftig schlicht mit &amp;quot;Pi&amp;quot; bezeichnet. Auf dem Mainboard befindet sich ebenfalls ein Microcontroller, welcher im folgenden als MCU bezeichnet wird.&lt;br /&gt;
&lt;br /&gt;
Weitere Infos zum Board:&lt;br /&gt;
* https://github.com/makerbase-mks/MKS-SKIPR/tree/main/hardware/MKS%20SKIPR%20V1.0_002&lt;br /&gt;
* https://github.com/makerbase-mks/MKS-SKIPR/blob/main/README.md&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Hinweis: Diese Seite befindet sich noch im Aufbau!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Teileliste ==&lt;br /&gt;
&lt;br /&gt;
* Ein Renkforce RF1000, RF2000 oder RF2000v2 mit funktionierendem Original-Mainboard (das kann auch komplett ersetzt werden z.B. bei einem Defekt, dies wird aber zunächst nicht in dieser Anleitung behandelt)&lt;br /&gt;
* Makerbase SKR PI Board&lt;br /&gt;
* Zwei Micro-SD-Karten: Eine, um das Linux-Betriebssystem für den Pi zu speichern sowie alle Nutzerdaten. Die zweite wird lediglich für das Firmware-Update der MCU benötigt (sollte aber idealerweise dauerhaft im Gerät verbleiben).&lt;br /&gt;
* Ein ziemlich kurzes USB-Kabel vom Type USB A auf USB B, wie es auch zum Anschluss des originalen Mainboards an einen Computer benutzt wird.&lt;br /&gt;
* WLAN-Stick, möglichst klein, z.B. Edimax EW-7811Un (ok, der ist &amp;quot;etwas&amp;quot; alt und wohl nicht mehr erhältlich -&amp;gt; Alternative finden)&lt;br /&gt;
* Gehäuselüfter!&lt;br /&gt;
* Befestigungsmaterial:&lt;br /&gt;
** 5x M3x35 Senkkopf (DIN7991) + Muttern&lt;br /&gt;
** 4x M3x8&lt;br /&gt;
** 3x M4x30 + Muttern + Beilagscheiben&lt;br /&gt;
** 3 Spacer für M4 (Länge ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* 2 Sperrholzbretter (Abmessungen ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* Dickeres 2-adriges Kabel zur Stromversorgung, z.B. Lautsprecherkabel, minimum 1.5mm^2&lt;br /&gt;
* Bei Verwendung neuer Motortreiber (prinzipiell optional, aber empfohlen):&lt;br /&gt;
** 4x (bzw. 5x bei Dual-Extruder) StepStick-kompatible Motortreiber, z.B. TMC2209 oder TMC2226 (letztere laufen etwas effizienter, also kühler)&lt;br /&gt;
** 3x JST-XH Steckergehäuse 3 Pin (für die Endschalter-Kabel)&lt;br /&gt;
** Teilumrüstungen sind möglich, Endschalter und zugehöriger Stepper sollten aber auf dem selben Board sein&lt;br /&gt;
&lt;br /&gt;
== SD-Karte mit Linux vorbereiten ==&lt;br /&gt;
&lt;br /&gt;
Installationsanleitung: https://github.com/makerbase-mks/MKS-SKIPR/blob/main/README.md#software-preparation&lt;br /&gt;
&lt;br /&gt;
== Mechanische und elektronische Installation ==&lt;br /&gt;
&lt;br /&gt;
Muss noch ausgearbeitet werden, erstmal nur Stichpunkte für mich zur Erinnerung:&lt;br /&gt;
&lt;br /&gt;
* Sperrholzbretter vorbereiten als &amp;quot;Adapter&amp;quot;&lt;br /&gt;
* Erdungskabel versetzen&lt;br /&gt;
* Altes Mainboard versetzen&lt;br /&gt;
* Stromkabel an neues Mainboard und Netzteil&lt;br /&gt;
* SD-Karten einstecken&lt;br /&gt;
* WLAN-Stick einstecken (Welcher Slot!?)&lt;br /&gt;
* Neues Mainboard installieren&lt;br /&gt;
* Endschalter-Kabel auf 3-Pin-Gehäuse umbauen und aufstecken&lt;br /&gt;
* Stepper-Treiber einstecken&lt;br /&gt;
** Jumper für UART nicht vergessen, 2. Position von grünem Connector aus gezählt&lt;br /&gt;
** Bei mir: Schwarzer connecter an schwarz, roter connector an grün. Viele Mainboards haben wohl schwarz+rot statt schwarz+grün)&lt;br /&gt;
* Stepper-Kabel einstecken&lt;br /&gt;
* USB-Kabel installieren&lt;br /&gt;
&lt;br /&gt;
== Software Einrichten ==&lt;br /&gt;
&lt;br /&gt;
* Passwörter ändern&lt;br /&gt;
* Git-Repo auf Community ändern&lt;br /&gt;
* Empfohlen: Dateisystem auf sync ändern&lt;br /&gt;
* Macros kategorisieren&lt;br /&gt;
&lt;br /&gt;
== Klipper auf den MCUs updaten ==&lt;br /&gt;
&lt;br /&gt;
* Script:&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/bash&lt;br /&gt;
sudo systemctl stop klipper&lt;br /&gt;
make clean KCONFIG_CONFIG=mcu-build-config-skipr&lt;br /&gt;
make -j5 KCONFIG_CONFIG=mcu-build-config-skipr&lt;br /&gt;
./scripts/flash-sdcard.sh /dev/ttyS0 mks-skipr&lt;br /&gt;
make clean KCONFIG_CONFIG=mcu-build-config-oldmcu&lt;br /&gt;
make -j5 KCONFIG_CONFIG=mcu-build-config-oldmcu&lt;br /&gt;
make flash FLASH_DEVICE=/dev/ttyUSB0 KCONFIG_CONFIG=mcu-build-config-oldmcu&lt;br /&gt;
sudo systemctl start klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Speichern nach ~/klipper/update-mcus.sh&lt;br /&gt;
* chmod +x ~/klipper/update-mcus.sh&lt;br /&gt;
* Starten:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd klipper&lt;br /&gt;
./update-mucs.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cura Verbindung und Startcode ==&lt;br /&gt;
&lt;br /&gt;
* Plugin aus Cura Marketplace: Connect Moonraker&lt;br /&gt;
* Optional: Startcode-Macros und Material Settings Plugin&lt;br /&gt;
&lt;br /&gt;
== Display ==&lt;br /&gt;
&lt;br /&gt;
Fehlt noch komplett. 3D-Modell nötig!&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1197</id>
		<title>Klipper MKS SKIPR</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1197"/>
		<updated>2023-11-27T21:51:22Z</updated>

		<summary type="html">&lt;p&gt;Mhier: /* Klipper auf den MCUs updaten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Anleitung zum Einrichten von Klipper mit einem Makerbase MKS SKIPR Board =&lt;br /&gt;
&lt;br /&gt;
Das Makerbase MKS SKIPR Board (sprich: &amp;quot;Skipper&amp;quot;) ist ein Drucker-Mainboard, bei dem sozusagen der Raspberry Pi bereits integriert ist. Da es sich nicht um einen Original-Raspberry-Pi handelt, sondern um einen vergleichbaren, aber eben etwas anderen Einplatinen-Computer, wird dieser künftig schlicht mit &amp;quot;Pi&amp;quot; bezeichnet. Auf dem Mainboard befindet sich ebenfalls ein Microcontroller, welcher im folgenden als MCU bezeichnet wird.&lt;br /&gt;
&lt;br /&gt;
Weitere Infos zum Board:&lt;br /&gt;
* https://github.com/makerbase-mks/MKS-SKIPR/tree/main/hardware/MKS%20SKIPR%20V1.0_002&lt;br /&gt;
* https://github.com/makerbase-mks/MKS-SKIPR/blob/main/README.md&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Hinweis: Diese Seite befindet sich noch im Aufbau!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Teileliste ==&lt;br /&gt;
&lt;br /&gt;
* Ein Renkforce RF1000, RF2000 oder RF2000v2 mit funktionierendem Original-Mainboard (das kann auch komplett ersetzt werden z.B. bei einem Defekt, dies wird aber zunächst nicht in dieser Anleitung behandelt)&lt;br /&gt;
* Makerbase SKR PI Board&lt;br /&gt;
* Zwei Micro-SD-Karten: Eine, um das Linux-Betriebssystem für den Pi zu speichern sowie alle Nutzerdaten. Die zweite wird lediglich für das Firmware-Update der MCU benötigt (sollte aber idealerweise dauerhaft im Gerät verbleiben).&lt;br /&gt;
* Ein ziemlich kurzes USB-Kabel vom Type USB A auf USB B, wie es auch zum Anschluss des originalen Mainboards an einen Computer benutzt wird.&lt;br /&gt;
* WLAN-Stick, möglichst klein, z.B. Edimax EW-7811Un (ok, der ist &amp;quot;etwas&amp;quot; alt und wohl nicht mehr erhältlich -&amp;gt; Alternative finden)&lt;br /&gt;
* Gehäuselüfter!&lt;br /&gt;
* Befestigungsmaterial:&lt;br /&gt;
** 5x M3x35 Senkkopf (DIN7991) + Muttern&lt;br /&gt;
** 4x M3x8&lt;br /&gt;
** 3x M4x30 + Muttern + Beilagscheiben&lt;br /&gt;
** 3 Spacer für M4 (Länge ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* 2 Sperrholzbretter (Abmessungen ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* Dickeres 2-adriges Kabel zur Stromversorgung, z.B. Lautsprecherkabel, minimum 1.5mm^2&lt;br /&gt;
* Bei Verwendung neuer Motortreiber (prinzipiell optional, aber empfohlen):&lt;br /&gt;
** 4x (bzw. 5x bei Dual-Extruder) StepStick-kompatible Motortreiber, z.B. TMC2209 oder TMC2226 (letztere laufen etwas effizienter, also kühler)&lt;br /&gt;
** 3x JST-XH Steckergehäuse 3 Pin (für die Endschalter-Kabel)&lt;br /&gt;
** Teilumrüstungen sind möglich, Endschalter und zugehöriger Stepper sollten aber auf dem selben Board sein&lt;br /&gt;
&lt;br /&gt;
== SD-Karte mit Linux vorbereiten ==&lt;br /&gt;
&lt;br /&gt;
Installationsanleitung: https://github.com/makerbase-mks/MKS-SKIPR/blob/main/README.md#software-preparation&lt;br /&gt;
&lt;br /&gt;
== Mechanische und elektronische Installation ==&lt;br /&gt;
&lt;br /&gt;
Muss noch ausgearbeitet werden, erstmal nur Stichpunkte für mich zur Erinnerung:&lt;br /&gt;
&lt;br /&gt;
* Sperrholzbretter vorbereiten als &amp;quot;Adapter&amp;quot;&lt;br /&gt;
* Erdungskabel versetzen&lt;br /&gt;
* Altes Mainboard versetzen&lt;br /&gt;
* Stromkabel an neues Mainboard und Netzteil&lt;br /&gt;
* SD-Karten einstecken&lt;br /&gt;
* WLAN-Stick einstecken (Welcher Slot!?)&lt;br /&gt;
* Neues Mainboard installieren&lt;br /&gt;
* Endschalter-Kabel auf 3-Pin-Gehäuse umbauen und aufstecken&lt;br /&gt;
* Stepper-Treiber einstecken&lt;br /&gt;
** Jumper für UART nicht vergessen, 2. Position von grünem Connector aus gezählt&lt;br /&gt;
** Bei mir: Schwarzer connecter an schwarz, roter connector an grün. Viele Mainboards haben wohl schwarz+rot statt schwarz+grün)&lt;br /&gt;
* Stepper-Kabel einstecken&lt;br /&gt;
* USB-Kabel installieren&lt;br /&gt;
&lt;br /&gt;
== Software Einrichten ==&lt;br /&gt;
&lt;br /&gt;
* Passwörter ändern&lt;br /&gt;
* Git-Repo auf Community ändern&lt;br /&gt;
* Empfohlen: Dateisystem auf sync ändern&lt;br /&gt;
* Macros kategorisieren&lt;br /&gt;
&lt;br /&gt;
== Klipper auf den MCUs updaten ==&lt;br /&gt;
&lt;br /&gt;
* Script:&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/bash&lt;br /&gt;
sudo systemctl stop klipper&lt;br /&gt;
make clean KCONFIG_CONFIG=mcu-build-config-skipr&lt;br /&gt;
make -j5 KCONFIG_CONFIG=mcu-build-config-skipr&lt;br /&gt;
./scripts/flash-sdcard.sh /dev/ttyS0 mks-skipr&lt;br /&gt;
make clean KCONFIG_CONFIG=mcu-build-config-oldmcu&lt;br /&gt;
make -j5 KCONFIG_CONFIG=mcu-build-config-oldmcu&lt;br /&gt;
make flash FLASH_DEVICE=/dev/ttyUSB0 KCONFIG_CONFIG=mcu-build-config-oldmcu&lt;br /&gt;
sudo systemctl start klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cura Verbindung und Startcode ==&lt;br /&gt;
&lt;br /&gt;
* Plugin aus Cura Marketplace: Connect Moonraker&lt;br /&gt;
* Optional: Startcode-Macros und Material Settings Plugin&lt;br /&gt;
&lt;br /&gt;
== Display ==&lt;br /&gt;
&lt;br /&gt;
Fehlt noch komplett. 3D-Modell nötig!&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1196</id>
		<title>Klipper MKS SKIPR</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1196"/>
		<updated>2023-11-27T21:51:05Z</updated>

		<summary type="html">&lt;p&gt;Mhier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Anleitung zum Einrichten von Klipper mit einem Makerbase MKS SKIPR Board =&lt;br /&gt;
&lt;br /&gt;
Das Makerbase MKS SKIPR Board (sprich: &amp;quot;Skipper&amp;quot;) ist ein Drucker-Mainboard, bei dem sozusagen der Raspberry Pi bereits integriert ist. Da es sich nicht um einen Original-Raspberry-Pi handelt, sondern um einen vergleichbaren, aber eben etwas anderen Einplatinen-Computer, wird dieser künftig schlicht mit &amp;quot;Pi&amp;quot; bezeichnet. Auf dem Mainboard befindet sich ebenfalls ein Microcontroller, welcher im folgenden als MCU bezeichnet wird.&lt;br /&gt;
&lt;br /&gt;
Weitere Infos zum Board:&lt;br /&gt;
* https://github.com/makerbase-mks/MKS-SKIPR/tree/main/hardware/MKS%20SKIPR%20V1.0_002&lt;br /&gt;
* https://github.com/makerbase-mks/MKS-SKIPR/blob/main/README.md&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Hinweis: Diese Seite befindet sich noch im Aufbau!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Teileliste ==&lt;br /&gt;
&lt;br /&gt;
* Ein Renkforce RF1000, RF2000 oder RF2000v2 mit funktionierendem Original-Mainboard (das kann auch komplett ersetzt werden z.B. bei einem Defekt, dies wird aber zunächst nicht in dieser Anleitung behandelt)&lt;br /&gt;
* Makerbase SKR PI Board&lt;br /&gt;
* Zwei Micro-SD-Karten: Eine, um das Linux-Betriebssystem für den Pi zu speichern sowie alle Nutzerdaten. Die zweite wird lediglich für das Firmware-Update der MCU benötigt (sollte aber idealerweise dauerhaft im Gerät verbleiben).&lt;br /&gt;
* Ein ziemlich kurzes USB-Kabel vom Type USB A auf USB B, wie es auch zum Anschluss des originalen Mainboards an einen Computer benutzt wird.&lt;br /&gt;
* WLAN-Stick, möglichst klein, z.B. Edimax EW-7811Un (ok, der ist &amp;quot;etwas&amp;quot; alt und wohl nicht mehr erhältlich -&amp;gt; Alternative finden)&lt;br /&gt;
* Gehäuselüfter!&lt;br /&gt;
* Befestigungsmaterial:&lt;br /&gt;
** 5x M3x35 Senkkopf (DIN7991) + Muttern&lt;br /&gt;
** 4x M3x8&lt;br /&gt;
** 3x M4x30 + Muttern + Beilagscheiben&lt;br /&gt;
** 3 Spacer für M4 (Länge ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* 2 Sperrholzbretter (Abmessungen ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* Dickeres 2-adriges Kabel zur Stromversorgung, z.B. Lautsprecherkabel, minimum 1.5mm^2&lt;br /&gt;
* Bei Verwendung neuer Motortreiber (prinzipiell optional, aber empfohlen):&lt;br /&gt;
** 4x (bzw. 5x bei Dual-Extruder) StepStick-kompatible Motortreiber, z.B. TMC2209 oder TMC2226 (letztere laufen etwas effizienter, also kühler)&lt;br /&gt;
** 3x JST-XH Steckergehäuse 3 Pin (für die Endschalter-Kabel)&lt;br /&gt;
** Teilumrüstungen sind möglich, Endschalter und zugehöriger Stepper sollten aber auf dem selben Board sein&lt;br /&gt;
&lt;br /&gt;
== SD-Karte mit Linux vorbereiten ==&lt;br /&gt;
&lt;br /&gt;
Installationsanleitung: https://github.com/makerbase-mks/MKS-SKIPR/blob/main/README.md#software-preparation&lt;br /&gt;
&lt;br /&gt;
== Mechanische und elektronische Installation ==&lt;br /&gt;
&lt;br /&gt;
Muss noch ausgearbeitet werden, erstmal nur Stichpunkte für mich zur Erinnerung:&lt;br /&gt;
&lt;br /&gt;
* Sperrholzbretter vorbereiten als &amp;quot;Adapter&amp;quot;&lt;br /&gt;
* Erdungskabel versetzen&lt;br /&gt;
* Altes Mainboard versetzen&lt;br /&gt;
* Stromkabel an neues Mainboard und Netzteil&lt;br /&gt;
* SD-Karten einstecken&lt;br /&gt;
* WLAN-Stick einstecken (Welcher Slot!?)&lt;br /&gt;
* Neues Mainboard installieren&lt;br /&gt;
* Endschalter-Kabel auf 3-Pin-Gehäuse umbauen und aufstecken&lt;br /&gt;
* Stepper-Treiber einstecken&lt;br /&gt;
** Jumper für UART nicht vergessen, 2. Position von grünem Connector aus gezählt&lt;br /&gt;
** Bei mir: Schwarzer connecter an schwarz, roter connector an grün. Viele Mainboards haben wohl schwarz+rot statt schwarz+grün)&lt;br /&gt;
* Stepper-Kabel einstecken&lt;br /&gt;
* USB-Kabel installieren&lt;br /&gt;
&lt;br /&gt;
== Software Einrichten ==&lt;br /&gt;
&lt;br /&gt;
* Passwörter ändern&lt;br /&gt;
* Git-Repo auf Community ändern&lt;br /&gt;
* Empfohlen: Dateisystem auf sync ändern&lt;br /&gt;
* Macros kategorisieren&lt;br /&gt;
&lt;br /&gt;
== Klipper auf den MCUs updaten ==&lt;br /&gt;
&lt;br /&gt;
* Script:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#!/bin/bash&lt;br /&gt;
sudo systemctl stop klipper&lt;br /&gt;
make clean KCONFIG_CONFIG=mcu-build-config-skipr&lt;br /&gt;
make -j5 KCONFIG_CONFIG=mcu-build-config-skipr&lt;br /&gt;
./scripts/flash-sdcard.sh /dev/ttyS0 mks-skipr&lt;br /&gt;
make clean KCONFIG_CONFIG=mcu-build-config-oldmcu&lt;br /&gt;
make -j5 KCONFIG_CONFIG=mcu-build-config-oldmcu&lt;br /&gt;
make flash FLASH_DEVICE=/dev/ttyUSB0 KCONFIG_CONFIG=mcu-build-config-oldmcu&lt;br /&gt;
sudo systemctl start klipper&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cura Verbindung und Startcode ==&lt;br /&gt;
&lt;br /&gt;
* Plugin aus Cura Marketplace: Connect Moonraker&lt;br /&gt;
* Optional: Startcode-Macros und Material Settings Plugin&lt;br /&gt;
&lt;br /&gt;
== Display ==&lt;br /&gt;
&lt;br /&gt;
Fehlt noch komplett. 3D-Modell nötig!&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1194</id>
		<title>Klipper MKS SKIPR</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1194"/>
		<updated>2023-07-03T09:29:45Z</updated>

		<summary type="html">&lt;p&gt;Mhier: /* Anleitung zum Einrichten von Klipper mit einem Makerbase MKS SKIPR Board */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Anleitung zum Einrichten von Klipper mit einem Makerbase MKS SKIPR Board =&lt;br /&gt;
&lt;br /&gt;
Das Makerbase MKS SKIPR Board (sprich: &amp;quot;Skipper&amp;quot;) ist ein Drucker-Mainboard, bei dem sozusagen der Raspberry Pi bereits integriert ist. Da es sich nicht um einen Original-Raspberry-Pi handelt, sondern um einen vergleichbaren, aber eben etwas anderen Einplatinen-Computer, wird dieser künftig schlicht mit &amp;quot;Pi&amp;quot; bezeichnet. Auf dem Mainboard befindet sich ebenfalls ein Microcontroller, welcher im folgenden als MCU bezeichnet wird.&lt;br /&gt;
&lt;br /&gt;
Weitere Infos zum Board:&lt;br /&gt;
* https://github.com/makerbase-mks/MKS-SKIPR/tree/main/hardware/MKS%20SKIPR%20V1.0_002&lt;br /&gt;
* https://github.com/makerbase-mks/MKS-SKIPR/blob/main/README.md&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Hinweis: Diese Seite befindet sich noch im Aufbau!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Teileliste ==&lt;br /&gt;
&lt;br /&gt;
* Ein Renkforce RF1000, RF2000 oder RF2000v2 mit funktionierendem Original-Mainboard (das kann auch komplett ersetzt werden z.B. bei einem Defekt, dies wird aber zunächst nicht in dieser Anleitung behandelt)&lt;br /&gt;
* Makerbase SKR PI Board&lt;br /&gt;
* Zwei Micro-SD-Karten: Eine, um das Linux-Betriebssystem für den Pi zu speichern sowie alle Nutzerdaten. Die zweite wird lediglich für das Firmware-Update der MCU benötigt (sollte aber idealerweise dauerhaft im Gerät verbleiben).&lt;br /&gt;
* Ein ziemlich kurzes USB-Kabel vom Type USB A auf USB B, wie es auch zum Anschluss des originalen Mainboards an einen Computer benutzt wird.&lt;br /&gt;
* WLAN-Stick, möglichst klein, z.B. Edimax EW-7811Un (ok, der ist &amp;quot;etwas&amp;quot; alt und wohl nicht mehr erhältlich -&amp;gt; Alternative finden)&lt;br /&gt;
* Gehäuselüfter!&lt;br /&gt;
* Befestigungsmaterial:&lt;br /&gt;
** 5x M3x35 Senkkopf (DIN7991) + Muttern&lt;br /&gt;
** 4x M3x8&lt;br /&gt;
** 3x M4x30 + Muttern + Beilagscheiben&lt;br /&gt;
** 3 Spacer für M4 (Länge ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* 2 Sperrholzbretter (Abmessungen ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* Dickeres 2-adriges Kabel zur Stromversorgung, z.B. Lautsprecherkabel, minimum 1.5mm^2&lt;br /&gt;
* Bei Verwendung neuer Motortreiber (prinzipiell optional, aber empfohlen):&lt;br /&gt;
** 4x (bzw. 5x bei Dual-Extruder) StepStick-kompatible Motortreiber, z.B. TMC2209 oder TMC2226 (letztere laufen etwas effizienter, also kühler)&lt;br /&gt;
** 3x JST-XH Steckergehäuse 3 Pin (für die Endschalter-Kabel)&lt;br /&gt;
** Teilumrüstungen sind möglich, Endschalter und zugehöriger Stepper sollten aber auf dem selben Board sein&lt;br /&gt;
&lt;br /&gt;
== SD-Karte mit Linux vorbereiten ==&lt;br /&gt;
&lt;br /&gt;
Installationsanleitung: https://github.com/makerbase-mks/MKS-SKIPR/blob/main/README.md#software-preparation&lt;br /&gt;
&lt;br /&gt;
== Mechanische und elektronische Installation ==&lt;br /&gt;
&lt;br /&gt;
Muss noch ausgearbeitet werden, erstmal nur Stichpunkte für mich zur Erinnerung:&lt;br /&gt;
&lt;br /&gt;
* Sperrholzbretter vorbereiten als &amp;quot;Adapter&amp;quot;&lt;br /&gt;
* Erdungskabel versetzen&lt;br /&gt;
* Altes Mainboard versetzen&lt;br /&gt;
* Stromkabel an neues Mainboard und Netzteil&lt;br /&gt;
* SD-Karten einstecken&lt;br /&gt;
* WLAN-Stick einstecken (Welcher Slot!?)&lt;br /&gt;
* Neues Mainboard installieren&lt;br /&gt;
* Endschalter-Kabel auf 3-Pin-Gehäuse umbauen und aufstecken&lt;br /&gt;
* Stepper-Treiber einstecken&lt;br /&gt;
** Jumper für UART nicht vergessen, 2. Position von grünem Connector aus gezählt&lt;br /&gt;
** Bei mir: Schwarzer connecter an schwarz, roter connector an grün. Viele Mainboards haben wohl schwarz+rot statt schwarz+grün)&lt;br /&gt;
* Stepper-Kabel einstecken&lt;br /&gt;
* USB-Kabel installieren&lt;br /&gt;
&lt;br /&gt;
== Software Einrichten ==&lt;br /&gt;
&lt;br /&gt;
* Passwörter ändern&lt;br /&gt;
* Git-Repo auf Community ändern&lt;br /&gt;
* Empfohlen: Dateisystem auf sync ändern&lt;br /&gt;
* Macros kategorisieren&lt;br /&gt;
&lt;br /&gt;
== Cura Verbindung und Startcode ==&lt;br /&gt;
&lt;br /&gt;
* Plugin aus Cura Marketplace: Connect Moonraker&lt;br /&gt;
* Optional: Startcode-Macros und Material Settings Plugin&lt;br /&gt;
&lt;br /&gt;
== Display ==&lt;br /&gt;
&lt;br /&gt;
Fehlt noch komplett. 3D-Modell nötig!&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1193</id>
		<title>Klipper MKS SKIPR</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1193"/>
		<updated>2023-07-03T07:53:57Z</updated>

		<summary type="html">&lt;p&gt;Mhier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Anleitung zum Einrichten von Klipper mit einem Makerbase MKS SKIPR Board =&lt;br /&gt;
&lt;br /&gt;
Das Makerbase MKS SKIPR Board ist ein Drucker-Mainboard, bei dem sozusagen der Raspberry Pi bereits integriert ist. Da es sich nicht um einen Original-Raspberry-Pi handelt, sondern um einen vergleichbaren, aber eben etwas anderen Einplatinen-Computer, wird dieser künftig schlicht mit &amp;quot;Pi&amp;quot; bezeichnet. Auf dem Mainboard befindet sich ebenfalls ein Microcontroller, welcher im folgenden als MCU bezeichnet wird.&lt;br /&gt;
&lt;br /&gt;
Weitere Infos zum Board:&lt;br /&gt;
* https://github.com/makerbase-mks/MKS-SKIPR/tree/main/hardware/MKS%20SKIPR%20V1.0_002&lt;br /&gt;
* https://github.com/makerbase-mks/MKS-SKIPR/blob/main/README.md&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Hinweis: Diese Seite befindet sich noch im Aufbau!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Teileliste ==&lt;br /&gt;
&lt;br /&gt;
* Ein Renkforce RF1000, RF2000 oder RF2000v2 mit funktionierendem Original-Mainboard (das kann auch komplett ersetzt werden z.B. bei einem Defekt, dies wird aber zunächst nicht in dieser Anleitung behandelt)&lt;br /&gt;
* Makerbase SKR PI Board&lt;br /&gt;
* Zwei Micro-SD-Karten: Eine, um das Linux-Betriebssystem für den Pi zu speichern sowie alle Nutzerdaten. Die zweite wird lediglich für das Firmware-Update der MCU benötigt (sollte aber idealerweise dauerhaft im Gerät verbleiben).&lt;br /&gt;
* Ein ziemlich kurzes USB-Kabel vom Type USB A auf USB B, wie es auch zum Anschluss des originalen Mainboards an einen Computer benutzt wird.&lt;br /&gt;
* WLAN-Stick, möglichst klein, z.B. Edimax EW-7811Un (ok, der ist &amp;quot;etwas&amp;quot; alt und wohl nicht mehr erhältlich -&amp;gt; Alternative finden)&lt;br /&gt;
* Gehäuselüfter!&lt;br /&gt;
* Befestigungsmaterial:&lt;br /&gt;
** 5x M3x35 Senkkopf (DIN7991) + Muttern&lt;br /&gt;
** 4x M3x8&lt;br /&gt;
** 3x M4x30 + Muttern + Beilagscheiben&lt;br /&gt;
** 3 Spacer für M4 (Länge ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* 2 Sperrholzbretter (Abmessungen ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* Dickeres 2-adriges Kabel zur Stromversorgung, z.B. Lautsprecherkabel, minimum 1.5mm^2&lt;br /&gt;
* Bei Verwendung neuer Motortreiber (prinzipiell optional, aber empfohlen):&lt;br /&gt;
** 4x (bzw. 5x bei Dual-Extruder) StepStick-kompatible Motortreiber, z.B. TMC2209 oder TMC2226 (letztere laufen etwas effizienter, also kühler)&lt;br /&gt;
** 3x JST-XH Steckergehäuse 3 Pin (für die Endschalter-Kabel)&lt;br /&gt;
** Teilumrüstungen sind möglich, Endschalter und zugehöriger Stepper sollten aber auf dem selben Board sein&lt;br /&gt;
&lt;br /&gt;
== SD-Karte mit Linux vorbereiten ==&lt;br /&gt;
&lt;br /&gt;
Installationsanleitung: https://github.com/makerbase-mks/MKS-SKIPR/blob/main/README.md#software-preparation&lt;br /&gt;
&lt;br /&gt;
== Mechanische und elektronische Installation ==&lt;br /&gt;
&lt;br /&gt;
Muss noch ausgearbeitet werden, erstmal nur Stichpunkte für mich zur Erinnerung:&lt;br /&gt;
&lt;br /&gt;
* Sperrholzbretter vorbereiten als &amp;quot;Adapter&amp;quot;&lt;br /&gt;
* Erdungskabel versetzen&lt;br /&gt;
* Altes Mainboard versetzen&lt;br /&gt;
* Stromkabel an neues Mainboard und Netzteil&lt;br /&gt;
* SD-Karten einstecken&lt;br /&gt;
* WLAN-Stick einstecken (Welcher Slot!?)&lt;br /&gt;
* Neues Mainboard installieren&lt;br /&gt;
* Endschalter-Kabel auf 3-Pin-Gehäuse umbauen und aufstecken&lt;br /&gt;
* Stepper-Treiber einstecken&lt;br /&gt;
** Jumper für UART nicht vergessen, 2. Position von grünem Connector aus gezählt&lt;br /&gt;
** Bei mir: Schwarzer connecter an schwarz, roter connector an grün. Viele Mainboards haben wohl schwarz+rot statt schwarz+grün)&lt;br /&gt;
* Stepper-Kabel einstecken&lt;br /&gt;
* USB-Kabel installieren&lt;br /&gt;
&lt;br /&gt;
== Software Einrichten ==&lt;br /&gt;
&lt;br /&gt;
* Passwörter ändern&lt;br /&gt;
* Git-Repo auf Community ändern&lt;br /&gt;
* Empfohlen: Dateisystem auf sync ändern&lt;br /&gt;
* Macros kategorisieren&lt;br /&gt;
&lt;br /&gt;
== Cura Verbindung und Startcode ==&lt;br /&gt;
&lt;br /&gt;
* Plugin aus Cura Marketplace: Connect Moonraker&lt;br /&gt;
* Optional: Startcode-Macros und Material Settings Plugin&lt;br /&gt;
&lt;br /&gt;
== Display ==&lt;br /&gt;
&lt;br /&gt;
Fehlt noch komplett. 3D-Modell nötig!&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper_SKRPI&amp;diff=1192</id>
		<title>Klipper SKRPI</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper_SKRPI&amp;diff=1192"/>
		<updated>2023-07-03T07:53:05Z</updated>

		<summary type="html">&lt;p&gt;Mhier: Mhier verschob die Seite Klipper SKRPI nach Klipper MKS SKIPR: Boardname verwechselt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#WEITERLEITUNG [[Klipper MKS SKIPR]]&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1191</id>
		<title>Klipper MKS SKIPR</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1191"/>
		<updated>2023-07-03T07:53:05Z</updated>

		<summary type="html">&lt;p&gt;Mhier: Mhier verschob die Seite Klipper SKRPI nach Klipper MKS SKIPR: Boardname verwechselt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Anleitung zum Einrichten von Klipper mit einem Makerbase MKS SKIPR Board =&lt;br /&gt;
&lt;br /&gt;
Das Makerbase SKR PI Board ist ein Drucker-Mainboard, bei dem sozusagen der Raspberry Pi bereits integriert ist. Da es sich nicht um einen Original-Raspberry-Pi handelt, sondern um einen vergleichbaren, aber eben etwas anderen Einplatinen-Computer, wird dieser künftig schlicht mit &amp;quot;Pi&amp;quot; bezeichnet. Auf dem Mainboard befindet sich ebenfalls ein Microcontroller, welcher im folgenden als MCU bezeichnet wird.&lt;br /&gt;
&lt;br /&gt;
Weitere Infos zum Board:&lt;br /&gt;
* https://github.com/makerbase-mks/MKS-SKIPR/tree/main/hardware/MKS%20SKIPR%20V1.0_002&lt;br /&gt;
* https://github.com/makerbase-mks/MKS-SKIPR/blob/main/README.md&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Hinweis: Diese Seite befindet sich noch im Aufbau!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Teileliste ==&lt;br /&gt;
&lt;br /&gt;
* Ein Renkforce RF1000, RF2000 oder RF2000v2 mit funktionierendem Original-Mainboard (das kann auch komplett ersetzt werden z.B. bei einem Defekt, dies wird aber zunächst nicht in dieser Anleitung behandelt)&lt;br /&gt;
* Makerbase SKR PI Board&lt;br /&gt;
* Zwei Micro-SD-Karten: Eine, um das Linux-Betriebssystem für den Pi zu speichern sowie alle Nutzerdaten. Die zweite wird lediglich für das Firmware-Update der MCU benötigt (sollte aber idealerweise dauerhaft im Gerät verbleiben).&lt;br /&gt;
* Ein ziemlich kurzes USB-Kabel vom Type USB A auf USB B, wie es auch zum Anschluss des originalen Mainboards an einen Computer benutzt wird.&lt;br /&gt;
* WLAN-Stick, möglichst klein, z.B. Edimax EW-7811Un (ok, der ist &amp;quot;etwas&amp;quot; alt und wohl nicht mehr erhältlich -&amp;gt; Alternative finden)&lt;br /&gt;
* Gehäuselüfter!&lt;br /&gt;
* Befestigungsmaterial:&lt;br /&gt;
** 5x M3x35 Senkkopf (DIN7991) + Muttern&lt;br /&gt;
** 4x M3x8&lt;br /&gt;
** 3x M4x30 + Muttern + Beilagscheiben&lt;br /&gt;
** 3 Spacer für M4 (Länge ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* 2 Sperrholzbretter (Abmessungen ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* Dickeres 2-adriges Kabel zur Stromversorgung, z.B. Lautsprecherkabel, minimum 1.5mm^2&lt;br /&gt;
* Bei Verwendung neuer Motortreiber (prinzipiell optional, aber empfohlen):&lt;br /&gt;
** 4x (bzw. 5x bei Dual-Extruder) StepStick-kompatible Motortreiber, z.B. TMC2209 oder TMC2226 (letztere laufen etwas effizienter, also kühler)&lt;br /&gt;
** 3x JST-XH Steckergehäuse 3 Pin (für die Endschalter-Kabel)&lt;br /&gt;
** Teilumrüstungen sind möglich, Endschalter und zugehöriger Stepper sollten aber auf dem selben Board sein&lt;br /&gt;
&lt;br /&gt;
== SD-Karte mit Linux vorbereiten ==&lt;br /&gt;
&lt;br /&gt;
Installationsanleitung: https://github.com/makerbase-mks/MKS-SKIPR/blob/main/README.md#software-preparation&lt;br /&gt;
&lt;br /&gt;
== Mechanische und elektronische Installation ==&lt;br /&gt;
&lt;br /&gt;
Muss noch ausgearbeitet werden, erstmal nur Stichpunkte für mich zur Erinnerung:&lt;br /&gt;
&lt;br /&gt;
* Sperrholzbretter vorbereiten als &amp;quot;Adapter&amp;quot;&lt;br /&gt;
* Erdungskabel versetzen&lt;br /&gt;
* Altes Mainboard versetzen&lt;br /&gt;
* Stromkabel an neues Mainboard und Netzteil&lt;br /&gt;
* SD-Karten einstecken&lt;br /&gt;
* WLAN-Stick einstecken (Welcher Slot!?)&lt;br /&gt;
* Neues Mainboard installieren&lt;br /&gt;
* Endschalter-Kabel auf 3-Pin-Gehäuse umbauen und aufstecken&lt;br /&gt;
* Stepper-Treiber einstecken&lt;br /&gt;
** Jumper für UART nicht vergessen, 2. Position von grünem Connector aus gezählt&lt;br /&gt;
** Bei mir: Schwarzer connecter an schwarz, roter connector an grün. Viele Mainboards haben wohl schwarz+rot statt schwarz+grün)&lt;br /&gt;
* Stepper-Kabel einstecken&lt;br /&gt;
* USB-Kabel installieren&lt;br /&gt;
&lt;br /&gt;
== Software Einrichten ==&lt;br /&gt;
&lt;br /&gt;
* Passwörter ändern&lt;br /&gt;
* Git-Repo auf Community ändern&lt;br /&gt;
* Empfohlen: Dateisystem auf sync ändern&lt;br /&gt;
* Macros kategorisieren&lt;br /&gt;
&lt;br /&gt;
== Cura Verbindung und Startcode ==&lt;br /&gt;
&lt;br /&gt;
* Plugin aus Cura Marketplace: Connect Moonraker&lt;br /&gt;
* Optional: Startcode-Macros und Material Settings Plugin&lt;br /&gt;
&lt;br /&gt;
== Display ==&lt;br /&gt;
&lt;br /&gt;
Fehlt noch komplett. 3D-Modell nötig!&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1190</id>
		<title>Klipper MKS SKIPR</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1190"/>
		<updated>2023-07-03T07:52:27Z</updated>

		<summary type="html">&lt;p&gt;Mhier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Anleitung zum Einrichten von Klipper mit einem Makerbase MKS SKIPR Board =&lt;br /&gt;
&lt;br /&gt;
Das Makerbase SKR PI Board ist ein Drucker-Mainboard, bei dem sozusagen der Raspberry Pi bereits integriert ist. Da es sich nicht um einen Original-Raspberry-Pi handelt, sondern um einen vergleichbaren, aber eben etwas anderen Einplatinen-Computer, wird dieser künftig schlicht mit &amp;quot;Pi&amp;quot; bezeichnet. Auf dem Mainboard befindet sich ebenfalls ein Microcontroller, welcher im folgenden als MCU bezeichnet wird.&lt;br /&gt;
&lt;br /&gt;
Weitere Infos zum Board:&lt;br /&gt;
* https://github.com/makerbase-mks/MKS-SKIPR/tree/main/hardware/MKS%20SKIPR%20V1.0_002&lt;br /&gt;
* https://github.com/makerbase-mks/MKS-SKIPR/blob/main/README.md&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Hinweis: Diese Seite befindet sich noch im Aufbau!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Teileliste ==&lt;br /&gt;
&lt;br /&gt;
* Ein Renkforce RF1000, RF2000 oder RF2000v2 mit funktionierendem Original-Mainboard (das kann auch komplett ersetzt werden z.B. bei einem Defekt, dies wird aber zunächst nicht in dieser Anleitung behandelt)&lt;br /&gt;
* Makerbase SKR PI Board&lt;br /&gt;
* Zwei Micro-SD-Karten: Eine, um das Linux-Betriebssystem für den Pi zu speichern sowie alle Nutzerdaten. Die zweite wird lediglich für das Firmware-Update der MCU benötigt (sollte aber idealerweise dauerhaft im Gerät verbleiben).&lt;br /&gt;
* Ein ziemlich kurzes USB-Kabel vom Type USB A auf USB B, wie es auch zum Anschluss des originalen Mainboards an einen Computer benutzt wird.&lt;br /&gt;
* WLAN-Stick, möglichst klein, z.B. Edimax EW-7811Un (ok, der ist &amp;quot;etwas&amp;quot; alt und wohl nicht mehr erhältlich -&amp;gt; Alternative finden)&lt;br /&gt;
* Gehäuselüfter!&lt;br /&gt;
* Befestigungsmaterial:&lt;br /&gt;
** 5x M3x35 Senkkopf (DIN7991) + Muttern&lt;br /&gt;
** 4x M3x8&lt;br /&gt;
** 3x M4x30 + Muttern + Beilagscheiben&lt;br /&gt;
** 3 Spacer für M4 (Länge ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* 2 Sperrholzbretter (Abmessungen ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* Dickeres 2-adriges Kabel zur Stromversorgung, z.B. Lautsprecherkabel, minimum 1.5mm^2&lt;br /&gt;
* Bei Verwendung neuer Motortreiber (prinzipiell optional, aber empfohlen):&lt;br /&gt;
** 4x (bzw. 5x bei Dual-Extruder) StepStick-kompatible Motortreiber, z.B. TMC2209 oder TMC2226 (letztere laufen etwas effizienter, also kühler)&lt;br /&gt;
** 3x JST-XH Steckergehäuse 3 Pin (für die Endschalter-Kabel)&lt;br /&gt;
** Teilumrüstungen sind möglich, Endschalter und zugehöriger Stepper sollten aber auf dem selben Board sein&lt;br /&gt;
&lt;br /&gt;
== SD-Karte mit Linux vorbereiten ==&lt;br /&gt;
&lt;br /&gt;
Installationsanleitung: https://github.com/makerbase-mks/MKS-SKIPR/blob/main/README.md#software-preparation&lt;br /&gt;
&lt;br /&gt;
== Mechanische und elektronische Installation ==&lt;br /&gt;
&lt;br /&gt;
Muss noch ausgearbeitet werden, erstmal nur Stichpunkte für mich zur Erinnerung:&lt;br /&gt;
&lt;br /&gt;
* Sperrholzbretter vorbereiten als &amp;quot;Adapter&amp;quot;&lt;br /&gt;
* Erdungskabel versetzen&lt;br /&gt;
* Altes Mainboard versetzen&lt;br /&gt;
* Stromkabel an neues Mainboard und Netzteil&lt;br /&gt;
* SD-Karten einstecken&lt;br /&gt;
* WLAN-Stick einstecken (Welcher Slot!?)&lt;br /&gt;
* Neues Mainboard installieren&lt;br /&gt;
* Endschalter-Kabel auf 3-Pin-Gehäuse umbauen und aufstecken&lt;br /&gt;
* Stepper-Treiber einstecken&lt;br /&gt;
** Jumper für UART nicht vergessen, 2. Position von grünem Connector aus gezählt&lt;br /&gt;
** Bei mir: Schwarzer connecter an schwarz, roter connector an grün. Viele Mainboards haben wohl schwarz+rot statt schwarz+grün)&lt;br /&gt;
* Stepper-Kabel einstecken&lt;br /&gt;
* USB-Kabel installieren&lt;br /&gt;
&lt;br /&gt;
== Software Einrichten ==&lt;br /&gt;
&lt;br /&gt;
* Passwörter ändern&lt;br /&gt;
* Git-Repo auf Community ändern&lt;br /&gt;
* Empfohlen: Dateisystem auf sync ändern&lt;br /&gt;
* Macros kategorisieren&lt;br /&gt;
&lt;br /&gt;
== Cura Verbindung und Startcode ==&lt;br /&gt;
&lt;br /&gt;
* Plugin aus Cura Marketplace: Connect Moonraker&lt;br /&gt;
* Optional: Startcode-Macros und Material Settings Plugin&lt;br /&gt;
&lt;br /&gt;
== Display ==&lt;br /&gt;
&lt;br /&gt;
Fehlt noch komplett. 3D-Modell nötig!&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1189</id>
		<title>Klipper MKS SKIPR</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1189"/>
		<updated>2023-07-01T14:47:26Z</updated>

		<summary type="html">&lt;p&gt;Mhier: /* Mechanische und elektronische Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Anleitung zum Einrichten von Klipper mit einem Makerbase SKR PI Board =&lt;br /&gt;
&lt;br /&gt;
Das Makerbase SKR PI Board ist ein Drucker-Mainboard, bei dem sozusagen der Raspberry Pi bereits integriert ist. Da es sich nicht um einen Original-Raspberry-Pi handelt, sondern um einen vergleichbaren, aber eben etwas anderen Einplatinen-Computer, wird dieser künftig schlicht mit &amp;quot;Pi&amp;quot; bezeichnet. Auf dem Mainboard befindet sich ebenfalls ein Microcontroller, welcher im folgenden als MCU bezeichnet wird.&lt;br /&gt;
&lt;br /&gt;
Weitere Infos zum Board:&lt;br /&gt;
* https://github.com/makerbase-mks/MKS-SKIPR/tree/main/hardware/MKS%20SKIPR%20V1.0_002&lt;br /&gt;
* https://github.com/makerbase-mks/MKS-SKIPR/blob/main/README.md&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Hinweis: Diese Seite befindet sich noch im Aufbau!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Teileliste ==&lt;br /&gt;
&lt;br /&gt;
* Ein Renkforce RF1000, RF2000 oder RF2000v2 mit funktionierendem Original-Mainboard (das kann auch komplett ersetzt werden z.B. bei einem Defekt, dies wird aber zunächst nicht in dieser Anleitung behandelt)&lt;br /&gt;
* Makerbase SKR PI Board&lt;br /&gt;
* Zwei Micro-SD-Karten: Eine, um das Linux-Betriebssystem für den Pi zu speichern sowie alle Nutzerdaten. Die zweite wird lediglich für das Firmware-Update der MCU benötigt (sollte aber idealerweise dauerhaft im Gerät verbleiben).&lt;br /&gt;
* Ein ziemlich kurzes USB-Kabel vom Type USB A auf USB B, wie es auch zum Anschluss des originalen Mainboards an einen Computer benutzt wird.&lt;br /&gt;
* WLAN-Stick, möglichst klein, z.B. Edimax EW-7811Un (ok, der ist &amp;quot;etwas&amp;quot; alt und wohl nicht mehr erhältlich -&amp;gt; Alternative finden)&lt;br /&gt;
* Gehäuselüfter!&lt;br /&gt;
* Befestigungsmaterial:&lt;br /&gt;
** 5x M3x35 Senkkopf (DIN7991) + Muttern&lt;br /&gt;
** 4x M3x8&lt;br /&gt;
** 3x M4x30 + Muttern + Beilagscheiben&lt;br /&gt;
** 3 Spacer für M4 (Länge ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* 2 Sperrholzbretter (Abmessungen ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* Dickeres 2-adriges Kabel zur Stromversorgung, z.B. Lautsprecherkabel, minimum 1.5mm^2&lt;br /&gt;
* Bei Verwendung neuer Motortreiber (prinzipiell optional, aber empfohlen):&lt;br /&gt;
** 4x (bzw. 5x bei Dual-Extruder) StepStick-kompatible Motortreiber, z.B. TMC2209 oder TMC2226 (letztere laufen etwas effizienter, also kühler)&lt;br /&gt;
** 3x JST-XH Steckergehäuse 3 Pin (für die Endschalter-Kabel)&lt;br /&gt;
** Teilumrüstungen sind möglich, Endschalter und zugehöriger Stepper sollten aber auf dem selben Board sein&lt;br /&gt;
&lt;br /&gt;
== SD-Karte mit Linux vorbereiten ==&lt;br /&gt;
&lt;br /&gt;
Installationsanleitung: https://github.com/makerbase-mks/MKS-SKIPR/blob/main/README.md#software-preparation&lt;br /&gt;
&lt;br /&gt;
== Mechanische und elektronische Installation ==&lt;br /&gt;
&lt;br /&gt;
Muss noch ausgearbeitet werden, erstmal nur Stichpunkte für mich zur Erinnerung:&lt;br /&gt;
&lt;br /&gt;
* Sperrholzbretter vorbereiten als &amp;quot;Adapter&amp;quot;&lt;br /&gt;
* Erdungskabel versetzen&lt;br /&gt;
* Altes Mainboard versetzen&lt;br /&gt;
* Stromkabel an neues Mainboard und Netzteil&lt;br /&gt;
* SD-Karten einstecken&lt;br /&gt;
* WLAN-Stick einstecken (Welcher Slot!?)&lt;br /&gt;
* Neues Mainboard installieren&lt;br /&gt;
* Endschalter-Kabel auf 3-Pin-Gehäuse umbauen und aufstecken&lt;br /&gt;
* Stepper-Treiber einstecken&lt;br /&gt;
** Jumper für UART nicht vergessen, 2. Position von grünem Connector aus gezählt&lt;br /&gt;
** Bei mir: Schwarzer connecter an schwarz, roter connector an grün. Viele Mainboards haben wohl schwarz+rot statt schwarz+grün)&lt;br /&gt;
* Stepper-Kabel einstecken&lt;br /&gt;
* USB-Kabel installieren&lt;br /&gt;
&lt;br /&gt;
== Software Einrichten ==&lt;br /&gt;
&lt;br /&gt;
* Passwörter ändern&lt;br /&gt;
* Git-Repo auf Community ändern&lt;br /&gt;
* Empfohlen: Dateisystem auf sync ändern&lt;br /&gt;
* Macros kategorisieren&lt;br /&gt;
&lt;br /&gt;
== Cura Verbindung und Startcode ==&lt;br /&gt;
&lt;br /&gt;
* Plugin aus Cura Marketplace: Connect Moonraker&lt;br /&gt;
* Optional: Startcode-Macros und Material Settings Plugin&lt;br /&gt;
&lt;br /&gt;
== Display ==&lt;br /&gt;
&lt;br /&gt;
Fehlt noch komplett. 3D-Modell nötig!&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1188</id>
		<title>Klipper MKS SKIPR</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1188"/>
		<updated>2023-07-01T14:40:50Z</updated>

		<summary type="html">&lt;p&gt;Mhier: /* Anleitung zum Einrichten von Klipper mit einem Makerbase SKR PI Board */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Anleitung zum Einrichten von Klipper mit einem Makerbase SKR PI Board =&lt;br /&gt;
&lt;br /&gt;
Das Makerbase SKR PI Board ist ein Drucker-Mainboard, bei dem sozusagen der Raspberry Pi bereits integriert ist. Da es sich nicht um einen Original-Raspberry-Pi handelt, sondern um einen vergleichbaren, aber eben etwas anderen Einplatinen-Computer, wird dieser künftig schlicht mit &amp;quot;Pi&amp;quot; bezeichnet. Auf dem Mainboard befindet sich ebenfalls ein Microcontroller, welcher im folgenden als MCU bezeichnet wird.&lt;br /&gt;
&lt;br /&gt;
Weitere Infos zum Board:&lt;br /&gt;
* https://github.com/makerbase-mks/MKS-SKIPR/tree/main/hardware/MKS%20SKIPR%20V1.0_002&lt;br /&gt;
* https://github.com/makerbase-mks/MKS-SKIPR/blob/main/README.md&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Hinweis: Diese Seite befindet sich noch im Aufbau!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Teileliste ==&lt;br /&gt;
&lt;br /&gt;
* Ein Renkforce RF1000, RF2000 oder RF2000v2 mit funktionierendem Original-Mainboard (das kann auch komplett ersetzt werden z.B. bei einem Defekt, dies wird aber zunächst nicht in dieser Anleitung behandelt)&lt;br /&gt;
* Makerbase SKR PI Board&lt;br /&gt;
* Zwei Micro-SD-Karten: Eine, um das Linux-Betriebssystem für den Pi zu speichern sowie alle Nutzerdaten. Die zweite wird lediglich für das Firmware-Update der MCU benötigt (sollte aber idealerweise dauerhaft im Gerät verbleiben).&lt;br /&gt;
* Ein ziemlich kurzes USB-Kabel vom Type USB A auf USB B, wie es auch zum Anschluss des originalen Mainboards an einen Computer benutzt wird.&lt;br /&gt;
* WLAN-Stick, möglichst klein, z.B. Edimax EW-7811Un (ok, der ist &amp;quot;etwas&amp;quot; alt und wohl nicht mehr erhältlich -&amp;gt; Alternative finden)&lt;br /&gt;
* Gehäuselüfter!&lt;br /&gt;
* Befestigungsmaterial:&lt;br /&gt;
** 5x M3x35 Senkkopf (DIN7991) + Muttern&lt;br /&gt;
** 4x M3x8&lt;br /&gt;
** 3x M4x30 + Muttern + Beilagscheiben&lt;br /&gt;
** 3 Spacer für M4 (Länge ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* 2 Sperrholzbretter (Abmessungen ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* Dickeres 2-adriges Kabel zur Stromversorgung, z.B. Lautsprecherkabel, minimum 1.5mm^2&lt;br /&gt;
* Bei Verwendung neuer Motortreiber (prinzipiell optional, aber empfohlen):&lt;br /&gt;
** 4x (bzw. 5x bei Dual-Extruder) StepStick-kompatible Motortreiber, z.B. TMC2209 oder TMC2226 (letztere laufen etwas effizienter, also kühler)&lt;br /&gt;
** 3x JST-XH Steckergehäuse 3 Pin (für die Endschalter-Kabel)&lt;br /&gt;
** Teilumrüstungen sind möglich, Endschalter und zugehöriger Stepper sollten aber auf dem selben Board sein&lt;br /&gt;
&lt;br /&gt;
== SD-Karte mit Linux vorbereiten ==&lt;br /&gt;
&lt;br /&gt;
Installationsanleitung: https://github.com/makerbase-mks/MKS-SKIPR/blob/main/README.md#software-preparation&lt;br /&gt;
&lt;br /&gt;
== Mechanische und elektronische Installation ==&lt;br /&gt;
&lt;br /&gt;
Muss noch ausgearbeitet werden, erstmal nur Stichpunkte für mich zur Erinnerung:&lt;br /&gt;
&lt;br /&gt;
* Sperrholzbretter vorbereiten als &amp;quot;Adapter&amp;quot;&lt;br /&gt;
* Erdungskabel versetzen&lt;br /&gt;
* Altes Mainboard versetzen&lt;br /&gt;
* Stromkabel an neues Mainboard und Netzteil&lt;br /&gt;
* SD-Karten einstecken&lt;br /&gt;
* WLAN-Stick einstecken (Welcher Slot!?)&lt;br /&gt;
* Neues Mainboard installieren&lt;br /&gt;
* Endschalter-Kabel auf 3-Pin-Gehäuse umbauen und aufstecken&lt;br /&gt;
* Stepper-Treiber einstekcen&lt;br /&gt;
* Stepper-Kabel einstecken&lt;br /&gt;
* USB-Kabel installieren&lt;br /&gt;
&lt;br /&gt;
== Software Einrichten ==&lt;br /&gt;
&lt;br /&gt;
* Passwörter ändern&lt;br /&gt;
* Git-Repo auf Community ändern&lt;br /&gt;
* Empfohlen: Dateisystem auf sync ändern&lt;br /&gt;
* Macros kategorisieren&lt;br /&gt;
&lt;br /&gt;
== Cura Verbindung und Startcode ==&lt;br /&gt;
&lt;br /&gt;
* Plugin aus Cura Marketplace: Connect Moonraker&lt;br /&gt;
* Optional: Startcode-Macros und Material Settings Plugin&lt;br /&gt;
&lt;br /&gt;
== Display ==&lt;br /&gt;
&lt;br /&gt;
Fehlt noch komplett. 3D-Modell nötig!&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1187</id>
		<title>Klipper MKS SKIPR</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1187"/>
		<updated>2023-07-01T11:35:10Z</updated>

		<summary type="html">&lt;p&gt;Mhier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Anleitung zum Einrichten von Klipper mit einem Makerbase SKR PI Board =&lt;br /&gt;
&lt;br /&gt;
Das Makerbase SKR PI Board ist ein Drucker-Mainboard, bei dem sozusagen der Raspberry Pi bereits integriert ist. Da es sich nicht um einen Original-Raspberry-Pi handelt, sondern um einen vergleichbaren, aber eben etwas anderen Einplatinen-Computer, wird dieser künftig schlicht mit &amp;quot;Pi&amp;quot; bezeichnet. Auf dem Mainboard befindet sich ebenfalls ein Microcontroller, welcher im folgenden als MCU bezeichnet wird.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Hinweis: Diese Seite befindet sich noch im Aufbau!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Teileliste ==&lt;br /&gt;
&lt;br /&gt;
* Ein Renkforce RF1000, RF2000 oder RF2000v2 mit funktionierendem Original-Mainboard (das kann auch komplett ersetzt werden z.B. bei einem Defekt, dies wird aber zunächst nicht in dieser Anleitung behandelt)&lt;br /&gt;
* Makerbase SKR PI Board&lt;br /&gt;
* Zwei Micro-SD-Karten: Eine, um das Linux-Betriebssystem für den Pi zu speichern sowie alle Nutzerdaten. Die zweite wird lediglich für das Firmware-Update der MCU benötigt (sollte aber idealerweise dauerhaft im Gerät verbleiben).&lt;br /&gt;
* Ein ziemlich kurzes USB-Kabel vom Type USB A auf USB B, wie es auch zum Anschluss des originalen Mainboards an einen Computer benutzt wird.&lt;br /&gt;
* WLAN-Stick, möglichst klein, z.B. Edimax EW-7811Un (ok, der ist &amp;quot;etwas&amp;quot; alt und wohl nicht mehr erhältlich -&amp;gt; Alternative finden)&lt;br /&gt;
* Gehäuselüfter!&lt;br /&gt;
* Befestigungsmaterial:&lt;br /&gt;
** 5x M3x35 Senkkopf (DIN7991) + Muttern&lt;br /&gt;
** 4x M3x8&lt;br /&gt;
** 3x M4x30 + Muttern + Beilagscheiben&lt;br /&gt;
** 3 Spacer für M4 (Länge ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* 2 Sperrholzbretter (Abmessungen ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* Dickeres 2-adriges Kabel zur Stromversorgung, z.B. Lautsprecherkabel, minimum 1.5mm^2&lt;br /&gt;
* Bei Verwendung neuer Motortreiber (prinzipiell optional, aber empfohlen):&lt;br /&gt;
** 4x (bzw. 5x bei Dual-Extruder) StepStick-kompatible Motortreiber, z.B. TMC2209 oder TMC2226 (letztere laufen etwas effizienter, also kühler)&lt;br /&gt;
** 3x JST-XH Steckergehäuse 3 Pin (für die Endschalter-Kabel)&lt;br /&gt;
** Teilumrüstungen sind möglich, Endschalter und zugehöriger Stepper sollten aber auf dem selben Board sein&lt;br /&gt;
&lt;br /&gt;
== SD-Karte mit Linux vorbereiten ==&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Mechanische und elektronische Installation ==&lt;br /&gt;
&lt;br /&gt;
Muss noch ausgearbeitet werden, erstmal nur Stichpunkte für mich zur Erinnerung:&lt;br /&gt;
&lt;br /&gt;
* Sperrholzbretter vorbereiten als &amp;quot;Adapter&amp;quot;&lt;br /&gt;
* Erdungskabel versetzen&lt;br /&gt;
* Altes Mainboard versetzen&lt;br /&gt;
* Stromkabel an neues Mainboard und Netzteil&lt;br /&gt;
* SD-Karten einstecken&lt;br /&gt;
* WLAN-Stick einstecken (Welcher Slot!?)&lt;br /&gt;
* Neues Mainboard installieren&lt;br /&gt;
* Endschalter-Kabel auf 3-Pin-Gehäuse umbauen und aufstecken&lt;br /&gt;
* Stepper-Treiber einstekcen&lt;br /&gt;
* Stepper-Kabel einstecken&lt;br /&gt;
* USB-Kabel installieren&lt;br /&gt;
&lt;br /&gt;
== Software Einrichten ==&lt;br /&gt;
&lt;br /&gt;
* Passwörter ändern&lt;br /&gt;
* Git-Repo auf Community ändern&lt;br /&gt;
* Empfohlen: Dateisystem auf sync ändern&lt;br /&gt;
* Macros kategorisieren&lt;br /&gt;
&lt;br /&gt;
== Cura Verbindung und Startcode ==&lt;br /&gt;
&lt;br /&gt;
* Plugin aus Cura Marketplace: Connect Moonraker&lt;br /&gt;
* Optional: Startcode-Macros und Material Settings Plugin&lt;br /&gt;
&lt;br /&gt;
== Display ==&lt;br /&gt;
&lt;br /&gt;
Fehlt noch komplett. 3D-Modell nötig!&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1186</id>
		<title>Klipper MKS SKIPR</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1186"/>
		<updated>2023-07-01T10:46:40Z</updated>

		<summary type="html">&lt;p&gt;Mhier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Anleitung zum Einrichten von Klipper mit einem Makerbase SKR PI Board =&lt;br /&gt;
&lt;br /&gt;
Das Makerbase SKR PI Board ist ein Drucker-Mainboard, bei dem sozusagen der Raspberry Pi bereits integriert ist. Da es sich nicht um einen Original-Raspberry-Pi handelt, sondern um einen vergleichbaren, aber eben etwas anderen Einplatinen-Computer, wird dieser künftig schlicht mit &amp;quot;Pi&amp;quot; bezeichnet. Auf dem Mainboard befindet sich ebenfalls ein Microcontroller, welcher im folgenden als MCU bezeichnet wird.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Hinweis: Diese Seite befindet sich noch im Aufbau!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Teileliste ==&lt;br /&gt;
&lt;br /&gt;
* Ein Renkforce RF1000, RF2000 oder RF2000v2 mit funktionierendem Original-Mainboard (das kann auch komplett ersetzt werden z.B. bei einem Defekt, dies wird aber zunächst nicht in dieser Anleitung behandelt)&lt;br /&gt;
* Makerbase SKR PI Board&lt;br /&gt;
* Zwei Micro-SD-Karten: Eine, um das Linux-Betriebssystem für den Pi zu speichern sowie alle Nutzerdaten. Die zweite wird lediglich für das Firmware-Update der MCU benötigt (sollte aber idealerweise dauerhaft im Gerät verbleiben).&lt;br /&gt;
* Ein ziemlich kurzes USB-Kabel vom Type USB A auf USB B, wie es auch zum Anschluss des originalen Mainboards an einen Computer benutzt wird.&lt;br /&gt;
* WLAN-Stick, möglichst klein, z.B. Edimax EW-7811Un (ok, der ist &amp;quot;etwas&amp;quot; alt und wohl nicht mehr erhältlich -&amp;gt; Alternative finden)&lt;br /&gt;
* Befestigungsmaterial:&lt;br /&gt;
** 5x M3x35 Senkkopf (DIN7991) + Muttern&lt;br /&gt;
** 4x M3x8&lt;br /&gt;
** 3x M4x30 + Muttern + Beilagscheiben&lt;br /&gt;
** 3 Spacer für M4 (Länge ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* 2 Sperrholzbretter (Abmessungen ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* Dickeres 2-adriges Kabel zur Stromversorgung, z.B. Lautsprecherkabel, minimum 1.5mm^2&lt;br /&gt;
* Bei Verwendung neuer Motortreiber (prinzipiell optional, aber empfohlen):&lt;br /&gt;
** 4x (bzw. 5x bei Dual-Extruder) StepStick-kompatible Motortreiber, z.B. TMC2209 oder TMC2226 (letztere laufen etwas effizienter, also kühler)&lt;br /&gt;
** 3x JST-XH Steckergehäuse 3 Pin (für die Endschalter-Kabel)&lt;br /&gt;
** Teilumrüstungen sind möglich, Endschalter und zugehöriger Stepper sollten aber auf dem selben Board sein&lt;br /&gt;
&lt;br /&gt;
== SD-Karte mit Linux vorbereiten ==&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Mechanische und elektronische Installation ==&lt;br /&gt;
&lt;br /&gt;
Muss noch ausgearbeitet werden, erstmal nur Stichpunkte für mich zur Erinnerung:&lt;br /&gt;
&lt;br /&gt;
* Sperrholzbretter vorbereiten als &amp;quot;Adapter&amp;quot;&lt;br /&gt;
* Erdungskabel versetzen&lt;br /&gt;
* Altes Mainboard versetzen&lt;br /&gt;
* Stromkabel an neues Mainboard und Netzteil&lt;br /&gt;
* SD-Karten einstecken&lt;br /&gt;
* WLAN-Stick einstecken (Welcher Slot!?)&lt;br /&gt;
* Neues Mainboard installieren&lt;br /&gt;
* Endschalter-Kabel auf 3-Pin-Gehäuse umbauen und aufstecken&lt;br /&gt;
* Stepper-Treiber einstekcen&lt;br /&gt;
* Stepper-Kabel einstecken&lt;br /&gt;
* USB-Kabel installieren&lt;br /&gt;
&lt;br /&gt;
== Software Einrichten ==&lt;br /&gt;
&lt;br /&gt;
* Passwörter ändern&lt;br /&gt;
* Git-Repo auf Community ändern&lt;br /&gt;
* Empfohlen: Dateisystem auf sync ändern&lt;br /&gt;
* Macros kategorisieren&lt;br /&gt;
&lt;br /&gt;
== Cura Verbindung und Startcode ==&lt;br /&gt;
&lt;br /&gt;
* Plugin aus Cura Marketplace: Connect Moonraker&lt;br /&gt;
* Optional: Startcode-Macros und Material Settings Plugin&lt;br /&gt;
&lt;br /&gt;
== Display ==&lt;br /&gt;
&lt;br /&gt;
Fehlt noch komplett. 3D-Modell nötig!&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1185</id>
		<title>Klipper MKS SKIPR</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1185"/>
		<updated>2023-07-01T10:26:03Z</updated>

		<summary type="html">&lt;p&gt;Mhier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Anleitung zum Einrichten von Klipper mit einem Makerbase SKR PI Board =&lt;br /&gt;
&lt;br /&gt;
Das Makerbase SKR PI Board ist ein Drucker-Mainboard, bei dem sozusagen der Raspberry Pi bereits integriert ist. Da es sich nicht um einen Original-Raspberry-Pi handelt, sondern um einen vergleichbaren, aber eben etwas anderen Einplatinen-Computer, wird dieser künftig schlicht mit &amp;quot;Pi&amp;quot; bezeichnet. Auf dem Mainboard befindet sich ebenfalls ein Microcontroller, welcher im folgenden als MCU bezeichnet wird.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Hinweis: Diese Seite befindet sich noch im Aufbau!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Teileliste ==&lt;br /&gt;
&lt;br /&gt;
* Ein Renkforce RF1000, RF2000 oder RF2000v2 mit funktionierendem Original-Mainboard (das kann auch komplett ersetzt werden z.B. bei einem Defekt, dies wird aber zunächst nicht in dieser Anleitung behandelt)&lt;br /&gt;
* Makerbase SKR PI Board&lt;br /&gt;
* Zwei Micro-SD-Karten: Eine, um das Linux-Betriebssystem für den Pi zu speichern sowie alle Nutzerdaten. Die zweite wird lediglich für das Firmware-Update der MCU benötigt (sollte aber idealerweise dauerhaft im Gerät verbleiben).&lt;br /&gt;
* Ein ziemlich kurzes USB-Kabel vom Type USB A auf USB B, wie es auch zum Anschluss des originalen Mainboards an einen Computer benutzt wird.&lt;br /&gt;
* WLAN-Stick, möglichst klein, z.B. Edimax EW-7811Un (ok, der ist &amp;quot;etwas&amp;quot; alt und wohl nicht mehr erhältlich -&amp;gt; Alternative finden)&lt;br /&gt;
* Befestigungsmaterial:&lt;br /&gt;
** 5x M3x35 Senkkopf (DIN7991) + Muttern&lt;br /&gt;
** 4x M3x8&lt;br /&gt;
** 3x M4x30 + Muttern + Beilagscheiben&lt;br /&gt;
** 3 Spacer für M4 (Länge ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* 2 Sperrholzbretter (Abmessungen ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* Dickeres 2-adriges Kabel zur Stromversorgung, z.B. Lautsprecherkabel, minimum 1.5mm^2&lt;br /&gt;
* Bei Verwendung neuer Motortreiber (prinzipiell optional, aber empfohlen):&lt;br /&gt;
** 4x (bzw. 5x bei Dual-Extruder) StepStick-kompatible Motortreiber, z.B. TMC2209 oder TMC2226 (letztere laufen etwas effizienter, also kühler)&lt;br /&gt;
** 3x JST-XH Steckergehäuse 3 Pin (für die Endschalter-Kabel)&lt;br /&gt;
** Teilumrüstungen sind möglich, Endschalter und zugehöriger Stepper sollten aber auf dem selben Board sein&lt;br /&gt;
&lt;br /&gt;
== SD-Karte mit Linux vorbereiten ==&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Mechanische und elektronische Installation ==&lt;br /&gt;
&lt;br /&gt;
Muss noch ausgearbeitet werden, erstmal nur Stichpunkte für mich zur Erinnerung:&lt;br /&gt;
&lt;br /&gt;
* Sperrholzbretter vorbereiten als &amp;quot;Adapter&amp;quot;&lt;br /&gt;
* Erdungskabel versetzen&lt;br /&gt;
* Altes Mainboard versetzen&lt;br /&gt;
* Stromkabel an neues Mainboard und Netzteil&lt;br /&gt;
* SD-Karten einstecken&lt;br /&gt;
* WLAN-Stick einstecken (Welcher Slot!?)&lt;br /&gt;
* Neues Mainboard installieren&lt;br /&gt;
* Endschalter-Kabel auf 3-Pin-Gehäuse umbauen und aufstecken&lt;br /&gt;
* Stepper-Treiber einstekcen&lt;br /&gt;
* Stepper-Kabel einstecken&lt;br /&gt;
* USB-Kabel installieren&lt;br /&gt;
&lt;br /&gt;
== Software Installation ==&lt;br /&gt;
&lt;br /&gt;
* Passwörter ändern&lt;br /&gt;
* Git-Repo auf Community ändern&lt;br /&gt;
* Empfohlen: Dateisystem auf sync ändern&lt;br /&gt;
&lt;br /&gt;
== Cura Verbindung und Startcode ==&lt;br /&gt;
&lt;br /&gt;
* Plugin aus Cura Marketplace: Connect Moonraker&lt;br /&gt;
* Optional: Startcode-Macros und Material Settings Plugin&lt;br /&gt;
&lt;br /&gt;
== Display ==&lt;br /&gt;
&lt;br /&gt;
Fehlt noch komplett. 3D-Modell nötig!&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1184</id>
		<title>Klipper MKS SKIPR</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1184"/>
		<updated>2023-07-01T10:24:34Z</updated>

		<summary type="html">&lt;p&gt;Mhier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Anleitung zum Einrichten von Klipper mit einem Makerbase SKR PI Board =&lt;br /&gt;
&lt;br /&gt;
Das Makerbase SKR PI Board ist ein Drucker-Mainboard, bei dem sozusagen der Raspberry Pi bereits integriert ist. Da es sich nicht um einen Original-Raspberry-Pi handelt, sondern um einen vergleichbaren, aber eben etwas anderen Einplatinen-Computer, wird dieser künftig schlicht mit &amp;quot;Pi&amp;quot; bezeichnet. Auf dem Mainboard befindet sich ebenfalls ein Microcontroller, welcher im folgenden als MCU bezeichnet wird.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Hinweis: Diese Seite befindet sich noch im Aufbau!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Teileliste ==&lt;br /&gt;
&lt;br /&gt;
* Ein Renkforce RF1000, RF2000 oder RF2000v2 mit funktionierendem Original-Mainboard (das kann auch komplett ersetzt werden z.B. bei einem Defekt, dies wird aber zunächst nicht in dieser Anleitung behandelt)&lt;br /&gt;
* Makerbase SKR PI Board&lt;br /&gt;
* Zwei Micro-SD-Karten: Eine, um das Linux-Betriebssystem für den Pi zu speichern sowie alle Nutzerdaten. Die zweite wird lediglich für das Firmware-Update der MCU benötigt (sollte aber idealerweise dauerhaft im Gerät verbleiben).&lt;br /&gt;
* Ein ziemlich kurzes USB-Kabel vom Type USB A auf USB B, wie es auch zum Anschluss des originalen Mainboards an einen Computer benutzt wird.&lt;br /&gt;
* WLAN-Stick, möglichst klein, z.B. Edimax EW-7811Un (ok, der ist &amp;quot;etwas&amp;quot; alt und wohl nicht mehr erhältlich -&amp;gt; Alternative finden)&lt;br /&gt;
* Befestigungsmaterial:&lt;br /&gt;
** 5x M3x35 Senkkopf (DIN7991) + Muttern&lt;br /&gt;
** 4x M3x8&lt;br /&gt;
** 3x M4x30 + Muttern + Beilagscheiben&lt;br /&gt;
** 3 Spacer für M4 (Länge ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* 2 Sperrholzbretter (Abmessungen ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* Dickeres 2-adriges Kabel zur Stromversorgung, z.B. Lautsprecherkabel, minimum 1.5mm^2&lt;br /&gt;
* Bei Verwendung neuer Motortreiber (prinzipiell optional, aber empfohlen):&lt;br /&gt;
** 4x (bzw. 5x bei Dual-Extruder) StepStick-kompatible Motortreiber, z.B. TMC2209 oder TMC2226 (letztere laufen etwas effizienter, also kühler)&lt;br /&gt;
** 3x JST-XH Steckergehäuse 3 Pin (für die Endschalter-Kabel)&lt;br /&gt;
** Teilumrüstungen sind möglich, Endschalter und zugehöriger Stepper sollten aber auf dem selben Board sein&lt;br /&gt;
&lt;br /&gt;
== SD-Karte mit Linux vorbereiten ==&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Mechanische und elektronische Installation ==&lt;br /&gt;
&lt;br /&gt;
Muss noch ausgearbeitet werden, erstmal nur Stichpunkte für mich zur Erinnerung:&lt;br /&gt;
&lt;br /&gt;
* Sperrholzbretter vorbereiten als &amp;quot;Adapter&amp;quot;&lt;br /&gt;
* Erdungskabel versetzen&lt;br /&gt;
* Altes Mainboard versetzen&lt;br /&gt;
* Stromkabel an neues Mainboard und Netzteil&lt;br /&gt;
* SD-Karten einstecken&lt;br /&gt;
* WLAN-Stick einstecken (Welcher Slot!?)&lt;br /&gt;
* Neues Mainboard installieren&lt;br /&gt;
* Endschalter-Kabel auf 3-Pin-Gehäuse umbauen und aufstecken&lt;br /&gt;
* Stepper-Treiber einstekcen&lt;br /&gt;
* Stepper-Kabel einstecken&lt;br /&gt;
* USB-Kabel installieren&lt;br /&gt;
&lt;br /&gt;
== Software Installation ==&lt;br /&gt;
&lt;br /&gt;
* Passwörter ändern&lt;br /&gt;
* Git-Repo auf Community ändern&lt;br /&gt;
* Empfohlen: Dateisystem auf sync ändern&lt;br /&gt;
&lt;br /&gt;
== Cura Verbindung und Startcode ==&lt;br /&gt;
&lt;br /&gt;
* Plugin aus Cura Marketplace: Connect Moonraker&lt;br /&gt;
* Optional: Startcode-Macros und Material Settings Plugin&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1183</id>
		<title>Klipper MKS SKIPR</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1183"/>
		<updated>2023-07-01T10:24:10Z</updated>

		<summary type="html">&lt;p&gt;Mhier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Hinweis: Diese Seite befindet sich noch im Aufbau!'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Anleitung zum Einrichten von Klipper mit einem Makerbase SKR PI Board =&lt;br /&gt;
&lt;br /&gt;
Das Makerbase SKR PI Board ist ein Drucker-Mainboard, bei dem sozusagen der Raspberry Pi bereits integriert ist. Da es sich nicht um einen Original-Raspberry-Pi handelt, sondern um einen vergleichbaren, aber eben etwas anderen Einplatinen-Computer, wird dieser künftig schlicht mit &amp;quot;Pi&amp;quot; bezeichnet. Auf dem Mainboard befindet sich ebenfalls ein Microcontroller, welcher im folgenden als MCU bezeichnet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Teileliste ==&lt;br /&gt;
&lt;br /&gt;
* Ein Renkforce RF1000, RF2000 oder RF2000v2 mit funktionierendem Original-Mainboard (das kann auch komplett ersetzt werden z.B. bei einem Defekt, dies wird aber zunächst nicht in dieser Anleitung behandelt)&lt;br /&gt;
* Makerbase SKR PI Board&lt;br /&gt;
* Zwei Micro-SD-Karten: Eine, um das Linux-Betriebssystem für den Pi zu speichern sowie alle Nutzerdaten. Die zweite wird lediglich für das Firmware-Update der MCU benötigt (sollte aber idealerweise dauerhaft im Gerät verbleiben).&lt;br /&gt;
* Ein ziemlich kurzes USB-Kabel vom Type USB A auf USB B, wie es auch zum Anschluss des originalen Mainboards an einen Computer benutzt wird.&lt;br /&gt;
* WLAN-Stick, möglichst klein, z.B. Edimax EW-7811Un (ok, der ist &amp;quot;etwas&amp;quot; alt und wohl nicht mehr erhältlich -&amp;gt; Alternative finden)&lt;br /&gt;
* Befestigungsmaterial:&lt;br /&gt;
** 5x M3x35 Senkkopf (DIN7991) + Muttern&lt;br /&gt;
** 4x M3x8&lt;br /&gt;
** 3x M4x30 + Muttern + Beilagscheiben&lt;br /&gt;
** 3 Spacer für M4 (Länge ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* 2 Sperrholzbretter (Abmessungen ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* Dickeres 2-adriges Kabel zur Stromversorgung, z.B. Lautsprecherkabel, minimum 1.5mm^2&lt;br /&gt;
* Bei Verwendung neuer Motortreiber (prinzipiell optional, aber empfohlen):&lt;br /&gt;
** 4x (bzw. 5x bei Dual-Extruder) StepStick-kompatible Motortreiber, z.B. TMC2209 oder TMC2226 (letztere laufen etwas effizienter, also kühler)&lt;br /&gt;
** 3x JST-XH Steckergehäuse 3 Pin (für die Endschalter-Kabel)&lt;br /&gt;
** Teilumrüstungen sind möglich, Endschalter und zugehöriger Stepper sollten aber auf dem selben Board sein&lt;br /&gt;
&lt;br /&gt;
== SD-Karte mit Linux vorbereiten ==&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Mechanische und elektronische Installation ==&lt;br /&gt;
&lt;br /&gt;
Muss noch ausgearbeitet werden, erstmal nur Stichpunkte für mich zur Erinnerung:&lt;br /&gt;
&lt;br /&gt;
* Sperrholzbretter vorbereiten als &amp;quot;Adapter&amp;quot;&lt;br /&gt;
* Erdungskabel versetzen&lt;br /&gt;
* Altes Mainboard versetzen&lt;br /&gt;
* Stromkabel an neues Mainboard und Netzteil&lt;br /&gt;
* SD-Karten einstecken&lt;br /&gt;
* WLAN-Stick einstecken (Welcher Slot!?)&lt;br /&gt;
* Neues Mainboard installieren&lt;br /&gt;
* Endschalter-Kabel auf 3-Pin-Gehäuse umbauen und aufstecken&lt;br /&gt;
* Stepper-Treiber einstekcen&lt;br /&gt;
* Stepper-Kabel einstecken&lt;br /&gt;
* USB-Kabel installieren&lt;br /&gt;
&lt;br /&gt;
== Software Installation ==&lt;br /&gt;
&lt;br /&gt;
* Passwörter ändern&lt;br /&gt;
* Git-Repo auf Community ändern&lt;br /&gt;
* Empfohlen: Dateisystem auf sync ändern&lt;br /&gt;
&lt;br /&gt;
== Cura Verbindung und Startcode ==&lt;br /&gt;
&lt;br /&gt;
* Plugin aus Cura Marketplace: Connect Moonraker&lt;br /&gt;
* Optional: Startcode-Macros und Material Settings Plugin&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1182</id>
		<title>Klipper MKS SKIPR</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1182"/>
		<updated>2023-07-01T10:23:35Z</updated>

		<summary type="html">&lt;p&gt;Mhier: /* Software Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hinweis: Diese Seite befindet sich noch im Aufbau!&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Anleitung zum Einrichten von Klipper mit einem Makerbase SKR PI Board =&lt;br /&gt;
&lt;br /&gt;
Das Makerbase SKR PI Board ist ein Drucker-Mainboard, bei dem sozusagen der Raspberry Pi bereits integriert ist. Da es sich nicht um einen Original-Raspberry-Pi handelt, sondern um einen vergleichbaren, aber eben etwas anderen Einplatinen-Computer, wird dieser künftig schlicht mit &amp;quot;Pi&amp;quot; bezeichnet. Auf dem Mainboard befindet sich ebenfalls ein Microcontroller, welcher im folgenden als MCU bezeichnet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Teileliste ==&lt;br /&gt;
&lt;br /&gt;
* Ein Renkforce RF1000, RF2000 oder RF2000v2 mit funktionierendem Original-Mainboard (das kann auch komplett ersetzt werden z.B. bei einem Defekt, dies wird aber zunächst nicht in dieser Anleitung behandelt)&lt;br /&gt;
* Makerbase SKR PI Board&lt;br /&gt;
* Zwei Micro-SD-Karten: Eine, um das Linux-Betriebssystem für den Pi zu speichern sowie alle Nutzerdaten. Die zweite wird lediglich für das Firmware-Update der MCU benötigt (sollte aber idealerweise dauerhaft im Gerät verbleiben).&lt;br /&gt;
* Ein ziemlich kurzes USB-Kabel vom Type USB A auf USB B, wie es auch zum Anschluss des originalen Mainboards an einen Computer benutzt wird.&lt;br /&gt;
* WLAN-Stick, möglichst klein, z.B. Edimax EW-7811Un (ok, der ist &amp;quot;etwas&amp;quot; alt und wohl nicht mehr erhältlich -&amp;gt; Alternative finden)&lt;br /&gt;
* Befestigungsmaterial:&lt;br /&gt;
** 5x M3x35 Senkkopf (DIN7991) + Muttern&lt;br /&gt;
** 4x M3x8&lt;br /&gt;
** 3x M4x30 + Muttern + Beilagscheiben&lt;br /&gt;
** 3 Spacer für M4 (Länge ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* 2 Sperrholzbretter (Abmessungen ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* Dickeres 2-adriges Kabel zur Stromversorgung, z.B. Lautsprecherkabel, minimum 1.5mm^2&lt;br /&gt;
* Bei Verwendung neuer Motortreiber (prinzipiell optional, aber empfohlen):&lt;br /&gt;
** 4x (bzw. 5x bei Dual-Extruder) StepStick-kompatible Motortreiber, z.B. TMC2209 oder TMC2226 (letztere laufen etwas effizienter, also kühler)&lt;br /&gt;
** 3x JST-XH Steckergehäuse 3 Pin (für die Endschalter-Kabel)&lt;br /&gt;
** Teilumrüstungen sind möglich, Endschalter und zugehöriger Stepper sollten aber auf dem selben Board sein&lt;br /&gt;
&lt;br /&gt;
== SD-Karte mit Linux vorbereiten ==&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Mechanische und elektronische Installation ==&lt;br /&gt;
&lt;br /&gt;
Muss noch ausgearbeitet werden, erstmal nur Stichpunkte für mich zur Erinnerung:&lt;br /&gt;
&lt;br /&gt;
* Sperrholzbretter vorbereiten als &amp;quot;Adapter&amp;quot;&lt;br /&gt;
* Erdungskabel versetzen&lt;br /&gt;
* Altes Mainboard versetzen&lt;br /&gt;
* Stromkabel an neues Mainboard und Netzteil&lt;br /&gt;
* SD-Karten einstecken&lt;br /&gt;
* WLAN-Stick einstecken (Welcher Slot!?)&lt;br /&gt;
* Neues Mainboard installieren&lt;br /&gt;
* Endschalter-Kabel auf 3-Pin-Gehäuse umbauen und aufstecken&lt;br /&gt;
* Stepper-Treiber einstekcen&lt;br /&gt;
* Stepper-Kabel einstecken&lt;br /&gt;
* USB-Kabel installieren&lt;br /&gt;
&lt;br /&gt;
== Software Installation ==&lt;br /&gt;
&lt;br /&gt;
* Passwörter ändern&lt;br /&gt;
* Git-Repo auf Community ändern&lt;br /&gt;
* Empfohlen: Dateisystem auf sync ändern&lt;br /&gt;
&lt;br /&gt;
== Cura Verbindung und Startcode ==&lt;br /&gt;
&lt;br /&gt;
* Plugin aus Cura Marketplace: Connect Moonraker&lt;br /&gt;
* Optional: Startcode-Macros und Material Settings Plugin&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1181</id>
		<title>Klipper MKS SKIPR</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1181"/>
		<updated>2023-07-01T10:22:29Z</updated>

		<summary type="html">&lt;p&gt;Mhier: /* Cura Verbindung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hinweis: Diese Seite befindet sich noch im Aufbau!&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Anleitung zum Einrichten von Klipper mit einem Makerbase SKR PI Board =&lt;br /&gt;
&lt;br /&gt;
Das Makerbase SKR PI Board ist ein Drucker-Mainboard, bei dem sozusagen der Raspberry Pi bereits integriert ist. Da es sich nicht um einen Original-Raspberry-Pi handelt, sondern um einen vergleichbaren, aber eben etwas anderen Einplatinen-Computer, wird dieser künftig schlicht mit &amp;quot;Pi&amp;quot; bezeichnet. Auf dem Mainboard befindet sich ebenfalls ein Microcontroller, welcher im folgenden als MCU bezeichnet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Teileliste ==&lt;br /&gt;
&lt;br /&gt;
* Ein Renkforce RF1000, RF2000 oder RF2000v2 mit funktionierendem Original-Mainboard (das kann auch komplett ersetzt werden z.B. bei einem Defekt, dies wird aber zunächst nicht in dieser Anleitung behandelt)&lt;br /&gt;
* Makerbase SKR PI Board&lt;br /&gt;
* Zwei Micro-SD-Karten: Eine, um das Linux-Betriebssystem für den Pi zu speichern sowie alle Nutzerdaten. Die zweite wird lediglich für das Firmware-Update der MCU benötigt (sollte aber idealerweise dauerhaft im Gerät verbleiben).&lt;br /&gt;
* Ein ziemlich kurzes USB-Kabel vom Type USB A auf USB B, wie es auch zum Anschluss des originalen Mainboards an einen Computer benutzt wird.&lt;br /&gt;
* WLAN-Stick, möglichst klein, z.B. Edimax EW-7811Un (ok, der ist &amp;quot;etwas&amp;quot; alt und wohl nicht mehr erhältlich -&amp;gt; Alternative finden)&lt;br /&gt;
* Befestigungsmaterial:&lt;br /&gt;
** 5x M3x35 Senkkopf (DIN7991) + Muttern&lt;br /&gt;
** 4x M3x8&lt;br /&gt;
** 3x M4x30 + Muttern + Beilagscheiben&lt;br /&gt;
** 3 Spacer für M4 (Länge ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* 2 Sperrholzbretter (Abmessungen ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* Dickeres 2-adriges Kabel zur Stromversorgung, z.B. Lautsprecherkabel, minimum 1.5mm^2&lt;br /&gt;
* Bei Verwendung neuer Motortreiber (prinzipiell optional, aber empfohlen):&lt;br /&gt;
** 4x (bzw. 5x bei Dual-Extruder) StepStick-kompatible Motortreiber, z.B. TMC2209 oder TMC2226 (letztere laufen etwas effizienter, also kühler)&lt;br /&gt;
** 3x JST-XH Steckergehäuse 3 Pin (für die Endschalter-Kabel)&lt;br /&gt;
** Teilumrüstungen sind möglich, Endschalter und zugehöriger Stepper sollten aber auf dem selben Board sein&lt;br /&gt;
&lt;br /&gt;
== SD-Karte mit Linux vorbereiten ==&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Mechanische und elektronische Installation ==&lt;br /&gt;
&lt;br /&gt;
Muss noch ausgearbeitet werden, erstmal nur Stichpunkte für mich zur Erinnerung:&lt;br /&gt;
&lt;br /&gt;
* Sperrholzbretter vorbereiten als &amp;quot;Adapter&amp;quot;&lt;br /&gt;
* Erdungskabel versetzen&lt;br /&gt;
* Altes Mainboard versetzen&lt;br /&gt;
* Stromkabel an neues Mainboard und Netzteil&lt;br /&gt;
* SD-Karten einstecken&lt;br /&gt;
* WLAN-Stick einstecken (Welcher Slot!?)&lt;br /&gt;
* Neues Mainboard installieren&lt;br /&gt;
* Endschalter-Kabel auf 3-Pin-Gehäuse umbauen und aufstecken&lt;br /&gt;
* Stepper-Treiber einstekcen&lt;br /&gt;
* Stepper-Kabel einstecken&lt;br /&gt;
* USB-Kabel installieren&lt;br /&gt;
&lt;br /&gt;
== Software Installation ==&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Cura Verbindung und Startcode ==&lt;br /&gt;
&lt;br /&gt;
* Plugin aus Cura Marketplace: Connect Moonraker&lt;br /&gt;
* Optional: Startcode-Macros und Material Settings Plugin&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1180</id>
		<title>Klipper MKS SKIPR</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper_MKS_SKIPR&amp;diff=1180"/>
		<updated>2023-07-01T10:19:13Z</updated>

		<summary type="html">&lt;p&gt;Mhier: Die Seite wurde neu angelegt: „Hinweis: Diese Seite befindet sich noch im Aufbau!  ----  = Anleitung zum Einrichten von Klipper mit einem Makerbase SKR PI Board =  Das Makerbase SKR PI Board…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hinweis: Diese Seite befindet sich noch im Aufbau!&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Anleitung zum Einrichten von Klipper mit einem Makerbase SKR PI Board =&lt;br /&gt;
&lt;br /&gt;
Das Makerbase SKR PI Board ist ein Drucker-Mainboard, bei dem sozusagen der Raspberry Pi bereits integriert ist. Da es sich nicht um einen Original-Raspberry-Pi handelt, sondern um einen vergleichbaren, aber eben etwas anderen Einplatinen-Computer, wird dieser künftig schlicht mit &amp;quot;Pi&amp;quot; bezeichnet. Auf dem Mainboard befindet sich ebenfalls ein Microcontroller, welcher im folgenden als MCU bezeichnet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Teileliste ==&lt;br /&gt;
&lt;br /&gt;
* Ein Renkforce RF1000, RF2000 oder RF2000v2 mit funktionierendem Original-Mainboard (das kann auch komplett ersetzt werden z.B. bei einem Defekt, dies wird aber zunächst nicht in dieser Anleitung behandelt)&lt;br /&gt;
* Makerbase SKR PI Board&lt;br /&gt;
* Zwei Micro-SD-Karten: Eine, um das Linux-Betriebssystem für den Pi zu speichern sowie alle Nutzerdaten. Die zweite wird lediglich für das Firmware-Update der MCU benötigt (sollte aber idealerweise dauerhaft im Gerät verbleiben).&lt;br /&gt;
* Ein ziemlich kurzes USB-Kabel vom Type USB A auf USB B, wie es auch zum Anschluss des originalen Mainboards an einen Computer benutzt wird.&lt;br /&gt;
* WLAN-Stick, möglichst klein, z.B. Edimax EW-7811Un (ok, der ist &amp;quot;etwas&amp;quot; alt und wohl nicht mehr erhältlich -&amp;gt; Alternative finden)&lt;br /&gt;
* Befestigungsmaterial:&lt;br /&gt;
** 5x M3x35 Senkkopf (DIN7991) + Muttern&lt;br /&gt;
** 4x M3x8&lt;br /&gt;
** 3x M4x30 + Muttern + Beilagscheiben&lt;br /&gt;
** 3 Spacer für M4 (Länge ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* 2 Sperrholzbretter (Abmessungen ??? -&amp;gt; Muss ich noch nachmessen!)&lt;br /&gt;
* Dickeres 2-adriges Kabel zur Stromversorgung, z.B. Lautsprecherkabel, minimum 1.5mm^2&lt;br /&gt;
* Bei Verwendung neuer Motortreiber (prinzipiell optional, aber empfohlen):&lt;br /&gt;
** 4x (bzw. 5x bei Dual-Extruder) StepStick-kompatible Motortreiber, z.B. TMC2209 oder TMC2226 (letztere laufen etwas effizienter, also kühler)&lt;br /&gt;
** 3x JST-XH Steckergehäuse 3 Pin (für die Endschalter-Kabel)&lt;br /&gt;
** Teilumrüstungen sind möglich, Endschalter und zugehöriger Stepper sollten aber auf dem selben Board sein&lt;br /&gt;
&lt;br /&gt;
== SD-Karte mit Linux vorbereiten ==&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Mechanische und elektronische Installation ==&lt;br /&gt;
&lt;br /&gt;
Muss noch ausgearbeitet werden, erstmal nur Stichpunkte für mich zur Erinnerung:&lt;br /&gt;
&lt;br /&gt;
* Sperrholzbretter vorbereiten als &amp;quot;Adapter&amp;quot;&lt;br /&gt;
* Erdungskabel versetzen&lt;br /&gt;
* Altes Mainboard versetzen&lt;br /&gt;
* Stromkabel an neues Mainboard und Netzteil&lt;br /&gt;
* SD-Karten einstecken&lt;br /&gt;
* WLAN-Stick einstecken (Welcher Slot!?)&lt;br /&gt;
* Neues Mainboard installieren&lt;br /&gt;
* Endschalter-Kabel auf 3-Pin-Gehäuse umbauen und aufstecken&lt;br /&gt;
* Stepper-Treiber einstekcen&lt;br /&gt;
* Stepper-Kabel einstecken&lt;br /&gt;
* USB-Kabel installieren&lt;br /&gt;
&lt;br /&gt;
== Software Installation ==&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Cura Verbindung ==&lt;br /&gt;
&lt;br /&gt;
* Plugin aus Cura Marketplace: Connect Moonraker&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1175</id>
		<title>Klipper</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1175"/>
		<updated>2021-12-08T15:49:15Z</updated>

		<summary type="html">&lt;p&gt;Mhier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Klipper]]&lt;br /&gt;
&lt;br /&gt;
Klipper ist eine Firmware für 3D Drucker. Diese kann alternativ zu der Repetier-basierten Original-Firmware von Conrad oder der auf dieser Original-Firmware basierenden Community-Version auf den Druckern RF1000, RF2000 oder RF2000v2 verwendet werden. Die dafür nötige Konfiguration ist für die Drucker RF2000 und RF2000v2 noch nicht vollständig. '''Für den RF1000 ist die Konfiguration abgeschlossen und wird seit knapp einem Jahr bereits produktiv eingesetzt zum Drucken und Fräsen.''' Für die anderen Drucker werden Tester gesucht, die bereit sind, die Konfiguration an das jeweilige Modell anzupassen und beizusteuern.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Klipper ist gut dokumentiert auf seiner Webseite, allerdings nur in Englisch: [https://www.klipper3d.org https://www.klipper3d.org]&lt;br /&gt;
&lt;br /&gt;
Das Grundprinzip weicht von der Repetier-basierten Firmware und anderen 3D-Drucker-Firmwares deutlich ab. Statt alle Berechnungen im Microcontroller (im Folgenden MCU genannt) des Druckers auszuführen, werden zeitintensive Berechnungen auf einem Host-System durchgeführt. Als Host-System eignet sich z.B. ein Raspberry Pi oder auch ein herkömmlicher Linux-PC. Auf dem selben Host-System kann (bzw. sollte) auch Octoprint o.ä. ausgeführt werden. Wer also bereits Octoprint etc. nutzt, benötigt keine weitere Hardware.&lt;br /&gt;
&lt;br /&gt;
Da die zur Verfügung stehende Rechenpower so um Größenordnungen höher ist, können deutlich präzisere Berechnungen durchgeführt werden. Die Motoren laufen spürbar ruhiger, und höhere Schrittfrequenzen sind ebenfalls problemlos möglich. Außerdem ist eine höhere Flexibilität möglich. Auch ohne Programmierkenntnisse kann das Verhalten der Firmware über Konfigurations-Dateien beeinflusst werden, sogar neue G-Codes können so eingeführt werden. Die Firmware ist größtenteils in Python geschrieben und sehr modular gehalten, wodurch die Einstiegshürde für Entwickler sehr viel geringer ist.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
Was schon funktioniert:&lt;br /&gt;
* Natürlich alle Grundfunktionen, die jeder normale Drucker hat (Bewegen, Heizen, Lüfter etc.)&lt;br /&gt;
** Dokumentation der unterstützten G-Codes: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
* Heizbett-Scan: heißt bei Klipper Bed Mesh Leveling&lt;br /&gt;
** Es lassen sich beliebig viele benannte Meshes (entspricht den Matrizen) speichern&lt;br /&gt;
** Es gibt kein Software-Limit wie groß die Werte im Mesh werden dürfen&lt;br /&gt;
** Interpolation zwischen den Punkten des Meshes ist deutlich besser, daher sollten weniger Punkte ausreichen&lt;br /&gt;
* Z-Offset-Scan&lt;br /&gt;
** Korrigiert nicht mehr die Matrix/das Mesh, sondern kalibriert die Z-Koordinate des Z-Endstop.&lt;br /&gt;
** Ebenfalls keinerlei Software-Limit auf den Wert des &amp;quot;Offsets&amp;quot;.&lt;br /&gt;
** Homing gegen Z-Max ist problemlos ebenfalls möglich.&lt;br /&gt;
* Menü (im Original-Zustand von Klipper, daher noch etwas rudimentär vielleicht): die Bedienlogik ist etwas anders&lt;br /&gt;
** Die Nach-Rechts-Taste wird eigentlich nicht gebraucht und wurde daher als Not-Aus umfunktioniert.&lt;br /&gt;
** Die Tasten zum Bewegen des Heizbetts und des Extruders fahren in vorgegebenen Schritten. Gedrückthalten für längere Fahrten ist nicht möglich (Einschränkung in Klipper).&lt;br /&gt;
* Pause und Fortsetzen über Tasten (funktioniert evtl. nur mit Octoprint?)&lt;br /&gt;
* Sense offset&lt;br /&gt;
* Emergency Stop (bei zu hohem Druck auf die Wägezellen), funktioniert nur während eines Z-Scans.&lt;br /&gt;
* Kanten antasten in X/Y (Fräsen)&lt;br /&gt;
&lt;br /&gt;
Was fehlt:&lt;br /&gt;
* Konfigurationen für den RF2000 und RF2000v2 (für RF2000v2 single extruder ist eine Konfiguration vorhanden, muss aber geupdated werden)&lt;br /&gt;
* Sagt ihr es mir!&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Eine Ausführliche Installationsanleitung gibt es auf der Webseite: [https://www.klipper3d.org/Installation.html https://www.klipper3d.org/Installation.html]&lt;br /&gt;
&lt;br /&gt;
Eine Installationsanleitung für Klipper auf dem PC gibt es hier: [[Klipper auf PC]]&lt;br /&gt;
&lt;br /&gt;
Da die nötigen Modifikationen und Beispielkonfigurationen noch nicht Teil der offiziellen Klipper-Firmware sind, muss der folgende Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/Klipper3d/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
durch diesen ersetzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/RF1000community/Klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem gibt es bereits eine Konfigurations-Datei für den RF1000. Ich würde daher empfehlen, die Konfigurations-Datei printer.cfg mit folgendem Inhalt zu erstellen:&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf1000.cfg]&lt;br /&gt;
&lt;br /&gt;
[mcu]&lt;br /&gt;
serial: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_&amp;lt;hier_richtige_ID_einfügen&amp;gt;-port0&lt;br /&gt;
&lt;br /&gt;
[stepper_z]&lt;br /&gt;
position_endstop: 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dadurch wird der Inhalt von klipper/config/printer-rf1000.cfg benutzt, aber alle folgenden Einstellungen überschreiben ggf. bereits vorhandene Einstellungen aus der printer-rf1000.cfg Datei. Die Angabe des position_endstop für die Z-Achse ist nötig, da diese durch den Z-Offset-Scan überschrieben wird, was nur funktioniert, wenn diese Angabe direkt in der printer.cfg gemacht wird (nicht im Include).&lt;br /&gt;
&lt;br /&gt;
Nach der Installation bitte unbedingt die Anleitung zum Prüfen der Konfiguration befolgen:&lt;br /&gt;
https://www.klipper3d.org/Config_checks.html&lt;br /&gt;
&lt;br /&gt;
Es ist ebenfalls empfehlenswert, die Konfiguration auf diese Weise nach jedem Update zu prüfen, weil durch das [include] Änderungen aus der Konfigurationsdatei automatisch übernommen werden.&lt;br /&gt;
&lt;br /&gt;
=== Octoprint ===&lt;br /&gt;
&lt;br /&gt;
Die Installationsanleitung geht von einer Octoprint Installation aus.&lt;br /&gt;
&lt;br /&gt;
=== Repetierserver ===&lt;br /&gt;
&lt;br /&gt;
Man kann auf einem normalen RasPi Installation zuerst Repetier-Server aufsetzen und dann erst Klipper. Die Verbindung von Repetier-Server zu Klipper funktioniert aber nicht, da die beiden Programme unter verschiedenen Benutzern arbeiten und die Standard Serial-Emulation das Problem nicht lösen kann.&lt;br /&gt;
&lt;br /&gt;
Abhilfe: (Siehe [Repetier-Server Knowledgebase https://www.repetier-server.com/knowledgebase/klipper/])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/lib/klipper&lt;br /&gt;
sudo chmod 777 /var/lib/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und dann die Änderung in den Einstellungen von Klipper bekannt machen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/defaults/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dort die Zeile am Ende zu &amp;lt;pre&amp;gt;KLIPPY_ARGS=&amp;quot;/home/pi/klipper/klippy/klippy.py /home/pi/printer.cfg -l /tmp/klippy.log -I /var/lib/klipper/connect&amp;quot;&amp;lt;/pre&amp;gt; ergänzen. Anschliessend das Service von Klipper neu starten. Damit kann man sich in Repetier-Server mit Gerät/Port /var/lib/klipper/connect verbinden.&lt;br /&gt;
&lt;br /&gt;
Repetierserver älter als 0.99.4: Bei den Befehlen muss man ein Raute Zeichen # voranstellen, damit es richtig von Repetier-Server weitergegeben wird. Ist bei Version 1.x und besser nicht mehr der Fall.&lt;br /&gt;
&lt;br /&gt;
== Klipper Befehle ==&lt;br /&gt;
&lt;br /&gt;
Klipper unterstützt natürlich alle gängigen G-Code-Befehle, die die Slicer erzeugen. Es wird allgemein empfohlen, den Slicer auf &amp;quot;Marlin&amp;quot; oder &amp;quot;Smoothieware&amp;quot; zu stellen (sofern keine direkte Unterstützung für Klipper vorhanden ist). &lt;br /&gt;
Für erweiterte G-Code-Befehle verfolgt Klipper eine etwas andere Philosophie als andere Firmwares: Statt kryptische M-Befehle zu erdenken, werden sprechende Namen benutzt. Gleiches gilt für die Parameter, die üblicherweise die Form &amp;quot;NAME=Wert&amp;quot; haben. Groß- und Kleinschreibung spielt keine Rolle.&lt;br /&gt;
&lt;br /&gt;
Es ist möglich, mittels Macros eigene G-Code-Befehle zu definieren. Das funktioniert über die Konfiguration und ist in [https://github.com/KevinOConnor/klipper/blob/master/config/example-extras.cfg#L395 example-extras.cfg] im Abschnitt &amp;quot;[gcode_macro my_cmd]&amp;quot; dokumentiert. Dadurch könnte man sich z.B. seinen Start-Code statt im Slicer in der Konfiguration definieren (und so auch leichter ändern, ohne neu slicen zu müssen), oder Befehle, die von Klipper nicht unterstützt aber durch den Slicer erzeugt werden, implementieren.&lt;br /&gt;
&lt;br /&gt;
Siehe [[Klipper_GCodes]] mit der Übersicht der GCodes die von Klipper verstanden werden, auch mit den Erweiterungen die im Repository von rf1000.de enthalten sind.&lt;br /&gt;
Original-Dokumentation: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
&lt;br /&gt;
Hinweis: Einige der dort beschriebenen Befehle sind nur aktiv, wenn bestimmte Module geladen sind. Daher gehen manche Befehle nicht, es sei denn, das Modul wird über die Konfiguration eingeschaltet.&lt;br /&gt;
&lt;br /&gt;
=== Reset ===&lt;br /&gt;
Einen Reset von Klipper, das auch die Firmware zurücksetzt führt man mit dem Kommando &lt;br /&gt;
&amp;lt;pre&amp;gt;FIRMWARE_RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
durch. Dabei wird auch die printer.cfg neu eingelesen. Bei Problemen in der printer.cfg kann es sein, das ein Klipper: Disconnect erscheint. Dann läuft Klipper nicht und man darf den Fehler suchen.&lt;br /&gt;
&lt;br /&gt;
Mit dem GCode M112 wird Klipper einfach heruntergefahren und man muss sich neu verbinden.&lt;br /&gt;
&lt;br /&gt;
Möchte man nur die printer.cfg neu laden, genügt der Befehl&lt;br /&gt;
&amp;lt;pre&amp;gt;RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PID durchführen ===&lt;br /&gt;
Für den Hotend 1&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=extruder TARGET=210&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für das Heizbett&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=heater_bed TARGET=60&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Daten werden mit SAVE_CONFIG abgespeichert.&lt;br /&gt;
&lt;br /&gt;
=== Z Offset ===&lt;br /&gt;
Um den Z-Offset bzw. die Z-Position des Endschalters zu kalibrieren, gibt es das Macro&lt;br /&gt;
&amp;lt;pre&amp;gt;Z_CALIBRATE&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies führt einen Scan an der Position x=100,y=100 durch. Wichtig ist, dass die Position des Endschalters schon so weit bekannt sein muss, dass Z=2mm zuverlässig '''über''' dem Bett liegt (nicht zu weit, sonst dauert der Scan zu lange), denn diese Position wird vor dem Scan angefahren.&lt;br /&gt;
&lt;br /&gt;
Wenn man testen möchte, ob der Scan zuverlässig funktioniert, kann dieser Befehl benutzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;PROBE_ACCURACY&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das führt dann an der aktuellen XY Position 10 mal einen Z-Scan durch und bestimmt Mittelwert und Standardabweichung etc. Standardabweichung ist also in unteren bis mitteleren einstelligen Mikrometerbereich, der &amp;quot;Maximalfehler&amp;quot; (range) besser als 1/100mm. [https://www.rf1000.de/viewtopic.php?f=7&amp;amp;t=2610&amp;amp;start=60 Mehr Info zu PROBE_ACCURACY siehe Post Nr 62]&lt;br /&gt;
&lt;br /&gt;
=== Bed Mesh Kalibration durchführen ===&lt;br /&gt;
Zum kalibrieren des Bed Mesh (Äquivalent zum Heat Bed Scan der Repetier-Firmware) wird folgendes Macro empfohlen:&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_CALIBRATE&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies führt zunächst ein Z_CALIBRATE durch (ebenfalls an x=100,y=100). Anschließend wird das Bett im Raster vermessen. Die Konfiguration wird am Ende automatisch gespeichert (was zu einem Firmware-Neustart führt).&lt;br /&gt;
&lt;br /&gt;
Dadurch, dass zuerst ein Z_CALIBRATE durchgeführt wird, kann anschließend jederzeit ein Z_CALIBRATE genutzt werden, um z.B. nach einem Düsenwechsel den Abstand zwischen Bett und Düse neu zu kalibrieren, ohne dass ein vollständiger Bed Mesh Scan nötig wäre. Wichtig dafür ist, dass die beiden Z_CALIBRATEs an der selben X/Y-Position ausgeführt werden (deshalb ist diese Position im Macro festgelegt).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_OUTPUT&amp;lt;/pre&amp;gt;&lt;br /&gt;
gibt das aktuelle Mesh aus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_CLEAR&amp;lt;/pre&amp;gt;&lt;br /&gt;
setzt alle Werte des aktuellen Meshes auf 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_PROFILE LOAD=&amp;lt;name&amp;gt; SAVE=&amp;lt;name&amp;gt; REMOVE=&amp;lt;name&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
erlaut das Mesh zu speichern, zu laden, oder ein gespeichertes Mesh zu löschen.&lt;br /&gt;
&lt;br /&gt;
Übrigens kann das Mesh mit OctoPrint visualisiert werden, wenn man sich das Bed Visualizer Plugin installiert.&lt;br /&gt;
&lt;br /&gt;
=== Positionen Abfragen ===&lt;br /&gt;
Damit sieht man die aktuellen Positionen in den verschiedenen Koorinaten-Systeme. Beispiel nach &amp;quot;G1 Z0&amp;quot; auf der Position X=57.5 und Y=50.0&lt;br /&gt;
&amp;lt;pre&amp;gt;Send:16:32:28.975: #GET_POSITION&lt;br /&gt;
Recv:16:32:28.976: // mcu: stepper_x:2 stepper_y:-50 stepper_z:2499&lt;br /&gt;
Recv:16:32:28.976: // stepper: stepper_x:57.500625 stepper_y:49.999688 stepper_z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // kinematic: X:57.500625 Y:49.999688 Z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // toolhead: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode base: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode homing: X:0.000000 Y:0.000000 Z:0.000000&lt;br /&gt;
Recv:16:32:28.976: ok&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man sollte man die Z-Koordinaten zwischen toolhead und kinematic vergleichen. Der Unterschied sollte genau die Korrektur aus dem Mesh-Leveling an dem Punkt sein. Andernfalls ist da irgendwo noch ein anderer Offset im Spiel.&lt;br /&gt;
&lt;br /&gt;
=== Speichern der Configuration ===&lt;br /&gt;
Mit dem Kommando save_config kann man die Änderungen, die durch die Abgleichfunktionen (PID, HBS, Z-Offset,...) ermittelt wurden, in der Konfigurationsdatei abspeichern:&lt;br /&gt;
&amp;lt;pre&amp;gt;SAVE_CONFIG&amp;lt;/pre&amp;gt;&lt;br /&gt;
Danach startet die Firmware neu, und es muss neu gehomed werden.&lt;br /&gt;
&lt;br /&gt;
== Konfigurationsdatei ==&lt;br /&gt;
=== Basiskonfigurationen ===&lt;br /&gt;
Im Verzeichnis von Klipper stehen unter /config die verschiedenen Konfigurationsdateien für Klipper. Aktuell ist für den RF1000 und den RF2000V2 mit Single Extruder eine Konfigurationsdatei vorhanden. Diese Konfigurationsdateien sollte man dort belassen und auch nicht ändern. &lt;br /&gt;
&lt;br /&gt;
=== Eigene printer.cfg ===&lt;br /&gt;
Bei Klipper verwendet man am besten eine eigene printer.cfg, die nicht einfach von einer Vorlage kopiert wird, sondern die die Vorlage ergänzt, ändert und erweitert.&lt;br /&gt;
&lt;br /&gt;
In der printer.cfg steht am Anfang normalerseise immer der Basisdrucker, von dem die aktuelle Konfiguration abgeleitet wird. Wie alle Parametergruppen wird das ganze von eckigen Klammern [] umschlossen.&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf2000v2-single.cfg]&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dannach kann man dann seine geänderten oder neue Parameter hinzufügen. Das folgende ist aus einer Konfiguration für den RF2000V2 single. Zuerst wird der maximale Fahrweg in X und Y anders definiert und anschliessend für Z die Werte angepasst. Dannach kommt die Konfiguration für den HBS.&lt;br /&gt;
&amp;lt;pre&amp;gt;[stepper_x]&lt;br /&gt;
position_max: 210&lt;br /&gt;
&lt;br /&gt;
[stepper_y]&lt;br /&gt;
position_max: 290&lt;br /&gt;
&lt;br /&gt;
[stepper_z]&lt;br /&gt;
position_min: -2.0&lt;br /&gt;
position_max: 185&lt;br /&gt;
&lt;br /&gt;
[bed_mesh]&lt;br /&gt;
speed: 30&lt;br /&gt;
horizontal_move_z: 2&lt;br /&gt;
mesh_min: 10,50&lt;br /&gt;
mesh_max: 200,230&lt;br /&gt;
algorithm:lagrange&lt;br /&gt;
probe_count: 5,5&lt;br /&gt;
fade_start: 1.0&lt;br /&gt;
fade_end: 10.0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach den Parametern kann man sich auch Makros definieren. In dem Beispiel ein Markro zum Auswurf des Objektes, das man einfach mit OUTPUT_OBJECT aufrufen kann.&lt;br /&gt;
&amp;lt;pre&amp;gt;[gcode_macro OUTPUT_OBJECT]&lt;br /&gt;
gcode:&lt;br /&gt;
	G90&lt;br /&gt;
	#G1 Z180	F540&lt;br /&gt;
	G1 Z80	F540&lt;br /&gt;
	G1 Y245 F4800&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als letzte Abschnitt kommen die gespeicherten - durch SAVE_CONFIG - Parameter und Werte. Diese NICHT selbst verändern, sondern immer nur durch das Programm.&lt;br /&gt;
&amp;lt;pre&amp;gt;#*# &amp;lt;---------------------- SAVE_CONFIG ----------------------&amp;gt;&lt;br /&gt;
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.&lt;br /&gt;
#*#&lt;br /&gt;
#*# [extruder]&lt;br /&gt;
#*# control = pid&lt;br /&gt;
#*# pid_kp = 33.373&lt;br /&gt;
#*# pid_ki = 2.060&lt;br /&gt;
#*# pid_kd = 135.160&lt;br /&gt;
#*#&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper_auf_PC&amp;diff=1174</id>
		<title>Klipper auf PC</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper_auf_PC&amp;diff=1174"/>
		<updated>2021-12-08T15:32:49Z</updated>

		<summary type="html">&lt;p&gt;Mhier: /* Schritt C: Klipper installieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Achtung: Diese Anleitung befindet sich noch im Entstehen!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Es gibt prinzipiell 3 realistische Möglichkeiten, die je nach Einsatz ihre Vor- und Nachteile haben:&lt;br /&gt;
&lt;br /&gt;
1. Einen auch sonst genutzen PC mittels USB-Stick mit Linux booten. Das taugt für gelegentliches Nutzen, der PC ist dann aber weitgehend blockiert für andere Aufgaben (naja, nen Browser kann man schon noch benutzen). Insbesondere der Zugriff auf Windows-Dateien ist evtl. nicht oder nur eingeschränkt möglich. Wenn das der PC ist, mit dem man auch sliced, wird das schnell lästig ;-)&lt;br /&gt;
&lt;br /&gt;
2. Linux in Virtueller Maschine installieren. Im Gegensatz zur Lösung 1 kann der PC im Prinzip weiter genutzt werden, wobei dringend Vorsicht angebracht ist während gedruckt wird. Wenn Klipper nicht genügend Rechenleistung abbekommt für einen Moment, kann das einem den Druck versauen. Für erste Tests wird es alle Male reichen. Ich habe diese Lösung allerdings nicht selbst getestet.&lt;br /&gt;
&lt;br /&gt;
3. Einen ausrangierten PC mit Linux neu installieren. Den ausrangierten PC muss man natürlich haben, evtl. kann man was günstig auf E-Bay gebraucht bekommen. Diese Lösung taugt gut als permanenter Einsatz, wenn man aus irgendwelchen Gründen keinen Raspberry Pi nutzen kann/möchte. Monitor und Tastatur muss nicht zwingen angeschlossen sein außer zum Setup.&lt;br /&gt;
&lt;br /&gt;
Alle drei Möglichkeiten setzen ein relativ ähnliches Vorgehen voraus:&lt;br /&gt;
&lt;br /&gt;
A. Linux auf das jeweilige Medium installieren.&amp;lt;br/&amp;gt;&lt;br /&gt;
B. OctoPrint installieren.&amp;lt;br/&amp;gt;&lt;br /&gt;
C. Klipper installieren.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Schritt A: Linux installieren ==&lt;br /&gt;
&lt;br /&gt;
Für alle drei Lösungen muss man sich erstmal ein Ubuntu-ISO-Image herunterladen. Das geht hier:&lt;br /&gt;
https://ubuntu.com/#download&lt;br /&gt;
&lt;br /&gt;
Je nachdem, ob man hinterher eine graphische Oberfläche haben möchte (Lösungen 1 und 2) oder nicht (Lösung 3) wählt man &amp;quot;Ubuntu Desktop&amp;quot; oder &amp;quot;Ubuntu Server&amp;quot;. Ubuntu Desktop ist deutlich umfangreicher, während Ubuntu Server weniger Platz und Download-Kapazitäten benötigt. In jedem Fall kann man aber später auch noch die Desktop-Pakete nachinstallieren bzw. den Fernzugriff aktivieren und die grafische Oberfläche ignorieren. Diese Entscheidung ist also nicht endgültig, macht aber hinterher einiges leichter.&lt;br /&gt;
&lt;br /&gt;
Für die Lösungen 1 und 3 benötigt man einen bootfähigen USB-Stick. Dafür gibt es eine Anleitung hier:&lt;br /&gt;
https://ubuntu.com/tutorials/create-a-usb-stick-on-windows#1-overview&lt;br /&gt;
&lt;br /&gt;
=== Weiteres Vorgehen für Lösung 1: USB-Stick ===&lt;br /&gt;
&lt;br /&gt;
Der USB-Stick sollte direkt bootfähig sein. Wenn man davon bootet, wird man gefragt, ob man Ubuntu installieren oder ausprobieren möchte. Man wählt hier erst deutsch als Sprache und dann &amp;quot;Ubuntu ausprobieren&amp;quot;, dann wird Ubuntu gebootet. Da USB-Sticks langsam sind, dauert das ne Ecke länger als bei einer richtigen Installation, vor allem beim ersten Mal ;-)&lt;br /&gt;
&lt;br /&gt;
=== Weiteres Vorgehen für Lösung 2: Virtuelle Maschine ===&lt;br /&gt;
&lt;br /&gt;
1. VirtualBox herunterladen und installieren (https://www.virtualbox.org/)&lt;br /&gt;
&lt;br /&gt;
2. VirtualBox starten&lt;br /&gt;
&lt;br /&gt;
3. Neue VM anlegen (blauen Stern &amp;quot;Neu&amp;quot; aklicken)&lt;br /&gt;
&lt;br /&gt;
4. Name aussuchen, Typ &amp;quot;Linux&amp;quot;, Version &amp;quot;Ubuntu (64-bit)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. RAM-Größe auswählen: Das hängt davon ab, wie viel RAM euer PC hat. Nehmt die Hälfte, wobei 1GB eher knapp sind und mehr als 4GB eher keinen Sinn machen. Lässt sich hinterher noch leicht ändern.&lt;br /&gt;
&lt;br /&gt;
6. Neue Virtuelle Festplatte erzeugen, als VDI (VrtualBox Disk Image), dynamisch alloziert, Größe z.B. 100 GB. Diese Größe lässt sich hinterher schlecht erweitern, aber die 100 GB werden nicht sofort komplett reserviert (da dynamisch alloziert). Dadurch sollte man immer eine deutlich zu große Größe wählen. Es kommt nicht so drauf an, aber 10 GB wie vorausgewählt sind definitiv arg knapp.&lt;br /&gt;
&lt;br /&gt;
7. Neue Virtuelle Maschine starten. Es popt ein Fenster auf, in dem das ISO-Image, das vorher herunter geladen wurde, ausgewählt werden sollte.&lt;br /&gt;
&lt;br /&gt;
8. Der Ubuntu installer sollte jetzt starten. &amp;quot;Install Ubuntu&amp;quot; wählen und einfach den weiteren Instruktionen folgen (Minimale Installation genügt). Keine Angst: Ubuntu kann euch nichts löschen, denn es läuft abgekapselt in eben einer Virtuellen Maschine. Daher ruhig mit den Voreinstellungen die gesamte Festplatte benutzen lassen, denn das ist nur die virtuelle Festplatte.&lt;br /&gt;
&lt;br /&gt;
9. Nach der Installation fällt auf, dass der dargestellte Bildschirm sehr klein ist. Um das zu verbessern, klickt ihr auf die 9 Punkte unten links und tippt &amp;quot;terminal&amp;quot; ein. Dann klickt ihr auf das dann erscheinende Symbol &amp;quot;Terminal&amp;quot;. Dort tippt ihr ein &amp;quot;sudo apt install virtualbox-guest-x11&amp;quot;. Nach Eingabe des Passworts bestätigt ihr mit &amp;quot;j&amp;quot;. Danach müsst ihr das System einmal neustarten -&amp;gt; Oben rechts auf das Ausschalt-Symbol, Ausschalten/Abmelden, Ausschalten..., Neu starten. Danach sollte sich der Inhalt an die Fenstergröße automatisch anpassen.&lt;br /&gt;
&lt;br /&gt;
=== Weiteres Vorgehen für Lösung 3: Ausrangierter PC ===&lt;br /&gt;
&lt;br /&gt;
Von USB-Stick booten. Sprache auf Deutsch und dann &amp;quot;Ubuntu Installieren&amp;quot; wählen und einfach den weiteren Instruktionen folgen (Minimale Installation genügt, ich empfehle die Installation von Software von Drittanbietern für Grafik-Hardware etc. zu aktivieren). Achtung: Am besten sollte die Festplatte keine wichtigen Daten mehr beinhalten. Dann kann einfach die gesamte Festplatte gelöscht und für Ubuntu verwendet werden. Das ist der einfachste Weg, daher bitte vorher alle Daten vond er Platte holen, damit hier kein Unglück passiert. (Bei einem *ausrangierten* PC gehe ich eigentlich davon aus, aber sicherheitshalber noch mal der Hinweis...)&lt;br /&gt;
&lt;br /&gt;
== Einschub: Linux benutzen ==&lt;br /&gt;
&lt;br /&gt;
So jetzt solltet ihr ein laufendes Linux-System haben. Wichtigstes Feature: Das Terminal, wo man Linux-Befehle eingeben kann. Dieses startet ihr, in dem ihr auf die 9 Punkte unten links und tippt &amp;quot;terminal&amp;quot; ein. Dann klickt ihr auf das dann erscheinende Symbol &amp;quot;Terminal&amp;quot;. Da wir dieses Terminal eigentlich ständig brauchen, empfehle ich, jetzt (wo das Terminal läuft) in der linken Leiste einmal mit rechts auf das Terminal-Icon zu klicken und &amp;quot;zu Favoriten hinzufügen&amp;quot; auszuwählen. Dadurch bleibt dieses Icon in der linken Leiste auch dann, wenn das Terminal geschlossen wird und ihr könnt es damit schnell neu öffnen.&lt;br /&gt;
&lt;br /&gt;
Fast alle Installationsanleitungen erfordern, dass dort Befehle eingegeben werden, nicht selten ohne das explizit zu erwähnen. Wenn also irgendwo Linux-Befehle auftauchen, gehören die hier rein.&lt;br /&gt;
&lt;br /&gt;
Eine kleine Übericht über die wichtigsten Befehle findet ihr hier: https://www.pcwelt.de/ratgeber/Die_10_wichtigsten_Linux-Befehle_fuer_Einsteiger-Kommandozeile_alias_Terminal-8858519.html&lt;br /&gt;
&lt;br /&gt;
Ab jetzt sollten sich alle drei Lösungen weitgehend gleich verhalten, bis auf ein Trick, der für die Virtuelle Maschine nötig ist, dazu später mehr.&lt;br /&gt;
&lt;br /&gt;
== Schritt B: OctoPrint installieren. ==&lt;br /&gt;
&lt;br /&gt;
Eine Installationsanleitung gibt es hier:&lt;br /&gt;
https://community.octoprint.org/t/setting-up-octoprint-on-a-raspberry-pi-running-raspbian-or-raspberry-pi-os/2337&lt;br /&gt;
&lt;br /&gt;
Die ist zwar für Raspbian gedacht, aber unser Ubuntu ist ausreichend ähnlich. Beim Schritt mit &amp;quot;usermod&amp;quot;, wo der Nutzer in Gruppen hinzugefügt wird, müsst ihr allerdings den Benutzernamen &amp;quot;pi&amp;quot; durch den ersetzen, den ihr euch bei der Installation ausgesucht habt.&lt;br /&gt;
&lt;br /&gt;
Die Anleitung ist unnötig lang - ihr braucht das nur bis einschließlich &amp;quot;Automatic start up&amp;quot; zu befolgen. Für Testzwecke genügt es sogar, OctoPrint immer manuell zu starten, also ist auch der Schritt optional.&lt;br /&gt;
&lt;br /&gt;
== Schritt C: Klipper installieren ==&lt;br /&gt;
&lt;br /&gt;
Hier kann man jetzt wieder der eigentlichen Anleitung auf der Seite [[Klipper]] folgen.&lt;br /&gt;
&lt;br /&gt;
Im Fall der Virtuellen Maschine muss man noch dafür sorgen, dass die USB-Verbindung in die Virtuelle Maschine hindurch gereicht wird. Dazu klickt man unten rechts auf das Symbol mit dem blauen USB-Stecker und wählt dort das richtige Gerät aus. Wenn ihr nicht wisst, welches das ist, einfach mal den Stecker ziehen und schauen, welches dann nicht mehr dort aufgeführt wird...&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper_auf_PC&amp;diff=1173</id>
		<title>Klipper auf PC</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper_auf_PC&amp;diff=1173"/>
		<updated>2021-12-08T15:30:58Z</updated>

		<summary type="html">&lt;p&gt;Mhier: /* Einschub: Linux benutzen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Achtung: Diese Anleitung befindet sich noch im Entstehen!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Es gibt prinzipiell 3 realistische Möglichkeiten, die je nach Einsatz ihre Vor- und Nachteile haben:&lt;br /&gt;
&lt;br /&gt;
1. Einen auch sonst genutzen PC mittels USB-Stick mit Linux booten. Das taugt für gelegentliches Nutzen, der PC ist dann aber weitgehend blockiert für andere Aufgaben (naja, nen Browser kann man schon noch benutzen). Insbesondere der Zugriff auf Windows-Dateien ist evtl. nicht oder nur eingeschränkt möglich. Wenn das der PC ist, mit dem man auch sliced, wird das schnell lästig ;-)&lt;br /&gt;
&lt;br /&gt;
2. Linux in Virtueller Maschine installieren. Im Gegensatz zur Lösung 1 kann der PC im Prinzip weiter genutzt werden, wobei dringend Vorsicht angebracht ist während gedruckt wird. Wenn Klipper nicht genügend Rechenleistung abbekommt für einen Moment, kann das einem den Druck versauen. Für erste Tests wird es alle Male reichen. Ich habe diese Lösung allerdings nicht selbst getestet.&lt;br /&gt;
&lt;br /&gt;
3. Einen ausrangierten PC mit Linux neu installieren. Den ausrangierten PC muss man natürlich haben, evtl. kann man was günstig auf E-Bay gebraucht bekommen. Diese Lösung taugt gut als permanenter Einsatz, wenn man aus irgendwelchen Gründen keinen Raspberry Pi nutzen kann/möchte. Monitor und Tastatur muss nicht zwingen angeschlossen sein außer zum Setup.&lt;br /&gt;
&lt;br /&gt;
Alle drei Möglichkeiten setzen ein relativ ähnliches Vorgehen voraus:&lt;br /&gt;
&lt;br /&gt;
A. Linux auf das jeweilige Medium installieren.&amp;lt;br/&amp;gt;&lt;br /&gt;
B. OctoPrint installieren.&amp;lt;br/&amp;gt;&lt;br /&gt;
C. Klipper installieren.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Schritt A: Linux installieren ==&lt;br /&gt;
&lt;br /&gt;
Für alle drei Lösungen muss man sich erstmal ein Ubuntu-ISO-Image herunterladen. Das geht hier:&lt;br /&gt;
https://ubuntu.com/#download&lt;br /&gt;
&lt;br /&gt;
Je nachdem, ob man hinterher eine graphische Oberfläche haben möchte (Lösungen 1 und 2) oder nicht (Lösung 3) wählt man &amp;quot;Ubuntu Desktop&amp;quot; oder &amp;quot;Ubuntu Server&amp;quot;. Ubuntu Desktop ist deutlich umfangreicher, während Ubuntu Server weniger Platz und Download-Kapazitäten benötigt. In jedem Fall kann man aber später auch noch die Desktop-Pakete nachinstallieren bzw. den Fernzugriff aktivieren und die grafische Oberfläche ignorieren. Diese Entscheidung ist also nicht endgültig, macht aber hinterher einiges leichter.&lt;br /&gt;
&lt;br /&gt;
Für die Lösungen 1 und 3 benötigt man einen bootfähigen USB-Stick. Dafür gibt es eine Anleitung hier:&lt;br /&gt;
https://ubuntu.com/tutorials/create-a-usb-stick-on-windows#1-overview&lt;br /&gt;
&lt;br /&gt;
=== Weiteres Vorgehen für Lösung 1: USB-Stick ===&lt;br /&gt;
&lt;br /&gt;
Der USB-Stick sollte direkt bootfähig sein. Wenn man davon bootet, wird man gefragt, ob man Ubuntu installieren oder ausprobieren möchte. Man wählt hier erst deutsch als Sprache und dann &amp;quot;Ubuntu ausprobieren&amp;quot;, dann wird Ubuntu gebootet. Da USB-Sticks langsam sind, dauert das ne Ecke länger als bei einer richtigen Installation, vor allem beim ersten Mal ;-)&lt;br /&gt;
&lt;br /&gt;
=== Weiteres Vorgehen für Lösung 2: Virtuelle Maschine ===&lt;br /&gt;
&lt;br /&gt;
1. VirtualBox herunterladen und installieren (https://www.virtualbox.org/)&lt;br /&gt;
&lt;br /&gt;
2. VirtualBox starten&lt;br /&gt;
&lt;br /&gt;
3. Neue VM anlegen (blauen Stern &amp;quot;Neu&amp;quot; aklicken)&lt;br /&gt;
&lt;br /&gt;
4. Name aussuchen, Typ &amp;quot;Linux&amp;quot;, Version &amp;quot;Ubuntu (64-bit)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. RAM-Größe auswählen: Das hängt davon ab, wie viel RAM euer PC hat. Nehmt die Hälfte, wobei 1GB eher knapp sind und mehr als 4GB eher keinen Sinn machen. Lässt sich hinterher noch leicht ändern.&lt;br /&gt;
&lt;br /&gt;
6. Neue Virtuelle Festplatte erzeugen, als VDI (VrtualBox Disk Image), dynamisch alloziert, Größe z.B. 100 GB. Diese Größe lässt sich hinterher schlecht erweitern, aber die 100 GB werden nicht sofort komplett reserviert (da dynamisch alloziert). Dadurch sollte man immer eine deutlich zu große Größe wählen. Es kommt nicht so drauf an, aber 10 GB wie vorausgewählt sind definitiv arg knapp.&lt;br /&gt;
&lt;br /&gt;
7. Neue Virtuelle Maschine starten. Es popt ein Fenster auf, in dem das ISO-Image, das vorher herunter geladen wurde, ausgewählt werden sollte.&lt;br /&gt;
&lt;br /&gt;
8. Der Ubuntu installer sollte jetzt starten. &amp;quot;Install Ubuntu&amp;quot; wählen und einfach den weiteren Instruktionen folgen (Minimale Installation genügt). Keine Angst: Ubuntu kann euch nichts löschen, denn es läuft abgekapselt in eben einer Virtuellen Maschine. Daher ruhig mit den Voreinstellungen die gesamte Festplatte benutzen lassen, denn das ist nur die virtuelle Festplatte.&lt;br /&gt;
&lt;br /&gt;
9. Nach der Installation fällt auf, dass der dargestellte Bildschirm sehr klein ist. Um das zu verbessern, klickt ihr auf die 9 Punkte unten links und tippt &amp;quot;terminal&amp;quot; ein. Dann klickt ihr auf das dann erscheinende Symbol &amp;quot;Terminal&amp;quot;. Dort tippt ihr ein &amp;quot;sudo apt install virtualbox-guest-x11&amp;quot;. Nach Eingabe des Passworts bestätigt ihr mit &amp;quot;j&amp;quot;. Danach müsst ihr das System einmal neustarten -&amp;gt; Oben rechts auf das Ausschalt-Symbol, Ausschalten/Abmelden, Ausschalten..., Neu starten. Danach sollte sich der Inhalt an die Fenstergröße automatisch anpassen.&lt;br /&gt;
&lt;br /&gt;
=== Weiteres Vorgehen für Lösung 3: Ausrangierter PC ===&lt;br /&gt;
&lt;br /&gt;
Von USB-Stick booten. Sprache auf Deutsch und dann &amp;quot;Ubuntu Installieren&amp;quot; wählen und einfach den weiteren Instruktionen folgen (Minimale Installation genügt, ich empfehle die Installation von Software von Drittanbietern für Grafik-Hardware etc. zu aktivieren). Achtung: Am besten sollte die Festplatte keine wichtigen Daten mehr beinhalten. Dann kann einfach die gesamte Festplatte gelöscht und für Ubuntu verwendet werden. Das ist der einfachste Weg, daher bitte vorher alle Daten vond er Platte holen, damit hier kein Unglück passiert. (Bei einem *ausrangierten* PC gehe ich eigentlich davon aus, aber sicherheitshalber noch mal der Hinweis...)&lt;br /&gt;
&lt;br /&gt;
== Einschub: Linux benutzen ==&lt;br /&gt;
&lt;br /&gt;
So jetzt solltet ihr ein laufendes Linux-System haben. Wichtigstes Feature: Das Terminal, wo man Linux-Befehle eingeben kann. Dieses startet ihr, in dem ihr auf die 9 Punkte unten links und tippt &amp;quot;terminal&amp;quot; ein. Dann klickt ihr auf das dann erscheinende Symbol &amp;quot;Terminal&amp;quot;. Da wir dieses Terminal eigentlich ständig brauchen, empfehle ich, jetzt (wo das Terminal läuft) in der linken Leiste einmal mit rechts auf das Terminal-Icon zu klicken und &amp;quot;zu Favoriten hinzufügen&amp;quot; auszuwählen. Dadurch bleibt dieses Icon in der linken Leiste auch dann, wenn das Terminal geschlossen wird und ihr könnt es damit schnell neu öffnen.&lt;br /&gt;
&lt;br /&gt;
Fast alle Installationsanleitungen erfordern, dass dort Befehle eingegeben werden, nicht selten ohne das explizit zu erwähnen. Wenn also irgendwo Linux-Befehle auftauchen, gehören die hier rein.&lt;br /&gt;
&lt;br /&gt;
Eine kleine Übericht über die wichtigsten Befehle findet ihr hier: https://www.pcwelt.de/ratgeber/Die_10_wichtigsten_Linux-Befehle_fuer_Einsteiger-Kommandozeile_alias_Terminal-8858519.html&lt;br /&gt;
&lt;br /&gt;
Ab jetzt sollten sich alle drei Lösungen weitgehend gleich verhalten, bis auf ein Trick, der für die Virtuelle Maschine nötig ist, dazu später mehr.&lt;br /&gt;
&lt;br /&gt;
== Schritt B: OctoPrint installieren. ==&lt;br /&gt;
&lt;br /&gt;
Eine Installationsanleitung gibt es hier:&lt;br /&gt;
https://community.octoprint.org/t/setting-up-octoprint-on-a-raspberry-pi-running-raspbian-or-raspberry-pi-os/2337&lt;br /&gt;
&lt;br /&gt;
Die ist zwar für Raspbian gedacht, aber unser Ubuntu ist ausreichend ähnlich. Beim Schritt mit &amp;quot;usermod&amp;quot;, wo der Nutzer in Gruppen hinzugefügt wird, müsst ihr allerdings den Benutzernamen &amp;quot;pi&amp;quot; durch den ersetzen, den ihr euch bei der Installation ausgesucht habt.&lt;br /&gt;
&lt;br /&gt;
Die Anleitung ist unnötig lang - ihr braucht das nur bis einschließlich &amp;quot;Automatic start up&amp;quot; zu befolgen. Für Testzwecke genügt es sogar, OctoPrint immer manuell zu starten, also ist auch der Schritt optional.&lt;br /&gt;
&lt;br /&gt;
== Schritt C: Klipper installieren ==&lt;br /&gt;
&lt;br /&gt;
Hier kann man jetzt wieder der eigentlichen Anleitung auf der Seite [[Klipper]] folgen.&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper_auf_PC&amp;diff=1172</id>
		<title>Klipper auf PC</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper_auf_PC&amp;diff=1172"/>
		<updated>2021-12-08T15:26:17Z</updated>

		<summary type="html">&lt;p&gt;Mhier: Die Seite wurde neu angelegt: „Achtung: Diese Anleitung befindet sich noch im Entstehen!   == Einleitung ==  Es gibt prinzipiell 3 realistische Möglichkeiten, die je nach Einsatz ihre Vor-…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Achtung: Diese Anleitung befindet sich noch im Entstehen!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Es gibt prinzipiell 3 realistische Möglichkeiten, die je nach Einsatz ihre Vor- und Nachteile haben:&lt;br /&gt;
&lt;br /&gt;
1. Einen auch sonst genutzen PC mittels USB-Stick mit Linux booten. Das taugt für gelegentliches Nutzen, der PC ist dann aber weitgehend blockiert für andere Aufgaben (naja, nen Browser kann man schon noch benutzen). Insbesondere der Zugriff auf Windows-Dateien ist evtl. nicht oder nur eingeschränkt möglich. Wenn das der PC ist, mit dem man auch sliced, wird das schnell lästig ;-)&lt;br /&gt;
&lt;br /&gt;
2. Linux in Virtueller Maschine installieren. Im Gegensatz zur Lösung 1 kann der PC im Prinzip weiter genutzt werden, wobei dringend Vorsicht angebracht ist während gedruckt wird. Wenn Klipper nicht genügend Rechenleistung abbekommt für einen Moment, kann das einem den Druck versauen. Für erste Tests wird es alle Male reichen. Ich habe diese Lösung allerdings nicht selbst getestet.&lt;br /&gt;
&lt;br /&gt;
3. Einen ausrangierten PC mit Linux neu installieren. Den ausrangierten PC muss man natürlich haben, evtl. kann man was günstig auf E-Bay gebraucht bekommen. Diese Lösung taugt gut als permanenter Einsatz, wenn man aus irgendwelchen Gründen keinen Raspberry Pi nutzen kann/möchte. Monitor und Tastatur muss nicht zwingen angeschlossen sein außer zum Setup.&lt;br /&gt;
&lt;br /&gt;
Alle drei Möglichkeiten setzen ein relativ ähnliches Vorgehen voraus:&lt;br /&gt;
&lt;br /&gt;
A. Linux auf das jeweilige Medium installieren.&amp;lt;br/&amp;gt;&lt;br /&gt;
B. OctoPrint installieren.&amp;lt;br/&amp;gt;&lt;br /&gt;
C. Klipper installieren.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Schritt A: Linux installieren ==&lt;br /&gt;
&lt;br /&gt;
Für alle drei Lösungen muss man sich erstmal ein Ubuntu-ISO-Image herunterladen. Das geht hier:&lt;br /&gt;
https://ubuntu.com/#download&lt;br /&gt;
&lt;br /&gt;
Je nachdem, ob man hinterher eine graphische Oberfläche haben möchte (Lösungen 1 und 2) oder nicht (Lösung 3) wählt man &amp;quot;Ubuntu Desktop&amp;quot; oder &amp;quot;Ubuntu Server&amp;quot;. Ubuntu Desktop ist deutlich umfangreicher, während Ubuntu Server weniger Platz und Download-Kapazitäten benötigt. In jedem Fall kann man aber später auch noch die Desktop-Pakete nachinstallieren bzw. den Fernzugriff aktivieren und die grafische Oberfläche ignorieren. Diese Entscheidung ist also nicht endgültig, macht aber hinterher einiges leichter.&lt;br /&gt;
&lt;br /&gt;
Für die Lösungen 1 und 3 benötigt man einen bootfähigen USB-Stick. Dafür gibt es eine Anleitung hier:&lt;br /&gt;
https://ubuntu.com/tutorials/create-a-usb-stick-on-windows#1-overview&lt;br /&gt;
&lt;br /&gt;
=== Weiteres Vorgehen für Lösung 1: USB-Stick ===&lt;br /&gt;
&lt;br /&gt;
Der USB-Stick sollte direkt bootfähig sein. Wenn man davon bootet, wird man gefragt, ob man Ubuntu installieren oder ausprobieren möchte. Man wählt hier erst deutsch als Sprache und dann &amp;quot;Ubuntu ausprobieren&amp;quot;, dann wird Ubuntu gebootet. Da USB-Sticks langsam sind, dauert das ne Ecke länger als bei einer richtigen Installation, vor allem beim ersten Mal ;-)&lt;br /&gt;
&lt;br /&gt;
=== Weiteres Vorgehen für Lösung 2: Virtuelle Maschine ===&lt;br /&gt;
&lt;br /&gt;
1. VirtualBox herunterladen und installieren (https://www.virtualbox.org/)&lt;br /&gt;
&lt;br /&gt;
2. VirtualBox starten&lt;br /&gt;
&lt;br /&gt;
3. Neue VM anlegen (blauen Stern &amp;quot;Neu&amp;quot; aklicken)&lt;br /&gt;
&lt;br /&gt;
4. Name aussuchen, Typ &amp;quot;Linux&amp;quot;, Version &amp;quot;Ubuntu (64-bit)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. RAM-Größe auswählen: Das hängt davon ab, wie viel RAM euer PC hat. Nehmt die Hälfte, wobei 1GB eher knapp sind und mehr als 4GB eher keinen Sinn machen. Lässt sich hinterher noch leicht ändern.&lt;br /&gt;
&lt;br /&gt;
6. Neue Virtuelle Festplatte erzeugen, als VDI (VrtualBox Disk Image), dynamisch alloziert, Größe z.B. 100 GB. Diese Größe lässt sich hinterher schlecht erweitern, aber die 100 GB werden nicht sofort komplett reserviert (da dynamisch alloziert). Dadurch sollte man immer eine deutlich zu große Größe wählen. Es kommt nicht so drauf an, aber 10 GB wie vorausgewählt sind definitiv arg knapp.&lt;br /&gt;
&lt;br /&gt;
7. Neue Virtuelle Maschine starten. Es popt ein Fenster auf, in dem das ISO-Image, das vorher herunter geladen wurde, ausgewählt werden sollte.&lt;br /&gt;
&lt;br /&gt;
8. Der Ubuntu installer sollte jetzt starten. &amp;quot;Install Ubuntu&amp;quot; wählen und einfach den weiteren Instruktionen folgen (Minimale Installation genügt). Keine Angst: Ubuntu kann euch nichts löschen, denn es läuft abgekapselt in eben einer Virtuellen Maschine. Daher ruhig mit den Voreinstellungen die gesamte Festplatte benutzen lassen, denn das ist nur die virtuelle Festplatte.&lt;br /&gt;
&lt;br /&gt;
9. Nach der Installation fällt auf, dass der dargestellte Bildschirm sehr klein ist. Um das zu verbessern, klickt ihr auf die 9 Punkte unten links und tippt &amp;quot;terminal&amp;quot; ein. Dann klickt ihr auf das dann erscheinende Symbol &amp;quot;Terminal&amp;quot;. Dort tippt ihr ein &amp;quot;sudo apt install virtualbox-guest-x11&amp;quot;. Nach Eingabe des Passworts bestätigt ihr mit &amp;quot;j&amp;quot;. Danach müsst ihr das System einmal neustarten -&amp;gt; Oben rechts auf das Ausschalt-Symbol, Ausschalten/Abmelden, Ausschalten..., Neu starten. Danach sollte sich der Inhalt an die Fenstergröße automatisch anpassen.&lt;br /&gt;
&lt;br /&gt;
=== Weiteres Vorgehen für Lösung 3: Ausrangierter PC ===&lt;br /&gt;
&lt;br /&gt;
Von USB-Stick booten. Sprache auf Deutsch und dann &amp;quot;Ubuntu Installieren&amp;quot; wählen und einfach den weiteren Instruktionen folgen (Minimale Installation genügt, ich empfehle die Installation von Software von Drittanbietern für Grafik-Hardware etc. zu aktivieren). Achtung: Am besten sollte die Festplatte keine wichtigen Daten mehr beinhalten. Dann kann einfach die gesamte Festplatte gelöscht und für Ubuntu verwendet werden. Das ist der einfachste Weg, daher bitte vorher alle Daten vond er Platte holen, damit hier kein Unglück passiert. (Bei einem *ausrangierten* PC gehe ich eigentlich davon aus, aber sicherheitshalber noch mal der Hinweis...)&lt;br /&gt;
&lt;br /&gt;
== Einschub: Linux benutzen ==&lt;br /&gt;
&lt;br /&gt;
So jetzt solltet ihr ein laufendes Linux-System haben. Wichtigstes Feature: Das Terminal, wo man Linux-Befehle eingeben kann.&lt;br /&gt;
&lt;br /&gt;
Ab jetzt sollten sich alle drei Lösungen weitgehend gleich verhalten, bis auf ein Trick, der für die Virtuelle Maschine nötig ist, dazu später mehr.&lt;br /&gt;
&lt;br /&gt;
== Schritt B: OctoPrint installieren. ==&lt;br /&gt;
&lt;br /&gt;
Eine Installationsanleitung gibt es hier:&lt;br /&gt;
https://community.octoprint.org/t/setting-up-octoprint-on-a-raspberry-pi-running-raspbian-or-raspberry-pi-os/2337&lt;br /&gt;
&lt;br /&gt;
Die ist zwar für Raspbian gedacht, aber unser Ubuntu ist ausreichend ähnlich. Beim Schritt mit &amp;quot;usermod&amp;quot;, wo der Nutzer in Gruppen hinzugefügt wird, müsst ihr allerdings den Benutzernamen &amp;quot;pi&amp;quot; durch den ersetzen, den ihr euch bei der Installation ausgesucht habt.&lt;br /&gt;
&lt;br /&gt;
Die Anleitung ist unnötig lang - ihr braucht das nur bis einschließlich &amp;quot;Automatic start up&amp;quot; zu befolgen. Für Testzwecke genügt es sogar, OctoPrint immer manuell zu starten, also ist auch der Schritt optional.&lt;br /&gt;
&lt;br /&gt;
== Schritt C: Klipper installieren ==&lt;br /&gt;
&lt;br /&gt;
Hier kann man jetzt wieder der eigentlichen Anleitung auf der Seite [[Klipper]] folgen.&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1171</id>
		<title>Klipper</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1171"/>
		<updated>2021-09-30T11:42:38Z</updated>

		<summary type="html">&lt;p&gt;Mhier: /* Speichern der Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Klipper]]&lt;br /&gt;
&lt;br /&gt;
Klipper ist eine Firmware für 3D Drucker. Diese kann alternativ zu der Repetier-basierten Original-Firmware von Conrad oder der auf dieser Original-Firmware basierenden Community-Version auf den Druckern RF1000, RF2000 oder RF2000v2 verwendet werden. Die dafür nötige Konfiguration ist für die Drucker RF2000 und RF2000v2 noch nicht vollständig. '''Für den RF1000 ist die Konfiguration abgeschlossen und wird seit knapp einem Jahr bereits produktiv eingesetzt zum Drucken und Fräsen.''' Für die anderen Drucker werden Tester gesucht, die bereit sind, die Konfiguration an das jeweilige Modell anzupassen und beizusteuern.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Klipper ist gut dokumentiert auf seiner Webseite, allerdings nur in Englisch: [https://www.klipper3d.org https://www.klipper3d.org]&lt;br /&gt;
&lt;br /&gt;
Das Grundprinzip weicht von der Repetier-basierten Firmware und anderen 3D-Drucker-Firmwares deutlich ab. Statt alle Berechnungen im Microcontroller (im Folgenden MCU genannt) des Druckers auszuführen, werden zeitintensive Berechnungen auf einem Host-System durchgeführt. Als Host-System eignet sich z.B. ein Raspberry Pi oder auch ein herkömmlicher Linux-PC. Auf dem selben Host-System kann (bzw. sollte) auch Octoprint o.ä. ausgeführt werden. Wer also bereits Octoprint etc. nutzt, benötigt keine weitere Hardware.&lt;br /&gt;
&lt;br /&gt;
Da die zur Verfügung stehende Rechenpower so um Größenordnungen höher ist, können deutlich präzisere Berechnungen durchgeführt werden. Die Motoren laufen spürbar ruhiger, und höhere Schrittfrequenzen sind ebenfalls problemlos möglich. Außerdem ist eine höhere Flexibilität möglich. Auch ohne Programmierkenntnisse kann das Verhalten der Firmware über Konfigurations-Dateien beeinflusst werden, sogar neue G-Codes können so eingeführt werden. Die Firmware ist größtenteils in Python geschrieben und sehr modular gehalten, wodurch die Einstiegshürde für Entwickler sehr viel geringer ist.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
Was schon funktioniert:&lt;br /&gt;
* Natürlich alle Grundfunktionen, die jeder normale Drucker hat (Bewegen, Heizen, Lüfter etc.)&lt;br /&gt;
** Dokumentation der unterstützten G-Codes: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
* Heizbett-Scan: heißt bei Klipper Bed Mesh Leveling&lt;br /&gt;
** Es lassen sich beliebig viele benannte Meshes (entspricht den Matrizen) speichern&lt;br /&gt;
** Es gibt kein Software-Limit wie groß die Werte im Mesh werden dürfen&lt;br /&gt;
** Interpolation zwischen den Punkten des Meshes ist deutlich besser, daher sollten weniger Punkte ausreichen&lt;br /&gt;
* Z-Offset-Scan&lt;br /&gt;
** Korrigiert nicht mehr die Matrix/das Mesh, sondern kalibriert die Z-Koordinate des Z-Endstop.&lt;br /&gt;
** Ebenfalls keinerlei Software-Limit auf den Wert des &amp;quot;Offsets&amp;quot;.&lt;br /&gt;
** Homing gegen Z-Max ist problemlos ebenfalls möglich.&lt;br /&gt;
* Menü (im Original-Zustand von Klipper, daher noch etwas rudimentär vielleicht): die Bedienlogik ist etwas anders&lt;br /&gt;
** Die Nach-Rechts-Taste wird eigentlich nicht gebraucht und wurde daher als Not-Aus umfunktioniert.&lt;br /&gt;
** Die Tasten zum Bewegen des Heizbetts und des Extruders fahren in vorgegebenen Schritten. Gedrückthalten für längere Fahrten ist nicht möglich (Einschränkung in Klipper).&lt;br /&gt;
* Pause und Fortsetzen über Tasten (funktioniert evtl. nur mit Octoprint?)&lt;br /&gt;
* Sense offset&lt;br /&gt;
* Emergency Stop (bei zu hohem Druck auf die Wägezellen), funktioniert nur während eines Z-Scans.&lt;br /&gt;
* Kanten antasten in X/Y (Fräsen)&lt;br /&gt;
&lt;br /&gt;
Was fehlt:&lt;br /&gt;
* Konfigurationen für den RF2000 und RF2000v2 (für RF2000v2 single extruder ist eine Konfiguration vorhanden, muss aber geupdated werden)&lt;br /&gt;
* Sagt ihr es mir!&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Eine Ausführliche Installationsanleitung gibt es auf der Webseite: [https://www.klipper3d.org/Installation.html https://www.klipper3d.org/Installation.html]&lt;br /&gt;
&lt;br /&gt;
Da die nötigen Modifikationen und Beispielkonfigurationen noch nicht Teil der offiziellen Klipper-Firmware sind, muss der folgende Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/Klipper3d/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
durch diesen ersetzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/RF1000community/Klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem gibt es bereits eine Konfigurations-Datei für den RF1000. Ich würde daher empfehlen, die Konfigurations-Datei printer.cfg mit folgendem Inhalt zu erstellen:&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf1000.cfg]&lt;br /&gt;
&lt;br /&gt;
[mcu]&lt;br /&gt;
serial: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_&amp;lt;hier_richtige_ID_einfügen&amp;gt;-port0&lt;br /&gt;
&lt;br /&gt;
[stepper_z]&lt;br /&gt;
position_endstop: 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dadurch wird der Inhalt von klipper/config/printer-rf1000.cfg benutzt, aber alle folgenden Einstellungen überschreiben ggf. bereits vorhandene Einstellungen aus der printer-rf1000.cfg Datei. Die Angabe des position_endstop für die Z-Achse ist nötig, da diese durch den Z-Offset-Scan überschrieben wird, was nur funktioniert, wenn diese Angabe direkt in der printer.cfg gemacht wird (nicht im Include).&lt;br /&gt;
&lt;br /&gt;
Nach der Installation bitte unbedingt die Anleitung zum Prüfen der Konfiguration befolgen:&lt;br /&gt;
https://www.klipper3d.org/Config_checks.html&lt;br /&gt;
&lt;br /&gt;
Es ist ebenfalls empfehlenswert, die Konfiguration auf diese Weise nach jedem Update zu prüfen, weil durch das [include] Änderungen aus der Konfigurationsdatei automatisch übernommen werden.&lt;br /&gt;
&lt;br /&gt;
=== Octoprint ===&lt;br /&gt;
&lt;br /&gt;
Die Installationsanleitung geht von einer Octoprint Installation aus.&lt;br /&gt;
&lt;br /&gt;
=== Repetierserver ===&lt;br /&gt;
&lt;br /&gt;
Man kann auf einem normalen RasPi Installation zuerst Repetier-Server aufsetzen und dann erst Klipper. Die Verbindung von Repetier-Server zu Klipper funktioniert aber nicht, da die beiden Programme unter verschiedenen Benutzern arbeiten und die Standard Serial-Emulation das Problem nicht lösen kann.&lt;br /&gt;
&lt;br /&gt;
Abhilfe: (Siehe [Repetier-Server Knowledgebase https://www.repetier-server.com/knowledgebase/klipper/])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/lib/klipper&lt;br /&gt;
sudo chmod 777 /var/lib/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und dann die Änderung in den Einstellungen von Klipper bekannt machen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/defaults/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dort die Zeile am Ende zu &amp;lt;pre&amp;gt;KLIPPY_ARGS=&amp;quot;/home/pi/klipper/klippy/klippy.py /home/pi/printer.cfg -l /tmp/klippy.log -I /var/lib/klipper/connect&amp;quot;&amp;lt;/pre&amp;gt; ergänzen. Anschliessend das Service von Klipper neu starten. Damit kann man sich in Repetier-Server mit Gerät/Port /var/lib/klipper/connect verbinden.&lt;br /&gt;
&lt;br /&gt;
Repetierserver älter als 0.99.4: Bei den Befehlen muss man ein Raute Zeichen # voranstellen, damit es richtig von Repetier-Server weitergegeben wird. Ist bei Version 1.x und besser nicht mehr der Fall.&lt;br /&gt;
&lt;br /&gt;
== Klipper Befehle ==&lt;br /&gt;
&lt;br /&gt;
Klipper unterstützt natürlich alle gängigen G-Code-Befehle, die die Slicer erzeugen. Es wird allgemein empfohlen, den Slicer auf &amp;quot;Marlin&amp;quot; oder &amp;quot;Smoothieware&amp;quot; zu stellen (sofern keine direkte Unterstützung für Klipper vorhanden ist). &lt;br /&gt;
Für erweiterte G-Code-Befehle verfolgt Klipper eine etwas andere Philosophie als andere Firmwares: Statt kryptische M-Befehle zu erdenken, werden sprechende Namen benutzt. Gleiches gilt für die Parameter, die üblicherweise die Form &amp;quot;NAME=Wert&amp;quot; haben. Groß- und Kleinschreibung spielt keine Rolle.&lt;br /&gt;
&lt;br /&gt;
Es ist möglich, mittels Macros eigene G-Code-Befehle zu definieren. Das funktioniert über die Konfiguration und ist in [https://github.com/KevinOConnor/klipper/blob/master/config/example-extras.cfg#L395 example-extras.cfg] im Abschnitt &amp;quot;[gcode_macro my_cmd]&amp;quot; dokumentiert. Dadurch könnte man sich z.B. seinen Start-Code statt im Slicer in der Konfiguration definieren (und so auch leichter ändern, ohne neu slicen zu müssen), oder Befehle, die von Klipper nicht unterstützt aber durch den Slicer erzeugt werden, implementieren.&lt;br /&gt;
&lt;br /&gt;
Siehe [[Klipper_GCodes]] mit der Übersicht der GCodes die von Klipper verstanden werden, auch mit den Erweiterungen die im Repository von rf1000.de enthalten sind.&lt;br /&gt;
Original-Dokumentation: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
&lt;br /&gt;
Hinweis: Einige der dort beschriebenen Befehle sind nur aktiv, wenn bestimmte Module geladen sind. Daher gehen manche Befehle nicht, es sei denn, das Modul wird über die Konfiguration eingeschaltet.&lt;br /&gt;
&lt;br /&gt;
=== Reset ===&lt;br /&gt;
Einen Reset von Klipper, das auch die Firmware zurücksetzt führt man mit dem Kommando &lt;br /&gt;
&amp;lt;pre&amp;gt;FIRMWARE_RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
durch. Dabei wird auch die printer.cfg neu eingelesen. Bei Problemen in der printer.cfg kann es sein, das ein Klipper: Disconnect erscheint. Dann läuft Klipper nicht und man darf den Fehler suchen.&lt;br /&gt;
&lt;br /&gt;
Mit dem GCode M112 wird Klipper einfach heruntergefahren und man muss sich neu verbinden.&lt;br /&gt;
&lt;br /&gt;
Möchte man nur die printer.cfg neu laden, genügt der Befehl&lt;br /&gt;
&amp;lt;pre&amp;gt;RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PID durchführen ===&lt;br /&gt;
Für den Hotend 1&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=extruder TARGET=210&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für das Heizbett&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=heater_bed TARGET=60&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Daten werden mit SAVE_CONFIG abgespeichert.&lt;br /&gt;
&lt;br /&gt;
=== Z Offset ===&lt;br /&gt;
Um den Z-Offset bzw. die Z-Position des Endschalters zu kalibrieren, gibt es das Macro&lt;br /&gt;
&amp;lt;pre&amp;gt;Z_CALIBRATE&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies führt einen Scan an der Position x=100,y=100 durch. Wichtig ist, dass die Position des Endschalters schon so weit bekannt sein muss, dass Z=2mm zuverlässig '''über''' dem Bett liegt (nicht zu weit, sonst dauert der Scan zu lange), denn diese Position wird vor dem Scan angefahren.&lt;br /&gt;
&lt;br /&gt;
Wenn man testen möchte, ob der Scan zuverlässig funktioniert, kann dieser Befehl benutzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;PROBE_ACCURACY&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das führt dann an der aktuellen XY Position 10 mal einen Z-Scan durch und bestimmt Mittelwert und Standardabweichung etc. Standardabweichung ist also in unteren bis mitteleren einstelligen Mikrometerbereich, der &amp;quot;Maximalfehler&amp;quot; (range) besser als 1/100mm. [https://www.rf1000.de/viewtopic.php?f=7&amp;amp;t=2610&amp;amp;start=60 Mehr Info zu PROBE_ACCURACY siehe Post Nr 62]&lt;br /&gt;
&lt;br /&gt;
=== Bed Mesh Kalibration durchführen ===&lt;br /&gt;
Zum kalibrieren des Bed Mesh (Äquivalent zum Heat Bed Scan der Repetier-Firmware) wird folgendes Macro empfohlen:&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_CALIBRATE&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies führt zunächst ein Z_CALIBRATE durch (ebenfalls an x=100,y=100). Anschließend wird das Bett im Raster vermessen. Die Konfiguration wird am Ende automatisch gespeichert (was zu einem Firmware-Neustart führt).&lt;br /&gt;
&lt;br /&gt;
Dadurch, dass zuerst ein Z_CALIBRATE durchgeführt wird, kann anschließend jederzeit ein Z_CALIBRATE genutzt werden, um z.B. nach einem Düsenwechsel den Abstand zwischen Bett und Düse neu zu kalibrieren, ohne dass ein vollständiger Bed Mesh Scan nötig wäre. Wichtig dafür ist, dass die beiden Z_CALIBRATEs an der selben X/Y-Position ausgeführt werden (deshalb ist diese Position im Macro festgelegt).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_OUTPUT&amp;lt;/pre&amp;gt;&lt;br /&gt;
gibt das aktuelle Mesh aus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_CLEAR&amp;lt;/pre&amp;gt;&lt;br /&gt;
setzt alle Werte des aktuellen Meshes auf 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_PROFILE LOAD=&amp;lt;name&amp;gt; SAVE=&amp;lt;name&amp;gt; REMOVE=&amp;lt;name&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
erlaut das Mesh zu speichern, zu laden, oder ein gespeichertes Mesh zu löschen.&lt;br /&gt;
&lt;br /&gt;
Übrigens kann das Mesh mit OctoPrint visualisiert werden, wenn man sich das Bed Visualizer Plugin installiert.&lt;br /&gt;
&lt;br /&gt;
=== Positionen Abfragen ===&lt;br /&gt;
Damit sieht man die aktuellen Positionen in den verschiedenen Koorinaten-Systeme. Beispiel nach &amp;quot;G1 Z0&amp;quot; auf der Position X=57.5 und Y=50.0&lt;br /&gt;
&amp;lt;pre&amp;gt;Send:16:32:28.975: #GET_POSITION&lt;br /&gt;
Recv:16:32:28.976: // mcu: stepper_x:2 stepper_y:-50 stepper_z:2499&lt;br /&gt;
Recv:16:32:28.976: // stepper: stepper_x:57.500625 stepper_y:49.999688 stepper_z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // kinematic: X:57.500625 Y:49.999688 Z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // toolhead: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode base: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode homing: X:0.000000 Y:0.000000 Z:0.000000&lt;br /&gt;
Recv:16:32:28.976: ok&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man sollte man die Z-Koordinaten zwischen toolhead und kinematic vergleichen. Der Unterschied sollte genau die Korrektur aus dem Mesh-Leveling an dem Punkt sein. Andernfalls ist da irgendwo noch ein anderer Offset im Spiel.&lt;br /&gt;
&lt;br /&gt;
=== Speichern der Configuration ===&lt;br /&gt;
Mit dem Kommando save_config kann man die Änderungen, die durch die Abgleichfunktionen (PID, HBS, Z-Offset,...) ermittelt wurden, in der Konfigurationsdatei abspeichern:&lt;br /&gt;
&amp;lt;pre&amp;gt;SAVE_CONFIG&amp;lt;/pre&amp;gt;&lt;br /&gt;
Danach startet die Firmware neu, und es muss neu gehomed werden.&lt;br /&gt;
&lt;br /&gt;
== Konfigurationsdatei ==&lt;br /&gt;
=== Basiskonfigurationen ===&lt;br /&gt;
Im Verzeichnis von Klipper stehen unter /config die verschiedenen Konfigurationsdateien für Klipper. Aktuell ist für den RF1000 und den RF2000V2 mit Single Extruder eine Konfigurationsdatei vorhanden. Diese Konfigurationsdateien sollte man dort belassen und auch nicht ändern. &lt;br /&gt;
&lt;br /&gt;
=== Eigene printer.cfg ===&lt;br /&gt;
Bei Klipper verwendet man am besten eine eigene printer.cfg, die nicht einfach von einer Vorlage kopiert wird, sondern die die Vorlage ergänzt, ändert und erweitert.&lt;br /&gt;
&lt;br /&gt;
In der printer.cfg steht am Anfang normalerseise immer der Basisdrucker, von dem die aktuelle Konfiguration abgeleitet wird. Wie alle Parametergruppen wird das ganze von eckigen Klammern [] umschlossen.&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf2000v2-single.cfg]&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dannach kann man dann seine geänderten oder neue Parameter hinzufügen. Das folgende ist aus einer Konfiguration für den RF2000V2 single. Zuerst wird der maximale Fahrweg in X und Y anders definiert und anschliessend für Z die Werte angepasst. Dannach kommt die Konfiguration für den HBS.&lt;br /&gt;
&amp;lt;pre&amp;gt;[stepper_x]&lt;br /&gt;
position_max: 210&lt;br /&gt;
&lt;br /&gt;
[stepper_y]&lt;br /&gt;
position_max: 290&lt;br /&gt;
&lt;br /&gt;
[stepper_z]&lt;br /&gt;
position_min: -2.0&lt;br /&gt;
position_max: 185&lt;br /&gt;
&lt;br /&gt;
[bed_mesh]&lt;br /&gt;
speed: 30&lt;br /&gt;
horizontal_move_z: 2&lt;br /&gt;
mesh_min: 10,50&lt;br /&gt;
mesh_max: 200,230&lt;br /&gt;
algorithm:lagrange&lt;br /&gt;
probe_count: 5,5&lt;br /&gt;
fade_start: 1.0&lt;br /&gt;
fade_end: 10.0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach den Parametern kann man sich auch Makros definieren. In dem Beispiel ein Markro zum Auswurf des Objektes, das man einfach mit OUTPUT_OBJECT aufrufen kann.&lt;br /&gt;
&amp;lt;pre&amp;gt;[gcode_macro OUTPUT_OBJECT]&lt;br /&gt;
gcode:&lt;br /&gt;
	G90&lt;br /&gt;
	#G1 Z180	F540&lt;br /&gt;
	G1 Z80	F540&lt;br /&gt;
	G1 Y245 F4800&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als letzte Abschnitt kommen die gespeicherten - durch SAVE_CONFIG - Parameter und Werte. Diese NICHT selbst verändern, sondern immer nur durch das Programm.&lt;br /&gt;
&amp;lt;pre&amp;gt;#*# &amp;lt;---------------------- SAVE_CONFIG ----------------------&amp;gt;&lt;br /&gt;
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.&lt;br /&gt;
#*#&lt;br /&gt;
#*# [extruder]&lt;br /&gt;
#*# control = pid&lt;br /&gt;
#*# pid_kp = 33.373&lt;br /&gt;
#*# pid_ki = 2.060&lt;br /&gt;
#*# pid_kd = 135.160&lt;br /&gt;
#*#&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1170</id>
		<title>Klipper</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1170"/>
		<updated>2021-09-30T11:42:03Z</updated>

		<summary type="html">&lt;p&gt;Mhier: /* Positionen Abfragen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Klipper]]&lt;br /&gt;
&lt;br /&gt;
Klipper ist eine Firmware für 3D Drucker. Diese kann alternativ zu der Repetier-basierten Original-Firmware von Conrad oder der auf dieser Original-Firmware basierenden Community-Version auf den Druckern RF1000, RF2000 oder RF2000v2 verwendet werden. Die dafür nötige Konfiguration ist für die Drucker RF2000 und RF2000v2 noch nicht vollständig. '''Für den RF1000 ist die Konfiguration abgeschlossen und wird seit knapp einem Jahr bereits produktiv eingesetzt zum Drucken und Fräsen.''' Für die anderen Drucker werden Tester gesucht, die bereit sind, die Konfiguration an das jeweilige Modell anzupassen und beizusteuern.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Klipper ist gut dokumentiert auf seiner Webseite, allerdings nur in Englisch: [https://www.klipper3d.org https://www.klipper3d.org]&lt;br /&gt;
&lt;br /&gt;
Das Grundprinzip weicht von der Repetier-basierten Firmware und anderen 3D-Drucker-Firmwares deutlich ab. Statt alle Berechnungen im Microcontroller (im Folgenden MCU genannt) des Druckers auszuführen, werden zeitintensive Berechnungen auf einem Host-System durchgeführt. Als Host-System eignet sich z.B. ein Raspberry Pi oder auch ein herkömmlicher Linux-PC. Auf dem selben Host-System kann (bzw. sollte) auch Octoprint o.ä. ausgeführt werden. Wer also bereits Octoprint etc. nutzt, benötigt keine weitere Hardware.&lt;br /&gt;
&lt;br /&gt;
Da die zur Verfügung stehende Rechenpower so um Größenordnungen höher ist, können deutlich präzisere Berechnungen durchgeführt werden. Die Motoren laufen spürbar ruhiger, und höhere Schrittfrequenzen sind ebenfalls problemlos möglich. Außerdem ist eine höhere Flexibilität möglich. Auch ohne Programmierkenntnisse kann das Verhalten der Firmware über Konfigurations-Dateien beeinflusst werden, sogar neue G-Codes können so eingeführt werden. Die Firmware ist größtenteils in Python geschrieben und sehr modular gehalten, wodurch die Einstiegshürde für Entwickler sehr viel geringer ist.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
Was schon funktioniert:&lt;br /&gt;
* Natürlich alle Grundfunktionen, die jeder normale Drucker hat (Bewegen, Heizen, Lüfter etc.)&lt;br /&gt;
** Dokumentation der unterstützten G-Codes: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
* Heizbett-Scan: heißt bei Klipper Bed Mesh Leveling&lt;br /&gt;
** Es lassen sich beliebig viele benannte Meshes (entspricht den Matrizen) speichern&lt;br /&gt;
** Es gibt kein Software-Limit wie groß die Werte im Mesh werden dürfen&lt;br /&gt;
** Interpolation zwischen den Punkten des Meshes ist deutlich besser, daher sollten weniger Punkte ausreichen&lt;br /&gt;
* Z-Offset-Scan&lt;br /&gt;
** Korrigiert nicht mehr die Matrix/das Mesh, sondern kalibriert die Z-Koordinate des Z-Endstop.&lt;br /&gt;
** Ebenfalls keinerlei Software-Limit auf den Wert des &amp;quot;Offsets&amp;quot;.&lt;br /&gt;
** Homing gegen Z-Max ist problemlos ebenfalls möglich.&lt;br /&gt;
* Menü (im Original-Zustand von Klipper, daher noch etwas rudimentär vielleicht): die Bedienlogik ist etwas anders&lt;br /&gt;
** Die Nach-Rechts-Taste wird eigentlich nicht gebraucht und wurde daher als Not-Aus umfunktioniert.&lt;br /&gt;
** Die Tasten zum Bewegen des Heizbetts und des Extruders fahren in vorgegebenen Schritten. Gedrückthalten für längere Fahrten ist nicht möglich (Einschränkung in Klipper).&lt;br /&gt;
* Pause und Fortsetzen über Tasten (funktioniert evtl. nur mit Octoprint?)&lt;br /&gt;
* Sense offset&lt;br /&gt;
* Emergency Stop (bei zu hohem Druck auf die Wägezellen), funktioniert nur während eines Z-Scans.&lt;br /&gt;
* Kanten antasten in X/Y (Fräsen)&lt;br /&gt;
&lt;br /&gt;
Was fehlt:&lt;br /&gt;
* Konfigurationen für den RF2000 und RF2000v2 (für RF2000v2 single extruder ist eine Konfiguration vorhanden, muss aber geupdated werden)&lt;br /&gt;
* Sagt ihr es mir!&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Eine Ausführliche Installationsanleitung gibt es auf der Webseite: [https://www.klipper3d.org/Installation.html https://www.klipper3d.org/Installation.html]&lt;br /&gt;
&lt;br /&gt;
Da die nötigen Modifikationen und Beispielkonfigurationen noch nicht Teil der offiziellen Klipper-Firmware sind, muss der folgende Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/Klipper3d/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
durch diesen ersetzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/RF1000community/Klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem gibt es bereits eine Konfigurations-Datei für den RF1000. Ich würde daher empfehlen, die Konfigurations-Datei printer.cfg mit folgendem Inhalt zu erstellen:&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf1000.cfg]&lt;br /&gt;
&lt;br /&gt;
[mcu]&lt;br /&gt;
serial: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_&amp;lt;hier_richtige_ID_einfügen&amp;gt;-port0&lt;br /&gt;
&lt;br /&gt;
[stepper_z]&lt;br /&gt;
position_endstop: 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dadurch wird der Inhalt von klipper/config/printer-rf1000.cfg benutzt, aber alle folgenden Einstellungen überschreiben ggf. bereits vorhandene Einstellungen aus der printer-rf1000.cfg Datei. Die Angabe des position_endstop für die Z-Achse ist nötig, da diese durch den Z-Offset-Scan überschrieben wird, was nur funktioniert, wenn diese Angabe direkt in der printer.cfg gemacht wird (nicht im Include).&lt;br /&gt;
&lt;br /&gt;
Nach der Installation bitte unbedingt die Anleitung zum Prüfen der Konfiguration befolgen:&lt;br /&gt;
https://www.klipper3d.org/Config_checks.html&lt;br /&gt;
&lt;br /&gt;
Es ist ebenfalls empfehlenswert, die Konfiguration auf diese Weise nach jedem Update zu prüfen, weil durch das [include] Änderungen aus der Konfigurationsdatei automatisch übernommen werden.&lt;br /&gt;
&lt;br /&gt;
=== Octoprint ===&lt;br /&gt;
&lt;br /&gt;
Die Installationsanleitung geht von einer Octoprint Installation aus.&lt;br /&gt;
&lt;br /&gt;
=== Repetierserver ===&lt;br /&gt;
&lt;br /&gt;
Man kann auf einem normalen RasPi Installation zuerst Repetier-Server aufsetzen und dann erst Klipper. Die Verbindung von Repetier-Server zu Klipper funktioniert aber nicht, da die beiden Programme unter verschiedenen Benutzern arbeiten und die Standard Serial-Emulation das Problem nicht lösen kann.&lt;br /&gt;
&lt;br /&gt;
Abhilfe: (Siehe [Repetier-Server Knowledgebase https://www.repetier-server.com/knowledgebase/klipper/])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/lib/klipper&lt;br /&gt;
sudo chmod 777 /var/lib/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und dann die Änderung in den Einstellungen von Klipper bekannt machen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/defaults/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dort die Zeile am Ende zu &amp;lt;pre&amp;gt;KLIPPY_ARGS=&amp;quot;/home/pi/klipper/klippy/klippy.py /home/pi/printer.cfg -l /tmp/klippy.log -I /var/lib/klipper/connect&amp;quot;&amp;lt;/pre&amp;gt; ergänzen. Anschliessend das Service von Klipper neu starten. Damit kann man sich in Repetier-Server mit Gerät/Port /var/lib/klipper/connect verbinden.&lt;br /&gt;
&lt;br /&gt;
Repetierserver älter als 0.99.4: Bei den Befehlen muss man ein Raute Zeichen # voranstellen, damit es richtig von Repetier-Server weitergegeben wird. Ist bei Version 1.x und besser nicht mehr der Fall.&lt;br /&gt;
&lt;br /&gt;
== Klipper Befehle ==&lt;br /&gt;
&lt;br /&gt;
Klipper unterstützt natürlich alle gängigen G-Code-Befehle, die die Slicer erzeugen. Es wird allgemein empfohlen, den Slicer auf &amp;quot;Marlin&amp;quot; oder &amp;quot;Smoothieware&amp;quot; zu stellen (sofern keine direkte Unterstützung für Klipper vorhanden ist). &lt;br /&gt;
Für erweiterte G-Code-Befehle verfolgt Klipper eine etwas andere Philosophie als andere Firmwares: Statt kryptische M-Befehle zu erdenken, werden sprechende Namen benutzt. Gleiches gilt für die Parameter, die üblicherweise die Form &amp;quot;NAME=Wert&amp;quot; haben. Groß- und Kleinschreibung spielt keine Rolle.&lt;br /&gt;
&lt;br /&gt;
Es ist möglich, mittels Macros eigene G-Code-Befehle zu definieren. Das funktioniert über die Konfiguration und ist in [https://github.com/KevinOConnor/klipper/blob/master/config/example-extras.cfg#L395 example-extras.cfg] im Abschnitt &amp;quot;[gcode_macro my_cmd]&amp;quot; dokumentiert. Dadurch könnte man sich z.B. seinen Start-Code statt im Slicer in der Konfiguration definieren (und so auch leichter ändern, ohne neu slicen zu müssen), oder Befehle, die von Klipper nicht unterstützt aber durch den Slicer erzeugt werden, implementieren.&lt;br /&gt;
&lt;br /&gt;
Siehe [[Klipper_GCodes]] mit der Übersicht der GCodes die von Klipper verstanden werden, auch mit den Erweiterungen die im Repository von rf1000.de enthalten sind.&lt;br /&gt;
Original-Dokumentation: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
&lt;br /&gt;
Hinweis: Einige der dort beschriebenen Befehle sind nur aktiv, wenn bestimmte Module geladen sind. Daher gehen manche Befehle nicht, es sei denn, das Modul wird über die Konfiguration eingeschaltet.&lt;br /&gt;
&lt;br /&gt;
=== Reset ===&lt;br /&gt;
Einen Reset von Klipper, das auch die Firmware zurücksetzt führt man mit dem Kommando &lt;br /&gt;
&amp;lt;pre&amp;gt;FIRMWARE_RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
durch. Dabei wird auch die printer.cfg neu eingelesen. Bei Problemen in der printer.cfg kann es sein, das ein Klipper: Disconnect erscheint. Dann läuft Klipper nicht und man darf den Fehler suchen.&lt;br /&gt;
&lt;br /&gt;
Mit dem GCode M112 wird Klipper einfach heruntergefahren und man muss sich neu verbinden.&lt;br /&gt;
&lt;br /&gt;
Möchte man nur die printer.cfg neu laden, genügt der Befehl&lt;br /&gt;
&amp;lt;pre&amp;gt;RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PID durchführen ===&lt;br /&gt;
Für den Hotend 1&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=extruder TARGET=210&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für das Heizbett&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=heater_bed TARGET=60&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Daten werden mit SAVE_CONFIG abgespeichert.&lt;br /&gt;
&lt;br /&gt;
=== Z Offset ===&lt;br /&gt;
Um den Z-Offset bzw. die Z-Position des Endschalters zu kalibrieren, gibt es das Macro&lt;br /&gt;
&amp;lt;pre&amp;gt;Z_CALIBRATE&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies führt einen Scan an der Position x=100,y=100 durch. Wichtig ist, dass die Position des Endschalters schon so weit bekannt sein muss, dass Z=2mm zuverlässig '''über''' dem Bett liegt (nicht zu weit, sonst dauert der Scan zu lange), denn diese Position wird vor dem Scan angefahren.&lt;br /&gt;
&lt;br /&gt;
Wenn man testen möchte, ob der Scan zuverlässig funktioniert, kann dieser Befehl benutzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;PROBE_ACCURACY&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das führt dann an der aktuellen XY Position 10 mal einen Z-Scan durch und bestimmt Mittelwert und Standardabweichung etc. Standardabweichung ist also in unteren bis mitteleren einstelligen Mikrometerbereich, der &amp;quot;Maximalfehler&amp;quot; (range) besser als 1/100mm. [https://www.rf1000.de/viewtopic.php?f=7&amp;amp;t=2610&amp;amp;start=60 Mehr Info zu PROBE_ACCURACY siehe Post Nr 62]&lt;br /&gt;
&lt;br /&gt;
=== Bed Mesh Kalibration durchführen ===&lt;br /&gt;
Zum kalibrieren des Bed Mesh (Äquivalent zum Heat Bed Scan der Repetier-Firmware) wird folgendes Macro empfohlen:&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_CALIBRATE&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies führt zunächst ein Z_CALIBRATE durch (ebenfalls an x=100,y=100). Anschließend wird das Bett im Raster vermessen. Die Konfiguration wird am Ende automatisch gespeichert (was zu einem Firmware-Neustart führt).&lt;br /&gt;
&lt;br /&gt;
Dadurch, dass zuerst ein Z_CALIBRATE durchgeführt wird, kann anschließend jederzeit ein Z_CALIBRATE genutzt werden, um z.B. nach einem Düsenwechsel den Abstand zwischen Bett und Düse neu zu kalibrieren, ohne dass ein vollständiger Bed Mesh Scan nötig wäre. Wichtig dafür ist, dass die beiden Z_CALIBRATEs an der selben X/Y-Position ausgeführt werden (deshalb ist diese Position im Macro festgelegt).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_OUTPUT&amp;lt;/pre&amp;gt;&lt;br /&gt;
gibt das aktuelle Mesh aus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_CLEAR&amp;lt;/pre&amp;gt;&lt;br /&gt;
setzt alle Werte des aktuellen Meshes auf 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_PROFILE LOAD=&amp;lt;name&amp;gt; SAVE=&amp;lt;name&amp;gt; REMOVE=&amp;lt;name&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
erlaut das Mesh zu speichern, zu laden, oder ein gespeichertes Mesh zu löschen.&lt;br /&gt;
&lt;br /&gt;
Übrigens kann das Mesh mit OctoPrint visualisiert werden, wenn man sich das Bed Visualizer Plugin installiert.&lt;br /&gt;
&lt;br /&gt;
=== Positionen Abfragen ===&lt;br /&gt;
Damit sieht man die aktuellen Positionen in den verschiedenen Koorinaten-Systeme. Beispiel nach &amp;quot;G1 Z0&amp;quot; auf der Position X=57.5 und Y=50.0&lt;br /&gt;
&amp;lt;pre&amp;gt;Send:16:32:28.975: #GET_POSITION&lt;br /&gt;
Recv:16:32:28.976: // mcu: stepper_x:2 stepper_y:-50 stepper_z:2499&lt;br /&gt;
Recv:16:32:28.976: // stepper: stepper_x:57.500625 stepper_y:49.999688 stepper_z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // kinematic: X:57.500625 Y:49.999688 Z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // toolhead: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode base: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode homing: X:0.000000 Y:0.000000 Z:0.000000&lt;br /&gt;
Recv:16:32:28.976: ok&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man sollte man die Z-Koordinaten zwischen toolhead und kinematic vergleichen. Der Unterschied sollte genau die Korrektur aus dem Mesh-Leveling an dem Punkt sein. Andernfalls ist da irgendwo noch ein anderer Offset im Spiel.&lt;br /&gt;
&lt;br /&gt;
=== Speichern der Configuration ===&lt;br /&gt;
Mit dem Kommando save_config kann man die Änderungen, die durch die Abgleichfunktionen (PID, HBS, Z-Offset,...) ermittelt wurden, in der Konfigurationsdatei abspeichern&lt;br /&gt;
&amp;lt;pre&amp;gt;SAVE_CONFIG&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Konfigurationsdatei ==&lt;br /&gt;
=== Basiskonfigurationen ===&lt;br /&gt;
Im Verzeichnis von Klipper stehen unter /config die verschiedenen Konfigurationsdateien für Klipper. Aktuell ist für den RF1000 und den RF2000V2 mit Single Extruder eine Konfigurationsdatei vorhanden. Diese Konfigurationsdateien sollte man dort belassen und auch nicht ändern. &lt;br /&gt;
&lt;br /&gt;
=== Eigene printer.cfg ===&lt;br /&gt;
Bei Klipper verwendet man am besten eine eigene printer.cfg, die nicht einfach von einer Vorlage kopiert wird, sondern die die Vorlage ergänzt, ändert und erweitert.&lt;br /&gt;
&lt;br /&gt;
In der printer.cfg steht am Anfang normalerseise immer der Basisdrucker, von dem die aktuelle Konfiguration abgeleitet wird. Wie alle Parametergruppen wird das ganze von eckigen Klammern [] umschlossen.&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf2000v2-single.cfg]&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dannach kann man dann seine geänderten oder neue Parameter hinzufügen. Das folgende ist aus einer Konfiguration für den RF2000V2 single. Zuerst wird der maximale Fahrweg in X und Y anders definiert und anschliessend für Z die Werte angepasst. Dannach kommt die Konfiguration für den HBS.&lt;br /&gt;
&amp;lt;pre&amp;gt;[stepper_x]&lt;br /&gt;
position_max: 210&lt;br /&gt;
&lt;br /&gt;
[stepper_y]&lt;br /&gt;
position_max: 290&lt;br /&gt;
&lt;br /&gt;
[stepper_z]&lt;br /&gt;
position_min: -2.0&lt;br /&gt;
position_max: 185&lt;br /&gt;
&lt;br /&gt;
[bed_mesh]&lt;br /&gt;
speed: 30&lt;br /&gt;
horizontal_move_z: 2&lt;br /&gt;
mesh_min: 10,50&lt;br /&gt;
mesh_max: 200,230&lt;br /&gt;
algorithm:lagrange&lt;br /&gt;
probe_count: 5,5&lt;br /&gt;
fade_start: 1.0&lt;br /&gt;
fade_end: 10.0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach den Parametern kann man sich auch Makros definieren. In dem Beispiel ein Markro zum Auswurf des Objektes, das man einfach mit OUTPUT_OBJECT aufrufen kann.&lt;br /&gt;
&amp;lt;pre&amp;gt;[gcode_macro OUTPUT_OBJECT]&lt;br /&gt;
gcode:&lt;br /&gt;
	G90&lt;br /&gt;
	#G1 Z180	F540&lt;br /&gt;
	G1 Z80	F540&lt;br /&gt;
	G1 Y245 F4800&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als letzte Abschnitt kommen die gespeicherten - durch SAVE_CONFIG - Parameter und Werte. Diese NICHT selbst verändern, sondern immer nur durch das Programm.&lt;br /&gt;
&amp;lt;pre&amp;gt;#*# &amp;lt;---------------------- SAVE_CONFIG ----------------------&amp;gt;&lt;br /&gt;
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.&lt;br /&gt;
#*#&lt;br /&gt;
#*# [extruder]&lt;br /&gt;
#*# control = pid&lt;br /&gt;
#*# pid_kp = 33.373&lt;br /&gt;
#*# pid_ki = 2.060&lt;br /&gt;
#*# pid_kd = 135.160&lt;br /&gt;
#*#&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1169</id>
		<title>Klipper</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1169"/>
		<updated>2021-09-30T11:41:21Z</updated>

		<summary type="html">&lt;p&gt;Mhier: /* Bed Mesh Kalibration durchführen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Klipper]]&lt;br /&gt;
&lt;br /&gt;
Klipper ist eine Firmware für 3D Drucker. Diese kann alternativ zu der Repetier-basierten Original-Firmware von Conrad oder der auf dieser Original-Firmware basierenden Community-Version auf den Druckern RF1000, RF2000 oder RF2000v2 verwendet werden. Die dafür nötige Konfiguration ist für die Drucker RF2000 und RF2000v2 noch nicht vollständig. '''Für den RF1000 ist die Konfiguration abgeschlossen und wird seit knapp einem Jahr bereits produktiv eingesetzt zum Drucken und Fräsen.''' Für die anderen Drucker werden Tester gesucht, die bereit sind, die Konfiguration an das jeweilige Modell anzupassen und beizusteuern.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Klipper ist gut dokumentiert auf seiner Webseite, allerdings nur in Englisch: [https://www.klipper3d.org https://www.klipper3d.org]&lt;br /&gt;
&lt;br /&gt;
Das Grundprinzip weicht von der Repetier-basierten Firmware und anderen 3D-Drucker-Firmwares deutlich ab. Statt alle Berechnungen im Microcontroller (im Folgenden MCU genannt) des Druckers auszuführen, werden zeitintensive Berechnungen auf einem Host-System durchgeführt. Als Host-System eignet sich z.B. ein Raspberry Pi oder auch ein herkömmlicher Linux-PC. Auf dem selben Host-System kann (bzw. sollte) auch Octoprint o.ä. ausgeführt werden. Wer also bereits Octoprint etc. nutzt, benötigt keine weitere Hardware.&lt;br /&gt;
&lt;br /&gt;
Da die zur Verfügung stehende Rechenpower so um Größenordnungen höher ist, können deutlich präzisere Berechnungen durchgeführt werden. Die Motoren laufen spürbar ruhiger, und höhere Schrittfrequenzen sind ebenfalls problemlos möglich. Außerdem ist eine höhere Flexibilität möglich. Auch ohne Programmierkenntnisse kann das Verhalten der Firmware über Konfigurations-Dateien beeinflusst werden, sogar neue G-Codes können so eingeführt werden. Die Firmware ist größtenteils in Python geschrieben und sehr modular gehalten, wodurch die Einstiegshürde für Entwickler sehr viel geringer ist.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
Was schon funktioniert:&lt;br /&gt;
* Natürlich alle Grundfunktionen, die jeder normale Drucker hat (Bewegen, Heizen, Lüfter etc.)&lt;br /&gt;
** Dokumentation der unterstützten G-Codes: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
* Heizbett-Scan: heißt bei Klipper Bed Mesh Leveling&lt;br /&gt;
** Es lassen sich beliebig viele benannte Meshes (entspricht den Matrizen) speichern&lt;br /&gt;
** Es gibt kein Software-Limit wie groß die Werte im Mesh werden dürfen&lt;br /&gt;
** Interpolation zwischen den Punkten des Meshes ist deutlich besser, daher sollten weniger Punkte ausreichen&lt;br /&gt;
* Z-Offset-Scan&lt;br /&gt;
** Korrigiert nicht mehr die Matrix/das Mesh, sondern kalibriert die Z-Koordinate des Z-Endstop.&lt;br /&gt;
** Ebenfalls keinerlei Software-Limit auf den Wert des &amp;quot;Offsets&amp;quot;.&lt;br /&gt;
** Homing gegen Z-Max ist problemlos ebenfalls möglich.&lt;br /&gt;
* Menü (im Original-Zustand von Klipper, daher noch etwas rudimentär vielleicht): die Bedienlogik ist etwas anders&lt;br /&gt;
** Die Nach-Rechts-Taste wird eigentlich nicht gebraucht und wurde daher als Not-Aus umfunktioniert.&lt;br /&gt;
** Die Tasten zum Bewegen des Heizbetts und des Extruders fahren in vorgegebenen Schritten. Gedrückthalten für längere Fahrten ist nicht möglich (Einschränkung in Klipper).&lt;br /&gt;
* Pause und Fortsetzen über Tasten (funktioniert evtl. nur mit Octoprint?)&lt;br /&gt;
* Sense offset&lt;br /&gt;
* Emergency Stop (bei zu hohem Druck auf die Wägezellen), funktioniert nur während eines Z-Scans.&lt;br /&gt;
* Kanten antasten in X/Y (Fräsen)&lt;br /&gt;
&lt;br /&gt;
Was fehlt:&lt;br /&gt;
* Konfigurationen für den RF2000 und RF2000v2 (für RF2000v2 single extruder ist eine Konfiguration vorhanden, muss aber geupdated werden)&lt;br /&gt;
* Sagt ihr es mir!&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Eine Ausführliche Installationsanleitung gibt es auf der Webseite: [https://www.klipper3d.org/Installation.html https://www.klipper3d.org/Installation.html]&lt;br /&gt;
&lt;br /&gt;
Da die nötigen Modifikationen und Beispielkonfigurationen noch nicht Teil der offiziellen Klipper-Firmware sind, muss der folgende Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/Klipper3d/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
durch diesen ersetzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/RF1000community/Klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem gibt es bereits eine Konfigurations-Datei für den RF1000. Ich würde daher empfehlen, die Konfigurations-Datei printer.cfg mit folgendem Inhalt zu erstellen:&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf1000.cfg]&lt;br /&gt;
&lt;br /&gt;
[mcu]&lt;br /&gt;
serial: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_&amp;lt;hier_richtige_ID_einfügen&amp;gt;-port0&lt;br /&gt;
&lt;br /&gt;
[stepper_z]&lt;br /&gt;
position_endstop: 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dadurch wird der Inhalt von klipper/config/printer-rf1000.cfg benutzt, aber alle folgenden Einstellungen überschreiben ggf. bereits vorhandene Einstellungen aus der printer-rf1000.cfg Datei. Die Angabe des position_endstop für die Z-Achse ist nötig, da diese durch den Z-Offset-Scan überschrieben wird, was nur funktioniert, wenn diese Angabe direkt in der printer.cfg gemacht wird (nicht im Include).&lt;br /&gt;
&lt;br /&gt;
Nach der Installation bitte unbedingt die Anleitung zum Prüfen der Konfiguration befolgen:&lt;br /&gt;
https://www.klipper3d.org/Config_checks.html&lt;br /&gt;
&lt;br /&gt;
Es ist ebenfalls empfehlenswert, die Konfiguration auf diese Weise nach jedem Update zu prüfen, weil durch das [include] Änderungen aus der Konfigurationsdatei automatisch übernommen werden.&lt;br /&gt;
&lt;br /&gt;
=== Octoprint ===&lt;br /&gt;
&lt;br /&gt;
Die Installationsanleitung geht von einer Octoprint Installation aus.&lt;br /&gt;
&lt;br /&gt;
=== Repetierserver ===&lt;br /&gt;
&lt;br /&gt;
Man kann auf einem normalen RasPi Installation zuerst Repetier-Server aufsetzen und dann erst Klipper. Die Verbindung von Repetier-Server zu Klipper funktioniert aber nicht, da die beiden Programme unter verschiedenen Benutzern arbeiten und die Standard Serial-Emulation das Problem nicht lösen kann.&lt;br /&gt;
&lt;br /&gt;
Abhilfe: (Siehe [Repetier-Server Knowledgebase https://www.repetier-server.com/knowledgebase/klipper/])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/lib/klipper&lt;br /&gt;
sudo chmod 777 /var/lib/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und dann die Änderung in den Einstellungen von Klipper bekannt machen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/defaults/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dort die Zeile am Ende zu &amp;lt;pre&amp;gt;KLIPPY_ARGS=&amp;quot;/home/pi/klipper/klippy/klippy.py /home/pi/printer.cfg -l /tmp/klippy.log -I /var/lib/klipper/connect&amp;quot;&amp;lt;/pre&amp;gt; ergänzen. Anschliessend das Service von Klipper neu starten. Damit kann man sich in Repetier-Server mit Gerät/Port /var/lib/klipper/connect verbinden.&lt;br /&gt;
&lt;br /&gt;
Repetierserver älter als 0.99.4: Bei den Befehlen muss man ein Raute Zeichen # voranstellen, damit es richtig von Repetier-Server weitergegeben wird. Ist bei Version 1.x und besser nicht mehr der Fall.&lt;br /&gt;
&lt;br /&gt;
== Klipper Befehle ==&lt;br /&gt;
&lt;br /&gt;
Klipper unterstützt natürlich alle gängigen G-Code-Befehle, die die Slicer erzeugen. Es wird allgemein empfohlen, den Slicer auf &amp;quot;Marlin&amp;quot; oder &amp;quot;Smoothieware&amp;quot; zu stellen (sofern keine direkte Unterstützung für Klipper vorhanden ist). &lt;br /&gt;
Für erweiterte G-Code-Befehle verfolgt Klipper eine etwas andere Philosophie als andere Firmwares: Statt kryptische M-Befehle zu erdenken, werden sprechende Namen benutzt. Gleiches gilt für die Parameter, die üblicherweise die Form &amp;quot;NAME=Wert&amp;quot; haben. Groß- und Kleinschreibung spielt keine Rolle.&lt;br /&gt;
&lt;br /&gt;
Es ist möglich, mittels Macros eigene G-Code-Befehle zu definieren. Das funktioniert über die Konfiguration und ist in [https://github.com/KevinOConnor/klipper/blob/master/config/example-extras.cfg#L395 example-extras.cfg] im Abschnitt &amp;quot;[gcode_macro my_cmd]&amp;quot; dokumentiert. Dadurch könnte man sich z.B. seinen Start-Code statt im Slicer in der Konfiguration definieren (und so auch leichter ändern, ohne neu slicen zu müssen), oder Befehle, die von Klipper nicht unterstützt aber durch den Slicer erzeugt werden, implementieren.&lt;br /&gt;
&lt;br /&gt;
Siehe [[Klipper_GCodes]] mit der Übersicht der GCodes die von Klipper verstanden werden, auch mit den Erweiterungen die im Repository von rf1000.de enthalten sind.&lt;br /&gt;
Original-Dokumentation: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
&lt;br /&gt;
Hinweis: Einige der dort beschriebenen Befehle sind nur aktiv, wenn bestimmte Module geladen sind. Daher gehen manche Befehle nicht, es sei denn, das Modul wird über die Konfiguration eingeschaltet.&lt;br /&gt;
&lt;br /&gt;
=== Reset ===&lt;br /&gt;
Einen Reset von Klipper, das auch die Firmware zurücksetzt führt man mit dem Kommando &lt;br /&gt;
&amp;lt;pre&amp;gt;FIRMWARE_RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
durch. Dabei wird auch die printer.cfg neu eingelesen. Bei Problemen in der printer.cfg kann es sein, das ein Klipper: Disconnect erscheint. Dann läuft Klipper nicht und man darf den Fehler suchen.&lt;br /&gt;
&lt;br /&gt;
Mit dem GCode M112 wird Klipper einfach heruntergefahren und man muss sich neu verbinden.&lt;br /&gt;
&lt;br /&gt;
Möchte man nur die printer.cfg neu laden, genügt der Befehl&lt;br /&gt;
&amp;lt;pre&amp;gt;RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PID durchführen ===&lt;br /&gt;
Für den Hotend 1&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=extruder TARGET=210&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für das Heizbett&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=heater_bed TARGET=60&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Daten werden mit SAVE_CONFIG abgespeichert.&lt;br /&gt;
&lt;br /&gt;
=== Z Offset ===&lt;br /&gt;
Um den Z-Offset bzw. die Z-Position des Endschalters zu kalibrieren, gibt es das Macro&lt;br /&gt;
&amp;lt;pre&amp;gt;Z_CALIBRATE&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies führt einen Scan an der Position x=100,y=100 durch. Wichtig ist, dass die Position des Endschalters schon so weit bekannt sein muss, dass Z=2mm zuverlässig '''über''' dem Bett liegt (nicht zu weit, sonst dauert der Scan zu lange), denn diese Position wird vor dem Scan angefahren.&lt;br /&gt;
&lt;br /&gt;
Wenn man testen möchte, ob der Scan zuverlässig funktioniert, kann dieser Befehl benutzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;PROBE_ACCURACY&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das führt dann an der aktuellen XY Position 10 mal einen Z-Scan durch und bestimmt Mittelwert und Standardabweichung etc. Standardabweichung ist also in unteren bis mitteleren einstelligen Mikrometerbereich, der &amp;quot;Maximalfehler&amp;quot; (range) besser als 1/100mm. [https://www.rf1000.de/viewtopic.php?f=7&amp;amp;t=2610&amp;amp;start=60 Mehr Info zu PROBE_ACCURACY siehe Post Nr 62]&lt;br /&gt;
&lt;br /&gt;
=== Bed Mesh Kalibration durchführen ===&lt;br /&gt;
Zum kalibrieren des Bed Mesh (Äquivalent zum Heat Bed Scan der Repetier-Firmware) wird folgendes Macro empfohlen:&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_CALIBRATE&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies führt zunächst ein Z_CALIBRATE durch (ebenfalls an x=100,y=100). Anschließend wird das Bett im Raster vermessen. Die Konfiguration wird am Ende automatisch gespeichert (was zu einem Firmware-Neustart führt).&lt;br /&gt;
&lt;br /&gt;
Dadurch, dass zuerst ein Z_CALIBRATE durchgeführt wird, kann anschließend jederzeit ein Z_CALIBRATE genutzt werden, um z.B. nach einem Düsenwechsel den Abstand zwischen Bett und Düse neu zu kalibrieren, ohne dass ein vollständiger Bed Mesh Scan nötig wäre. Wichtig dafür ist, dass die beiden Z_CALIBRATEs an der selben X/Y-Position ausgeführt werden (deshalb ist diese Position im Macro festgelegt).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_OUTPUT&amp;lt;/pre&amp;gt;&lt;br /&gt;
gibt das aktuelle Mesh aus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_CLEAR&amp;lt;/pre&amp;gt;&lt;br /&gt;
setzt alle Werte des aktuellen Meshes auf 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_PROFILE LOAD=&amp;lt;name&amp;gt; SAVE=&amp;lt;name&amp;gt; REMOVE=&amp;lt;name&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
erlaut das Mesh zu speichern, zu laden, oder ein gespeichertes Mesh zu löschen.&lt;br /&gt;
&lt;br /&gt;
Übrigens kann das Mesh mit OctoPrint visualisiert werden, wenn man sich das Bed Visualizer Plugin installiert.&lt;br /&gt;
&lt;br /&gt;
=== Positionen Abfragen ===&lt;br /&gt;
Damit sieht man die aktuellen Positionen in den verschiedenen Koorinaten-Systeme. Beispiel nach &amp;quot;G1 Z0&amp;quot; auf der Position X=57.5 und Y=50.0&lt;br /&gt;
&amp;lt;pre&amp;gt;Send:16:32:28.975: #GET_POSITION&lt;br /&gt;
Recv:16:32:28.976: // mcu: stepper_x:2 stepper_y:-50 stepper_z:2499&lt;br /&gt;
Recv:16:32:28.976: // stepper: stepper_x:57.500625 stepper_y:49.999688 stepper_z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // kinematic: X:57.500625 Y:49.999688 Z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // toolhead: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode base: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode homing: X:0.000000 Y:0.000000 Z:0.000000&lt;br /&gt;
Recv:16:32:28.976: ok&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man sollte man die Z-Koordinaten zwischen toolhead und kinematic vergleichen. Der Unterschied sollte genau die Korrektur aus dem Mesh-Leveling an dem Punkt plus der Z-Offset durch den Z_OFFSET_SCAN sein. Andernfalls ist da irgendwo noch ein anderer Offset im Spiel.&lt;br /&gt;
&lt;br /&gt;
=== Speichern der Configuration ===&lt;br /&gt;
Mit dem Kommando save_config kann man die Änderungen, die durch die Abgleichfunktionen (PID, HBS, Z-Offset,...) ermittelt wurden, in der Konfigurationsdatei abspeichern&lt;br /&gt;
&amp;lt;pre&amp;gt;SAVE_CONFIG&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Konfigurationsdatei ==&lt;br /&gt;
=== Basiskonfigurationen ===&lt;br /&gt;
Im Verzeichnis von Klipper stehen unter /config die verschiedenen Konfigurationsdateien für Klipper. Aktuell ist für den RF1000 und den RF2000V2 mit Single Extruder eine Konfigurationsdatei vorhanden. Diese Konfigurationsdateien sollte man dort belassen und auch nicht ändern. &lt;br /&gt;
&lt;br /&gt;
=== Eigene printer.cfg ===&lt;br /&gt;
Bei Klipper verwendet man am besten eine eigene printer.cfg, die nicht einfach von einer Vorlage kopiert wird, sondern die die Vorlage ergänzt, ändert und erweitert.&lt;br /&gt;
&lt;br /&gt;
In der printer.cfg steht am Anfang normalerseise immer der Basisdrucker, von dem die aktuelle Konfiguration abgeleitet wird. Wie alle Parametergruppen wird das ganze von eckigen Klammern [] umschlossen.&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf2000v2-single.cfg]&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dannach kann man dann seine geänderten oder neue Parameter hinzufügen. Das folgende ist aus einer Konfiguration für den RF2000V2 single. Zuerst wird der maximale Fahrweg in X und Y anders definiert und anschliessend für Z die Werte angepasst. Dannach kommt die Konfiguration für den HBS.&lt;br /&gt;
&amp;lt;pre&amp;gt;[stepper_x]&lt;br /&gt;
position_max: 210&lt;br /&gt;
&lt;br /&gt;
[stepper_y]&lt;br /&gt;
position_max: 290&lt;br /&gt;
&lt;br /&gt;
[stepper_z]&lt;br /&gt;
position_min: -2.0&lt;br /&gt;
position_max: 185&lt;br /&gt;
&lt;br /&gt;
[bed_mesh]&lt;br /&gt;
speed: 30&lt;br /&gt;
horizontal_move_z: 2&lt;br /&gt;
mesh_min: 10,50&lt;br /&gt;
mesh_max: 200,230&lt;br /&gt;
algorithm:lagrange&lt;br /&gt;
probe_count: 5,5&lt;br /&gt;
fade_start: 1.0&lt;br /&gt;
fade_end: 10.0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach den Parametern kann man sich auch Makros definieren. In dem Beispiel ein Markro zum Auswurf des Objektes, das man einfach mit OUTPUT_OBJECT aufrufen kann.&lt;br /&gt;
&amp;lt;pre&amp;gt;[gcode_macro OUTPUT_OBJECT]&lt;br /&gt;
gcode:&lt;br /&gt;
	G90&lt;br /&gt;
	#G1 Z180	F540&lt;br /&gt;
	G1 Z80	F540&lt;br /&gt;
	G1 Y245 F4800&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als letzte Abschnitt kommen die gespeicherten - durch SAVE_CONFIG - Parameter und Werte. Diese NICHT selbst verändern, sondern immer nur durch das Programm.&lt;br /&gt;
&amp;lt;pre&amp;gt;#*# &amp;lt;---------------------- SAVE_CONFIG ----------------------&amp;gt;&lt;br /&gt;
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.&lt;br /&gt;
#*#&lt;br /&gt;
#*# [extruder]&lt;br /&gt;
#*# control = pid&lt;br /&gt;
#*# pid_kp = 33.373&lt;br /&gt;
#*# pid_ki = 2.060&lt;br /&gt;
#*# pid_kd = 135.160&lt;br /&gt;
#*#&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1168</id>
		<title>Klipper</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1168"/>
		<updated>2021-09-30T11:39:54Z</updated>

		<summary type="html">&lt;p&gt;Mhier: /* Z Offset */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Klipper]]&lt;br /&gt;
&lt;br /&gt;
Klipper ist eine Firmware für 3D Drucker. Diese kann alternativ zu der Repetier-basierten Original-Firmware von Conrad oder der auf dieser Original-Firmware basierenden Community-Version auf den Druckern RF1000, RF2000 oder RF2000v2 verwendet werden. Die dafür nötige Konfiguration ist für die Drucker RF2000 und RF2000v2 noch nicht vollständig. '''Für den RF1000 ist die Konfiguration abgeschlossen und wird seit knapp einem Jahr bereits produktiv eingesetzt zum Drucken und Fräsen.''' Für die anderen Drucker werden Tester gesucht, die bereit sind, die Konfiguration an das jeweilige Modell anzupassen und beizusteuern.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Klipper ist gut dokumentiert auf seiner Webseite, allerdings nur in Englisch: [https://www.klipper3d.org https://www.klipper3d.org]&lt;br /&gt;
&lt;br /&gt;
Das Grundprinzip weicht von der Repetier-basierten Firmware und anderen 3D-Drucker-Firmwares deutlich ab. Statt alle Berechnungen im Microcontroller (im Folgenden MCU genannt) des Druckers auszuführen, werden zeitintensive Berechnungen auf einem Host-System durchgeführt. Als Host-System eignet sich z.B. ein Raspberry Pi oder auch ein herkömmlicher Linux-PC. Auf dem selben Host-System kann (bzw. sollte) auch Octoprint o.ä. ausgeführt werden. Wer also bereits Octoprint etc. nutzt, benötigt keine weitere Hardware.&lt;br /&gt;
&lt;br /&gt;
Da die zur Verfügung stehende Rechenpower so um Größenordnungen höher ist, können deutlich präzisere Berechnungen durchgeführt werden. Die Motoren laufen spürbar ruhiger, und höhere Schrittfrequenzen sind ebenfalls problemlos möglich. Außerdem ist eine höhere Flexibilität möglich. Auch ohne Programmierkenntnisse kann das Verhalten der Firmware über Konfigurations-Dateien beeinflusst werden, sogar neue G-Codes können so eingeführt werden. Die Firmware ist größtenteils in Python geschrieben und sehr modular gehalten, wodurch die Einstiegshürde für Entwickler sehr viel geringer ist.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
Was schon funktioniert:&lt;br /&gt;
* Natürlich alle Grundfunktionen, die jeder normale Drucker hat (Bewegen, Heizen, Lüfter etc.)&lt;br /&gt;
** Dokumentation der unterstützten G-Codes: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
* Heizbett-Scan: heißt bei Klipper Bed Mesh Leveling&lt;br /&gt;
** Es lassen sich beliebig viele benannte Meshes (entspricht den Matrizen) speichern&lt;br /&gt;
** Es gibt kein Software-Limit wie groß die Werte im Mesh werden dürfen&lt;br /&gt;
** Interpolation zwischen den Punkten des Meshes ist deutlich besser, daher sollten weniger Punkte ausreichen&lt;br /&gt;
* Z-Offset-Scan&lt;br /&gt;
** Korrigiert nicht mehr die Matrix/das Mesh, sondern kalibriert die Z-Koordinate des Z-Endstop.&lt;br /&gt;
** Ebenfalls keinerlei Software-Limit auf den Wert des &amp;quot;Offsets&amp;quot;.&lt;br /&gt;
** Homing gegen Z-Max ist problemlos ebenfalls möglich.&lt;br /&gt;
* Menü (im Original-Zustand von Klipper, daher noch etwas rudimentär vielleicht): die Bedienlogik ist etwas anders&lt;br /&gt;
** Die Nach-Rechts-Taste wird eigentlich nicht gebraucht und wurde daher als Not-Aus umfunktioniert.&lt;br /&gt;
** Die Tasten zum Bewegen des Heizbetts und des Extruders fahren in vorgegebenen Schritten. Gedrückthalten für längere Fahrten ist nicht möglich (Einschränkung in Klipper).&lt;br /&gt;
* Pause und Fortsetzen über Tasten (funktioniert evtl. nur mit Octoprint?)&lt;br /&gt;
* Sense offset&lt;br /&gt;
* Emergency Stop (bei zu hohem Druck auf die Wägezellen), funktioniert nur während eines Z-Scans.&lt;br /&gt;
* Kanten antasten in X/Y (Fräsen)&lt;br /&gt;
&lt;br /&gt;
Was fehlt:&lt;br /&gt;
* Konfigurationen für den RF2000 und RF2000v2 (für RF2000v2 single extruder ist eine Konfiguration vorhanden, muss aber geupdated werden)&lt;br /&gt;
* Sagt ihr es mir!&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Eine Ausführliche Installationsanleitung gibt es auf der Webseite: [https://www.klipper3d.org/Installation.html https://www.klipper3d.org/Installation.html]&lt;br /&gt;
&lt;br /&gt;
Da die nötigen Modifikationen und Beispielkonfigurationen noch nicht Teil der offiziellen Klipper-Firmware sind, muss der folgende Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/Klipper3d/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
durch diesen ersetzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/RF1000community/Klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem gibt es bereits eine Konfigurations-Datei für den RF1000. Ich würde daher empfehlen, die Konfigurations-Datei printer.cfg mit folgendem Inhalt zu erstellen:&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf1000.cfg]&lt;br /&gt;
&lt;br /&gt;
[mcu]&lt;br /&gt;
serial: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_&amp;lt;hier_richtige_ID_einfügen&amp;gt;-port0&lt;br /&gt;
&lt;br /&gt;
[stepper_z]&lt;br /&gt;
position_endstop: 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dadurch wird der Inhalt von klipper/config/printer-rf1000.cfg benutzt, aber alle folgenden Einstellungen überschreiben ggf. bereits vorhandene Einstellungen aus der printer-rf1000.cfg Datei. Die Angabe des position_endstop für die Z-Achse ist nötig, da diese durch den Z-Offset-Scan überschrieben wird, was nur funktioniert, wenn diese Angabe direkt in der printer.cfg gemacht wird (nicht im Include).&lt;br /&gt;
&lt;br /&gt;
Nach der Installation bitte unbedingt die Anleitung zum Prüfen der Konfiguration befolgen:&lt;br /&gt;
https://www.klipper3d.org/Config_checks.html&lt;br /&gt;
&lt;br /&gt;
Es ist ebenfalls empfehlenswert, die Konfiguration auf diese Weise nach jedem Update zu prüfen, weil durch das [include] Änderungen aus der Konfigurationsdatei automatisch übernommen werden.&lt;br /&gt;
&lt;br /&gt;
=== Octoprint ===&lt;br /&gt;
&lt;br /&gt;
Die Installationsanleitung geht von einer Octoprint Installation aus.&lt;br /&gt;
&lt;br /&gt;
=== Repetierserver ===&lt;br /&gt;
&lt;br /&gt;
Man kann auf einem normalen RasPi Installation zuerst Repetier-Server aufsetzen und dann erst Klipper. Die Verbindung von Repetier-Server zu Klipper funktioniert aber nicht, da die beiden Programme unter verschiedenen Benutzern arbeiten und die Standard Serial-Emulation das Problem nicht lösen kann.&lt;br /&gt;
&lt;br /&gt;
Abhilfe: (Siehe [Repetier-Server Knowledgebase https://www.repetier-server.com/knowledgebase/klipper/])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/lib/klipper&lt;br /&gt;
sudo chmod 777 /var/lib/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und dann die Änderung in den Einstellungen von Klipper bekannt machen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/defaults/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dort die Zeile am Ende zu &amp;lt;pre&amp;gt;KLIPPY_ARGS=&amp;quot;/home/pi/klipper/klippy/klippy.py /home/pi/printer.cfg -l /tmp/klippy.log -I /var/lib/klipper/connect&amp;quot;&amp;lt;/pre&amp;gt; ergänzen. Anschliessend das Service von Klipper neu starten. Damit kann man sich in Repetier-Server mit Gerät/Port /var/lib/klipper/connect verbinden.&lt;br /&gt;
&lt;br /&gt;
Repetierserver älter als 0.99.4: Bei den Befehlen muss man ein Raute Zeichen # voranstellen, damit es richtig von Repetier-Server weitergegeben wird. Ist bei Version 1.x und besser nicht mehr der Fall.&lt;br /&gt;
&lt;br /&gt;
== Klipper Befehle ==&lt;br /&gt;
&lt;br /&gt;
Klipper unterstützt natürlich alle gängigen G-Code-Befehle, die die Slicer erzeugen. Es wird allgemein empfohlen, den Slicer auf &amp;quot;Marlin&amp;quot; oder &amp;quot;Smoothieware&amp;quot; zu stellen (sofern keine direkte Unterstützung für Klipper vorhanden ist). &lt;br /&gt;
Für erweiterte G-Code-Befehle verfolgt Klipper eine etwas andere Philosophie als andere Firmwares: Statt kryptische M-Befehle zu erdenken, werden sprechende Namen benutzt. Gleiches gilt für die Parameter, die üblicherweise die Form &amp;quot;NAME=Wert&amp;quot; haben. Groß- und Kleinschreibung spielt keine Rolle.&lt;br /&gt;
&lt;br /&gt;
Es ist möglich, mittels Macros eigene G-Code-Befehle zu definieren. Das funktioniert über die Konfiguration und ist in [https://github.com/KevinOConnor/klipper/blob/master/config/example-extras.cfg#L395 example-extras.cfg] im Abschnitt &amp;quot;[gcode_macro my_cmd]&amp;quot; dokumentiert. Dadurch könnte man sich z.B. seinen Start-Code statt im Slicer in der Konfiguration definieren (und so auch leichter ändern, ohne neu slicen zu müssen), oder Befehle, die von Klipper nicht unterstützt aber durch den Slicer erzeugt werden, implementieren.&lt;br /&gt;
&lt;br /&gt;
Siehe [[Klipper_GCodes]] mit der Übersicht der GCodes die von Klipper verstanden werden, auch mit den Erweiterungen die im Repository von rf1000.de enthalten sind.&lt;br /&gt;
Original-Dokumentation: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
&lt;br /&gt;
Hinweis: Einige der dort beschriebenen Befehle sind nur aktiv, wenn bestimmte Module geladen sind. Daher gehen manche Befehle nicht, es sei denn, das Modul wird über die Konfiguration eingeschaltet.&lt;br /&gt;
&lt;br /&gt;
=== Reset ===&lt;br /&gt;
Einen Reset von Klipper, das auch die Firmware zurücksetzt führt man mit dem Kommando &lt;br /&gt;
&amp;lt;pre&amp;gt;FIRMWARE_RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
durch. Dabei wird auch die printer.cfg neu eingelesen. Bei Problemen in der printer.cfg kann es sein, das ein Klipper: Disconnect erscheint. Dann läuft Klipper nicht und man darf den Fehler suchen.&lt;br /&gt;
&lt;br /&gt;
Mit dem GCode M112 wird Klipper einfach heruntergefahren und man muss sich neu verbinden.&lt;br /&gt;
&lt;br /&gt;
Möchte man nur die printer.cfg neu laden, genügt der Befehl&lt;br /&gt;
&amp;lt;pre&amp;gt;RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PID durchführen ===&lt;br /&gt;
Für den Hotend 1&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=extruder TARGET=210&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für das Heizbett&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=heater_bed TARGET=60&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Daten werden mit SAVE_CONFIG abgespeichert.&lt;br /&gt;
&lt;br /&gt;
=== Z Offset ===&lt;br /&gt;
Um den Z-Offset bzw. die Z-Position des Endschalters zu kalibrieren, gibt es das Macro&lt;br /&gt;
&amp;lt;pre&amp;gt;Z_CALIBRATE&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies führt einen Scan an der Position x=100,y=100 durch. Wichtig ist, dass die Position des Endschalters schon so weit bekannt sein muss, dass Z=2mm zuverlässig '''über''' dem Bett liegt (nicht zu weit, sonst dauert der Scan zu lange), denn diese Position wird vor dem Scan angefahren.&lt;br /&gt;
&lt;br /&gt;
Wenn man testen möchte, ob der Scan zuverlässig funktioniert, kann dieser Befehl benutzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;PROBE_ACCURACY&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das führt dann an der aktuellen XY Position 10 mal einen Z-Scan durch und bestimmt Mittelwert und Standardabweichung etc. Standardabweichung ist also in unteren bis mitteleren einstelligen Mikrometerbereich, der &amp;quot;Maximalfehler&amp;quot; (range) besser als 1/100mm. [https://www.rf1000.de/viewtopic.php?f=7&amp;amp;t=2610&amp;amp;start=60 Mehr Info zu PROBE_ACCURACY siehe Post Nr 62]&lt;br /&gt;
&lt;br /&gt;
=== Bed Mesh Kalibration durchführen ===&lt;br /&gt;
Zum kalibrieren des Bed Mesh (Äquivalent zum Heat Bed Scan der Repetier-Firmware) wird folgendes Macro empfohlen:&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_CALIBRATE&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies führt zunächst ein Z_CALIBRATE durch (ebenfalls an x=100,y=100). Anschließend wird das Bett im Raster vermessen. Die Konfiguration wird am Ende automatisch gespeichert (was zu einem Firmware-Neustart führt).&lt;br /&gt;
&lt;br /&gt;
Dadurch, dass zuerst ein Z_CALIBRATE durchgeführt wird, kann anschließend jederzeit ein Z_CALIBRATE genutzt werden, um z.B. nach einem Düsenwechsel den Abstand zwischen Bett und Düse neu zu kalibrieren, ohne dass ein vollständiger Bed Mesh Scan nötig wäre.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_OUTPUT&amp;lt;/pre&amp;gt;&lt;br /&gt;
gibt das aktuelle Mesh aus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_CLEAR&amp;lt;/pre&amp;gt;&lt;br /&gt;
setzt alle Werte des aktuellen Meshes auf 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_PROFILE LOAD=&amp;lt;name&amp;gt; SAVE=&amp;lt;name&amp;gt; REMOVE=&amp;lt;name&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
erlaut das Mesh zu speichern, zu laden, oder ein gespeichertes Mesh zu löschen.&lt;br /&gt;
&lt;br /&gt;
Übrigens kann das Mesh mit OctoPrint visualisiert werden, wenn man sich das Bed Visualizer Plugin installiert.&lt;br /&gt;
&lt;br /&gt;
=== Positionen Abfragen ===&lt;br /&gt;
Damit sieht man die aktuellen Positionen in den verschiedenen Koorinaten-Systeme. Beispiel nach &amp;quot;G1 Z0&amp;quot; auf der Position X=57.5 und Y=50.0&lt;br /&gt;
&amp;lt;pre&amp;gt;Send:16:32:28.975: #GET_POSITION&lt;br /&gt;
Recv:16:32:28.976: // mcu: stepper_x:2 stepper_y:-50 stepper_z:2499&lt;br /&gt;
Recv:16:32:28.976: // stepper: stepper_x:57.500625 stepper_y:49.999688 stepper_z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // kinematic: X:57.500625 Y:49.999688 Z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // toolhead: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode base: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode homing: X:0.000000 Y:0.000000 Z:0.000000&lt;br /&gt;
Recv:16:32:28.976: ok&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man sollte man die Z-Koordinaten zwischen toolhead und kinematic vergleichen. Der Unterschied sollte genau die Korrektur aus dem Mesh-Leveling an dem Punkt plus der Z-Offset durch den Z_OFFSET_SCAN sein. Andernfalls ist da irgendwo noch ein anderer Offset im Spiel.&lt;br /&gt;
&lt;br /&gt;
=== Speichern der Configuration ===&lt;br /&gt;
Mit dem Kommando save_config kann man die Änderungen, die durch die Abgleichfunktionen (PID, HBS, Z-Offset,...) ermittelt wurden, in der Konfigurationsdatei abspeichern&lt;br /&gt;
&amp;lt;pre&amp;gt;SAVE_CONFIG&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Konfigurationsdatei ==&lt;br /&gt;
=== Basiskonfigurationen ===&lt;br /&gt;
Im Verzeichnis von Klipper stehen unter /config die verschiedenen Konfigurationsdateien für Klipper. Aktuell ist für den RF1000 und den RF2000V2 mit Single Extruder eine Konfigurationsdatei vorhanden. Diese Konfigurationsdateien sollte man dort belassen und auch nicht ändern. &lt;br /&gt;
&lt;br /&gt;
=== Eigene printer.cfg ===&lt;br /&gt;
Bei Klipper verwendet man am besten eine eigene printer.cfg, die nicht einfach von einer Vorlage kopiert wird, sondern die die Vorlage ergänzt, ändert und erweitert.&lt;br /&gt;
&lt;br /&gt;
In der printer.cfg steht am Anfang normalerseise immer der Basisdrucker, von dem die aktuelle Konfiguration abgeleitet wird. Wie alle Parametergruppen wird das ganze von eckigen Klammern [] umschlossen.&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf2000v2-single.cfg]&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dannach kann man dann seine geänderten oder neue Parameter hinzufügen. Das folgende ist aus einer Konfiguration für den RF2000V2 single. Zuerst wird der maximale Fahrweg in X und Y anders definiert und anschliessend für Z die Werte angepasst. Dannach kommt die Konfiguration für den HBS.&lt;br /&gt;
&amp;lt;pre&amp;gt;[stepper_x]&lt;br /&gt;
position_max: 210&lt;br /&gt;
&lt;br /&gt;
[stepper_y]&lt;br /&gt;
position_max: 290&lt;br /&gt;
&lt;br /&gt;
[stepper_z]&lt;br /&gt;
position_min: -2.0&lt;br /&gt;
position_max: 185&lt;br /&gt;
&lt;br /&gt;
[bed_mesh]&lt;br /&gt;
speed: 30&lt;br /&gt;
horizontal_move_z: 2&lt;br /&gt;
mesh_min: 10,50&lt;br /&gt;
mesh_max: 200,230&lt;br /&gt;
algorithm:lagrange&lt;br /&gt;
probe_count: 5,5&lt;br /&gt;
fade_start: 1.0&lt;br /&gt;
fade_end: 10.0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach den Parametern kann man sich auch Makros definieren. In dem Beispiel ein Markro zum Auswurf des Objektes, das man einfach mit OUTPUT_OBJECT aufrufen kann.&lt;br /&gt;
&amp;lt;pre&amp;gt;[gcode_macro OUTPUT_OBJECT]&lt;br /&gt;
gcode:&lt;br /&gt;
	G90&lt;br /&gt;
	#G1 Z180	F540&lt;br /&gt;
	G1 Z80	F540&lt;br /&gt;
	G1 Y245 F4800&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als letzte Abschnitt kommen die gespeicherten - durch SAVE_CONFIG - Parameter und Werte. Diese NICHT selbst verändern, sondern immer nur durch das Programm.&lt;br /&gt;
&amp;lt;pre&amp;gt;#*# &amp;lt;---------------------- SAVE_CONFIG ----------------------&amp;gt;&lt;br /&gt;
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.&lt;br /&gt;
#*#&lt;br /&gt;
#*# [extruder]&lt;br /&gt;
#*# control = pid&lt;br /&gt;
#*# pid_kp = 33.373&lt;br /&gt;
#*# pid_ki = 2.060&lt;br /&gt;
#*# pid_kd = 135.160&lt;br /&gt;
#*#&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1167</id>
		<title>Klipper</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1167"/>
		<updated>2021-09-30T11:37:59Z</updated>

		<summary type="html">&lt;p&gt;Mhier: /* Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Klipper]]&lt;br /&gt;
&lt;br /&gt;
Klipper ist eine Firmware für 3D Drucker. Diese kann alternativ zu der Repetier-basierten Original-Firmware von Conrad oder der auf dieser Original-Firmware basierenden Community-Version auf den Druckern RF1000, RF2000 oder RF2000v2 verwendet werden. Die dafür nötige Konfiguration ist für die Drucker RF2000 und RF2000v2 noch nicht vollständig. '''Für den RF1000 ist die Konfiguration abgeschlossen und wird seit knapp einem Jahr bereits produktiv eingesetzt zum Drucken und Fräsen.''' Für die anderen Drucker werden Tester gesucht, die bereit sind, die Konfiguration an das jeweilige Modell anzupassen und beizusteuern.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Klipper ist gut dokumentiert auf seiner Webseite, allerdings nur in Englisch: [https://www.klipper3d.org https://www.klipper3d.org]&lt;br /&gt;
&lt;br /&gt;
Das Grundprinzip weicht von der Repetier-basierten Firmware und anderen 3D-Drucker-Firmwares deutlich ab. Statt alle Berechnungen im Microcontroller (im Folgenden MCU genannt) des Druckers auszuführen, werden zeitintensive Berechnungen auf einem Host-System durchgeführt. Als Host-System eignet sich z.B. ein Raspberry Pi oder auch ein herkömmlicher Linux-PC. Auf dem selben Host-System kann (bzw. sollte) auch Octoprint o.ä. ausgeführt werden. Wer also bereits Octoprint etc. nutzt, benötigt keine weitere Hardware.&lt;br /&gt;
&lt;br /&gt;
Da die zur Verfügung stehende Rechenpower so um Größenordnungen höher ist, können deutlich präzisere Berechnungen durchgeführt werden. Die Motoren laufen spürbar ruhiger, und höhere Schrittfrequenzen sind ebenfalls problemlos möglich. Außerdem ist eine höhere Flexibilität möglich. Auch ohne Programmierkenntnisse kann das Verhalten der Firmware über Konfigurations-Dateien beeinflusst werden, sogar neue G-Codes können so eingeführt werden. Die Firmware ist größtenteils in Python geschrieben und sehr modular gehalten, wodurch die Einstiegshürde für Entwickler sehr viel geringer ist.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
Was schon funktioniert:&lt;br /&gt;
* Natürlich alle Grundfunktionen, die jeder normale Drucker hat (Bewegen, Heizen, Lüfter etc.)&lt;br /&gt;
** Dokumentation der unterstützten G-Codes: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
* Heizbett-Scan: heißt bei Klipper Bed Mesh Leveling&lt;br /&gt;
** Es lassen sich beliebig viele benannte Meshes (entspricht den Matrizen) speichern&lt;br /&gt;
** Es gibt kein Software-Limit wie groß die Werte im Mesh werden dürfen&lt;br /&gt;
** Interpolation zwischen den Punkten des Meshes ist deutlich besser, daher sollten weniger Punkte ausreichen&lt;br /&gt;
* Z-Offset-Scan&lt;br /&gt;
** Korrigiert nicht mehr die Matrix/das Mesh, sondern kalibriert die Z-Koordinate des Z-Endstop.&lt;br /&gt;
** Ebenfalls keinerlei Software-Limit auf den Wert des &amp;quot;Offsets&amp;quot;.&lt;br /&gt;
** Homing gegen Z-Max ist problemlos ebenfalls möglich.&lt;br /&gt;
* Menü (im Original-Zustand von Klipper, daher noch etwas rudimentär vielleicht): die Bedienlogik ist etwas anders&lt;br /&gt;
** Die Nach-Rechts-Taste wird eigentlich nicht gebraucht und wurde daher als Not-Aus umfunktioniert.&lt;br /&gt;
** Die Tasten zum Bewegen des Heizbetts und des Extruders fahren in vorgegebenen Schritten. Gedrückthalten für längere Fahrten ist nicht möglich (Einschränkung in Klipper).&lt;br /&gt;
* Pause und Fortsetzen über Tasten (funktioniert evtl. nur mit Octoprint?)&lt;br /&gt;
* Sense offset&lt;br /&gt;
* Emergency Stop (bei zu hohem Druck auf die Wägezellen), funktioniert nur während eines Z-Scans.&lt;br /&gt;
* Kanten antasten in X/Y (Fräsen)&lt;br /&gt;
&lt;br /&gt;
Was fehlt:&lt;br /&gt;
* Konfigurationen für den RF2000 und RF2000v2 (für RF2000v2 single extruder ist eine Konfiguration vorhanden, muss aber geupdated werden)&lt;br /&gt;
* Sagt ihr es mir!&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Eine Ausführliche Installationsanleitung gibt es auf der Webseite: [https://www.klipper3d.org/Installation.html https://www.klipper3d.org/Installation.html]&lt;br /&gt;
&lt;br /&gt;
Da die nötigen Modifikationen und Beispielkonfigurationen noch nicht Teil der offiziellen Klipper-Firmware sind, muss der folgende Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/Klipper3d/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
durch diesen ersetzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/RF1000community/Klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem gibt es bereits eine Konfigurations-Datei für den RF1000. Ich würde daher empfehlen, die Konfigurations-Datei printer.cfg mit folgendem Inhalt zu erstellen:&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf1000.cfg]&lt;br /&gt;
&lt;br /&gt;
[mcu]&lt;br /&gt;
serial: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_&amp;lt;hier_richtige_ID_einfügen&amp;gt;-port0&lt;br /&gt;
&lt;br /&gt;
[stepper_z]&lt;br /&gt;
position_endstop: 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dadurch wird der Inhalt von klipper/config/printer-rf1000.cfg benutzt, aber alle folgenden Einstellungen überschreiben ggf. bereits vorhandene Einstellungen aus der printer-rf1000.cfg Datei. Die Angabe des position_endstop für die Z-Achse ist nötig, da diese durch den Z-Offset-Scan überschrieben wird, was nur funktioniert, wenn diese Angabe direkt in der printer.cfg gemacht wird (nicht im Include).&lt;br /&gt;
&lt;br /&gt;
Nach der Installation bitte unbedingt die Anleitung zum Prüfen der Konfiguration befolgen:&lt;br /&gt;
https://www.klipper3d.org/Config_checks.html&lt;br /&gt;
&lt;br /&gt;
Es ist ebenfalls empfehlenswert, die Konfiguration auf diese Weise nach jedem Update zu prüfen, weil durch das [include] Änderungen aus der Konfigurationsdatei automatisch übernommen werden.&lt;br /&gt;
&lt;br /&gt;
=== Octoprint ===&lt;br /&gt;
&lt;br /&gt;
Die Installationsanleitung geht von einer Octoprint Installation aus.&lt;br /&gt;
&lt;br /&gt;
=== Repetierserver ===&lt;br /&gt;
&lt;br /&gt;
Man kann auf einem normalen RasPi Installation zuerst Repetier-Server aufsetzen und dann erst Klipper. Die Verbindung von Repetier-Server zu Klipper funktioniert aber nicht, da die beiden Programme unter verschiedenen Benutzern arbeiten und die Standard Serial-Emulation das Problem nicht lösen kann.&lt;br /&gt;
&lt;br /&gt;
Abhilfe: (Siehe [Repetier-Server Knowledgebase https://www.repetier-server.com/knowledgebase/klipper/])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/lib/klipper&lt;br /&gt;
sudo chmod 777 /var/lib/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und dann die Änderung in den Einstellungen von Klipper bekannt machen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/defaults/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dort die Zeile am Ende zu &amp;lt;pre&amp;gt;KLIPPY_ARGS=&amp;quot;/home/pi/klipper/klippy/klippy.py /home/pi/printer.cfg -l /tmp/klippy.log -I /var/lib/klipper/connect&amp;quot;&amp;lt;/pre&amp;gt; ergänzen. Anschliessend das Service von Klipper neu starten. Damit kann man sich in Repetier-Server mit Gerät/Port /var/lib/klipper/connect verbinden.&lt;br /&gt;
&lt;br /&gt;
Repetierserver älter als 0.99.4: Bei den Befehlen muss man ein Raute Zeichen # voranstellen, damit es richtig von Repetier-Server weitergegeben wird. Ist bei Version 1.x und besser nicht mehr der Fall.&lt;br /&gt;
&lt;br /&gt;
== Klipper Befehle ==&lt;br /&gt;
&lt;br /&gt;
Klipper unterstützt natürlich alle gängigen G-Code-Befehle, die die Slicer erzeugen. Es wird allgemein empfohlen, den Slicer auf &amp;quot;Marlin&amp;quot; oder &amp;quot;Smoothieware&amp;quot; zu stellen (sofern keine direkte Unterstützung für Klipper vorhanden ist). &lt;br /&gt;
Für erweiterte G-Code-Befehle verfolgt Klipper eine etwas andere Philosophie als andere Firmwares: Statt kryptische M-Befehle zu erdenken, werden sprechende Namen benutzt. Gleiches gilt für die Parameter, die üblicherweise die Form &amp;quot;NAME=Wert&amp;quot; haben. Groß- und Kleinschreibung spielt keine Rolle.&lt;br /&gt;
&lt;br /&gt;
Es ist möglich, mittels Macros eigene G-Code-Befehle zu definieren. Das funktioniert über die Konfiguration und ist in [https://github.com/KevinOConnor/klipper/blob/master/config/example-extras.cfg#L395 example-extras.cfg] im Abschnitt &amp;quot;[gcode_macro my_cmd]&amp;quot; dokumentiert. Dadurch könnte man sich z.B. seinen Start-Code statt im Slicer in der Konfiguration definieren (und so auch leichter ändern, ohne neu slicen zu müssen), oder Befehle, die von Klipper nicht unterstützt aber durch den Slicer erzeugt werden, implementieren.&lt;br /&gt;
&lt;br /&gt;
Siehe [[Klipper_GCodes]] mit der Übersicht der GCodes die von Klipper verstanden werden, auch mit den Erweiterungen die im Repository von rf1000.de enthalten sind.&lt;br /&gt;
Original-Dokumentation: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
&lt;br /&gt;
Hinweis: Einige der dort beschriebenen Befehle sind nur aktiv, wenn bestimmte Module geladen sind. Daher gehen manche Befehle nicht, es sei denn, das Modul wird über die Konfiguration eingeschaltet.&lt;br /&gt;
&lt;br /&gt;
=== Reset ===&lt;br /&gt;
Einen Reset von Klipper, das auch die Firmware zurücksetzt führt man mit dem Kommando &lt;br /&gt;
&amp;lt;pre&amp;gt;FIRMWARE_RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
durch. Dabei wird auch die printer.cfg neu eingelesen. Bei Problemen in der printer.cfg kann es sein, das ein Klipper: Disconnect erscheint. Dann läuft Klipper nicht und man darf den Fehler suchen.&lt;br /&gt;
&lt;br /&gt;
Mit dem GCode M112 wird Klipper einfach heruntergefahren und man muss sich neu verbinden.&lt;br /&gt;
&lt;br /&gt;
Möchte man nur die printer.cfg neu laden, genügt der Befehl&lt;br /&gt;
&amp;lt;pre&amp;gt;RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PID durchführen ===&lt;br /&gt;
Für den Hotend 1&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=extruder TARGET=210&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für das Heizbett&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=heater_bed TARGET=60&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Daten werden mit SAVE_CONFIG abgespeichert.&lt;br /&gt;
&lt;br /&gt;
=== Z Offset ===&lt;br /&gt;
Um den Z-Offset bzw. die Z-Position des Endschalters zu kalibrieren, gibt es das Macro&lt;br /&gt;
&amp;lt;pre&amp;gt;Z_CALIBRATE&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies führt einen Scan an der Position x=100,y=100 durch. Wichtig ist, dass die Position des Endschalters schon so weit bekannt sein muss, dass Z=2mm zuverlässig '''über''' dem Bett liegt (nicht zu weit, sonst dauert der Scan zu lange).&lt;br /&gt;
&lt;br /&gt;
Wenn man testen möchte, ob der Scan zuverlässig funktioniert, kann dieser Befehl benutzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;PROBE_ACCURACY&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das führt dann an der aktuellen XY Position 10 mal einen Z-Scan durch und bestimmt Mittelwert und Standardabweichung etc. Standardabweichung ist also in unteren bis mitteleren einstelligen Mikrometerbereich, der &amp;quot;Maximalfehler&amp;quot; (range) besser als 1/100mm. [https://www.rf1000.de/viewtopic.php?f=7&amp;amp;t=2610&amp;amp;start=60 Mehr Info zu PROBE_ACCURACY siehe Post Nr 62]&lt;br /&gt;
&lt;br /&gt;
=== Bed Mesh Kalibration durchführen ===&lt;br /&gt;
Zum kalibrieren des Bed Mesh (Äquivalent zum Heat Bed Scan der Repetier-Firmware) wird folgendes Macro empfohlen:&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_CALIBRATE&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies führt zunächst ein Z_CALIBRATE durch (ebenfalls an x=100,y=100). Anschließend wird das Bett im Raster vermessen. Die Konfiguration wird am Ende automatisch gespeichert (was zu einem Firmware-Neustart führt).&lt;br /&gt;
&lt;br /&gt;
Dadurch, dass zuerst ein Z_CALIBRATE durchgeführt wird, kann anschließend jederzeit ein Z_CALIBRATE genutzt werden, um z.B. nach einem Düsenwechsel den Abstand zwischen Bett und Düse neu zu kalibrieren, ohne dass ein vollständiger Bed Mesh Scan nötig wäre.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_OUTPUT&amp;lt;/pre&amp;gt;&lt;br /&gt;
gibt das aktuelle Mesh aus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_CLEAR&amp;lt;/pre&amp;gt;&lt;br /&gt;
setzt alle Werte des aktuellen Meshes auf 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_PROFILE LOAD=&amp;lt;name&amp;gt; SAVE=&amp;lt;name&amp;gt; REMOVE=&amp;lt;name&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
erlaut das Mesh zu speichern, zu laden, oder ein gespeichertes Mesh zu löschen.&lt;br /&gt;
&lt;br /&gt;
Übrigens kann das Mesh mit OctoPrint visualisiert werden, wenn man sich das Bed Visualizer Plugin installiert.&lt;br /&gt;
&lt;br /&gt;
=== Positionen Abfragen ===&lt;br /&gt;
Damit sieht man die aktuellen Positionen in den verschiedenen Koorinaten-Systeme. Beispiel nach &amp;quot;G1 Z0&amp;quot; auf der Position X=57.5 und Y=50.0&lt;br /&gt;
&amp;lt;pre&amp;gt;Send:16:32:28.975: #GET_POSITION&lt;br /&gt;
Recv:16:32:28.976: // mcu: stepper_x:2 stepper_y:-50 stepper_z:2499&lt;br /&gt;
Recv:16:32:28.976: // stepper: stepper_x:57.500625 stepper_y:49.999688 stepper_z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // kinematic: X:57.500625 Y:49.999688 Z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // toolhead: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode base: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode homing: X:0.000000 Y:0.000000 Z:0.000000&lt;br /&gt;
Recv:16:32:28.976: ok&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man sollte man die Z-Koordinaten zwischen toolhead und kinematic vergleichen. Der Unterschied sollte genau die Korrektur aus dem Mesh-Leveling an dem Punkt plus der Z-Offset durch den Z_OFFSET_SCAN sein. Andernfalls ist da irgendwo noch ein anderer Offset im Spiel.&lt;br /&gt;
&lt;br /&gt;
=== Speichern der Configuration ===&lt;br /&gt;
Mit dem Kommando save_config kann man die Änderungen, die durch die Abgleichfunktionen (PID, HBS, Z-Offset,...) ermittelt wurden, in der Konfigurationsdatei abspeichern&lt;br /&gt;
&amp;lt;pre&amp;gt;SAVE_CONFIG&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Konfigurationsdatei ==&lt;br /&gt;
=== Basiskonfigurationen ===&lt;br /&gt;
Im Verzeichnis von Klipper stehen unter /config die verschiedenen Konfigurationsdateien für Klipper. Aktuell ist für den RF1000 und den RF2000V2 mit Single Extruder eine Konfigurationsdatei vorhanden. Diese Konfigurationsdateien sollte man dort belassen und auch nicht ändern. &lt;br /&gt;
&lt;br /&gt;
=== Eigene printer.cfg ===&lt;br /&gt;
Bei Klipper verwendet man am besten eine eigene printer.cfg, die nicht einfach von einer Vorlage kopiert wird, sondern die die Vorlage ergänzt, ändert und erweitert.&lt;br /&gt;
&lt;br /&gt;
In der printer.cfg steht am Anfang normalerseise immer der Basisdrucker, von dem die aktuelle Konfiguration abgeleitet wird. Wie alle Parametergruppen wird das ganze von eckigen Klammern [] umschlossen.&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf2000v2-single.cfg]&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dannach kann man dann seine geänderten oder neue Parameter hinzufügen. Das folgende ist aus einer Konfiguration für den RF2000V2 single. Zuerst wird der maximale Fahrweg in X und Y anders definiert und anschliessend für Z die Werte angepasst. Dannach kommt die Konfiguration für den HBS.&lt;br /&gt;
&amp;lt;pre&amp;gt;[stepper_x]&lt;br /&gt;
position_max: 210&lt;br /&gt;
&lt;br /&gt;
[stepper_y]&lt;br /&gt;
position_max: 290&lt;br /&gt;
&lt;br /&gt;
[stepper_z]&lt;br /&gt;
position_min: -2.0&lt;br /&gt;
position_max: 185&lt;br /&gt;
&lt;br /&gt;
[bed_mesh]&lt;br /&gt;
speed: 30&lt;br /&gt;
horizontal_move_z: 2&lt;br /&gt;
mesh_min: 10,50&lt;br /&gt;
mesh_max: 200,230&lt;br /&gt;
algorithm:lagrange&lt;br /&gt;
probe_count: 5,5&lt;br /&gt;
fade_start: 1.0&lt;br /&gt;
fade_end: 10.0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach den Parametern kann man sich auch Makros definieren. In dem Beispiel ein Markro zum Auswurf des Objektes, das man einfach mit OUTPUT_OBJECT aufrufen kann.&lt;br /&gt;
&amp;lt;pre&amp;gt;[gcode_macro OUTPUT_OBJECT]&lt;br /&gt;
gcode:&lt;br /&gt;
	G90&lt;br /&gt;
	#G1 Z180	F540&lt;br /&gt;
	G1 Z80	F540&lt;br /&gt;
	G1 Y245 F4800&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als letzte Abschnitt kommen die gespeicherten - durch SAVE_CONFIG - Parameter und Werte. Diese NICHT selbst verändern, sondern immer nur durch das Programm.&lt;br /&gt;
&amp;lt;pre&amp;gt;#*# &amp;lt;---------------------- SAVE_CONFIG ----------------------&amp;gt;&lt;br /&gt;
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.&lt;br /&gt;
#*#&lt;br /&gt;
#*# [extruder]&lt;br /&gt;
#*# control = pid&lt;br /&gt;
#*# pid_kp = 33.373&lt;br /&gt;
#*# pid_ki = 2.060&lt;br /&gt;
#*# pid_kd = 135.160&lt;br /&gt;
#*#&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1166</id>
		<title>Klipper</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1166"/>
		<updated>2021-09-30T11:37:06Z</updated>

		<summary type="html">&lt;p&gt;Mhier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Klipper]]&lt;br /&gt;
&lt;br /&gt;
Klipper ist eine Firmware für 3D Drucker. Diese kann alternativ zu der Repetier-basierten Original-Firmware von Conrad oder der auf dieser Original-Firmware basierenden Community-Version auf den Druckern RF1000, RF2000 oder RF2000v2 verwendet werden. Die dafür nötige Konfiguration ist für die Drucker RF2000 und RF2000v2 noch nicht vollständig. '''Für den RF1000 ist die Konfiguration abgeschlossen und wird seit knapp einem Jahr bereits produktiv eingesetzt zum Drucken und Fräsen.''' Für die anderen Drucker werden Tester gesucht, die bereit sind, die Konfiguration an das jeweilige Modell anzupassen und beizusteuern.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Klipper ist gut dokumentiert auf seiner Webseite, allerdings nur in Englisch: [https://www.klipper3d.org https://www.klipper3d.org]&lt;br /&gt;
&lt;br /&gt;
Das Grundprinzip weicht von der Repetier-basierten Firmware und anderen 3D-Drucker-Firmwares deutlich ab. Statt alle Berechnungen im Microcontroller (im Folgenden MCU genannt) des Druckers auszuführen, werden zeitintensive Berechnungen auf einem Host-System durchgeführt. Als Host-System eignet sich z.B. ein Raspberry Pi oder auch ein herkömmlicher Linux-PC. Auf dem selben Host-System kann (bzw. sollte) auch Octoprint o.ä. ausgeführt werden. Wer also bereits Octoprint etc. nutzt, benötigt keine weitere Hardware.&lt;br /&gt;
&lt;br /&gt;
Da die zur Verfügung stehende Rechenpower so um Größenordnungen höher ist, können deutlich präzisere Berechnungen durchgeführt werden. Die Motoren laufen spürbar ruhiger, und höhere Schrittfrequenzen sind ebenfalls problemlos möglich. Außerdem ist eine höhere Flexibilität möglich. Auch ohne Programmierkenntnisse kann das Verhalten der Firmware über Konfigurations-Dateien beeinflusst werden, sogar neue G-Codes können so eingeführt werden. Die Firmware ist größtenteils in Python geschrieben und sehr modular gehalten, wodurch die Einstiegshürde für Entwickler sehr viel geringer ist.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
Was schon funktioniert:&lt;br /&gt;
* Natürlich alle Grundfunktionen, die jeder normale Drucker hat (Bewegen, Heizen, Lüfter etc.)&lt;br /&gt;
** Dokumentation der unterstützten G-Codes: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
* Heizbett-Scan: heißt bei Klipper Bed Mesh Leveling&lt;br /&gt;
** Es lassen sich beliebig viele benannte Meshes (entspricht den Matrizen) speichern&lt;br /&gt;
** Es gibt kein Software-Limit wie groß die Werte im Mesh werden dürfen&lt;br /&gt;
** Interpolation zwischen den Punkten des Meshes ist deutlich besser, daher sollten weniger Punkte ausreichen&lt;br /&gt;
* Z-Offset-Scan&lt;br /&gt;
** Korrigiert nicht mehr die Matrix/das Mesh, sondern kalibriert die Z-Koordinate des Z-Endstop.&lt;br /&gt;
** Ebenfalls keinerlei Software-Limit auf den Wert des &amp;quot;Offsets&amp;quot;.&lt;br /&gt;
** Homing gegen Z-Max ist problemlos ebenfalls möglich.&lt;br /&gt;
* Menü (im Original-Zustand von Klipper, daher noch etwas rudimentär vielleicht): die Bedienlogik ist etwas anders&lt;br /&gt;
** Die Nach-Rechts-Taste wird eigentlich nicht gebraucht und wurde daher als Not-Aus umfunktioniert.&lt;br /&gt;
** Die Tasten zum Bewegen des Heizbetts und des Extruders fahren in vorgegebenen Schritten. Gedrückthalten für längere Fahrten ist nicht möglich (Einschränkung in Klipper).&lt;br /&gt;
* Pause und Fortsetzen über Tasten (funktioniert evtl. nur mit Octoprint?)&lt;br /&gt;
* Sense offset&lt;br /&gt;
* Emergency Pause/Stop (bei zu hohem Druck auf die Wägezellen), funktioniert nur während eines Z-Scans.&lt;br /&gt;
* Kanten antasten in X/Y (Fräsen)&lt;br /&gt;
&lt;br /&gt;
Was fehlt:&lt;br /&gt;
* Konfigurationen für den RF2000 und RF2000v2 (für RF2000v2 single extruder ist eine Konfiguration vorhanden, muss aber geupdated werden)&lt;br /&gt;
* Sagt ihr es mir!&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Eine Ausführliche Installationsanleitung gibt es auf der Webseite: [https://www.klipper3d.org/Installation.html https://www.klipper3d.org/Installation.html]&lt;br /&gt;
&lt;br /&gt;
Da die nötigen Modifikationen und Beispielkonfigurationen noch nicht Teil der offiziellen Klipper-Firmware sind, muss der folgende Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/Klipper3d/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
durch diesen ersetzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/RF1000community/Klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem gibt es bereits eine Konfigurations-Datei für den RF1000. Ich würde daher empfehlen, die Konfigurations-Datei printer.cfg mit folgendem Inhalt zu erstellen:&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf1000.cfg]&lt;br /&gt;
&lt;br /&gt;
[mcu]&lt;br /&gt;
serial: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_&amp;lt;hier_richtige_ID_einfügen&amp;gt;-port0&lt;br /&gt;
&lt;br /&gt;
[stepper_z]&lt;br /&gt;
position_endstop: 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dadurch wird der Inhalt von klipper/config/printer-rf1000.cfg benutzt, aber alle folgenden Einstellungen überschreiben ggf. bereits vorhandene Einstellungen aus der printer-rf1000.cfg Datei. Die Angabe des position_endstop für die Z-Achse ist nötig, da diese durch den Z-Offset-Scan überschrieben wird, was nur funktioniert, wenn diese Angabe direkt in der printer.cfg gemacht wird (nicht im Include).&lt;br /&gt;
&lt;br /&gt;
Nach der Installation bitte unbedingt die Anleitung zum Prüfen der Konfiguration befolgen:&lt;br /&gt;
https://www.klipper3d.org/Config_checks.html&lt;br /&gt;
&lt;br /&gt;
Es ist ebenfalls empfehlenswert, die Konfiguration auf diese Weise nach jedem Update zu prüfen, weil durch das [include] Änderungen aus der Konfigurationsdatei automatisch übernommen werden.&lt;br /&gt;
&lt;br /&gt;
=== Octoprint ===&lt;br /&gt;
&lt;br /&gt;
Die Installationsanleitung geht von einer Octoprint Installation aus.&lt;br /&gt;
&lt;br /&gt;
=== Repetierserver ===&lt;br /&gt;
&lt;br /&gt;
Man kann auf einem normalen RasPi Installation zuerst Repetier-Server aufsetzen und dann erst Klipper. Die Verbindung von Repetier-Server zu Klipper funktioniert aber nicht, da die beiden Programme unter verschiedenen Benutzern arbeiten und die Standard Serial-Emulation das Problem nicht lösen kann.&lt;br /&gt;
&lt;br /&gt;
Abhilfe: (Siehe [Repetier-Server Knowledgebase https://www.repetier-server.com/knowledgebase/klipper/])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/lib/klipper&lt;br /&gt;
sudo chmod 777 /var/lib/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und dann die Änderung in den Einstellungen von Klipper bekannt machen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/defaults/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dort die Zeile am Ende zu &amp;lt;pre&amp;gt;KLIPPY_ARGS=&amp;quot;/home/pi/klipper/klippy/klippy.py /home/pi/printer.cfg -l /tmp/klippy.log -I /var/lib/klipper/connect&amp;quot;&amp;lt;/pre&amp;gt; ergänzen. Anschliessend das Service von Klipper neu starten. Damit kann man sich in Repetier-Server mit Gerät/Port /var/lib/klipper/connect verbinden.&lt;br /&gt;
&lt;br /&gt;
Repetierserver älter als 0.99.4: Bei den Befehlen muss man ein Raute Zeichen # voranstellen, damit es richtig von Repetier-Server weitergegeben wird. Ist bei Version 1.x und besser nicht mehr der Fall.&lt;br /&gt;
&lt;br /&gt;
== Klipper Befehle ==&lt;br /&gt;
&lt;br /&gt;
Klipper unterstützt natürlich alle gängigen G-Code-Befehle, die die Slicer erzeugen. Es wird allgemein empfohlen, den Slicer auf &amp;quot;Marlin&amp;quot; oder &amp;quot;Smoothieware&amp;quot; zu stellen (sofern keine direkte Unterstützung für Klipper vorhanden ist). &lt;br /&gt;
Für erweiterte G-Code-Befehle verfolgt Klipper eine etwas andere Philosophie als andere Firmwares: Statt kryptische M-Befehle zu erdenken, werden sprechende Namen benutzt. Gleiches gilt für die Parameter, die üblicherweise die Form &amp;quot;NAME=Wert&amp;quot; haben. Groß- und Kleinschreibung spielt keine Rolle.&lt;br /&gt;
&lt;br /&gt;
Es ist möglich, mittels Macros eigene G-Code-Befehle zu definieren. Das funktioniert über die Konfiguration und ist in [https://github.com/KevinOConnor/klipper/blob/master/config/example-extras.cfg#L395 example-extras.cfg] im Abschnitt &amp;quot;[gcode_macro my_cmd]&amp;quot; dokumentiert. Dadurch könnte man sich z.B. seinen Start-Code statt im Slicer in der Konfiguration definieren (und so auch leichter ändern, ohne neu slicen zu müssen), oder Befehle, die von Klipper nicht unterstützt aber durch den Slicer erzeugt werden, implementieren.&lt;br /&gt;
&lt;br /&gt;
Siehe [[Klipper_GCodes]] mit der Übersicht der GCodes die von Klipper verstanden werden, auch mit den Erweiterungen die im Repository von rf1000.de enthalten sind.&lt;br /&gt;
Original-Dokumentation: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
&lt;br /&gt;
Hinweis: Einige der dort beschriebenen Befehle sind nur aktiv, wenn bestimmte Module geladen sind. Daher gehen manche Befehle nicht, es sei denn, das Modul wird über die Konfiguration eingeschaltet.&lt;br /&gt;
&lt;br /&gt;
=== Reset ===&lt;br /&gt;
Einen Reset von Klipper, das auch die Firmware zurücksetzt führt man mit dem Kommando &lt;br /&gt;
&amp;lt;pre&amp;gt;FIRMWARE_RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
durch. Dabei wird auch die printer.cfg neu eingelesen. Bei Problemen in der printer.cfg kann es sein, das ein Klipper: Disconnect erscheint. Dann läuft Klipper nicht und man darf den Fehler suchen.&lt;br /&gt;
&lt;br /&gt;
Mit dem GCode M112 wird Klipper einfach heruntergefahren und man muss sich neu verbinden.&lt;br /&gt;
&lt;br /&gt;
Möchte man nur die printer.cfg neu laden, genügt der Befehl&lt;br /&gt;
&amp;lt;pre&amp;gt;RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PID durchführen ===&lt;br /&gt;
Für den Hotend 1&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=extruder TARGET=210&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für das Heizbett&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=heater_bed TARGET=60&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Daten werden mit SAVE_CONFIG abgespeichert.&lt;br /&gt;
&lt;br /&gt;
=== Z Offset ===&lt;br /&gt;
Um den Z-Offset bzw. die Z-Position des Endschalters zu kalibrieren, gibt es das Macro&lt;br /&gt;
&amp;lt;pre&amp;gt;Z_CALIBRATE&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies führt einen Scan an der Position x=100,y=100 durch. Wichtig ist, dass die Position des Endschalters schon so weit bekannt sein muss, dass Z=2mm zuverlässig '''über''' dem Bett liegt (nicht zu weit, sonst dauert der Scan zu lange).&lt;br /&gt;
&lt;br /&gt;
Wenn man testen möchte, ob der Scan zuverlässig funktioniert, kann dieser Befehl benutzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;PROBE_ACCURACY&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das führt dann an der aktuellen XY Position 10 mal einen Z-Scan durch und bestimmt Mittelwert und Standardabweichung etc. Standardabweichung ist also in unteren bis mitteleren einstelligen Mikrometerbereich, der &amp;quot;Maximalfehler&amp;quot; (range) besser als 1/100mm. [https://www.rf1000.de/viewtopic.php?f=7&amp;amp;t=2610&amp;amp;start=60 Mehr Info zu PROBE_ACCURACY siehe Post Nr 62]&lt;br /&gt;
&lt;br /&gt;
=== Bed Mesh Kalibration durchführen ===&lt;br /&gt;
Zum kalibrieren des Bed Mesh (Äquivalent zum Heat Bed Scan der Repetier-Firmware) wird folgendes Macro empfohlen:&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_CALIBRATE&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies führt zunächst ein Z_CALIBRATE durch (ebenfalls an x=100,y=100). Anschließend wird das Bett im Raster vermessen. Die Konfiguration wird am Ende automatisch gespeichert (was zu einem Firmware-Neustart führt).&lt;br /&gt;
&lt;br /&gt;
Dadurch, dass zuerst ein Z_CALIBRATE durchgeführt wird, kann anschließend jederzeit ein Z_CALIBRATE genutzt werden, um z.B. nach einem Düsenwechsel den Abstand zwischen Bett und Düse neu zu kalibrieren, ohne dass ein vollständiger Bed Mesh Scan nötig wäre.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_OUTPUT&amp;lt;/pre&amp;gt;&lt;br /&gt;
gibt das aktuelle Mesh aus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_CLEAR&amp;lt;/pre&amp;gt;&lt;br /&gt;
setzt alle Werte des aktuellen Meshes auf 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_PROFILE LOAD=&amp;lt;name&amp;gt; SAVE=&amp;lt;name&amp;gt; REMOVE=&amp;lt;name&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
erlaut das Mesh zu speichern, zu laden, oder ein gespeichertes Mesh zu löschen.&lt;br /&gt;
&lt;br /&gt;
Übrigens kann das Mesh mit OctoPrint visualisiert werden, wenn man sich das Bed Visualizer Plugin installiert.&lt;br /&gt;
&lt;br /&gt;
=== Positionen Abfragen ===&lt;br /&gt;
Damit sieht man die aktuellen Positionen in den verschiedenen Koorinaten-Systeme. Beispiel nach &amp;quot;G1 Z0&amp;quot; auf der Position X=57.5 und Y=50.0&lt;br /&gt;
&amp;lt;pre&amp;gt;Send:16:32:28.975: #GET_POSITION&lt;br /&gt;
Recv:16:32:28.976: // mcu: stepper_x:2 stepper_y:-50 stepper_z:2499&lt;br /&gt;
Recv:16:32:28.976: // stepper: stepper_x:57.500625 stepper_y:49.999688 stepper_z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // kinematic: X:57.500625 Y:49.999688 Z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // toolhead: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode base: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode homing: X:0.000000 Y:0.000000 Z:0.000000&lt;br /&gt;
Recv:16:32:28.976: ok&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man sollte man die Z-Koordinaten zwischen toolhead und kinematic vergleichen. Der Unterschied sollte genau die Korrektur aus dem Mesh-Leveling an dem Punkt plus der Z-Offset durch den Z_OFFSET_SCAN sein. Andernfalls ist da irgendwo noch ein anderer Offset im Spiel.&lt;br /&gt;
&lt;br /&gt;
=== Speichern der Configuration ===&lt;br /&gt;
Mit dem Kommando save_config kann man die Änderungen, die durch die Abgleichfunktionen (PID, HBS, Z-Offset,...) ermittelt wurden, in der Konfigurationsdatei abspeichern&lt;br /&gt;
&amp;lt;pre&amp;gt;SAVE_CONFIG&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Konfigurationsdatei ==&lt;br /&gt;
=== Basiskonfigurationen ===&lt;br /&gt;
Im Verzeichnis von Klipper stehen unter /config die verschiedenen Konfigurationsdateien für Klipper. Aktuell ist für den RF1000 und den RF2000V2 mit Single Extruder eine Konfigurationsdatei vorhanden. Diese Konfigurationsdateien sollte man dort belassen und auch nicht ändern. &lt;br /&gt;
&lt;br /&gt;
=== Eigene printer.cfg ===&lt;br /&gt;
Bei Klipper verwendet man am besten eine eigene printer.cfg, die nicht einfach von einer Vorlage kopiert wird, sondern die die Vorlage ergänzt, ändert und erweitert.&lt;br /&gt;
&lt;br /&gt;
In der printer.cfg steht am Anfang normalerseise immer der Basisdrucker, von dem die aktuelle Konfiguration abgeleitet wird. Wie alle Parametergruppen wird das ganze von eckigen Klammern [] umschlossen.&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf2000v2-single.cfg]&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dannach kann man dann seine geänderten oder neue Parameter hinzufügen. Das folgende ist aus einer Konfiguration für den RF2000V2 single. Zuerst wird der maximale Fahrweg in X und Y anders definiert und anschliessend für Z die Werte angepasst. Dannach kommt die Konfiguration für den HBS.&lt;br /&gt;
&amp;lt;pre&amp;gt;[stepper_x]&lt;br /&gt;
position_max: 210&lt;br /&gt;
&lt;br /&gt;
[stepper_y]&lt;br /&gt;
position_max: 290&lt;br /&gt;
&lt;br /&gt;
[stepper_z]&lt;br /&gt;
position_min: -2.0&lt;br /&gt;
position_max: 185&lt;br /&gt;
&lt;br /&gt;
[bed_mesh]&lt;br /&gt;
speed: 30&lt;br /&gt;
horizontal_move_z: 2&lt;br /&gt;
mesh_min: 10,50&lt;br /&gt;
mesh_max: 200,230&lt;br /&gt;
algorithm:lagrange&lt;br /&gt;
probe_count: 5,5&lt;br /&gt;
fade_start: 1.0&lt;br /&gt;
fade_end: 10.0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach den Parametern kann man sich auch Makros definieren. In dem Beispiel ein Markro zum Auswurf des Objektes, das man einfach mit OUTPUT_OBJECT aufrufen kann.&lt;br /&gt;
&amp;lt;pre&amp;gt;[gcode_macro OUTPUT_OBJECT]&lt;br /&gt;
gcode:&lt;br /&gt;
	G90&lt;br /&gt;
	#G1 Z180	F540&lt;br /&gt;
	G1 Z80	F540&lt;br /&gt;
	G1 Y245 F4800&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als letzte Abschnitt kommen die gespeicherten - durch SAVE_CONFIG - Parameter und Werte. Diese NICHT selbst verändern, sondern immer nur durch das Programm.&lt;br /&gt;
&amp;lt;pre&amp;gt;#*# &amp;lt;---------------------- SAVE_CONFIG ----------------------&amp;gt;&lt;br /&gt;
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.&lt;br /&gt;
#*#&lt;br /&gt;
#*# [extruder]&lt;br /&gt;
#*# control = pid&lt;br /&gt;
#*# pid_kp = 33.373&lt;br /&gt;
#*# pid_ki = 2.060&lt;br /&gt;
#*# pid_kd = 135.160&lt;br /&gt;
#*#&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1165</id>
		<title>Klipper</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1165"/>
		<updated>2021-09-30T11:35:40Z</updated>

		<summary type="html">&lt;p&gt;Mhier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Klipper]]&lt;br /&gt;
&lt;br /&gt;
Klipper ist eine Firmware für 3D Drucker. Diese kann alternativ zu der Repetier-basierten Original-Firmware von Conrad oder der auf dieser Original-Firmware basierenden Community-Version auf den Druckern RF1000, RF2000 oder RF2000v2 verwendet werden. Die dafür nötige Konfiguration ist für die Drucker RF2000 und RF2000v20 noch nicht vollständig. '''Für den RF1000 ist die Konfiguration abgeschlossen und wurde seit knapp einem Jahr bereits getestet.'''&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Klipper ist gut dokumentiert auf seiner Webseite, allerdings nur in Englisch: [https://www.klipper3d.org https://www.klipper3d.org]&lt;br /&gt;
&lt;br /&gt;
Das Grundprinzip weicht von der Repetier-basierten Firmware und anderen 3D-Drucker-Firmwares deutlich ab. Statt alle Berechnungen im Microcontroller (im Folgenden MCU genannt) des Druckers auszuführen, werden zeitintensive Berechnungen auf einem Host-System durchgeführt. Als Host-System eignet sich z.B. ein Raspberry Pi oder auch ein herkömmlicher Linux-PC. Auf dem selben Host-System kann (bzw. sollte) auch Octoprint o.ä. ausgeführt werden. Wer also bereits Octoprint etc. nutzt, benötigt keine weitere Hardware.&lt;br /&gt;
&lt;br /&gt;
Da die zur Verfügung stehende Rechenpower so um Größenordnungen höher ist, können deutlich präzisere Berechnungen durchgeführt werden. Die Motoren laufen spürbar ruhiger, und höhere Schrittfrequenzen sind ebenfalls problemlos möglich. Außerdem ist eine höhere Flexibilität möglich. Auch ohne Programmierkenntnisse kann das Verhalten der Firmware über Konfigurations-Dateien beeinflusst werden, sogar neue G-Codes können so eingeführt werden. Die Firmware ist größtenteils in Python geschrieben und sehr modular gehalten, wodurch die Einstiegshürde für Entwickler sehr viel geringer ist.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
Was schon funktioniert:&lt;br /&gt;
* Natürlich alle Grundfunktionen, die jeder normale Drucker hat (Bewegen, Heizen, Lüfter etc.)&lt;br /&gt;
** Dokumentation der unterstützten G-Codes: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
* Heizbett-Scan: heißt bei Klipper Bed Mesh Leveling&lt;br /&gt;
** Es lassen sich beliebig viele benannte Meshes (entspricht den Matrizen) speichern&lt;br /&gt;
** Es gibt kein Software-Limit wie groß die Werte im Mesh werden dürfen&lt;br /&gt;
** Interpolation zwischen den Punkten des Meshes ist deutlich besser, daher sollten weniger Punkte ausreichen&lt;br /&gt;
* Z-Offset-Scan&lt;br /&gt;
** Korrigiert nicht mehr die Matrix/das Mesh, sondern kalibriert die Z-Koordinate des Z-Endstop.&lt;br /&gt;
** Ebenfalls keinerlei Software-Limit auf den Wert des &amp;quot;Offsets&amp;quot;.&lt;br /&gt;
** Homing gegen Z-Max ist problemlos ebenfalls möglich.&lt;br /&gt;
* Menü (im Original-Zustand von Klipper, daher noch etwas rudimentär vielleicht): die Bedienlogik ist etwas anders&lt;br /&gt;
** Die Nach-Rechts-Taste wird eigentlich nicht gebraucht und wurde daher als Not-Aus umfunktioniert.&lt;br /&gt;
** Die Tasten zum Bewegen des Heizbetts und des Extruders fahren in vorgegebenen Schritten. Gedrückthalten für längere Fahrten ist nicht möglich (Einschränkung in Klipper).&lt;br /&gt;
* Pause und Fortsetzen über Tasten (funktioniert evtl. nur mit Octoprint?)&lt;br /&gt;
* Sense offset&lt;br /&gt;
* Emergency Pause/Stop (bei zu hohem Druck auf die Wägezellen), funktioniert nur während eines Z-Scans.&lt;br /&gt;
* Kanten antasten in X/Y (Fräsen)&lt;br /&gt;
&lt;br /&gt;
Was fehlt:&lt;br /&gt;
* Konfigurationen für den RF2000 und RF2000v2 (für RF2000v2 single extruder ist eine Konfiguration vorhanden, muss aber geupdated werden)&lt;br /&gt;
* Sagt ihr es mir!&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Eine Ausführliche Installationsanleitung gibt es auf der Webseite: [https://www.klipper3d.org/Installation.html https://www.klipper3d.org/Installation.html]&lt;br /&gt;
&lt;br /&gt;
Da die nötigen Modifikationen und Beispielkonfigurationen noch nicht Teil der offiziellen Klipper-Firmware sind, muss der folgende Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/Klipper3d/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
durch diesen ersetzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/RF1000community/Klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem gibt es bereits eine Konfigurations-Datei für den RF1000. Ich würde daher empfehlen, die Konfigurations-Datei printer.cfg mit folgendem Inhalt zu erstellen:&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf1000.cfg]&lt;br /&gt;
&lt;br /&gt;
[mcu]&lt;br /&gt;
serial: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_&amp;lt;hier_richtige_ID_einfügen&amp;gt;-port0&lt;br /&gt;
&lt;br /&gt;
[stepper_z]&lt;br /&gt;
position_endstop: 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dadurch wird der Inhalt von klipper/config/printer-rf1000.cfg benutzt, aber alle folgenden Einstellungen überschreiben ggf. bereits vorhandene Einstellungen aus der printer-rf1000.cfg Datei. Die Angabe des position_endstop für die Z-Achse ist nötig, da diese durch den Z-Offset-Scan überschrieben wird, was nur funktioniert, wenn diese Angabe direkt in der printer.cfg gemacht wird (nicht im Include).&lt;br /&gt;
&lt;br /&gt;
Nach der Installation bitte unbedingt die Anleitung zum Prüfen der Konfiguration befolgen:&lt;br /&gt;
https://www.klipper3d.org/Config_checks.html&lt;br /&gt;
&lt;br /&gt;
Es ist ebenfalls empfehlenswert, die Konfiguration auf diese Weise nach jedem Update zu prüfen, weil durch das [include] Änderungen aus der Konfigurationsdatei automatisch übernommen werden.&lt;br /&gt;
&lt;br /&gt;
=== Octoprint ===&lt;br /&gt;
&lt;br /&gt;
Die Installationsanleitung geht von einer Octoprint Installation aus.&lt;br /&gt;
&lt;br /&gt;
=== Repetierserver ===&lt;br /&gt;
&lt;br /&gt;
Man kann auf einem normalen RasPi Installation zuerst Repetier-Server aufsetzen und dann erst Klipper. Die Verbindung von Repetier-Server zu Klipper funktioniert aber nicht, da die beiden Programme unter verschiedenen Benutzern arbeiten und die Standard Serial-Emulation das Problem nicht lösen kann.&lt;br /&gt;
&lt;br /&gt;
Abhilfe: (Siehe [Repetier-Server Knowledgebase https://www.repetier-server.com/knowledgebase/klipper/])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/lib/klipper&lt;br /&gt;
sudo chmod 777 /var/lib/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und dann die Änderung in den Einstellungen von Klipper bekannt machen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/defaults/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dort die Zeile am Ende zu &amp;lt;pre&amp;gt;KLIPPY_ARGS=&amp;quot;/home/pi/klipper/klippy/klippy.py /home/pi/printer.cfg -l /tmp/klippy.log -I /var/lib/klipper/connect&amp;quot;&amp;lt;/pre&amp;gt; ergänzen. Anschliessend das Service von Klipper neu starten. Damit kann man sich in Repetier-Server mit Gerät/Port /var/lib/klipper/connect verbinden.&lt;br /&gt;
&lt;br /&gt;
Repetierserver älter als 0.99.4: Bei den Befehlen muss man ein Raute Zeichen # voranstellen, damit es richtig von Repetier-Server weitergegeben wird. Ist bei Version 1.x und besser nicht mehr der Fall.&lt;br /&gt;
&lt;br /&gt;
== Klipper Befehle ==&lt;br /&gt;
&lt;br /&gt;
Klipper unterstützt natürlich alle gängigen G-Code-Befehle, die die Slicer erzeugen. Es wird allgemein empfohlen, den Slicer auf &amp;quot;Marlin&amp;quot; oder &amp;quot;Smoothieware&amp;quot; zu stellen (sofern keine direkte Unterstützung für Klipper vorhanden ist). &lt;br /&gt;
Für erweiterte G-Code-Befehle verfolgt Klipper eine etwas andere Philosophie als andere Firmwares: Statt kryptische M-Befehle zu erdenken, werden sprechende Namen benutzt. Gleiches gilt für die Parameter, die üblicherweise die Form &amp;quot;NAME=Wert&amp;quot; haben. Groß- und Kleinschreibung spielt keine Rolle.&lt;br /&gt;
&lt;br /&gt;
Es ist möglich, mittels Macros eigene G-Code-Befehle zu definieren. Das funktioniert über die Konfiguration und ist in [https://github.com/KevinOConnor/klipper/blob/master/config/example-extras.cfg#L395 example-extras.cfg] im Abschnitt &amp;quot;[gcode_macro my_cmd]&amp;quot; dokumentiert. Dadurch könnte man sich z.B. seinen Start-Code statt im Slicer in der Konfiguration definieren (und so auch leichter ändern, ohne neu slicen zu müssen), oder Befehle, die von Klipper nicht unterstützt aber durch den Slicer erzeugt werden, implementieren.&lt;br /&gt;
&lt;br /&gt;
Siehe [[Klipper_GCodes]] mit der Übersicht der GCodes die von Klipper verstanden werden, auch mit den Erweiterungen die im Repository von rf1000.de enthalten sind.&lt;br /&gt;
Original-Dokumentation: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
&lt;br /&gt;
Hinweis: Einige der dort beschriebenen Befehle sind nur aktiv, wenn bestimmte Module geladen sind. Daher gehen manche Befehle nicht, es sei denn, das Modul wird über die Konfiguration eingeschaltet.&lt;br /&gt;
&lt;br /&gt;
=== Reset ===&lt;br /&gt;
Einen Reset von Klipper, das auch die Firmware zurücksetzt führt man mit dem Kommando &lt;br /&gt;
&amp;lt;pre&amp;gt;FIRMWARE_RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
durch. Dabei wird auch die printer.cfg neu eingelesen. Bei Problemen in der printer.cfg kann es sein, das ein Klipper: Disconnect erscheint. Dann läuft Klipper nicht und man darf den Fehler suchen.&lt;br /&gt;
&lt;br /&gt;
Mit dem GCode M112 wird Klipper einfach heruntergefahren und man muss sich neu verbinden.&lt;br /&gt;
&lt;br /&gt;
Möchte man nur die printer.cfg neu laden, genügt der Befehl&lt;br /&gt;
&amp;lt;pre&amp;gt;RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PID durchführen ===&lt;br /&gt;
Für den Hotend 1&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=extruder TARGET=210&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für das Heizbett&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=heater_bed TARGET=60&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Daten werden mit SAVE_CONFIG abgespeichert.&lt;br /&gt;
&lt;br /&gt;
=== Z Offset ===&lt;br /&gt;
Um den Z-Offset bzw. die Z-Position des Endschalters zu kalibrieren, gibt es das Macro&lt;br /&gt;
&amp;lt;pre&amp;gt;Z_CALIBRATE&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies führt einen Scan an der Position x=100,y=100 durch. Wichtig ist, dass die Position des Endschalters schon so weit bekannt sein muss, dass Z=2mm zuverlässig '''über''' dem Bett liegt (nicht zu weit, sonst dauert der Scan zu lange).&lt;br /&gt;
&lt;br /&gt;
Wenn man testen möchte, ob der Scan zuverlässig funktioniert, kann dieser Befehl benutzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;PROBE_ACCURACY&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das führt dann an der aktuellen XY Position 10 mal einen Z-Scan durch und bestimmt Mittelwert und Standardabweichung etc. Standardabweichung ist also in unteren bis mitteleren einstelligen Mikrometerbereich, der &amp;quot;Maximalfehler&amp;quot; (range) besser als 1/100mm. [https://www.rf1000.de/viewtopic.php?f=7&amp;amp;t=2610&amp;amp;start=60 Mehr Info zu PROBE_ACCURACY siehe Post Nr 62]&lt;br /&gt;
&lt;br /&gt;
=== Bed Mesh Kalibration durchführen ===&lt;br /&gt;
Zum kalibrieren des Bed Mesh (Äquivalent zum Heat Bed Scan der Repetier-Firmware) wird folgendes Macro empfohlen:&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_CALIBRATE&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies führt zunächst ein Z_CALIBRATE durch (ebenfalls an x=100,y=100). Anschließend wird das Bett im Raster vermessen. Die Konfiguration wird am Ende automatisch gespeichert (was zu einem Firmware-Neustart führt).&lt;br /&gt;
&lt;br /&gt;
Dadurch, dass zuerst ein Z_CALIBRATE durchgeführt wird, kann anschließend jederzeit ein Z_CALIBRATE genutzt werden, um z.B. nach einem Düsenwechsel den Abstand zwischen Bett und Düse neu zu kalibrieren, ohne dass ein vollständiger Bed Mesh Scan nötig wäre.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_OUTPUT&amp;lt;/pre&amp;gt;&lt;br /&gt;
gibt das aktuelle Mesh aus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_CLEAR&amp;lt;/pre&amp;gt;&lt;br /&gt;
setzt alle Werte des aktuellen Meshes auf 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_PROFILE LOAD=&amp;lt;name&amp;gt; SAVE=&amp;lt;name&amp;gt; REMOVE=&amp;lt;name&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
erlaut das Mesh zu speichern, zu laden, oder ein gespeichertes Mesh zu löschen.&lt;br /&gt;
&lt;br /&gt;
Übrigens kann das Mesh mit OctoPrint visualisiert werden, wenn man sich das Bed Visualizer Plugin installiert.&lt;br /&gt;
&lt;br /&gt;
=== Positionen Abfragen ===&lt;br /&gt;
Damit sieht man die aktuellen Positionen in den verschiedenen Koorinaten-Systeme. Beispiel nach &amp;quot;G1 Z0&amp;quot; auf der Position X=57.5 und Y=50.0&lt;br /&gt;
&amp;lt;pre&amp;gt;Send:16:32:28.975: #GET_POSITION&lt;br /&gt;
Recv:16:32:28.976: // mcu: stepper_x:2 stepper_y:-50 stepper_z:2499&lt;br /&gt;
Recv:16:32:28.976: // stepper: stepper_x:57.500625 stepper_y:49.999688 stepper_z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // kinematic: X:57.500625 Y:49.999688 Z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // toolhead: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode base: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode homing: X:0.000000 Y:0.000000 Z:0.000000&lt;br /&gt;
Recv:16:32:28.976: ok&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man sollte man die Z-Koordinaten zwischen toolhead und kinematic vergleichen. Der Unterschied sollte genau die Korrektur aus dem Mesh-Leveling an dem Punkt plus der Z-Offset durch den Z_OFFSET_SCAN sein. Andernfalls ist da irgendwo noch ein anderer Offset im Spiel.&lt;br /&gt;
&lt;br /&gt;
=== Speichern der Configuration ===&lt;br /&gt;
Mit dem Kommando save_config kann man die Änderungen, die durch die Abgleichfunktionen (PID, HBS, Z-Offset,...) ermittelt wurden, in der Konfigurationsdatei abspeichern&lt;br /&gt;
&amp;lt;pre&amp;gt;SAVE_CONFIG&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Konfigurationsdatei ==&lt;br /&gt;
=== Basiskonfigurationen ===&lt;br /&gt;
Im Verzeichnis von Klipper stehen unter /config die verschiedenen Konfigurationsdateien für Klipper. Aktuell ist für den RF1000 und den RF2000V2 mit Single Extruder eine Konfigurationsdatei vorhanden. Diese Konfigurationsdateien sollte man dort belassen und auch nicht ändern. &lt;br /&gt;
&lt;br /&gt;
=== Eigene printer.cfg ===&lt;br /&gt;
Bei Klipper verwendet man am besten eine eigene printer.cfg, die nicht einfach von einer Vorlage kopiert wird, sondern die die Vorlage ergänzt, ändert und erweitert.&lt;br /&gt;
&lt;br /&gt;
In der printer.cfg steht am Anfang normalerseise immer der Basisdrucker, von dem die aktuelle Konfiguration abgeleitet wird. Wie alle Parametergruppen wird das ganze von eckigen Klammern [] umschlossen.&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf2000v2-single.cfg]&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dannach kann man dann seine geänderten oder neue Parameter hinzufügen. Das folgende ist aus einer Konfiguration für den RF2000V2 single. Zuerst wird der maximale Fahrweg in X und Y anders definiert und anschliessend für Z die Werte angepasst. Dannach kommt die Konfiguration für den HBS.&lt;br /&gt;
&amp;lt;pre&amp;gt;[stepper_x]&lt;br /&gt;
position_max: 210&lt;br /&gt;
&lt;br /&gt;
[stepper_y]&lt;br /&gt;
position_max: 290&lt;br /&gt;
&lt;br /&gt;
[stepper_z]&lt;br /&gt;
position_min: -2.0&lt;br /&gt;
position_max: 185&lt;br /&gt;
&lt;br /&gt;
[bed_mesh]&lt;br /&gt;
speed: 30&lt;br /&gt;
horizontal_move_z: 2&lt;br /&gt;
mesh_min: 10,50&lt;br /&gt;
mesh_max: 200,230&lt;br /&gt;
algorithm:lagrange&lt;br /&gt;
probe_count: 5,5&lt;br /&gt;
fade_start: 1.0&lt;br /&gt;
fade_end: 10.0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach den Parametern kann man sich auch Makros definieren. In dem Beispiel ein Markro zum Auswurf des Objektes, das man einfach mit OUTPUT_OBJECT aufrufen kann.&lt;br /&gt;
&amp;lt;pre&amp;gt;[gcode_macro OUTPUT_OBJECT]&lt;br /&gt;
gcode:&lt;br /&gt;
	G90&lt;br /&gt;
	#G1 Z180	F540&lt;br /&gt;
	G1 Z80	F540&lt;br /&gt;
	G1 Y245 F4800&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als letzte Abschnitt kommen die gespeicherten - durch SAVE_CONFIG - Parameter und Werte. Diese NICHT selbst verändern, sondern immer nur durch das Programm.&lt;br /&gt;
&amp;lt;pre&amp;gt;#*# &amp;lt;---------------------- SAVE_CONFIG ----------------------&amp;gt;&lt;br /&gt;
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.&lt;br /&gt;
#*#&lt;br /&gt;
#*# [extruder]&lt;br /&gt;
#*# control = pid&lt;br /&gt;
#*# pid_kp = 33.373&lt;br /&gt;
#*# pid_ki = 2.060&lt;br /&gt;
#*# pid_kd = 135.160&lt;br /&gt;
#*#&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1164</id>
		<title>Klipper</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1164"/>
		<updated>2021-09-30T11:34:40Z</updated>

		<summary type="html">&lt;p&gt;Mhier: /* Z Offset */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Klipper]]&lt;br /&gt;
&lt;br /&gt;
Klipper ist eine Firmware für 3D Drucker. Diese kann alternativ zu der Repetier-basierten Original-Firmware von Conrad oder der auf dieser Original-Firmware basierenden Community-Version auf den Druckern RF1000, RF2000 oder RF2000v2 verwendet werden. Die dafür nötige Konfiguration ist für die Drucker RF2000 und RF2000v20 '''noch nicht vollständig'''. Für den RF1000 ist die Konfiguration abgeschlossen und wurde seit knapp einem Jahr bereits getestet.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Klipper ist gut dokumentiert auf seiner Webseite, allerdings nur in Englisch: [https://www.klipper3d.org https://www.klipper3d.org]&lt;br /&gt;
&lt;br /&gt;
Das Grundprinzip weicht von der Repetier-basierten Firmware und anderen 3D-Drucker-Firmwares deutlich ab. Statt alle Berechnungen im Microcontroller (im Folgenden MCU genannt) des Druckers auszuführen, werden zeitintensive Berechnungen auf einem Host-System durchgeführt. Als Host-System eignet sich z.B. ein Raspberry Pi oder auch ein herkömmlicher Linux-PC. Auf dem selben Host-System kann (bzw. sollte) auch Octoprint o.ä. ausgeführt werden. Wer also bereits Octoprint etc. nutzt, benötigt keine weitere Hardware.&lt;br /&gt;
&lt;br /&gt;
Da die zur Verfügung stehende Rechenpower so um Größenordnungen höher ist, können deutlich präzisere Berechnungen durchgeführt werden. Die Motoren laufen spürbar ruhiger, und höhere Schrittfrequenzen sind ebenfalls problemlos möglich. Außerdem ist eine höhere Flexibilität möglich. Auch ohne Programmierkenntnisse kann das Verhalten der Firmware über Konfigurations-Dateien beeinflusst werden, sogar neue G-Codes können so eingeführt werden. Die Firmware ist größtenteils in Python geschrieben und sehr modular gehalten, wodurch die Einstiegshürde für Entwickler sehr viel geringer ist.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
Was schon funktioniert:&lt;br /&gt;
* Natürlich alle Grundfunktionen, die jeder normale Drucker hat (Bewegen, Heizen, Lüfter etc.)&lt;br /&gt;
** Dokumentation der unterstützten G-Codes: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
* Heizbett-Scan: heißt bei Klipper Bed Mesh Leveling&lt;br /&gt;
** Es lassen sich beliebig viele benannte Meshes (entspricht den Matrizen) speichern&lt;br /&gt;
** Es gibt kein Software-Limit wie groß die Werte im Mesh werden dürfen&lt;br /&gt;
** Interpolation zwischen den Punkten des Meshes ist deutlich besser, daher sollten weniger Punkte ausreichen&lt;br /&gt;
* Z-Offset-Scan&lt;br /&gt;
** Korrigiert nicht mehr die Matrix/das Mesh, sondern kalibriert die Z-Koordinate des Z-Endstop.&lt;br /&gt;
** Ebenfalls keinerlei Software-Limit auf den Wert des &amp;quot;Offsets&amp;quot;.&lt;br /&gt;
** Homing gegen Z-Max ist problemlos ebenfalls möglich.&lt;br /&gt;
* Menü (im Original-Zustand von Klipper, daher noch etwas rudimentär vielleicht): die Bedienlogik ist etwas anders&lt;br /&gt;
** Die Nach-Rechts-Taste wird eigentlich nicht gebraucht und wurde daher als Not-Aus umfunktioniert.&lt;br /&gt;
** Die Tasten zum Bewegen des Heizbetts und des Extruders fahren in vorgegebenen Schritten. Gedrückthalten für längere Fahrten ist nicht möglich (Einschränkung in Klipper).&lt;br /&gt;
* Pause und Fortsetzen über Tasten (funktioniert evtl. nur mit Octoprint?)&lt;br /&gt;
* Sense offset&lt;br /&gt;
* Emergency Pause/Stop (bei zu hohem Druck auf die Wägezellen), funktioniert nur während eines Z-Scans.&lt;br /&gt;
* Kanten antasten in X/Y (Fräsen)&lt;br /&gt;
&lt;br /&gt;
Was fehlt:&lt;br /&gt;
* Konfigurationen für den RF2000 und RF2000v2 (für RF2000v2 single extruder ist eine Konfiguration vorhanden, muss aber geupdated werden)&lt;br /&gt;
* Sagt ihr es mir!&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Eine Ausführliche Installationsanleitung gibt es auf der Webseite: [https://www.klipper3d.org/Installation.html https://www.klipper3d.org/Installation.html]&lt;br /&gt;
&lt;br /&gt;
Da die nötigen Modifikationen und Beispielkonfigurationen noch nicht Teil der offiziellen Klipper-Firmware sind, muss der folgende Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/Klipper3d/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
durch diesen ersetzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/RF1000community/Klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem gibt es bereits eine Konfigurations-Datei für den RF1000. Ich würde daher empfehlen, die Konfigurations-Datei printer.cfg mit folgendem Inhalt zu erstellen:&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf1000.cfg]&lt;br /&gt;
&lt;br /&gt;
[mcu]&lt;br /&gt;
serial: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_&amp;lt;hier_richtige_ID_einfügen&amp;gt;-port0&lt;br /&gt;
&lt;br /&gt;
[stepper_z]&lt;br /&gt;
position_endstop: 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dadurch wird der Inhalt von klipper/config/printer-rf1000.cfg benutzt, aber alle folgenden Einstellungen überschreiben ggf. bereits vorhandene Einstellungen aus der printer-rf1000.cfg Datei. Die Angabe des position_endstop für die Z-Achse ist nötig, da diese durch den Z-Offset-Scan überschrieben wird, was nur funktioniert, wenn diese Angabe direkt in der printer.cfg gemacht wird (nicht im Include).&lt;br /&gt;
&lt;br /&gt;
Nach der Installation bitte unbedingt die Anleitung zum Prüfen der Konfiguration befolgen:&lt;br /&gt;
https://www.klipper3d.org/Config_checks.html&lt;br /&gt;
&lt;br /&gt;
Es ist ebenfalls empfehlenswert, die Konfiguration auf diese Weise nach jedem Update zu prüfen, weil durch das [include] Änderungen aus der Konfigurationsdatei automatisch übernommen werden.&lt;br /&gt;
&lt;br /&gt;
=== Octoprint ===&lt;br /&gt;
&lt;br /&gt;
Die Installationsanleitung geht von einer Octoprint Installation aus.&lt;br /&gt;
&lt;br /&gt;
=== Repetierserver ===&lt;br /&gt;
&lt;br /&gt;
Man kann auf einem normalen RasPi Installation zuerst Repetier-Server aufsetzen und dann erst Klipper. Die Verbindung von Repetier-Server zu Klipper funktioniert aber nicht, da die beiden Programme unter verschiedenen Benutzern arbeiten und die Standard Serial-Emulation das Problem nicht lösen kann.&lt;br /&gt;
&lt;br /&gt;
Abhilfe: (Siehe [Repetier-Server Knowledgebase https://www.repetier-server.com/knowledgebase/klipper/])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/lib/klipper&lt;br /&gt;
sudo chmod 777 /var/lib/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und dann die Änderung in den Einstellungen von Klipper bekannt machen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/defaults/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dort die Zeile am Ende zu &amp;lt;pre&amp;gt;KLIPPY_ARGS=&amp;quot;/home/pi/klipper/klippy/klippy.py /home/pi/printer.cfg -l /tmp/klippy.log -I /var/lib/klipper/connect&amp;quot;&amp;lt;/pre&amp;gt; ergänzen. Anschliessend das Service von Klipper neu starten. Damit kann man sich in Repetier-Server mit Gerät/Port /var/lib/klipper/connect verbinden.&lt;br /&gt;
&lt;br /&gt;
Repetierserver älter als 0.99.4: Bei den Befehlen muss man ein Raute Zeichen # voranstellen, damit es richtig von Repetier-Server weitergegeben wird. Ist bei Version 1.x und besser nicht mehr der Fall.&lt;br /&gt;
&lt;br /&gt;
== Klipper Befehle ==&lt;br /&gt;
&lt;br /&gt;
Klipper unterstützt natürlich alle gängigen G-Code-Befehle, die die Slicer erzeugen. Es wird allgemein empfohlen, den Slicer auf &amp;quot;Marlin&amp;quot; oder &amp;quot;Smoothieware&amp;quot; zu stellen (sofern keine direkte Unterstützung für Klipper vorhanden ist). &lt;br /&gt;
Für erweiterte G-Code-Befehle verfolgt Klipper eine etwas andere Philosophie als andere Firmwares: Statt kryptische M-Befehle zu erdenken, werden sprechende Namen benutzt. Gleiches gilt für die Parameter, die üblicherweise die Form &amp;quot;NAME=Wert&amp;quot; haben. Groß- und Kleinschreibung spielt keine Rolle.&lt;br /&gt;
&lt;br /&gt;
Es ist möglich, mittels Macros eigene G-Code-Befehle zu definieren. Das funktioniert über die Konfiguration und ist in [https://github.com/KevinOConnor/klipper/blob/master/config/example-extras.cfg#L395 example-extras.cfg] im Abschnitt &amp;quot;[gcode_macro my_cmd]&amp;quot; dokumentiert. Dadurch könnte man sich z.B. seinen Start-Code statt im Slicer in der Konfiguration definieren (und so auch leichter ändern, ohne neu slicen zu müssen), oder Befehle, die von Klipper nicht unterstützt aber durch den Slicer erzeugt werden, implementieren.&lt;br /&gt;
&lt;br /&gt;
Siehe [[Klipper_GCodes]] mit der Übersicht der GCodes die von Klipper verstanden werden, auch mit den Erweiterungen die im Repository von rf1000.de enthalten sind.&lt;br /&gt;
Original-Dokumentation: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
&lt;br /&gt;
Hinweis: Einige der dort beschriebenen Befehle sind nur aktiv, wenn bestimmte Module geladen sind. Daher gehen manche Befehle nicht, es sei denn, das Modul wird über die Konfiguration eingeschaltet.&lt;br /&gt;
&lt;br /&gt;
=== Reset ===&lt;br /&gt;
Einen Reset von Klipper, das auch die Firmware zurücksetzt führt man mit dem Kommando &lt;br /&gt;
&amp;lt;pre&amp;gt;FIRMWARE_RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
durch. Dabei wird auch die printer.cfg neu eingelesen. Bei Problemen in der printer.cfg kann es sein, das ein Klipper: Disconnect erscheint. Dann läuft Klipper nicht und man darf den Fehler suchen.&lt;br /&gt;
&lt;br /&gt;
Mit dem GCode M112 wird Klipper einfach heruntergefahren und man muss sich neu verbinden.&lt;br /&gt;
&lt;br /&gt;
Möchte man nur die printer.cfg neu laden, genügt der Befehl&lt;br /&gt;
&amp;lt;pre&amp;gt;RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PID durchführen ===&lt;br /&gt;
Für den Hotend 1&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=extruder TARGET=210&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für das Heizbett&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=heater_bed TARGET=60&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Daten werden mit SAVE_CONFIG abgespeichert.&lt;br /&gt;
&lt;br /&gt;
=== Z Offset ===&lt;br /&gt;
Um den Z-Offset bzw. die Z-Position des Endschalters zu kalibrieren, gibt es das Macro&lt;br /&gt;
&amp;lt;pre&amp;gt;Z_CALIBRATE&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies führt einen Scan an der Position x=100,y=100 durch. Wichtig ist, dass die Position des Endschalters schon so weit bekannt sein muss, dass Z=2mm zuverlässig '''über''' dem Bett liegt (nicht zu weit, sonst dauert der Scan zu lange).&lt;br /&gt;
&lt;br /&gt;
Wenn man testen möchte, ob der Scan zuverlässig funktioniert, kann dieser Befehl benutzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;PROBE_ACCURACY&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das führt dann an der aktuellen XY Position 10 mal einen Z-Scan durch und bestimmt Mittelwert und Standardabweichung etc. Standardabweichung ist also in unteren bis mitteleren einstelligen Mikrometerbereich, der &amp;quot;Maximalfehler&amp;quot; (range) besser als 1/100mm. [https://www.rf1000.de/viewtopic.php?f=7&amp;amp;t=2610&amp;amp;start=60 Mehr Info zu PROBE_ACCURACY siehe Post Nr 62]&lt;br /&gt;
&lt;br /&gt;
=== Bed Mesh Kalibration durchführen ===&lt;br /&gt;
Zum kalibrieren des Bed Mesh (Äquivalent zum Heat Bed Scan der Repetier-Firmware) wird folgendes Macro empfohlen:&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_CALIBRATE&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies führt zunächst ein Z_CALIBRATE durch (ebenfalls an x=100,y=100). Anschließend wird das Bett im Raster vermessen. Die Konfiguration wird am Ende automatisch gespeichert (was zu einem Firmware-Neustart führt).&lt;br /&gt;
&lt;br /&gt;
Dadurch, dass zuerst ein Z_CALIBRATE durchgeführt wird, kann anschließend jederzeit ein Z_CALIBRATE genutzt werden, um z.B. nach einem Düsenwechsel den Abstand zwischen Bett und Düse neu zu kalibrieren, ohne dass ein vollständiger Bed Mesh Scan nötig wäre.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_OUTPUT&amp;lt;/pre&amp;gt;&lt;br /&gt;
gibt das aktuelle Mesh aus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_CLEAR&amp;lt;/pre&amp;gt;&lt;br /&gt;
setzt alle Werte des aktuellen Meshes auf 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_PROFILE LOAD=&amp;lt;name&amp;gt; SAVE=&amp;lt;name&amp;gt; REMOVE=&amp;lt;name&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
erlaut das Mesh zu speichern, zu laden, oder ein gespeichertes Mesh zu löschen.&lt;br /&gt;
&lt;br /&gt;
Übrigens kann das Mesh mit OctoPrint visualisiert werden, wenn man sich das Bed Visualizer Plugin installiert.&lt;br /&gt;
&lt;br /&gt;
=== Positionen Abfragen ===&lt;br /&gt;
Damit sieht man die aktuellen Positionen in den verschiedenen Koorinaten-Systeme. Beispiel nach &amp;quot;G1 Z0&amp;quot; auf der Position X=57.5 und Y=50.0&lt;br /&gt;
&amp;lt;pre&amp;gt;Send:16:32:28.975: #GET_POSITION&lt;br /&gt;
Recv:16:32:28.976: // mcu: stepper_x:2 stepper_y:-50 stepper_z:2499&lt;br /&gt;
Recv:16:32:28.976: // stepper: stepper_x:57.500625 stepper_y:49.999688 stepper_z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // kinematic: X:57.500625 Y:49.999688 Z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // toolhead: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode base: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode homing: X:0.000000 Y:0.000000 Z:0.000000&lt;br /&gt;
Recv:16:32:28.976: ok&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man sollte man die Z-Koordinaten zwischen toolhead und kinematic vergleichen. Der Unterschied sollte genau die Korrektur aus dem Mesh-Leveling an dem Punkt plus der Z-Offset durch den Z_OFFSET_SCAN sein. Andernfalls ist da irgendwo noch ein anderer Offset im Spiel.&lt;br /&gt;
&lt;br /&gt;
=== Speichern der Configuration ===&lt;br /&gt;
Mit dem Kommando save_config kann man die Änderungen, die durch die Abgleichfunktionen (PID, HBS, Z-Offset,...) ermittelt wurden, in der Konfigurationsdatei abspeichern&lt;br /&gt;
&amp;lt;pre&amp;gt;SAVE_CONFIG&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Konfigurationsdatei ==&lt;br /&gt;
=== Basiskonfigurationen ===&lt;br /&gt;
Im Verzeichnis von Klipper stehen unter /config die verschiedenen Konfigurationsdateien für Klipper. Aktuell ist für den RF1000 und den RF2000V2 mit Single Extruder eine Konfigurationsdatei vorhanden. Diese Konfigurationsdateien sollte man dort belassen und auch nicht ändern. &lt;br /&gt;
&lt;br /&gt;
=== Eigene printer.cfg ===&lt;br /&gt;
Bei Klipper verwendet man am besten eine eigene printer.cfg, die nicht einfach von einer Vorlage kopiert wird, sondern die die Vorlage ergänzt, ändert und erweitert.&lt;br /&gt;
&lt;br /&gt;
In der printer.cfg steht am Anfang normalerseise immer der Basisdrucker, von dem die aktuelle Konfiguration abgeleitet wird. Wie alle Parametergruppen wird das ganze von eckigen Klammern [] umschlossen.&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf2000v2-single.cfg]&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dannach kann man dann seine geänderten oder neue Parameter hinzufügen. Das folgende ist aus einer Konfiguration für den RF2000V2 single. Zuerst wird der maximale Fahrweg in X und Y anders definiert und anschliessend für Z die Werte angepasst. Dannach kommt die Konfiguration für den HBS.&lt;br /&gt;
&amp;lt;pre&amp;gt;[stepper_x]&lt;br /&gt;
position_max: 210&lt;br /&gt;
&lt;br /&gt;
[stepper_y]&lt;br /&gt;
position_max: 290&lt;br /&gt;
&lt;br /&gt;
[stepper_z]&lt;br /&gt;
position_min: -2.0&lt;br /&gt;
position_max: 185&lt;br /&gt;
&lt;br /&gt;
[bed_mesh]&lt;br /&gt;
speed: 30&lt;br /&gt;
horizontal_move_z: 2&lt;br /&gt;
mesh_min: 10,50&lt;br /&gt;
mesh_max: 200,230&lt;br /&gt;
algorithm:lagrange&lt;br /&gt;
probe_count: 5,5&lt;br /&gt;
fade_start: 1.0&lt;br /&gt;
fade_end: 10.0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach den Parametern kann man sich auch Makros definieren. In dem Beispiel ein Markro zum Auswurf des Objektes, das man einfach mit OUTPUT_OBJECT aufrufen kann.&lt;br /&gt;
&amp;lt;pre&amp;gt;[gcode_macro OUTPUT_OBJECT]&lt;br /&gt;
gcode:&lt;br /&gt;
	G90&lt;br /&gt;
	#G1 Z180	F540&lt;br /&gt;
	G1 Z80	F540&lt;br /&gt;
	G1 Y245 F4800&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als letzte Abschnitt kommen die gespeicherten - durch SAVE_CONFIG - Parameter und Werte. Diese NICHT selbst verändern, sondern immer nur durch das Programm.&lt;br /&gt;
&amp;lt;pre&amp;gt;#*# &amp;lt;---------------------- SAVE_CONFIG ----------------------&amp;gt;&lt;br /&gt;
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.&lt;br /&gt;
#*#&lt;br /&gt;
#*# [extruder]&lt;br /&gt;
#*# control = pid&lt;br /&gt;
#*# pid_kp = 33.373&lt;br /&gt;
#*# pid_ki = 2.060&lt;br /&gt;
#*# pid_kd = 135.160&lt;br /&gt;
#*#&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1163</id>
		<title>Klipper</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1163"/>
		<updated>2021-09-30T11:34:12Z</updated>

		<summary type="html">&lt;p&gt;Mhier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Klipper]]&lt;br /&gt;
&lt;br /&gt;
Klipper ist eine Firmware für 3D Drucker. Diese kann alternativ zu der Repetier-basierten Original-Firmware von Conrad oder der auf dieser Original-Firmware basierenden Community-Version auf den Druckern RF1000, RF2000 oder RF2000v2 verwendet werden. Die dafür nötige Konfiguration ist für die Drucker RF2000 und RF2000v20 '''noch nicht vollständig'''. Für den RF1000 ist die Konfiguration abgeschlossen und wurde seit knapp einem Jahr bereits getestet.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Klipper ist gut dokumentiert auf seiner Webseite, allerdings nur in Englisch: [https://www.klipper3d.org https://www.klipper3d.org]&lt;br /&gt;
&lt;br /&gt;
Das Grundprinzip weicht von der Repetier-basierten Firmware und anderen 3D-Drucker-Firmwares deutlich ab. Statt alle Berechnungen im Microcontroller (im Folgenden MCU genannt) des Druckers auszuführen, werden zeitintensive Berechnungen auf einem Host-System durchgeführt. Als Host-System eignet sich z.B. ein Raspberry Pi oder auch ein herkömmlicher Linux-PC. Auf dem selben Host-System kann (bzw. sollte) auch Octoprint o.ä. ausgeführt werden. Wer also bereits Octoprint etc. nutzt, benötigt keine weitere Hardware.&lt;br /&gt;
&lt;br /&gt;
Da die zur Verfügung stehende Rechenpower so um Größenordnungen höher ist, können deutlich präzisere Berechnungen durchgeführt werden. Die Motoren laufen spürbar ruhiger, und höhere Schrittfrequenzen sind ebenfalls problemlos möglich. Außerdem ist eine höhere Flexibilität möglich. Auch ohne Programmierkenntnisse kann das Verhalten der Firmware über Konfigurations-Dateien beeinflusst werden, sogar neue G-Codes können so eingeführt werden. Die Firmware ist größtenteils in Python geschrieben und sehr modular gehalten, wodurch die Einstiegshürde für Entwickler sehr viel geringer ist.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
Was schon funktioniert:&lt;br /&gt;
* Natürlich alle Grundfunktionen, die jeder normale Drucker hat (Bewegen, Heizen, Lüfter etc.)&lt;br /&gt;
** Dokumentation der unterstützten G-Codes: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
* Heizbett-Scan: heißt bei Klipper Bed Mesh Leveling&lt;br /&gt;
** Es lassen sich beliebig viele benannte Meshes (entspricht den Matrizen) speichern&lt;br /&gt;
** Es gibt kein Software-Limit wie groß die Werte im Mesh werden dürfen&lt;br /&gt;
** Interpolation zwischen den Punkten des Meshes ist deutlich besser, daher sollten weniger Punkte ausreichen&lt;br /&gt;
* Z-Offset-Scan&lt;br /&gt;
** Korrigiert nicht mehr die Matrix/das Mesh, sondern kalibriert die Z-Koordinate des Z-Endstop.&lt;br /&gt;
** Ebenfalls keinerlei Software-Limit auf den Wert des &amp;quot;Offsets&amp;quot;.&lt;br /&gt;
** Homing gegen Z-Max ist problemlos ebenfalls möglich.&lt;br /&gt;
* Menü (im Original-Zustand von Klipper, daher noch etwas rudimentär vielleicht): die Bedienlogik ist etwas anders&lt;br /&gt;
** Die Nach-Rechts-Taste wird eigentlich nicht gebraucht und wurde daher als Not-Aus umfunktioniert.&lt;br /&gt;
** Die Tasten zum Bewegen des Heizbetts und des Extruders fahren in vorgegebenen Schritten. Gedrückthalten für längere Fahrten ist nicht möglich (Einschränkung in Klipper).&lt;br /&gt;
* Pause und Fortsetzen über Tasten (funktioniert evtl. nur mit Octoprint?)&lt;br /&gt;
* Sense offset&lt;br /&gt;
* Emergency Pause/Stop (bei zu hohem Druck auf die Wägezellen), funktioniert nur während eines Z-Scans.&lt;br /&gt;
* Kanten antasten in X/Y (Fräsen)&lt;br /&gt;
&lt;br /&gt;
Was fehlt:&lt;br /&gt;
* Konfigurationen für den RF2000 und RF2000v2 (für RF2000v2 single extruder ist eine Konfiguration vorhanden, muss aber geupdated werden)&lt;br /&gt;
* Sagt ihr es mir!&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Eine Ausführliche Installationsanleitung gibt es auf der Webseite: [https://www.klipper3d.org/Installation.html https://www.klipper3d.org/Installation.html]&lt;br /&gt;
&lt;br /&gt;
Da die nötigen Modifikationen und Beispielkonfigurationen noch nicht Teil der offiziellen Klipper-Firmware sind, muss der folgende Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/Klipper3d/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
durch diesen ersetzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/RF1000community/Klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem gibt es bereits eine Konfigurations-Datei für den RF1000. Ich würde daher empfehlen, die Konfigurations-Datei printer.cfg mit folgendem Inhalt zu erstellen:&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf1000.cfg]&lt;br /&gt;
&lt;br /&gt;
[mcu]&lt;br /&gt;
serial: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_&amp;lt;hier_richtige_ID_einfügen&amp;gt;-port0&lt;br /&gt;
&lt;br /&gt;
[stepper_z]&lt;br /&gt;
position_endstop: 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dadurch wird der Inhalt von klipper/config/printer-rf1000.cfg benutzt, aber alle folgenden Einstellungen überschreiben ggf. bereits vorhandene Einstellungen aus der printer-rf1000.cfg Datei. Die Angabe des position_endstop für die Z-Achse ist nötig, da diese durch den Z-Offset-Scan überschrieben wird, was nur funktioniert, wenn diese Angabe direkt in der printer.cfg gemacht wird (nicht im Include).&lt;br /&gt;
&lt;br /&gt;
Nach der Installation bitte unbedingt die Anleitung zum Prüfen der Konfiguration befolgen:&lt;br /&gt;
https://www.klipper3d.org/Config_checks.html&lt;br /&gt;
&lt;br /&gt;
Es ist ebenfalls empfehlenswert, die Konfiguration auf diese Weise nach jedem Update zu prüfen, weil durch das [include] Änderungen aus der Konfigurationsdatei automatisch übernommen werden.&lt;br /&gt;
&lt;br /&gt;
=== Octoprint ===&lt;br /&gt;
&lt;br /&gt;
Die Installationsanleitung geht von einer Octoprint Installation aus.&lt;br /&gt;
&lt;br /&gt;
=== Repetierserver ===&lt;br /&gt;
&lt;br /&gt;
Man kann auf einem normalen RasPi Installation zuerst Repetier-Server aufsetzen und dann erst Klipper. Die Verbindung von Repetier-Server zu Klipper funktioniert aber nicht, da die beiden Programme unter verschiedenen Benutzern arbeiten und die Standard Serial-Emulation das Problem nicht lösen kann.&lt;br /&gt;
&lt;br /&gt;
Abhilfe: (Siehe [Repetier-Server Knowledgebase https://www.repetier-server.com/knowledgebase/klipper/])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/lib/klipper&lt;br /&gt;
sudo chmod 777 /var/lib/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und dann die Änderung in den Einstellungen von Klipper bekannt machen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/defaults/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dort die Zeile am Ende zu &amp;lt;pre&amp;gt;KLIPPY_ARGS=&amp;quot;/home/pi/klipper/klippy/klippy.py /home/pi/printer.cfg -l /tmp/klippy.log -I /var/lib/klipper/connect&amp;quot;&amp;lt;/pre&amp;gt; ergänzen. Anschliessend das Service von Klipper neu starten. Damit kann man sich in Repetier-Server mit Gerät/Port /var/lib/klipper/connect verbinden.&lt;br /&gt;
&lt;br /&gt;
Repetierserver älter als 0.99.4: Bei den Befehlen muss man ein Raute Zeichen # voranstellen, damit es richtig von Repetier-Server weitergegeben wird. Ist bei Version 1.x und besser nicht mehr der Fall.&lt;br /&gt;
&lt;br /&gt;
== Klipper Befehle ==&lt;br /&gt;
&lt;br /&gt;
Klipper unterstützt natürlich alle gängigen G-Code-Befehle, die die Slicer erzeugen. Es wird allgemein empfohlen, den Slicer auf &amp;quot;Marlin&amp;quot; oder &amp;quot;Smoothieware&amp;quot; zu stellen (sofern keine direkte Unterstützung für Klipper vorhanden ist). &lt;br /&gt;
Für erweiterte G-Code-Befehle verfolgt Klipper eine etwas andere Philosophie als andere Firmwares: Statt kryptische M-Befehle zu erdenken, werden sprechende Namen benutzt. Gleiches gilt für die Parameter, die üblicherweise die Form &amp;quot;NAME=Wert&amp;quot; haben. Groß- und Kleinschreibung spielt keine Rolle.&lt;br /&gt;
&lt;br /&gt;
Es ist möglich, mittels Macros eigene G-Code-Befehle zu definieren. Das funktioniert über die Konfiguration und ist in [https://github.com/KevinOConnor/klipper/blob/master/config/example-extras.cfg#L395 example-extras.cfg] im Abschnitt &amp;quot;[gcode_macro my_cmd]&amp;quot; dokumentiert. Dadurch könnte man sich z.B. seinen Start-Code statt im Slicer in der Konfiguration definieren (und so auch leichter ändern, ohne neu slicen zu müssen), oder Befehle, die von Klipper nicht unterstützt aber durch den Slicer erzeugt werden, implementieren.&lt;br /&gt;
&lt;br /&gt;
Siehe [[Klipper_GCodes]] mit der Übersicht der GCodes die von Klipper verstanden werden, auch mit den Erweiterungen die im Repository von rf1000.de enthalten sind.&lt;br /&gt;
Original-Dokumentation: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
&lt;br /&gt;
Hinweis: Einige der dort beschriebenen Befehle sind nur aktiv, wenn bestimmte Module geladen sind. Daher gehen manche Befehle nicht, es sei denn, das Modul wird über die Konfiguration eingeschaltet.&lt;br /&gt;
&lt;br /&gt;
=== Reset ===&lt;br /&gt;
Einen Reset von Klipper, das auch die Firmware zurücksetzt führt man mit dem Kommando &lt;br /&gt;
&amp;lt;pre&amp;gt;FIRMWARE_RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
durch. Dabei wird auch die printer.cfg neu eingelesen. Bei Problemen in der printer.cfg kann es sein, das ein Klipper: Disconnect erscheint. Dann läuft Klipper nicht und man darf den Fehler suchen.&lt;br /&gt;
&lt;br /&gt;
Mit dem GCode M112 wird Klipper einfach heruntergefahren und man muss sich neu verbinden.&lt;br /&gt;
&lt;br /&gt;
Möchte man nur die printer.cfg neu laden, genügt der Befehl&lt;br /&gt;
&amp;lt;pre&amp;gt;RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PID durchführen ===&lt;br /&gt;
Für den Hotend 1&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=extruder TARGET=210&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für das Heizbett&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=heater_bed TARGET=60&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Daten werden mit SAVE_CONFIG abgespeichert.&lt;br /&gt;
&lt;br /&gt;
=== Z Offset ===&lt;br /&gt;
Um den Z-Offset bzw. die Z-Position des Endschalters zu kalibrieren, gibt es das Macro&lt;br /&gt;
&amp;lt;pre&amp;gt;Z_CALIBRATE&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies führt einen Scan an der Position x=100,y=100 durch. Wichtig ist, dass die Position des Endschalters schon so weit bekannt sein muss, dass Z=2mm zuverlässig [b]über[/b] dem Bett liegt (nicht zu weit, sonst dauert der Scan zu lange).&lt;br /&gt;
&lt;br /&gt;
Wenn man testen möchte, ob der Scan zuverlässig funktioniert, kann dieser Befehl benutzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;PROBE_ACCURACY&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das führt dann an der aktuellen XY Position 10 mal einen Z-Scan durch und bestimmt Mittelwert und Standardabweichung etc. Standardabweichung ist also in unteren bis mitteleren einstelligen Mikrometerbereich, der &amp;quot;Maximalfehler&amp;quot; (range) besser als 1/100mm. [https://www.rf1000.de/viewtopic.php?f=7&amp;amp;t=2610&amp;amp;start=60 Mehr Info zu PROBE_ACCURACY siehe Post Nr 62]&lt;br /&gt;
&lt;br /&gt;
=== Bed Mesh Kalibration durchführen ===&lt;br /&gt;
Zum kalibrieren des Bed Mesh (Äquivalent zum Heat Bed Scan der Repetier-Firmware) wird folgendes Macro empfohlen:&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_CALIBRATE&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies führt zunächst ein Z_CALIBRATE durch (ebenfalls an x=100,y=100). Anschließend wird das Bett im Raster vermessen. Die Konfiguration wird am Ende automatisch gespeichert (was zu einem Firmware-Neustart führt).&lt;br /&gt;
&lt;br /&gt;
Dadurch, dass zuerst ein Z_CALIBRATE durchgeführt wird, kann anschließend jederzeit ein Z_CALIBRATE genutzt werden, um z.B. nach einem Düsenwechsel den Abstand zwischen Bett und Düse neu zu kalibrieren, ohne dass ein vollständiger Bed Mesh Scan nötig wäre.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_OUTPUT&amp;lt;/pre&amp;gt;&lt;br /&gt;
gibt das aktuelle Mesh aus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_CLEAR&amp;lt;/pre&amp;gt;&lt;br /&gt;
setzt alle Werte des aktuellen Meshes auf 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_PROFILE LOAD=&amp;lt;name&amp;gt; SAVE=&amp;lt;name&amp;gt; REMOVE=&amp;lt;name&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
erlaut das Mesh zu speichern, zu laden, oder ein gespeichertes Mesh zu löschen.&lt;br /&gt;
&lt;br /&gt;
Übrigens kann das Mesh mit OctoPrint visualisiert werden, wenn man sich das Bed Visualizer Plugin installiert.&lt;br /&gt;
&lt;br /&gt;
=== Positionen Abfragen ===&lt;br /&gt;
Damit sieht man die aktuellen Positionen in den verschiedenen Koorinaten-Systeme. Beispiel nach &amp;quot;G1 Z0&amp;quot; auf der Position X=57.5 und Y=50.0&lt;br /&gt;
&amp;lt;pre&amp;gt;Send:16:32:28.975: #GET_POSITION&lt;br /&gt;
Recv:16:32:28.976: // mcu: stepper_x:2 stepper_y:-50 stepper_z:2499&lt;br /&gt;
Recv:16:32:28.976: // stepper: stepper_x:57.500625 stepper_y:49.999688 stepper_z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // kinematic: X:57.500625 Y:49.999688 Z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // toolhead: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode base: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode homing: X:0.000000 Y:0.000000 Z:0.000000&lt;br /&gt;
Recv:16:32:28.976: ok&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man sollte man die Z-Koordinaten zwischen toolhead und kinematic vergleichen. Der Unterschied sollte genau die Korrektur aus dem Mesh-Leveling an dem Punkt plus der Z-Offset durch den Z_OFFSET_SCAN sein. Andernfalls ist da irgendwo noch ein anderer Offset im Spiel.&lt;br /&gt;
&lt;br /&gt;
=== Speichern der Configuration ===&lt;br /&gt;
Mit dem Kommando save_config kann man die Änderungen, die durch die Abgleichfunktionen (PID, HBS, Z-Offset,...) ermittelt wurden, in der Konfigurationsdatei abspeichern&lt;br /&gt;
&amp;lt;pre&amp;gt;SAVE_CONFIG&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Konfigurationsdatei ==&lt;br /&gt;
=== Basiskonfigurationen ===&lt;br /&gt;
Im Verzeichnis von Klipper stehen unter /config die verschiedenen Konfigurationsdateien für Klipper. Aktuell ist für den RF1000 und den RF2000V2 mit Single Extruder eine Konfigurationsdatei vorhanden. Diese Konfigurationsdateien sollte man dort belassen und auch nicht ändern. &lt;br /&gt;
&lt;br /&gt;
=== Eigene printer.cfg ===&lt;br /&gt;
Bei Klipper verwendet man am besten eine eigene printer.cfg, die nicht einfach von einer Vorlage kopiert wird, sondern die die Vorlage ergänzt, ändert und erweitert.&lt;br /&gt;
&lt;br /&gt;
In der printer.cfg steht am Anfang normalerseise immer der Basisdrucker, von dem die aktuelle Konfiguration abgeleitet wird. Wie alle Parametergruppen wird das ganze von eckigen Klammern [] umschlossen.&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf2000v2-single.cfg]&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dannach kann man dann seine geänderten oder neue Parameter hinzufügen. Das folgende ist aus einer Konfiguration für den RF2000V2 single. Zuerst wird der maximale Fahrweg in X und Y anders definiert und anschliessend für Z die Werte angepasst. Dannach kommt die Konfiguration für den HBS.&lt;br /&gt;
&amp;lt;pre&amp;gt;[stepper_x]&lt;br /&gt;
position_max: 210&lt;br /&gt;
&lt;br /&gt;
[stepper_y]&lt;br /&gt;
position_max: 290&lt;br /&gt;
&lt;br /&gt;
[stepper_z]&lt;br /&gt;
position_min: -2.0&lt;br /&gt;
position_max: 185&lt;br /&gt;
&lt;br /&gt;
[bed_mesh]&lt;br /&gt;
speed: 30&lt;br /&gt;
horizontal_move_z: 2&lt;br /&gt;
mesh_min: 10,50&lt;br /&gt;
mesh_max: 200,230&lt;br /&gt;
algorithm:lagrange&lt;br /&gt;
probe_count: 5,5&lt;br /&gt;
fade_start: 1.0&lt;br /&gt;
fade_end: 10.0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach den Parametern kann man sich auch Makros definieren. In dem Beispiel ein Markro zum Auswurf des Objektes, das man einfach mit OUTPUT_OBJECT aufrufen kann.&lt;br /&gt;
&amp;lt;pre&amp;gt;[gcode_macro OUTPUT_OBJECT]&lt;br /&gt;
gcode:&lt;br /&gt;
	G90&lt;br /&gt;
	#G1 Z180	F540&lt;br /&gt;
	G1 Z80	F540&lt;br /&gt;
	G1 Y245 F4800&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als letzte Abschnitt kommen die gespeicherten - durch SAVE_CONFIG - Parameter und Werte. Diese NICHT selbst verändern, sondern immer nur durch das Programm.&lt;br /&gt;
&amp;lt;pre&amp;gt;#*# &amp;lt;---------------------- SAVE_CONFIG ----------------------&amp;gt;&lt;br /&gt;
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.&lt;br /&gt;
#*#&lt;br /&gt;
#*# [extruder]&lt;br /&gt;
#*# control = pid&lt;br /&gt;
#*# pid_kp = 33.373&lt;br /&gt;
#*# pid_ki = 2.060&lt;br /&gt;
#*# pid_kd = 135.160&lt;br /&gt;
#*#&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1162</id>
		<title>Klipper</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1162"/>
		<updated>2021-09-30T11:33:18Z</updated>

		<summary type="html">&lt;p&gt;Mhier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Klipper]]&lt;br /&gt;
&lt;br /&gt;
Klipper ist eine Firmware für 3D Drucker. Diese kann alternativ zu der Repetier-basierten Original-Firmware von Conrad oder der auf dieser Original-Firmware basierenden Community-Version auf den Druckern RF1000, RF2000 oder RF2000v2 verwendet werden. Die dafür nötige Konfiguration ist für die Drucker RF2000 und RF2000v20 '''noch nicht vollständig'''. Für den RF1000 ist die Konfiguration abgeschlossen und wurde seit knapp einem Jahr bereits getestet.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Klipper ist gut dokumentiert auf seiner Webseite, allerdings nur in Englisch: [https://www.klipper3d.org https://www.klipper3d.org]&lt;br /&gt;
&lt;br /&gt;
Das Grundprinzip weicht von der Repetier-basierten Firmware und anderen 3D-Drucker-Firmwares deutlich ab. Statt alle Berechnungen im Microcontroller (im Folgenden MCU genannt) des Druckers auszuführen, werden zeitintensive Berechnungen auf einem Host-System durchgeführt. Als Host-System eignet sich z.B. ein Raspberry Pi oder auch ein herkömmlicher Linux-PC. Auf dem selben Host-System kann (bzw. sollte) auch Octoprint o.ä. ausgeführt werden. Wer also bereits Octoprint etc. nutzt, benötigt keine weitere Hardware.&lt;br /&gt;
&lt;br /&gt;
Da die zur Verfügung stehende Rechenpower so um Größenordnungen höher ist, können deutlich präzisere Berechnungen durchgeführt werden. Die Motoren laufen spürbar ruhiger, und höhere Schrittfrequenzen sind ebenfalls problemlos möglich. Außerdem ist eine höhere Flexibilität möglich. Auch ohne Programmierkenntnisse kann das Verhalten der Firmware über Konfigurations-Dateien beeinflusst werden, sogar neue G-Codes können so eingeführt werden. Die Firmware ist größtenteils in Python geschrieben und sehr modular gehalten, wodurch die Einstiegshürde für Entwickler sehr viel geringer ist.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
Was schon funktioniert:&lt;br /&gt;
* Natürlich alle Grundfunktionen, die jeder normale Drucker hat (Bewegen, Heizen, Lüfter etc.)&lt;br /&gt;
** Dokumentation der unterstützten G-Codes: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
* Heizbett-Scan: heißt bei Klipper Bed Mesh Leveling&lt;br /&gt;
** Es lassen sich beliebig viele benannte Meshes (entspricht den Matrizen) speichern&lt;br /&gt;
** Es gibt kein Software-Limit wie groß die Werte im Mesh werden dürfen&lt;br /&gt;
** Interpolation zwischen den Punkten des Meshes ist deutlich besser, daher sollten weniger Punkte ausreichen&lt;br /&gt;
* Z-Offset-Scan&lt;br /&gt;
** Korrigiert nicht mehr die Matrix/das Mesh, sondern kalibriert die Z-Koordinate des Z-Endstop.&lt;br /&gt;
** Ebenfalls keinerlei Software-Limit auf den Wert des &amp;quot;Offsets&amp;quot;.&lt;br /&gt;
** Homing gegen Z-Max ist problemlos ebenfalls möglich.&lt;br /&gt;
* Menü (im Original-Zustand von Klipper, daher noch etwas rudimentär vielleicht): die Bedienlogik ist etwas anders&lt;br /&gt;
** Die Nach-Rechts-Taste wird eigentlich nicht gebraucht und wurde daher als Not-Aus umfunktioniert.&lt;br /&gt;
** Die Tasten zum Bewegen des Heizbetts und des Extruders fahren in vorgegebenen Schritten. Gedrückthalten für längere Fahrten ist nicht möglich (Einschränkung in Klipper).&lt;br /&gt;
* Pause und Fortsetzen über Tasten (funktioniert evtl. nur mit Octoprint?)&lt;br /&gt;
* Sense offset&lt;br /&gt;
* Emergency Pause/Stop (bei zu hohem Druck auf die Wägezellen), funktioniert nur während eines Z-Scans.&lt;br /&gt;
* Kanten antasten in X/Y (Fräsen)&lt;br /&gt;
&lt;br /&gt;
Was fehlt:&lt;br /&gt;
* Konfigurationen für den RF2000 und RF2000v2 (für RF2000v2 single extruder ist eine Konfiguration vorhanden, muss aber geupdated werden)&lt;br /&gt;
* Sagt ihr es mir!&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Eine Ausführliche Installationsanleitung gibt es auf der Webseite: [https://www.klipper3d.org/Installation.html https://www.klipper3d.org/Installation.html]&lt;br /&gt;
&lt;br /&gt;
Da die nötigen Modifikationen und Beispielkonfigurationen noch nicht Teil der offiziellen Klipper-Firmware sind, muss der folgende Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/Klipper3d/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
durch diesen ersetzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/RF1000community/Klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem gibt es bereits eine Konfigurations-Datei für den RF1000. Ich würde daher empfehlen, die Konfigurations-Datei printer.cfg mit folgendem Inhalt zu erstellen:&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf1000.cfg]&lt;br /&gt;
&lt;br /&gt;
[mcu]&lt;br /&gt;
serial: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_&amp;lt;hier_richtige_ID_einfügen&amp;gt;-port0&lt;br /&gt;
&lt;br /&gt;
[stepper_z]&lt;br /&gt;
position_endstop: 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dadurch wird der Inhalt von klipper/config/printer-rf1000.cfg benutzt, aber alle folgenden Einstellungen überschreiben ggf. bereits vorhandene Einstellungen aus der printer-rf1000.cfg Datei. Die Angabe des position_endstop für die Z-Achse ist nötig, da diese durch den Z-Offset-Scan überschrieben wird, was nur funktioniert, wenn diese Angabe direkt in der printer.cfg gemacht wird (nicht im Include).&lt;br /&gt;
&lt;br /&gt;
Nach der Installation bitte unbedingt die Anleitung zum Prüfen der Konfiguration befolgen:&lt;br /&gt;
https://www.klipper3d.org/Config_checks.html&lt;br /&gt;
&lt;br /&gt;
Es ist ebenfalls empfehlenswert, die Konfiguration auf diese Weise nach jedem Update zu prüfen, weil durch das [include] Änderungen aus der Konfigurationsdatei automatisch übernommen werden.&lt;br /&gt;
&lt;br /&gt;
=== Octoprint ===&lt;br /&gt;
&lt;br /&gt;
Die Installationsanleitung geht von einer Octoprint Installation aus.&lt;br /&gt;
&lt;br /&gt;
=== Repetierserver ===&lt;br /&gt;
&lt;br /&gt;
Man kann auf einem normalen RasPi Installation zuerst Repetier-Server aufsetzen und dann erst Klipper. Die Verbindung von Repetier-Server zu Klipper funktioniert aber nicht, da die beiden Programme unter verschiedenen Benutzern arbeiten und die Standard Serial-Emulation das Problem nicht lösen kann.&lt;br /&gt;
&lt;br /&gt;
Abhilfe: (Siehe [Repetier-Server Knowledgebase https://www.repetier-server.com/knowledgebase/klipper/])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/lib/klipper&lt;br /&gt;
sudo chmod 777 /var/lib/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und dann die Änderung in den Einstellungen von Klipper bekannt machen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/defaults/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dort die Zeile am Ende zu &amp;lt;pre&amp;gt;KLIPPY_ARGS=&amp;quot;/home/pi/klipper/klippy/klippy.py /home/pi/printer.cfg -l /tmp/klippy.log -I /var/lib/klipper/connect&amp;quot;&amp;lt;/pre&amp;gt; ergänzen. Anschliessend das Service von Klipper neu starten. Damit kann man sich in Repetier-Server mit Gerät/Port /var/lib/klipper/connect verbinden.&lt;br /&gt;
&lt;br /&gt;
Repetierserver älter als 0.99.4: Bei den Befehlen muss man ein Raute Zeichen # voranstellen, damit es richtig von Repetier-Server weitergegeben wird. Ist bei Version 1.x und besser nicht mehr der Fall.&lt;br /&gt;
&lt;br /&gt;
== Klipper Befehle ==&lt;br /&gt;
&lt;br /&gt;
Klipper unterstützt natürlich alle gängigen G-Code-Befehle, die die Slicer erzeugen. Es wird allgemein empfohlen, den Slicer auf &amp;quot;Marlin&amp;quot; oder &amp;quot;Smoothieware&amp;quot; zu stellen (sofern keine direkte Unterstützung für Klipper vorhanden ist). &lt;br /&gt;
Für erweiterte G-Code-Befehle verfolgt Klipper eine etwas andere Philosophie als andere Firmwares: Statt kryptische M-Befehle zu erdenken, werden sprechende Namen benutzt. Gleiches gilt für die Parameter, die üblicherweise die Form &amp;quot;NAME=Wert&amp;quot; haben. Groß- und Kleinschreibung spielt keine Rolle.&lt;br /&gt;
&lt;br /&gt;
Es ist möglich, mittels Macros eigene G-Code-Befehle zu definieren. Das funktioniert über die Konfiguration und ist in [https://github.com/KevinOConnor/klipper/blob/master/config/example-extras.cfg#L395 example-extras.cfg] im Abschnitt &amp;quot;[gcode_macro my_cmd]&amp;quot; dokumentiert. Dadurch könnte man sich z.B. seinen Start-Code statt im Slicer in der Konfiguration definieren (und so auch leichter ändern, ohne neu slicen zu müssen), oder Befehle, die von Klipper nicht unterstützt aber durch den Slicer erzeugt werden, implementieren.&lt;br /&gt;
&lt;br /&gt;
Siehe [[Klipper_GCodes]] mit der Übersicht der GCodes die von Klipper verstanden werden, auch mit den Erweiterungen die im Repository von rf1000.de enthalten sind.&lt;br /&gt;
Original-Dokumentation: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
&lt;br /&gt;
Hinweis: Einige der dort beschriebenen Befehle sind nur aktiv, wenn bestimmte Module geladen sind. Daher gehen manche Befehle nicht, es sei denn, das Modul wird über die Konfiguration eingeschaltet.&lt;br /&gt;
&lt;br /&gt;
=== Reset ===&lt;br /&gt;
Einen Reset von Klipper, das auch die Firmware zurücksetzt führt man mit dem Kommando &lt;br /&gt;
&amp;lt;pre&amp;gt;FIRMWARE_RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
durch. Dabei wird auch die printer.cfg neu eingelesen. Bei Problemen in der printer.cfg kann es sein, das ein Klipper: Disconnect erscheint. Dann läuft Klipper nicht und man darf den Fehler suchen.&lt;br /&gt;
&lt;br /&gt;
Mit dem GCode M112 wird Klipper einfach heruntergefahren und man muss sich neu verbinden.&lt;br /&gt;
&lt;br /&gt;
Möchte man nur die printer.cfg neu laden, genügt der Befehl&lt;br /&gt;
&amp;lt;pre&amp;gt;RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PID durchführen ===&lt;br /&gt;
Für den Hotend 1&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=extruder TARGET=210&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für das Heizbett&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=heater_bed TARGET=60&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Daten werden mit SAVE_CONFIG abgespeichert.&lt;br /&gt;
&lt;br /&gt;
=== Z Offset ===&lt;br /&gt;
Um den Z-Offset bzw. die Z-Position des Endschalters zu kalibrieren, gibt es das Macro&lt;br /&gt;
&amp;lt;pre&amp;gt;Z_CALIBRATE&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies führt einen Scan an der Position x=100,y=100 durch. Wichtig ist, dass die Position des Endschalters schon so weit bekannt sein muss, dass Z=10mm über dem Bett liegt (nicht zu weit, sonst dauert der Scan zu lange).&lt;br /&gt;
&lt;br /&gt;
Wenn man testen möchte, ob der Scan zuverlässig funktioniert, kann dieser Befehl benutzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;PROBE_ACCURACY&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das führt dann an der aktuellen XY Position 10 mal einen Z-Scan durch und bestimmt Mittelwert und Standardabweichung etc. Standardabweichung ist also in unteren bis mitteleren einstelligen Mikrometerbereich, der &amp;quot;Maximalfehler&amp;quot; (range) besser als 1/100mm. [https://www.rf1000.de/viewtopic.php?f=7&amp;amp;t=2610&amp;amp;start=60 Mehr Info zu PROBE_ACCURACY siehe Post Nr 62]&lt;br /&gt;
&lt;br /&gt;
=== Bed Mesh Kalibration durchführen ===&lt;br /&gt;
Zum kalibrieren des Bed Mesh (Äquivalent zum Heat Bed Scan der Repetier-Firmware) wird folgendes Macro empfohlen:&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_CALIBRATE&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies führt zunächst ein Z_CALIBRATE durch (ebenfalls an x=100,y=100). Anschließend wird das Bett im Raster vermessen. Die Konfiguration wird am Ende automatisch gespeichert (was zu einem Firmware-Neustart führt).&lt;br /&gt;
&lt;br /&gt;
Dadurch, dass zuerst ein Z_CALIBRATE durchgeführt wird, kann anschließend jederzeit ein Z_CALIBRATE genutzt werden, um z.B. nach einem Düsenwechsel den Abstand zwischen Bett und Düse neu zu kalibrieren, ohne dass ein vollständiger Bed Mesh Scan nötig wäre.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_OUTPUT&amp;lt;/pre&amp;gt;&lt;br /&gt;
gibt das aktuelle Mesh aus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_CLEAR&amp;lt;/pre&amp;gt;&lt;br /&gt;
setzt alle Werte des aktuellen Meshes auf 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_PROFILE LOAD=&amp;lt;name&amp;gt; SAVE=&amp;lt;name&amp;gt; REMOVE=&amp;lt;name&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
erlaut das Mesh zu speichern, zu laden, oder ein gespeichertes Mesh zu löschen.&lt;br /&gt;
&lt;br /&gt;
Übrigens kann das Mesh mit OctoPrint visualisiert werden, wenn man sich das Bed Visualizer Plugin installiert.&lt;br /&gt;
&lt;br /&gt;
=== Positionen Abfragen ===&lt;br /&gt;
Damit sieht man die aktuellen Positionen in den verschiedenen Koorinaten-Systeme. Beispiel nach &amp;quot;G1 Z0&amp;quot; auf der Position X=57.5 und Y=50.0&lt;br /&gt;
&amp;lt;pre&amp;gt;Send:16:32:28.975: #GET_POSITION&lt;br /&gt;
Recv:16:32:28.976: // mcu: stepper_x:2 stepper_y:-50 stepper_z:2499&lt;br /&gt;
Recv:16:32:28.976: // stepper: stepper_x:57.500625 stepper_y:49.999688 stepper_z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // kinematic: X:57.500625 Y:49.999688 Z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // toolhead: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode base: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode homing: X:0.000000 Y:0.000000 Z:0.000000&lt;br /&gt;
Recv:16:32:28.976: ok&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man sollte man die Z-Koordinaten zwischen toolhead und kinematic vergleichen. Der Unterschied sollte genau die Korrektur aus dem Mesh-Leveling an dem Punkt plus der Z-Offset durch den Z_OFFSET_SCAN sein. Andernfalls ist da irgendwo noch ein anderer Offset im Spiel.&lt;br /&gt;
&lt;br /&gt;
=== Speichern der Configuration ===&lt;br /&gt;
Mit dem Kommando save_config kann man die Änderungen, die durch die Abgleichfunktionen (PID, HBS, Z-Offset,...) ermittelt wurden, in der Konfigurationsdatei abspeichern&lt;br /&gt;
&amp;lt;pre&amp;gt;SAVE_CONFIG&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Konfigurationsdatei ==&lt;br /&gt;
=== Basiskonfigurationen ===&lt;br /&gt;
Im Verzeichnis von Klipper stehen unter /config die verschiedenen Konfigurationsdateien für Klipper. Aktuell ist für den RF1000 und den RF2000V2 mit Single Extruder eine Konfigurationsdatei vorhanden. Diese Konfigurationsdateien sollte man dort belassen und auch nicht ändern. &lt;br /&gt;
&lt;br /&gt;
=== Eigene printer.cfg ===&lt;br /&gt;
Bei Klipper verwendet man am besten eine eigene printer.cfg, die nicht einfach von einer Vorlage kopiert wird, sondern die die Vorlage ergänzt, ändert und erweitert.&lt;br /&gt;
&lt;br /&gt;
In der printer.cfg steht am Anfang normalerseise immer der Basisdrucker, von dem die aktuelle Konfiguration abgeleitet wird. Wie alle Parametergruppen wird das ganze von eckigen Klammern [] umschlossen.&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf2000v2-single.cfg]&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dannach kann man dann seine geänderten oder neue Parameter hinzufügen. Das folgende ist aus einer Konfiguration für den RF2000V2 single. Zuerst wird der maximale Fahrweg in X und Y anders definiert und anschliessend für Z die Werte angepasst. Dannach kommt die Konfiguration für den HBS.&lt;br /&gt;
&amp;lt;pre&amp;gt;[stepper_x]&lt;br /&gt;
position_max: 210&lt;br /&gt;
&lt;br /&gt;
[stepper_y]&lt;br /&gt;
position_max: 290&lt;br /&gt;
&lt;br /&gt;
[stepper_z]&lt;br /&gt;
position_min: -2.0&lt;br /&gt;
position_max: 185&lt;br /&gt;
&lt;br /&gt;
[bed_mesh]&lt;br /&gt;
speed: 30&lt;br /&gt;
horizontal_move_z: 2&lt;br /&gt;
mesh_min: 10,50&lt;br /&gt;
mesh_max: 200,230&lt;br /&gt;
algorithm:lagrange&lt;br /&gt;
probe_count: 5,5&lt;br /&gt;
fade_start: 1.0&lt;br /&gt;
fade_end: 10.0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach den Parametern kann man sich auch Makros definieren. In dem Beispiel ein Markro zum Auswurf des Objektes, das man einfach mit OUTPUT_OBJECT aufrufen kann.&lt;br /&gt;
&amp;lt;pre&amp;gt;[gcode_macro OUTPUT_OBJECT]&lt;br /&gt;
gcode:&lt;br /&gt;
	G90&lt;br /&gt;
	#G1 Z180	F540&lt;br /&gt;
	G1 Z80	F540&lt;br /&gt;
	G1 Y245 F4800&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als letzte Abschnitt kommen die gespeicherten - durch SAVE_CONFIG - Parameter und Werte. Diese NICHT selbst verändern, sondern immer nur durch das Programm.&lt;br /&gt;
&amp;lt;pre&amp;gt;#*# &amp;lt;---------------------- SAVE_CONFIG ----------------------&amp;gt;&lt;br /&gt;
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.&lt;br /&gt;
#*#&lt;br /&gt;
#*# [extruder]&lt;br /&gt;
#*# control = pid&lt;br /&gt;
#*# pid_kp = 33.373&lt;br /&gt;
#*# pid_ki = 2.060&lt;br /&gt;
#*# pid_kd = 135.160&lt;br /&gt;
#*#&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1161</id>
		<title>Klipper</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1161"/>
		<updated>2021-09-30T11:26:50Z</updated>

		<summary type="html">&lt;p&gt;Mhier: /* Z Offset */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Klipper]]&lt;br /&gt;
&lt;br /&gt;
Klipper ist eine Firmware für 3D Drucker. Diese kann alternativ zu der Repetier-basierten Original-Firmware von Conrad oder der auf dieser Original-Firmware basierenden Community-Version auf den Druckern RF1000, RF2000 oder RF2000v2 verwendet werden. Die dafür nötige Konfiguration ist für die Drucker RF2000 und RF2000v20 '''noch nicht vollständig'''. Für den RF1000 ist die Konfiguration abgeschlossen und wurde seit knapp einem Jahr bereits getestet.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Klipper ist gut dokumentiert auf seiner Webseite, allerdings nur in Englisch: [https://www.klipper3d.org https://www.klipper3d.org]&lt;br /&gt;
&lt;br /&gt;
Das Grundprinzip weicht von der Repetier-basierten Firmware und anderen 3D-Drucker-Firmwares deutlich ab. Statt alle Berechnungen im Microcontroller (im Folgenden MCU genannt) des Druckers auszuführen, werden zeitintensive Berechnungen auf einem Host-System durchgeführt. Als Host-System eignet sich z.B. ein Raspberry Pi oder auch ein herkömmlicher Linux-PC. Auf dem selben Host-System kann (bzw. sollte) auch Octoprint o.ä. ausgeführt werden. Wer also bereits Octoprint etc. nutzt, benötigt keine weitere Hardware.&lt;br /&gt;
&lt;br /&gt;
Da die zur Verfügung stehende Rechenpower so um Größenordnungen höher ist, können deutlich präzisere Berechnungen durchgeführt werden. Die Motoren laufen spürbar ruhiger, und höhere Schrittfrequenzen sind ebenfalls problemlos möglich. Außerdem ist eine höhere Flexibilität möglich. Auch ohne Programmierkenntnisse kann das Verhalten der Firmware über Konfigurations-Dateien beeinflusst werden, sogar neue G-Codes können so eingeführt werden. Die Firmware ist größtenteils in Python geschrieben und sehr modular gehalten, wodurch die Einstiegshürde für Entwickler sehr viel geringer ist.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
Was schon funktioniert:&lt;br /&gt;
* Natürlich alle Grundfunktionen, die jeder normale Drucker hat (Bewegen, Heizen, Lüfter etc.)&lt;br /&gt;
** Dokumentation der unterstützten G-Codes: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
* Heizbett-Scan: heißt bei Klipper Bed Mesh Leveling&lt;br /&gt;
** Es lassen sich beliebig viele benannte Meshes (entspricht den Matrizen) speichern&lt;br /&gt;
** Es gibt kein Software-Limit wie groß die Werte im Mesh werden dürfen&lt;br /&gt;
** Interpolation zwischen den Punkten des Meshes ist deutlich besser, daher sollten weniger Punkte ausreichen&lt;br /&gt;
* Z-Offset-Scan&lt;br /&gt;
** Korrigiert nicht mehr die Matrix/das Mesh, sondern kalibriert die Z-Koordinate des Z-Endstop.&lt;br /&gt;
** Ebenfalls keinerlei Software-Limit auf den Wert des &amp;quot;Offsets&amp;quot;.&lt;br /&gt;
** Homing gegen Z-Max ist problemlos ebenfalls möglich.&lt;br /&gt;
* Menü (im Original-Zustand von Klipper, daher noch etwas rudimentär vielleicht): die Bedienlogik ist etwas anders&lt;br /&gt;
** Die Nach-Rechts-Taste wird eigentlich nicht gebraucht und wurde daher als Not-Aus umfunktioniert.&lt;br /&gt;
** Die Tasten zum Bewegen des Heizbetts und des Extruders fahren in vorgegebenen Schritten. Gedrückthalten für längere Fahrten ist nicht möglich (Einschränkung in Klipper).&lt;br /&gt;
* Pause und Fortsetzen über Tasten (funktioniert evtl. nur mit Octoprint?)&lt;br /&gt;
* Sense offset&lt;br /&gt;
* Emergency Pause/Stop (bei zu hohem Druck auf die Wägezellen), funktioniert nur während eines Z-Scans.&lt;br /&gt;
* Kanten antasten in X/Y (Fräsen)&lt;br /&gt;
&lt;br /&gt;
Was fehlt:&lt;br /&gt;
* Konfigurationen für den RF2000 und RF2000v2 (für RF2000v2 single extruder ist eine Konfiguration vorhanden, muss aber geupdated werden)&lt;br /&gt;
* Sagt ihr es mir!&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Eine Ausführliche Installationsanleitung gibt es auf der Webseite: [https://www.klipper3d.org/Installation.html https://www.klipper3d.org/Installation.html]&lt;br /&gt;
&lt;br /&gt;
Da die nötigen Modifikationen und Beispielkonfigurationen noch nicht Teil der offiziellen Klipper-Firmware sind, muss der folgende Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/Klipper3d/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
durch diesen ersetzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/RF1000community/Klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem gibt es bereits eine Konfigurations-Datei für den RF1000. Ich würde daher empfehlen, die Konfigurations-Datei printer.cfg mit folgendem Inhalt zu erstellen:&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf1000.cfg]&lt;br /&gt;
&lt;br /&gt;
[mcu]&lt;br /&gt;
serial: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_&amp;lt;hier_richtige_ID_einfügen&amp;gt;-port0&lt;br /&gt;
&lt;br /&gt;
[stepper_z]&lt;br /&gt;
position_endstop: 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dadurch wird der Inhalt von klipper/config/printer-rf1000.cfg benutzt, aber alle folgenden Einstellungen überschreiben ggf. bereits vorhandene Einstellungen aus der printer-rf1000.cfg Datei. Die Angabe des position_endstop für die Z-Achse ist nötig, da diese durch den Z-Offset-Scan überschrieben wird, was nur funktioniert, wenn diese Angabe direkt in der printer.cfg gemacht wird (nicht im Include).&lt;br /&gt;
&lt;br /&gt;
Nach der Installation bitte unbedingt die Anleitung zum Prüfen der Konfiguration befolgen:&lt;br /&gt;
https://www.klipper3d.org/Config_checks.html&lt;br /&gt;
&lt;br /&gt;
Es ist ebenfalls empfehlenswert, die Konfiguration auf diese Weise nach jedem Update zu prüfen, weil durch das [include] Änderungen aus der Konfigurationsdatei automatisch übernommen werden.&lt;br /&gt;
&lt;br /&gt;
=== Octoprint ===&lt;br /&gt;
&lt;br /&gt;
Die Installationsanleitung geht von einer Octoprint Installation aus.&lt;br /&gt;
&lt;br /&gt;
=== Repetierserver ===&lt;br /&gt;
&lt;br /&gt;
Man kann auf einem normalen RasPi Installation zuerst Repetier-Server aufsetzen und dann erst Klipper. Die Verbindung von Repetier-Server zu Klipper funktioniert aber nicht, da die beiden Programme unter verschiedenen Benutzern arbeiten und die Standard Serial-Emulation das Problem nicht lösen kann.&lt;br /&gt;
&lt;br /&gt;
Abhilfe: (Siehe [Repetier-Server Knowledgebase https://www.repetier-server.com/knowledgebase/klipper/])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/lib/klipper&lt;br /&gt;
sudo chmod 777 /var/lib/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und dann die Änderung in den Einstellungen von Klipper bekannt machen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/defaults/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dort die Zeile am Ende zu &amp;lt;pre&amp;gt;KLIPPY_ARGS=&amp;quot;/home/pi/klipper/klippy/klippy.py /home/pi/printer.cfg -l /tmp/klippy.log -I /var/lib/klipper/connect&amp;quot;&amp;lt;/pre&amp;gt; ergänzen. Anschliessend das Service von Klipper neu starten. Damit kann man sich in Repetier-Server mit Gerät/Port /var/lib/klipper/connect verbinden.&lt;br /&gt;
&lt;br /&gt;
Repetierserver älter als 0.99.4: Bei den Befehlen muss man ein Raute Zeichen # voranstellen, damit es richtig von Repetier-Server weitergegeben wird. Ist bei Version 1.x und besser nicht mehr der Fall.&lt;br /&gt;
&lt;br /&gt;
== Klipper Befehle ==&lt;br /&gt;
&lt;br /&gt;
Klipper unterstützt natürlich alle gängigen G-Code-Befehle, die die Slicer erzeugen. Es wird allgemein empfohlen, den Slicer auf &amp;quot;Marlin&amp;quot; oder &amp;quot;Smoothieware&amp;quot; zu stellen (sofern keine direkte Unterstützung für Klipper vorhanden ist). &lt;br /&gt;
Für erweiterte G-Code-Befehle verfolgt Klipper eine etwas andere Philosophie als andere Firmwares: Statt kryptische M-Befehle zu erdenken, werden sprechende Namen benutzt. Gleiches gilt für die Parameter, die üblicherweise die Form &amp;quot;NAME=Wert&amp;quot; haben. Groß- und Kleinschreibung spielt keine Rolle.&lt;br /&gt;
&lt;br /&gt;
Es ist möglich, mittels Macros eigene G-Code-Befehle zu definieren. Das funktioniert über die Konfiguration und ist in [https://github.com/KevinOConnor/klipper/blob/master/config/example-extras.cfg#L395 example-extras.cfg] im Abschnitt &amp;quot;[gcode_macro my_cmd]&amp;quot; dokumentiert. Dadurch könnte man sich z.B. seinen Start-Code statt im Slicer in der Konfiguration definieren (und so auch leichter ändern, ohne neu slicen zu müssen), oder Befehle, die von Klipper nicht unterstützt aber durch den Slicer erzeugt werden, implementieren.&lt;br /&gt;
&lt;br /&gt;
Siehe [[Klipper_GCodes]] mit der Übersicht der GCodes die von Klipper verstanden werden, auch mit den Erweiterungen die im Repository von rf1000.de enthalten sind.&lt;br /&gt;
Original-Dokumentation: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
&lt;br /&gt;
Hinweis: Einige der dort beschriebenen Befehle sind nur aktiv, wenn bestimmte Module geladen sind. Daher gehen manche Befehle nicht, es sei denn, das Modul wird über die Konfiguration eingeschaltet.&lt;br /&gt;
&lt;br /&gt;
=== Reset ===&lt;br /&gt;
Einen Reset von Klipper, das auch die Firmware zurücksetzt führt man mit dem Kommando &lt;br /&gt;
&amp;lt;pre&amp;gt;FIRMWARE_RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
durch. Dabei wird auch die printer.cfg neu eingelesen. Bei Problemen in der printer.cfg kann es sein, das ein Klipper: Disconnect erscheint. Dann läuft Klipper nicht und man darf den Fehler suchen.&lt;br /&gt;
&lt;br /&gt;
Mit dem GCode M112 wird Klipper einfach heruntergefahren und man muss sich neu verbinden.&lt;br /&gt;
&lt;br /&gt;
Möchte man nur die printer.cfg neu laden, genügt der Befehl&lt;br /&gt;
&amp;lt;pre&amp;gt;RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PID durchführen ===&lt;br /&gt;
Für den Hotend 1&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=extruder TARGET=210&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für das Heizbett&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=heater_bed TARGET=60&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Daten werden mit SAVE_CONFIG abgespeichert.&lt;br /&gt;
&lt;br /&gt;
=== Bed Mesh Kalibration durchführen ===&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_CALIBRATE&amp;lt;/pre&amp;gt;&lt;br /&gt;
startet den Bed Mesh Scan entsprechend den Einstellungen in der Konfiguration. Konfigurations-Parameter können auch einfach als Argumente dem Befehl angefügt werden, so führt z.B. der folgende Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_CALIBRATE probe_count=3,3&amp;lt;/pre&amp;gt;&lt;br /&gt;
einen schnelleren und gröberen Scan mit nur 3x3 Punkten aus. Die vollständige Dokumentation aller möglichen Parameter findet sich hier (sollte die Zeilennummer nicht mehr stimmen, einfach nach &amp;quot;[bed_mesh]&amp;quot; suchen):&lt;br /&gt;
&lt;br /&gt;
https://github.com/KevinOConnor/klipper/blob/master/config/example-extras.cfg#L41&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_OUTPUT&amp;lt;/pre&amp;gt;&lt;br /&gt;
gibt das aktuelle Mesh aus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_CLEAR&amp;lt;/pre&amp;gt;&lt;br /&gt;
setzt alle Werte des aktuellen Meshes auf 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_PROFILE LOAD=&amp;lt;name&amp;gt; SAVE=&amp;lt;name&amp;gt; REMOVE=&amp;lt;name&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
erlaut das Mesh zu speichern, zu laden, oder ein gespeichertes Mesh zu löschen.&lt;br /&gt;
&lt;br /&gt;
Übrigens kann das Mesh mit OctoPrint visualisiert werden, wenn man sich das Bed Visualizer Plugin installiert.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;PROBE_ACCURACY&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das führt dann an der aktuellen XY Position 10 mal einen Z-Scan durch und bestimmt Mittelwert und Standardabweichung etc. Standardabweichung ist also in unteren bis mitteleren einstelligen Mikrometerbereich, der &amp;quot;Maximalfehler&amp;quot; (range) besser als 1/100mm. [https://www.rf1000.de/viewtopic.php?f=7&amp;amp;t=2610&amp;amp;start=60 Mehr Info zu PROBE_ACCURACY siehe Post Nr 62]&lt;br /&gt;
&lt;br /&gt;
=== Z Offset ===&lt;br /&gt;
Um den Z-Offset bzw. die Z-Position des Endschalters zu kalibrieren, gibt es das Macro&lt;br /&gt;
&amp;lt;pre&amp;gt;z_calibrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies führt einen Scan an der Position x=100,y=100 durch. Wichtig ist, dass die Position des Endschalters schon so weit bekannt sein muss, dass Z=10mm über dem Bett liegt (nicht zu weit, sonst dauert der Scan zu lange).&lt;br /&gt;
&lt;br /&gt;
=== Positionen Abfragen ===&lt;br /&gt;
Damit sieht man die aktuellen Positionen in den verschiedenen Koorinaten-Systeme. Beispiel nach &amp;quot;G1 Z0&amp;quot; auf der Position X=57.5 und Y=50.0&lt;br /&gt;
&amp;lt;pre&amp;gt;Send:16:32:28.975: #GET_POSITION&lt;br /&gt;
Recv:16:32:28.976: // mcu: stepper_x:2 stepper_y:-50 stepper_z:2499&lt;br /&gt;
Recv:16:32:28.976: // stepper: stepper_x:57.500625 stepper_y:49.999688 stepper_z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // kinematic: X:57.500625 Y:49.999688 Z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // toolhead: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode base: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode homing: X:0.000000 Y:0.000000 Z:0.000000&lt;br /&gt;
Recv:16:32:28.976: ok&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man sollte man die Z-Koordinaten zwischen toolhead und kinematic vergleichen. Der Unterschied sollte genau die Korrektur aus dem Mesh-Leveling an dem Punkt plus der Z-Offset durch den Z_OFFSET_SCAN sein. Andernfalls ist da irgendwo noch ein anderer Offset im Spiel.&lt;br /&gt;
&lt;br /&gt;
=== Speichern der Configuration ===&lt;br /&gt;
Mit dem Kommando save_config kann man die Änderungen, die durch die Abgleichfunktionen (PID, HBS, Z-Offset,...) ermittelt wurden, in der Konfigurationsdatei abspeichern&lt;br /&gt;
&amp;lt;pre&amp;gt;SAVE_CONFIG&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Konfigurationsdatei ==&lt;br /&gt;
=== Basiskonfigurationen ===&lt;br /&gt;
Im Verzeichnis von Klipper stehen unter /config die verschiedenen Konfigurationsdateien für Klipper. Aktuell ist für den RF1000 und den RF2000V2 mit Single Extruder eine Konfigurationsdatei vorhanden. Diese Konfigurationsdateien sollte man dort belassen und auch nicht ändern. &lt;br /&gt;
&lt;br /&gt;
=== Eigene printer.cfg ===&lt;br /&gt;
Bei Klipper verwendet man am besten eine eigene printer.cfg, die nicht einfach von einer Vorlage kopiert wird, sondern die die Vorlage ergänzt, ändert und erweitert.&lt;br /&gt;
&lt;br /&gt;
In der printer.cfg steht am Anfang normalerseise immer der Basisdrucker, von dem die aktuelle Konfiguration abgeleitet wird. Wie alle Parametergruppen wird das ganze von eckigen Klammern [] umschlossen.&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf2000v2-single.cfg]&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dannach kann man dann seine geänderten oder neue Parameter hinzufügen. Das folgende ist aus einer Konfiguration für den RF2000V2 single. Zuerst wird der maximale Fahrweg in X und Y anders definiert und anschliessend für Z die Werte angepasst. Dannach kommt die Konfiguration für den HBS.&lt;br /&gt;
&amp;lt;pre&amp;gt;[stepper_x]&lt;br /&gt;
position_max: 210&lt;br /&gt;
&lt;br /&gt;
[stepper_y]&lt;br /&gt;
position_max: 290&lt;br /&gt;
&lt;br /&gt;
[stepper_z]&lt;br /&gt;
position_min: -2.0&lt;br /&gt;
position_max: 185&lt;br /&gt;
&lt;br /&gt;
[bed_mesh]&lt;br /&gt;
speed: 30&lt;br /&gt;
horizontal_move_z: 2&lt;br /&gt;
mesh_min: 10,50&lt;br /&gt;
mesh_max: 200,230&lt;br /&gt;
algorithm:lagrange&lt;br /&gt;
probe_count: 5,5&lt;br /&gt;
fade_start: 1.0&lt;br /&gt;
fade_end: 10.0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach den Parametern kann man sich auch Makros definieren. In dem Beispiel ein Markro zum Auswurf des Objektes, das man einfach mit OUTPUT_OBJECT aufrufen kann.&lt;br /&gt;
&amp;lt;pre&amp;gt;[gcode_macro OUTPUT_OBJECT]&lt;br /&gt;
gcode:&lt;br /&gt;
	G90&lt;br /&gt;
	#G1 Z180	F540&lt;br /&gt;
	G1 Z80	F540&lt;br /&gt;
	G1 Y245 F4800&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als letzte Abschnitt kommen die gespeicherten - durch SAVE_CONFIG - Parameter und Werte. Diese NICHT selbst verändern, sondern immer nur durch das Programm.&lt;br /&gt;
&amp;lt;pre&amp;gt;#*# &amp;lt;---------------------- SAVE_CONFIG ----------------------&amp;gt;&lt;br /&gt;
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.&lt;br /&gt;
#*#&lt;br /&gt;
#*# [extruder]&lt;br /&gt;
#*# control = pid&lt;br /&gt;
#*# pid_kp = 33.373&lt;br /&gt;
#*# pid_ki = 2.060&lt;br /&gt;
#*# pid_kd = 135.160&lt;br /&gt;
#*#&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1160</id>
		<title>Klipper</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1160"/>
		<updated>2021-09-30T11:23:31Z</updated>

		<summary type="html">&lt;p&gt;Mhier: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Klipper]]&lt;br /&gt;
&lt;br /&gt;
Klipper ist eine Firmware für 3D Drucker. Diese kann alternativ zu der Repetier-basierten Original-Firmware von Conrad oder der auf dieser Original-Firmware basierenden Community-Version auf den Druckern RF1000, RF2000 oder RF2000v2 verwendet werden. Die dafür nötige Konfiguration ist für die Drucker RF2000 und RF2000v20 '''noch nicht vollständig'''. Für den RF1000 ist die Konfiguration abgeschlossen und wurde seit knapp einem Jahr bereits getestet.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Klipper ist gut dokumentiert auf seiner Webseite, allerdings nur in Englisch: [https://www.klipper3d.org https://www.klipper3d.org]&lt;br /&gt;
&lt;br /&gt;
Das Grundprinzip weicht von der Repetier-basierten Firmware und anderen 3D-Drucker-Firmwares deutlich ab. Statt alle Berechnungen im Microcontroller (im Folgenden MCU genannt) des Druckers auszuführen, werden zeitintensive Berechnungen auf einem Host-System durchgeführt. Als Host-System eignet sich z.B. ein Raspberry Pi oder auch ein herkömmlicher Linux-PC. Auf dem selben Host-System kann (bzw. sollte) auch Octoprint o.ä. ausgeführt werden. Wer also bereits Octoprint etc. nutzt, benötigt keine weitere Hardware.&lt;br /&gt;
&lt;br /&gt;
Da die zur Verfügung stehende Rechenpower so um Größenordnungen höher ist, können deutlich präzisere Berechnungen durchgeführt werden. Die Motoren laufen spürbar ruhiger, und höhere Schrittfrequenzen sind ebenfalls problemlos möglich. Außerdem ist eine höhere Flexibilität möglich. Auch ohne Programmierkenntnisse kann das Verhalten der Firmware über Konfigurations-Dateien beeinflusst werden, sogar neue G-Codes können so eingeführt werden. Die Firmware ist größtenteils in Python geschrieben und sehr modular gehalten, wodurch die Einstiegshürde für Entwickler sehr viel geringer ist.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
Was schon funktioniert:&lt;br /&gt;
* Natürlich alle Grundfunktionen, die jeder normale Drucker hat (Bewegen, Heizen, Lüfter etc.)&lt;br /&gt;
** Dokumentation der unterstützten G-Codes: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
* Heizbett-Scan: heißt bei Klipper Bed Mesh Leveling&lt;br /&gt;
** Es lassen sich beliebig viele benannte Meshes (entspricht den Matrizen) speichern&lt;br /&gt;
** Es gibt kein Software-Limit wie groß die Werte im Mesh werden dürfen&lt;br /&gt;
** Interpolation zwischen den Punkten des Meshes ist deutlich besser, daher sollten weniger Punkte ausreichen&lt;br /&gt;
* Z-Offset-Scan&lt;br /&gt;
** Korrigiert nicht mehr die Matrix/das Mesh, sondern kalibriert die Z-Koordinate des Z-Endstop.&lt;br /&gt;
** Ebenfalls keinerlei Software-Limit auf den Wert des &amp;quot;Offsets&amp;quot;.&lt;br /&gt;
** Homing gegen Z-Max ist problemlos ebenfalls möglich.&lt;br /&gt;
* Menü (im Original-Zustand von Klipper, daher noch etwas rudimentär vielleicht): die Bedienlogik ist etwas anders&lt;br /&gt;
** Die Nach-Rechts-Taste wird eigentlich nicht gebraucht und wurde daher als Not-Aus umfunktioniert.&lt;br /&gt;
** Die Tasten zum Bewegen des Heizbetts und des Extruders fahren in vorgegebenen Schritten. Gedrückthalten für längere Fahrten ist nicht möglich (Einschränkung in Klipper).&lt;br /&gt;
* Pause und Fortsetzen über Tasten (funktioniert evtl. nur mit Octoprint?)&lt;br /&gt;
* Sense offset&lt;br /&gt;
* Emergency Pause/Stop (bei zu hohem Druck auf die Wägezellen), funktioniert nur während eines Z-Scans.&lt;br /&gt;
* Kanten antasten in X/Y (Fräsen)&lt;br /&gt;
&lt;br /&gt;
Was fehlt:&lt;br /&gt;
* Konfigurationen für den RF2000 und RF2000v2 (für RF2000v2 single extruder ist eine Konfiguration vorhanden, muss aber geupdated werden)&lt;br /&gt;
* Sagt ihr es mir!&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Eine Ausführliche Installationsanleitung gibt es auf der Webseite: [https://www.klipper3d.org/Installation.html https://www.klipper3d.org/Installation.html]&lt;br /&gt;
&lt;br /&gt;
Da die nötigen Modifikationen und Beispielkonfigurationen noch nicht Teil der offiziellen Klipper-Firmware sind, muss der folgende Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/Klipper3d/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
durch diesen ersetzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/RF1000community/Klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem gibt es bereits eine Konfigurations-Datei für den RF1000. Ich würde daher empfehlen, die Konfigurations-Datei printer.cfg mit folgendem Inhalt zu erstellen:&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf1000.cfg]&lt;br /&gt;
&lt;br /&gt;
[mcu]&lt;br /&gt;
serial: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_&amp;lt;hier_richtige_ID_einfügen&amp;gt;-port0&lt;br /&gt;
&lt;br /&gt;
[stepper_z]&lt;br /&gt;
position_endstop: 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dadurch wird der Inhalt von klipper/config/printer-rf1000.cfg benutzt, aber alle folgenden Einstellungen überschreiben ggf. bereits vorhandene Einstellungen aus der printer-rf1000.cfg Datei. Die Angabe des position_endstop für die Z-Achse ist nötig, da diese durch den Z-Offset-Scan überschrieben wird, was nur funktioniert, wenn diese Angabe direkt in der printer.cfg gemacht wird (nicht im Include).&lt;br /&gt;
&lt;br /&gt;
Nach der Installation bitte unbedingt die Anleitung zum Prüfen der Konfiguration befolgen:&lt;br /&gt;
https://www.klipper3d.org/Config_checks.html&lt;br /&gt;
&lt;br /&gt;
Es ist ebenfalls empfehlenswert, die Konfiguration auf diese Weise nach jedem Update zu prüfen, weil durch das [include] Änderungen aus der Konfigurationsdatei automatisch übernommen werden.&lt;br /&gt;
&lt;br /&gt;
=== Octoprint ===&lt;br /&gt;
&lt;br /&gt;
Die Installationsanleitung geht von einer Octoprint Installation aus.&lt;br /&gt;
&lt;br /&gt;
=== Repetierserver ===&lt;br /&gt;
&lt;br /&gt;
Man kann auf einem normalen RasPi Installation zuerst Repetier-Server aufsetzen und dann erst Klipper. Die Verbindung von Repetier-Server zu Klipper funktioniert aber nicht, da die beiden Programme unter verschiedenen Benutzern arbeiten und die Standard Serial-Emulation das Problem nicht lösen kann.&lt;br /&gt;
&lt;br /&gt;
Abhilfe: (Siehe [Repetier-Server Knowledgebase https://www.repetier-server.com/knowledgebase/klipper/])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/lib/klipper&lt;br /&gt;
sudo chmod 777 /var/lib/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und dann die Änderung in den Einstellungen von Klipper bekannt machen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/defaults/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dort die Zeile am Ende zu &amp;lt;pre&amp;gt;KLIPPY_ARGS=&amp;quot;/home/pi/klipper/klippy/klippy.py /home/pi/printer.cfg -l /tmp/klippy.log -I /var/lib/klipper/connect&amp;quot;&amp;lt;/pre&amp;gt; ergänzen. Anschliessend das Service von Klipper neu starten. Damit kann man sich in Repetier-Server mit Gerät/Port /var/lib/klipper/connect verbinden.&lt;br /&gt;
&lt;br /&gt;
Repetierserver älter als 0.99.4: Bei den Befehlen muss man ein Raute Zeichen # voranstellen, damit es richtig von Repetier-Server weitergegeben wird. Ist bei Version 1.x und besser nicht mehr der Fall.&lt;br /&gt;
&lt;br /&gt;
== Klipper Befehle ==&lt;br /&gt;
&lt;br /&gt;
Klipper unterstützt natürlich alle gängigen G-Code-Befehle, die die Slicer erzeugen. Es wird allgemein empfohlen, den Slicer auf &amp;quot;Marlin&amp;quot; oder &amp;quot;Smoothieware&amp;quot; zu stellen (sofern keine direkte Unterstützung für Klipper vorhanden ist). &lt;br /&gt;
Für erweiterte G-Code-Befehle verfolgt Klipper eine etwas andere Philosophie als andere Firmwares: Statt kryptische M-Befehle zu erdenken, werden sprechende Namen benutzt. Gleiches gilt für die Parameter, die üblicherweise die Form &amp;quot;NAME=Wert&amp;quot; haben. Groß- und Kleinschreibung spielt keine Rolle.&lt;br /&gt;
&lt;br /&gt;
Es ist möglich, mittels Macros eigene G-Code-Befehle zu definieren. Das funktioniert über die Konfiguration und ist in [https://github.com/KevinOConnor/klipper/blob/master/config/example-extras.cfg#L395 example-extras.cfg] im Abschnitt &amp;quot;[gcode_macro my_cmd]&amp;quot; dokumentiert. Dadurch könnte man sich z.B. seinen Start-Code statt im Slicer in der Konfiguration definieren (und so auch leichter ändern, ohne neu slicen zu müssen), oder Befehle, die von Klipper nicht unterstützt aber durch den Slicer erzeugt werden, implementieren.&lt;br /&gt;
&lt;br /&gt;
Siehe [[Klipper_GCodes]] mit der Übersicht der GCodes die von Klipper verstanden werden, auch mit den Erweiterungen die im Repository von rf1000.de enthalten sind.&lt;br /&gt;
Original-Dokumentation: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
&lt;br /&gt;
Hinweis: Einige der dort beschriebenen Befehle sind nur aktiv, wenn bestimmte Module geladen sind. Daher gehen manche Befehle nicht, es sei denn, das Modul wird über die Konfiguration eingeschaltet.&lt;br /&gt;
&lt;br /&gt;
=== Reset ===&lt;br /&gt;
Einen Reset von Klipper, das auch die Firmware zurücksetzt führt man mit dem Kommando &lt;br /&gt;
&amp;lt;pre&amp;gt;FIRMWARE_RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
durch. Dabei wird auch die printer.cfg neu eingelesen. Bei Problemen in der printer.cfg kann es sein, das ein Klipper: Disconnect erscheint. Dann läuft Klipper nicht und man darf den Fehler suchen.&lt;br /&gt;
&lt;br /&gt;
Mit dem GCode M112 wird Klipper einfach heruntergefahren und man muss sich neu verbinden.&lt;br /&gt;
&lt;br /&gt;
Möchte man nur die printer.cfg neu laden, genügt der Befehl&lt;br /&gt;
&amp;lt;pre&amp;gt;RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PID durchführen ===&lt;br /&gt;
Für den Hotend 1&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=extruder TARGET=210&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für das Heizbett&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=heater_bed TARGET=60&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Daten werden mit SAVE_CONFIG abgespeichert.&lt;br /&gt;
&lt;br /&gt;
=== Bed Mesh Kalibration durchführen ===&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_CALIBRATE&amp;lt;/pre&amp;gt;&lt;br /&gt;
startet den Bed Mesh Scan entsprechend den Einstellungen in der Konfiguration. Konfigurations-Parameter können auch einfach als Argumente dem Befehl angefügt werden, so führt z.B. der folgende Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_CALIBRATE probe_count=3,3&amp;lt;/pre&amp;gt;&lt;br /&gt;
einen schnelleren und gröberen Scan mit nur 3x3 Punkten aus. Die vollständige Dokumentation aller möglichen Parameter findet sich hier (sollte die Zeilennummer nicht mehr stimmen, einfach nach &amp;quot;[bed_mesh]&amp;quot; suchen):&lt;br /&gt;
&lt;br /&gt;
https://github.com/KevinOConnor/klipper/blob/master/config/example-extras.cfg#L41&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_OUTPUT&amp;lt;/pre&amp;gt;&lt;br /&gt;
gibt das aktuelle Mesh aus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_CLEAR&amp;lt;/pre&amp;gt;&lt;br /&gt;
setzt alle Werte des aktuellen Meshes auf 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_PROFILE LOAD=&amp;lt;name&amp;gt; SAVE=&amp;lt;name&amp;gt; REMOVE=&amp;lt;name&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
erlaut das Mesh zu speichern, zu laden, oder ein gespeichertes Mesh zu löschen.&lt;br /&gt;
&lt;br /&gt;
Übrigens kann das Mesh mit OctoPrint visualisiert werden, wenn man sich das Bed Visualizer Plugin installiert.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;PROBE_ACCURACY&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das führt dann an der aktuellen XY Position 10 mal einen Z-Scan durch und bestimmt Mittelwert und Standardabweichung etc. Standardabweichung ist also in unteren bis mitteleren einstelligen Mikrometerbereich, der &amp;quot;Maximalfehler&amp;quot; (range) besser als 1/100mm. [https://www.rf1000.de/viewtopic.php?f=7&amp;amp;t=2610&amp;amp;start=60 Mehr Info zu PROBE_ACCURACY siehe Post Nr 62]&lt;br /&gt;
&lt;br /&gt;
=== Z Offset ===&lt;br /&gt;
Mit dem mKommando wird an der aktuellen Stelle ein Z Offset Scan durchgeführt. Man sollte daher zuerst auf die gewünschte Stelle hinfahren. Dann mit dem Kommando&lt;br /&gt;
&amp;lt;pre&amp;gt;Z_OFFSET_SCAN&amp;lt;/pre&amp;gt;&lt;br /&gt;
Den Scan durchführen und anschließend die Config speichern.&lt;br /&gt;
&lt;br /&gt;
=== Positionen Abfragen ===&lt;br /&gt;
Damit sieht man die aktuellen Positionen in den verschiedenen Koorinaten-Systeme. Beispiel nach &amp;quot;G1 Z0&amp;quot; auf der Position X=57.5 und Y=50.0&lt;br /&gt;
&amp;lt;pre&amp;gt;Send:16:32:28.975: #GET_POSITION&lt;br /&gt;
Recv:16:32:28.976: // mcu: stepper_x:2 stepper_y:-50 stepper_z:2499&lt;br /&gt;
Recv:16:32:28.976: // stepper: stepper_x:57.500625 stepper_y:49.999688 stepper_z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // kinematic: X:57.500625 Y:49.999688 Z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // toolhead: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode base: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode homing: X:0.000000 Y:0.000000 Z:0.000000&lt;br /&gt;
Recv:16:32:28.976: ok&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man sollte man die Z-Koordinaten zwischen toolhead und kinematic vergleichen. Der Unterschied sollte genau die Korrektur aus dem Mesh-Leveling an dem Punkt plus der Z-Offset durch den Z_OFFSET_SCAN sein. Andernfalls ist da irgendwo noch ein anderer Offset im Spiel.&lt;br /&gt;
&lt;br /&gt;
=== Speichern der Configuration ===&lt;br /&gt;
Mit dem Kommando save_config kann man die Änderungen, die durch die Abgleichfunktionen (PID, HBS, Z-Offset,...) ermittelt wurden, in der Konfigurationsdatei abspeichern&lt;br /&gt;
&amp;lt;pre&amp;gt;SAVE_CONFIG&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Konfigurationsdatei ==&lt;br /&gt;
=== Basiskonfigurationen ===&lt;br /&gt;
Im Verzeichnis von Klipper stehen unter /config die verschiedenen Konfigurationsdateien für Klipper. Aktuell ist für den RF1000 und den RF2000V2 mit Single Extruder eine Konfigurationsdatei vorhanden. Diese Konfigurationsdateien sollte man dort belassen und auch nicht ändern. &lt;br /&gt;
&lt;br /&gt;
=== Eigene printer.cfg ===&lt;br /&gt;
Bei Klipper verwendet man am besten eine eigene printer.cfg, die nicht einfach von einer Vorlage kopiert wird, sondern die die Vorlage ergänzt, ändert und erweitert.&lt;br /&gt;
&lt;br /&gt;
In der printer.cfg steht am Anfang normalerseise immer der Basisdrucker, von dem die aktuelle Konfiguration abgeleitet wird. Wie alle Parametergruppen wird das ganze von eckigen Klammern [] umschlossen.&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf2000v2-single.cfg]&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dannach kann man dann seine geänderten oder neue Parameter hinzufügen. Das folgende ist aus einer Konfiguration für den RF2000V2 single. Zuerst wird der maximale Fahrweg in X und Y anders definiert und anschliessend für Z die Werte angepasst. Dannach kommt die Konfiguration für den HBS.&lt;br /&gt;
&amp;lt;pre&amp;gt;[stepper_x]&lt;br /&gt;
position_max: 210&lt;br /&gt;
&lt;br /&gt;
[stepper_y]&lt;br /&gt;
position_max: 290&lt;br /&gt;
&lt;br /&gt;
[stepper_z]&lt;br /&gt;
position_min: -2.0&lt;br /&gt;
position_max: 185&lt;br /&gt;
&lt;br /&gt;
[bed_mesh]&lt;br /&gt;
speed: 30&lt;br /&gt;
horizontal_move_z: 2&lt;br /&gt;
mesh_min: 10,50&lt;br /&gt;
mesh_max: 200,230&lt;br /&gt;
algorithm:lagrange&lt;br /&gt;
probe_count: 5,5&lt;br /&gt;
fade_start: 1.0&lt;br /&gt;
fade_end: 10.0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach den Parametern kann man sich auch Makros definieren. In dem Beispiel ein Markro zum Auswurf des Objektes, das man einfach mit OUTPUT_OBJECT aufrufen kann.&lt;br /&gt;
&amp;lt;pre&amp;gt;[gcode_macro OUTPUT_OBJECT]&lt;br /&gt;
gcode:&lt;br /&gt;
	G90&lt;br /&gt;
	#G1 Z180	F540&lt;br /&gt;
	G1 Z80	F540&lt;br /&gt;
	G1 Y245 F4800&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als letzte Abschnitt kommen die gespeicherten - durch SAVE_CONFIG - Parameter und Werte. Diese NICHT selbst verändern, sondern immer nur durch das Programm.&lt;br /&gt;
&amp;lt;pre&amp;gt;#*# &amp;lt;---------------------- SAVE_CONFIG ----------------------&amp;gt;&lt;br /&gt;
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.&lt;br /&gt;
#*#&lt;br /&gt;
#*# [extruder]&lt;br /&gt;
#*# control = pid&lt;br /&gt;
#*# pid_kp = 33.373&lt;br /&gt;
#*# pid_ki = 2.060&lt;br /&gt;
#*# pid_kd = 135.160&lt;br /&gt;
#*#&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1159</id>
		<title>Klipper</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper&amp;diff=1159"/>
		<updated>2021-09-30T11:20:04Z</updated>

		<summary type="html">&lt;p&gt;Mhier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Klipper]]&lt;br /&gt;
&lt;br /&gt;
Klipper ist eine Firmware für 3D Drucker. Diese kann alternativ zu der Repetier-basierten Original-Firmware von Conrad oder der auf dieser Original-Firmware basierenden Community-Version auf den Druckern RF1000, RF2000 oder RF2000v2 verwendet werden. Die dafür nötige Konfiguration ist für die Drucker RF2000 und RF2000v20 '''noch nicht vollständig'''. Für den RF1000 ist die Konfiguration abgeschlossen und wurde seit knapp einem Jahr bereits getestet.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Klipper ist gut dokumentiert auf seiner Webseite, allerdings nur in Englisch: [https://www.klipper3d.org https://www.klipper3d.org]&lt;br /&gt;
&lt;br /&gt;
Das Grundprinzip weicht von der Repetier-basierten Firmware und anderen 3D-Drucker-Firmwares deutlich ab. Statt alle Berechnungen im Microcontroller (im Folgenden MCU genannt) des Druckers auszuführen, werden zeitintensive Berechnungen auf einem Host-System durchgeführt. Als Host-System eignet sich z.B. ein Raspberry Pi oder auch ein herkömmlicher Linux-PC. Auf dem selben Host-System kann (bzw. sollte) auch Octoprint o.ä. ausgeführt werden. Wer also bereits Octoprint etc. nutzt, benötigt keine weitere Hardware.&lt;br /&gt;
&lt;br /&gt;
Da die zur Verfügung stehende Rechenpower so um Größenordnungen höher ist, können deutlich präzisere Berechnungen durchgeführt werden. Die Motoren laufen spürbar ruhiger, und höhere Schrittfrequenzen sind ebenfalls problemlos möglich. Außerdem ist eine höhere Flexibilität möglich. Auch ohne Programmierkenntnisse kann das Verhalten der Firmware über Konfigurations-Dateien beeinflusst werden, sogar neue G-Codes können so eingeführt werden. Die Firmware ist größtenteils in Python geschrieben und sehr modular gehalten, wodurch die Einstiegshürde für Entwickler sehr viel geringer ist.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
Was schon funktioniert:&lt;br /&gt;
* Natürlich alle Grundfunktionen, die jeder normale Drucker hat (Bewegen, Heizen, Lüfter etc.)&lt;br /&gt;
** Dokumentation der unterstützten G-Codes: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
* Heizbett-Scan: heißt bei Klipper Bed Mesh Leveling&lt;br /&gt;
** Es lassen sich beliebig viele benannte Meshes (entspricht den Matrizen) speichern&lt;br /&gt;
** Es gibt kein Software-Limit wie groß die Werte im Mesh werden dürfen&lt;br /&gt;
** Interpolation zwischen den Punkten des Meshes ist deutlich besser, daher sollten weniger Punkte ausreichen&lt;br /&gt;
* Z-Offset-Scan&lt;br /&gt;
** Korrigiert nicht mehr die Matrix/das Mesh, sondern kalibriert die Z-Koordinate des Z-Endstop.&lt;br /&gt;
** Ebenfalls keinerlei Software-Limit auf den Wert des &amp;quot;Offsets&amp;quot;.&lt;br /&gt;
** Homing gegen Z-Max ist problemlos ebenfalls möglich.&lt;br /&gt;
* Menü (im Original-Zustand von Klipper, daher noch etwas rudimentär vielleicht): die Bedienlogik ist etwas anders&lt;br /&gt;
** Die Nach-Rechts-Taste wird eigentlich nicht gebraucht und wurde daher als Not-Aus umfunktioniert.&lt;br /&gt;
** Die Tasten zum Bewegen des Heizbetts und des Extruders fahren in vorgegebenen Schritten. Gedrückthalten für längere Fahrten ist nicht möglich (Einschränkung in Klipper).&lt;br /&gt;
* Pause und Fortsetzen über Tasten (funktioniert evtl. nur mit Octoprint?)&lt;br /&gt;
* Sense offset&lt;br /&gt;
* Emergency Pause/Stop (bei zu hohem Druck auf die Wägezellen), funktioniert nur während eines Z-Scans.&lt;br /&gt;
* Kanten antasten in X/Y (Fräsen)&lt;br /&gt;
&lt;br /&gt;
Was fehlt:&lt;br /&gt;
* Konfigurationen für den RF2000 und RF2000v2 (für RF2000v2 single extruder ist eine Konfiguration vorhanden, muss aber geupdated werden)&lt;br /&gt;
* Sagt ihr es mir!&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Eine Ausführliche Installationsanleitung gibt es auf der Webseite: [https://www.klipper3d.org/Installation.html https://www.klipper3d.org/Installation.html]&lt;br /&gt;
&lt;br /&gt;
Da die nötigen Modifikationen und Beispielkonfigurationen noch nicht Teil der offiziellen Klipper-Firmware sind, muss der folgende Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/Klipper3d/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
durch diesen ersetzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/RF1000community/Klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem gibt es bereits eine Konfigurations-Datei für den RF1000. Ich würde daher empfehlen, die Konfigurations-Datei printer.cfg mit folgendem Inhalt zu erstellen:&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf1000.cfg]&lt;br /&gt;
&lt;br /&gt;
[mcu]&lt;br /&gt;
serial: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_&amp;lt;hier_richtige_ID_einfügen&amp;gt;-port0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dadurch wird der Inhalt von klipper/config/printer-rf1000.cfg benutzt, aber alle folgenden Einstellungen überschreiben ggf. bereits vorhandene Einstellungen aus der printer-rf1000.cfg Datei.&lt;br /&gt;
&lt;br /&gt;
Nach der Installation bitte unbedingt die Anleitung zum Prüfen der Konfiguration befolgen:&lt;br /&gt;
https://www.klipper3d.org/Config_checks.html&lt;br /&gt;
&lt;br /&gt;
Es ist ebenfalls empfehlenswert, die Konfiguration auf diese Weise nach jedem Update zu prüfen, weil durch das [include] Änderungen aus der Konfigurationsdatei automatisch übernommen werden.&lt;br /&gt;
&lt;br /&gt;
=== Octoprint ===&lt;br /&gt;
&lt;br /&gt;
Die Installationsanleitung geht von einer Octoprint Installation aus.&lt;br /&gt;
&lt;br /&gt;
=== Repetierserver ===&lt;br /&gt;
&lt;br /&gt;
Man kann auf einem normalen RasPi Installation zuerst Repetier-Server aufsetzen und dann erst Klipper. Die Verbindung von Repetier-Server zu Klipper funktioniert aber nicht, da die beiden Programme unter verschiedenen Benutzern arbeiten und die Standard Serial-Emulation das Problem nicht lösen kann.&lt;br /&gt;
&lt;br /&gt;
Abhilfe: (Siehe [Repetier-Server Knowledgebase https://www.repetier-server.com/knowledgebase/klipper/])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/lib/klipper&lt;br /&gt;
sudo chmod 777 /var/lib/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und dann die Änderung in den Einstellungen von Klipper bekannt machen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/defaults/klipper&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dort die Zeile am Ende zu &amp;lt;pre&amp;gt;KLIPPY_ARGS=&amp;quot;/home/pi/klipper/klippy/klippy.py /home/pi/printer.cfg -l /tmp/klippy.log -I /var/lib/klipper/connect&amp;quot;&amp;lt;/pre&amp;gt; ergänzen. Anschliessend das Service von Klipper neu starten. Damit kann man sich in Repetier-Server mit Gerät/Port /var/lib/klipper/connect verbinden.&lt;br /&gt;
&lt;br /&gt;
Repetierserver älter als 0.99.4: Bei den Befehlen muss man ein Raute Zeichen # voranstellen, damit es richtig von Repetier-Server weitergegeben wird. Ist bei Version 1.x und besser nicht mehr der Fall.&lt;br /&gt;
&lt;br /&gt;
== Klipper Befehle ==&lt;br /&gt;
&lt;br /&gt;
Klipper unterstützt natürlich alle gängigen G-Code-Befehle, die die Slicer erzeugen. Es wird allgemein empfohlen, den Slicer auf &amp;quot;Marlin&amp;quot; oder &amp;quot;Smoothieware&amp;quot; zu stellen (sofern keine direkte Unterstützung für Klipper vorhanden ist). &lt;br /&gt;
Für erweiterte G-Code-Befehle verfolgt Klipper eine etwas andere Philosophie als andere Firmwares: Statt kryptische M-Befehle zu erdenken, werden sprechende Namen benutzt. Gleiches gilt für die Parameter, die üblicherweise die Form &amp;quot;NAME=Wert&amp;quot; haben. Groß- und Kleinschreibung spielt keine Rolle.&lt;br /&gt;
&lt;br /&gt;
Es ist möglich, mittels Macros eigene G-Code-Befehle zu definieren. Das funktioniert über die Konfiguration und ist in [https://github.com/KevinOConnor/klipper/blob/master/config/example-extras.cfg#L395 example-extras.cfg] im Abschnitt &amp;quot;[gcode_macro my_cmd]&amp;quot; dokumentiert. Dadurch könnte man sich z.B. seinen Start-Code statt im Slicer in der Konfiguration definieren (und so auch leichter ändern, ohne neu slicen zu müssen), oder Befehle, die von Klipper nicht unterstützt aber durch den Slicer erzeugt werden, implementieren.&lt;br /&gt;
&lt;br /&gt;
Siehe [[Klipper_GCodes]] mit der Übersicht der GCodes die von Klipper verstanden werden, auch mit den Erweiterungen die im Repository von rf1000.de enthalten sind.&lt;br /&gt;
Original-Dokumentation: https://www.klipper3d.org/G-Codes.html&lt;br /&gt;
&lt;br /&gt;
Hinweis: Einige der dort beschriebenen Befehle sind nur aktiv, wenn bestimmte Module geladen sind. Daher gehen manche Befehle nicht, es sei denn, das Modul wird über die Konfiguration eingeschaltet.&lt;br /&gt;
&lt;br /&gt;
=== Reset ===&lt;br /&gt;
Einen Reset von Klipper, das auch die Firmware zurücksetzt führt man mit dem Kommando &lt;br /&gt;
&amp;lt;pre&amp;gt;FIRMWARE_RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
durch. Dabei wird auch die printer.cfg neu eingelesen. Bei Problemen in der printer.cfg kann es sein, das ein Klipper: Disconnect erscheint. Dann läuft Klipper nicht und man darf den Fehler suchen.&lt;br /&gt;
&lt;br /&gt;
Mit dem GCode M112 wird Klipper einfach heruntergefahren und man muss sich neu verbinden.&lt;br /&gt;
&lt;br /&gt;
Möchte man nur die printer.cfg neu laden, genügt der Befehl&lt;br /&gt;
&amp;lt;pre&amp;gt;RESTART&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PID durchführen ===&lt;br /&gt;
Für den Hotend 1&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=extruder TARGET=210&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für das Heizbett&lt;br /&gt;
&amp;lt;pre&amp;gt;PID_CALIBRATE HEATER=heater_bed TARGET=60&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Daten werden mit SAVE_CONFIG abgespeichert.&lt;br /&gt;
&lt;br /&gt;
=== Bed Mesh Kalibration durchführen ===&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_CALIBRATE&amp;lt;/pre&amp;gt;&lt;br /&gt;
startet den Bed Mesh Scan entsprechend den Einstellungen in der Konfiguration. Konfigurations-Parameter können auch einfach als Argumente dem Befehl angefügt werden, so führt z.B. der folgende Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_CALIBRATE probe_count=3,3&amp;lt;/pre&amp;gt;&lt;br /&gt;
einen schnelleren und gröberen Scan mit nur 3x3 Punkten aus. Die vollständige Dokumentation aller möglichen Parameter findet sich hier (sollte die Zeilennummer nicht mehr stimmen, einfach nach &amp;quot;[bed_mesh]&amp;quot; suchen):&lt;br /&gt;
&lt;br /&gt;
https://github.com/KevinOConnor/klipper/blob/master/config/example-extras.cfg#L41&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_OUTPUT&amp;lt;/pre&amp;gt;&lt;br /&gt;
gibt das aktuelle Mesh aus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_CLEAR&amp;lt;/pre&amp;gt;&lt;br /&gt;
setzt alle Werte des aktuellen Meshes auf 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;BED_MESH_PROFILE LOAD=&amp;lt;name&amp;gt; SAVE=&amp;lt;name&amp;gt; REMOVE=&amp;lt;name&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
erlaut das Mesh zu speichern, zu laden, oder ein gespeichertes Mesh zu löschen.&lt;br /&gt;
&lt;br /&gt;
Übrigens kann das Mesh mit OctoPrint visualisiert werden, wenn man sich das Bed Visualizer Plugin installiert.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;PROBE_ACCURACY&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das führt dann an der aktuellen XY Position 10 mal einen Z-Scan durch und bestimmt Mittelwert und Standardabweichung etc. Standardabweichung ist also in unteren bis mitteleren einstelligen Mikrometerbereich, der &amp;quot;Maximalfehler&amp;quot; (range) besser als 1/100mm. [https://www.rf1000.de/viewtopic.php?f=7&amp;amp;t=2610&amp;amp;start=60 Mehr Info zu PROBE_ACCURACY siehe Post Nr 62]&lt;br /&gt;
&lt;br /&gt;
=== Z Offset ===&lt;br /&gt;
Mit dem mKommando wird an der aktuellen Stelle ein Z Offset Scan durchgeführt. Man sollte daher zuerst auf die gewünschte Stelle hinfahren. Dann mit dem Kommando&lt;br /&gt;
&amp;lt;pre&amp;gt;Z_OFFSET_SCAN&amp;lt;/pre&amp;gt;&lt;br /&gt;
Den Scan durchführen und anschließend die Config speichern.&lt;br /&gt;
&lt;br /&gt;
=== Positionen Abfragen ===&lt;br /&gt;
Damit sieht man die aktuellen Positionen in den verschiedenen Koorinaten-Systeme. Beispiel nach &amp;quot;G1 Z0&amp;quot; auf der Position X=57.5 und Y=50.0&lt;br /&gt;
&amp;lt;pre&amp;gt;Send:16:32:28.975: #GET_POSITION&lt;br /&gt;
Recv:16:32:28.976: // mcu: stepper_x:2 stepper_y:-50 stepper_z:2499&lt;br /&gt;
Recv:16:32:28.976: // stepper: stepper_x:57.500625 stepper_y:49.999688 stepper_z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // kinematic: X:57.500625 Y:49.999688 Z:-0.000000&lt;br /&gt;
Recv:16:32:28.976: // toolhead: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode: X:57.500000 Y:50.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode base: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000&lt;br /&gt;
Recv:16:32:28.976: // gcode homing: X:0.000000 Y:0.000000 Z:0.000000&lt;br /&gt;
Recv:16:32:28.976: ok&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man sollte man die Z-Koordinaten zwischen toolhead und kinematic vergleichen. Der Unterschied sollte genau die Korrektur aus dem Mesh-Leveling an dem Punkt plus der Z-Offset durch den Z_OFFSET_SCAN sein. Andernfalls ist da irgendwo noch ein anderer Offset im Spiel.&lt;br /&gt;
&lt;br /&gt;
=== Speichern der Configuration ===&lt;br /&gt;
Mit dem Kommando save_config kann man die Änderungen, die durch die Abgleichfunktionen (PID, HBS, Z-Offset,...) ermittelt wurden, in der Konfigurationsdatei abspeichern&lt;br /&gt;
&amp;lt;pre&amp;gt;SAVE_CONFIG&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Konfigurationsdatei ==&lt;br /&gt;
=== Basiskonfigurationen ===&lt;br /&gt;
Im Verzeichnis von Klipper stehen unter /config die verschiedenen Konfigurationsdateien für Klipper. Aktuell ist für den RF1000 und den RF2000V2 mit Single Extruder eine Konfigurationsdatei vorhanden. Diese Konfigurationsdateien sollte man dort belassen und auch nicht ändern. &lt;br /&gt;
&lt;br /&gt;
=== Eigene printer.cfg ===&lt;br /&gt;
Bei Klipper verwendet man am besten eine eigene printer.cfg, die nicht einfach von einer Vorlage kopiert wird, sondern die die Vorlage ergänzt, ändert und erweitert.&lt;br /&gt;
&lt;br /&gt;
In der printer.cfg steht am Anfang normalerseise immer der Basisdrucker, von dem die aktuelle Konfiguration abgeleitet wird. Wie alle Parametergruppen wird das ganze von eckigen Klammern [] umschlossen.&lt;br /&gt;
&amp;lt;pre&amp;gt;[include klipper/config/printer-rf2000v2-single.cfg]&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dannach kann man dann seine geänderten oder neue Parameter hinzufügen. Das folgende ist aus einer Konfiguration für den RF2000V2 single. Zuerst wird der maximale Fahrweg in X und Y anders definiert und anschliessend für Z die Werte angepasst. Dannach kommt die Konfiguration für den HBS.&lt;br /&gt;
&amp;lt;pre&amp;gt;[stepper_x]&lt;br /&gt;
position_max: 210&lt;br /&gt;
&lt;br /&gt;
[stepper_y]&lt;br /&gt;
position_max: 290&lt;br /&gt;
&lt;br /&gt;
[stepper_z]&lt;br /&gt;
position_min: -2.0&lt;br /&gt;
position_max: 185&lt;br /&gt;
&lt;br /&gt;
[bed_mesh]&lt;br /&gt;
speed: 30&lt;br /&gt;
horizontal_move_z: 2&lt;br /&gt;
mesh_min: 10,50&lt;br /&gt;
mesh_max: 200,230&lt;br /&gt;
algorithm:lagrange&lt;br /&gt;
probe_count: 5,5&lt;br /&gt;
fade_start: 1.0&lt;br /&gt;
fade_end: 10.0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach den Parametern kann man sich auch Makros definieren. In dem Beispiel ein Markro zum Auswurf des Objektes, das man einfach mit OUTPUT_OBJECT aufrufen kann.&lt;br /&gt;
&amp;lt;pre&amp;gt;[gcode_macro OUTPUT_OBJECT]&lt;br /&gt;
gcode:&lt;br /&gt;
	G90&lt;br /&gt;
	#G1 Z180	F540&lt;br /&gt;
	G1 Z80	F540&lt;br /&gt;
	G1 Y245 F4800&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als letzte Abschnitt kommen die gespeicherten - durch SAVE_CONFIG - Parameter und Werte. Diese NICHT selbst verändern, sondern immer nur durch das Programm.&lt;br /&gt;
&amp;lt;pre&amp;gt;#*# &amp;lt;---------------------- SAVE_CONFIG ----------------------&amp;gt;&lt;br /&gt;
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.&lt;br /&gt;
#*#&lt;br /&gt;
#*# [extruder]&lt;br /&gt;
#*# control = pid&lt;br /&gt;
#*# pid_kp = 33.373&lt;br /&gt;
#*# pid_ki = 2.060&lt;br /&gt;
#*# pid_kd = 135.160&lt;br /&gt;
#*#&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Klipper_GCodes&amp;diff=1148</id>
		<title>Klipper GCodes</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Klipper_GCodes&amp;diff=1148"/>
		<updated>2021-02-10T20:39:50Z</updated>

		<summary type="html">&lt;p&gt;Mhier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Klipper]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
Im folgenden findet ihr eine Auflistung der GCodes, wie sie in den Klipper Dateien dokumentiert sind. Das Q: zeigt immer an, in welcher Datei der Befehl zu finden ist. Als Vorlage habe ich die Struktur der vorhanden GCodes Übersicht genommen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:'''Der Strichpunkt ( &amp;quot;;&amp;quot; )'''&lt;br /&gt;
::Der Strichpunkt wird im GCode dazu verwendet, Kommentare hinzu zu fügen.  Der Strichpunkt gilt immer nur für eine Zeile des GCodes.  Alles in der selben Zeile nach einem Strichpunkt wird vom Drucker (von der [[Firmware]]) ignoriert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Alle Angaben ohne Gewähr!!'''&lt;br /&gt;
&lt;br /&gt;
== G-Codes ==&lt;br /&gt;
=== G0 - Schnelle lineare Bewegung ===&lt;br /&gt;
&lt;br /&gt;
siehe G1, G0 wird intern auf G1 umgeleitet.&lt;br /&gt;
&lt;br /&gt;
'''Q:gcode_move.py'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== G1 - Koordinierte Bewegung entlang einer oder mehrerer Achsen ===&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:[X] [Y] [Z] [E] [F]&lt;br /&gt;
:E gibt vor wieviel Filament entlang der angegebenen Strecke gefördert werden soll&lt;br /&gt;
:F ist dabei die geforderte Verfahrgeschwindigkeit&lt;br /&gt;
&lt;br /&gt;
'''Q:gcode_move.py'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== G4 - Dwell ===&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:P&amp;lt;milliseconds&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Q:'''&lt;br /&gt;
&lt;br /&gt;
=== G20 - Einheiten der Bewegungsbefehle (G0-G3) sind in Zoll ===&lt;br /&gt;
&lt;br /&gt;
nicht unterstützt. Erzeugt einen gcmd Error&lt;br /&gt;
&lt;br /&gt;
'''Q:gcode_move.py'''&lt;br /&gt;
----&lt;br /&gt;
=== G21 - Einheiten der Bewegungsbefehle (G0-G3) sind in Millimeter ===&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:Keine&lt;br /&gt;
&lt;br /&gt;
'''Q:gcode_move.py'''&lt;br /&gt;
----&lt;br /&gt;
=== G28 - Fahre alle Achsen (oder die bezeichnete(n)) zum Ursprung ===&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:[X Y Z] ... optional.  Wird keine Achse angegeben, werden alle Achsen zum Ursprung gefahren.&lt;br /&gt;
&lt;br /&gt;
'''Beispiel'''&lt;br /&gt;
:&amp;quot;G28 Y0 Z0&amp;quot; fährt nur in Y und Z auf &amp;quot;0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''Q:gcode_move.py'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== G90 - Interpretiere Koordinaten als absolut ===&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:Keine&lt;br /&gt;
&lt;br /&gt;
'''Q:gcode_move.py'''&lt;br /&gt;
----&lt;br /&gt;
=== G91 - Interpretiere Koordinaten als relativ ===&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:Keine&lt;br /&gt;
&lt;br /&gt;
'''Q:gcode_move.py'''&lt;br /&gt;
----&lt;br /&gt;
=== G92 - Setze die Koordinate(n) der aktuellen Position auf den vorgegebenen Wert ===&lt;br /&gt;
Setze die Koordinate(n) der aktuellen Position auf den vorgegebenen Wert&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:[X&amp;lt;value&amp;gt; Y&amp;lt;value&amp;gt; Z&amp;lt;value&amp;gt; E&amp;lt;value&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
'''Bemerkung'''&lt;br /&gt;
:Wird z.B. für die &amp;quot;E&amp;quot;-Koordinate häufig so verwendet: &amp;quot;G92 E0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''Q:gcode_move.py'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== G-Codes die aktiviert werden müssen ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== M-Codes ==&lt;br /&gt;
=== M18 oder M84 Ausschalten Motore ===&lt;br /&gt;
Ausschalten Motore&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:??&lt;br /&gt;
&lt;br /&gt;
'''Q:'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== M82 - Interpretiere Extrusion Koordinaten als absolut ===&lt;br /&gt;
Interpretiere Extrusion Koordinaten als absolut&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:keine&lt;br /&gt;
&lt;br /&gt;
'''Q:gcode_move.py'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== M83 - Interpretiere Extrusion Koordinaten als relatic===&lt;br /&gt;
Interpretiere Extrusion Koordinaten als relativ&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:keine&lt;br /&gt;
&lt;br /&gt;
'''Q:gcode_move.py'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== M104 - Setzt Extrudertemperatur ===&lt;br /&gt;
Setzt die Temperatur des angegebenen Extruders&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:[T,S] &lt;br /&gt;
T: Index des Extruders&lt;br /&gt;
S: Temperatur&lt;br /&gt;
&lt;br /&gt;
'''Q:'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== M105 - Liest Extrudertemperatur ===&lt;br /&gt;
Liest die Temperaturen der Extruder&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:keine&lt;br /&gt;
&lt;br /&gt;
'''Q:'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== M106 - Setzt Lüftergeschwindigkeit ===&lt;br /&gt;
Setzt die Geschwindigkeit des Lüfters&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:[S] &lt;br /&gt;
S: Geschwindigkeit&lt;br /&gt;
&lt;br /&gt;
'''Q:'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== M109 - Setzt Extrudertemperatur und wartet auf Erreichen ===&lt;br /&gt;
Setzt die Temperatur des angegebenen Extruders und wartet auf das Erreichen der Temperatur&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:[T,S] &lt;br /&gt;
T: Index des Extruders&lt;br /&gt;
S: Temperatur&lt;br /&gt;
&lt;br /&gt;
'''Q:'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== M112 - NOTSTOP ===&lt;br /&gt;
Führt einen Emergency Stop = Notstop durch&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:keine&lt;br /&gt;
&lt;br /&gt;
'''Q:'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== M114 - Zeigt aktuelle Koordinate(n) ===&lt;br /&gt;
Zeigt aktuelle Koordinate(n)&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:keine&lt;br /&gt;
&lt;br /&gt;
'''Q:gcode_move.py'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== M115 - Zeigt aktuelle Firmwarversion an ===&lt;br /&gt;
Zeigt aktuelle Firmwarversion an &lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:keine&lt;br /&gt;
&lt;br /&gt;
'''Q:'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== M140 - Setzt Betttemperatur ===&lt;br /&gt;
Setzt die Temperatur des Bettes&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:[S] &lt;br /&gt;
S: Temperatur&lt;br /&gt;
&lt;br /&gt;
'''Q:'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== M190 - Setzt Betttemperatur und wartet auf Erreichen ===&lt;br /&gt;
Setzt die Temperatur des Bettes und wartet auf das Erreichen der Temperatur&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:[S] &lt;br /&gt;
S: Temperatur&lt;br /&gt;
&lt;br /&gt;
'''Q:'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== M204 - Setze Beschleunigung ===&lt;br /&gt;
Setzt die Beschleunigung&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:S &lt;br /&gt;
oder &lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:P T &lt;br /&gt;
&lt;br /&gt;
Wenn S nicht spezifiziert ist und P und T beide spezifiziert sind, so wird die Beschleunigung auf das Minimum von P und T gesetzt. Ist nur P oder T angegeben, so hat das Kommando keine Auswirkungen.&lt;br /&gt;
&lt;br /&gt;
'''Q:?'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== M220 - Setze Geschwindigkeitsfaktor override (Prozent) ===&lt;br /&gt;
Setze Geschwindigkeitsfaktor override in Prozent&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:S ... Standard ist 100, muss größer 0 sein.&lt;br /&gt;
&lt;br /&gt;
'''Q:gcode_move.py'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== M221 - Setze Extrusionsfaktor override (Prozent) ===&lt;br /&gt;
Setze Extrusionsfaktor override in Prozent&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:S ... Standard ist 100, muss größer 0 sein.&lt;br /&gt;
&lt;br /&gt;
'''Q:gcode_move.py'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Erweiterte G-Codes ==&lt;br /&gt;
Klipper verwendet auch erweiterte GCodes für generelle Konfiguration und Status. Sie folgen immer dem gleichen Schema sie starten mit einem Kommandonamen und werden nötigenfalls mit einem oder mehreren Parametern erweitert. Hier in der Übersicht werden diese erweiterten Kommandos in Großschrift dargestellt, können aber beliebig geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
=== SET_GCODE_OFFSET Setzt einen virtuellen Offset zum GCode ===&lt;br /&gt;
Setzt einen virtuellen Offset zum GCode&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:[X,Y,Z,E,MOVE]&lt;br /&gt;
&lt;br /&gt;
Bei X,Y,Z und E wird dieser Offset bei jedem GCode Kommando aufgeschlagen. &lt;br /&gt;
Bei MOVE bewegt den Kopf sofort um den gewüschten Offset&lt;br /&gt;
&lt;br /&gt;
'''Q:gcode_move.py'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== SET_GCODE_STATE Speichert den aktuellen GCode Koordinaten Status ===&lt;br /&gt;
Setzt einen virtuellen Offset zum GCode&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:NAMEN default&lt;br /&gt;
Man kann einen Namen vergeben, Standard ist hier '''default'''&lt;br /&gt;
&lt;br /&gt;
'''Q:gcode_move.py'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== RESTORE_GCODE_STATE Ladet den aktuellen GCode Koordinaten Status ===&lt;br /&gt;
Ladet einen virtuellen Offset zum GCode&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:NAMEN default&lt;br /&gt;
Man kann einen Namen vergeben, Standard ist hier '''default'''&lt;br /&gt;
&lt;br /&gt;
'''Q:gcode_move.py'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== GET_POSITION Zeigt die Informationen zur Position an ===&lt;br /&gt;
Zeigt Informationen zu den verschiedenen Koordinatensystemen an.&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:keiner&lt;br /&gt;
&lt;br /&gt;
'''Q:gcode_move.py'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Z_SENSE_OFFSET aktuelle Z offset bestimmen ===&lt;br /&gt;
Im G-Code sollte man dann vor dem ersten Layer aber nach etwagigen Start-Maden etc. den Befehl Z_SENSE_OFFSET einfügen. Dem Befehl kann man auch noch mal die beiden Parameter mitgeben (Beispiel Z_SENSE_OFFSET FORCE_THRESHOLD=1800 MAX_Z_OFFSET=0.2). Der Algorithmus sollte identisch sein zu dem in der Community-Repetier-Firmware.&lt;br /&gt;
&lt;br /&gt;
In der Konfiguration muss das mit&lt;br /&gt;
&amp;lt;pre&amp;gt;[z_sense_offset]&lt;br /&gt;
force_threshold: 1800&lt;br /&gt;
max_z_offset: 0.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
freigeschalten werden&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:[FORCE_THRESHOLD,MAX_Z_OFFSET]&lt;br /&gt;
&lt;br /&gt;
Hinweis: RFx000 Mod&lt;br /&gt;
'''Q:z_sense_offset.py'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Erweiterte G-Codes für Einstellungszwecke ==&lt;br /&gt;
Erweiterte GCodes in Klipper die für das Ausrichten des Heatbed und für die grundlegende Einrichtung des Druckers verwendet werden&lt;br /&gt;
&lt;br /&gt;
=== SAVE_CONFIG Speichert geänderte Daten in der printer.cfg ===&lt;br /&gt;
Speichert die aktuellen Änderungen in der printer.cfg. Zuvor wird eine Backup mit einem Zeitstempel erstellt. Die Daten werdem am Ende der Datei eingetragen und sollten nicht händisch geändert werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#*# &amp;lt;---------------------- SAVE_CONFIG ----------------------&amp;gt;&lt;br /&gt;
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.&lt;br /&gt;
#*#&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:keine&lt;br /&gt;
&lt;br /&gt;
'''Q:'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Z_OFFSET_SCAN Z Offset Scan durchführen ===&lt;br /&gt;
Es wird an der aktuellen Stelle ein Z Offset Scan durchgeführt. Man muss daher zuerst auf die gewünschte Stelle hinfahren. Speichern der Daten erfolgt mit SAVE_CONFIG (löst Restart von Klipper aus um die Konfiguration neu zu lesen)&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:keiner&lt;br /&gt;
&lt;br /&gt;
Hinweis: RFx000 Mod&lt;br /&gt;
'''Q:z_offset_scan.py'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== BED_MESH_CALIBRATE Bed Mesh Kalibrierung ===&lt;br /&gt;
Es wird ein eine Bed Mesh Kalibrierung entsprechend den Einstellungen in der Konfiguration durchgeführt. Speichern der Daten erfolgt mit SAVE_CONFIG (löst Restart von Klipper aus um die Konfiguration neu zu lesen). Siehe auch [[Klipper]]&lt;br /&gt;
&lt;br /&gt;
Beispiel in printer.cfg für eine RF2000V2 single:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[bed_mesh]&lt;br /&gt;
speed: 30&lt;br /&gt;
horizontal_move_z: 2&lt;br /&gt;
mesh_min: 10,50&lt;br /&gt;
mesh_max: 200,230&lt;br /&gt;
algorithm:lagrange&lt;br /&gt;
probe_count: 5,5&lt;br /&gt;
fade_start: 1.0&lt;br /&gt;
fade_end: 10.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:[Diverse laut Klipper Dokumentation möglich]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Q:bed_mesh.py'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== BED_MESH_OUTPUT Bed Mesh Ausgabe der Daten ===&lt;br /&gt;
Es werden die Daten des aktuellen Mesh ausgegeben. Siehe auch auch [[Klipper]]&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:?&lt;br /&gt;
&lt;br /&gt;
'''Q:bed_mesh.py'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== BED_MESH_CLEAR Lösch Bed Mesh Daten ===&lt;br /&gt;
Es werden die Daten des aktuellen Mesh gelöscht ( auf 0 gesetzt). Siehe auch auch [[Klipper]]&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:?&lt;br /&gt;
&lt;br /&gt;
'''Q:bed_mesh.py'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== BED_MESH_PROFILE Bed Mesh Daten speichern, laden oder löschen ===&lt;br /&gt;
Es werden die Daten des Mesh geladen, gespeichert oder gelöscht. Siehe auch auch [[Klipper]]&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:LOAD=&amp;lt;name&amp;gt; oder SAVE=&amp;lt;name&amp;gt; oder REMOVE=&amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Q:bed_mesh.py'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== PROBE_ACCURACY Z-Probing durchführen ===&lt;br /&gt;
Das führt dann an der aktuellen XY Position 10 mal einen Z-Scan durch und bestimmt Mittelwert und Standardabweichung etc. Siehe auch auch [[Klipper]]&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
:keiner&lt;br /&gt;
&lt;br /&gt;
'''Q:'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== G-Codes für den Fräs-Betrieb ==&lt;br /&gt;
Achtung: Der Fräs-Betrieb mit Klipper wurde noch nicht gut getestet. Der Workflow ist auch noch umständlich und ggf. gar nicht klar.&lt;br /&gt;
&lt;br /&gt;
Die Befehle zum Kanten Antasten benötigen sowohl das load_cell_probe als auch das workpart_edge_touch Modul. Letzteres muss folgendermaßen in der Config angelegt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[workpart_edge_touch]&lt;br /&gt;
tool_radius: 1.5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der tool_radius muss entsprechend dem verwendeten Werkzeug angepasst werden.&lt;br /&gt;
&lt;br /&gt;
=== PROBE Kanten und Oberflächen antasten ===&lt;br /&gt;
&lt;br /&gt;
Es wird an der aktuellen Position ein Scan in der angegebenen Richtung durchgeführt. Wenn die Kontakt-Position gefunden wurde, bleibt das Tool an der Kontakt-Position stehen. Es bietet sich an, anschließend:&lt;br /&gt;
* falls in Z-Richtung gescannt wird: SET_KINEMATIC_POSITION Z=0 auszuführen, um den Z-Achse zu nullen, bzw.&lt;br /&gt;
* falls in X/Y-Richtung gescannt wird: EDGE_TOUCH mit dem selben DIRECTION Parameter auszuführen.&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
* DIRECTION kann folgende Werte annehmen: X+, X-, Y+, Y-, Z-. Default: Z-&lt;br /&gt;
&lt;br /&gt;
=== EDGE_TOUCH Messpunkt nach Antasten aufnehmen ===&lt;br /&gt;
&lt;br /&gt;
Es wird die aktuelle Position als Messpunkt aufgenommen. Die aufgenommenen Messpunkte werden später mittels COMPUTE_WORKPART verrechnet.&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
* DIRECTION kann folgende Werte annehmen: X+, X-, Y+, Y-&lt;br /&gt;
&lt;br /&gt;
Hinweis: Aufgenommene Messpunkte können mit SAVE_CONFIG abgespeichert werden, um sie mehrfach zu verwenden. Leider geht bei SAVE_CONFIG das Homing verloren, wodurch anschließend Ungenauigkeiten auftreten können. Deshalb ist das nur bedingt empfehlenswert.&lt;br /&gt;
&lt;br /&gt;
=== COMPUTE_WORKPART Rohteil-Lage in X/Y berechnen und Transformation anwenden ===&lt;br /&gt;
&lt;br /&gt;
Alle vorher mittels EDGE_TOUCH aufgenommenen Messpunkte werden benutzt, um die Lage des angetasteten Rohteils zu bestimmen und daraus eine Koordinaten-Transformation zu berechnen. Es müssen in beiden Achsen jeweils mindestens zwei Messpunkte vorhanden sein (künftig wird es ggf. möglich sein, mit insgesamt nur drei Messpunkten auszukommen, aktuell geht das noch nicht). Für jede Achse müssen alle Messpunkte das selbe Vorzeichen haben. Es ist also nicht möglich, X+ mit X- zu kombinieren, wohl aber X+ mit Y-, usw.&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
* keine&lt;br /&gt;
&lt;br /&gt;
Hinweis: Die Transformation wird nicht in der Config abgespeichert. Sollen abgespeicherte Messpunkte nach einem Neustart wieder benutzt werden, muss COMPUTE_WORKPART erneut ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
Achtung: Nach dem Ausführen von COMPUTE_WORKPART verändert sich die logische Position des Toolheads, während die tatsächliche Position erhalten bleibt. Werden anschließend Bewegungen mit fehlenden Koordinaten ausgeführt (z.B. G1 X42), so fährt der Toolhead ggf. an eine unerwartete Position. Auf COMPUTE_WORKPART sollte daher immer ein G0/G1 mit sowohl X als auch Y Koordinate folgen.&lt;br /&gt;
&lt;br /&gt;
=== CLEAR_WORKPART Messpunkte und Transformation löschen ===&lt;br /&gt;
&lt;br /&gt;
Alle mit EDGE_TOUCH aufgenommenene Messpunkte sowie die mit COMPUTE_WORKPART berechnete Transformation werden gelöscht.&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
* keine&lt;br /&gt;
&lt;br /&gt;
Achtung: Nach dem Ausführen von CLEAR_WORKPART verändert sich die logische Position des Toolheads, während die tatsächliche Position erhalten bleibt. Werden anschließend Bewegungen mit fehlenden Koordinaten ausgeführt (z.B. G1 X42), so fährt der Toolhead ggf. an eine unerwartete Position. Auf CLEAR_WORKPART sollte daher immer ein G0/G1 mit sowohl X als auch Y Koordinate folgen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== CLEAR_WORKPART_TRANSFORM Nur Transformation löschen ===&lt;br /&gt;
&lt;br /&gt;
Wie CLEAR_WORKPART, allerdings bleiben die aufgenommenen Messpunkte erhalten. Mit COMPUTE_WORKPART kann die Transformation erneut berechnet werden.&lt;br /&gt;
&lt;br /&gt;
'''Parameter'''&lt;br /&gt;
* keine&lt;br /&gt;
&lt;br /&gt;
Achtung: Nach dem Ausführen von CLEAR_WORKPART_TRANSFORM verändert sich die logische Position des Toolheads, während die tatsächliche Position erhalten bleibt. Werden anschließend Bewegungen mit fehlenden Koordinaten ausgeführt (z.B. G1 X42), so fährt der Toolhead ggf. an eine unerwartete Position. Auf CLEAR_WORKPART_TRANSFORM sollte daher immer ein G0/G1 mit sowohl X als auch Y Koordinate folgen.&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Einstellhilfe:Stringing&amp;diff=1145</id>
		<title>Einstellhilfe:Stringing</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Einstellhilfe:Stringing&amp;diff=1145"/>
		<updated>2020-12-31T12:27:26Z</updated>

		<summary type="html">&lt;p&gt;Mhier: /* Beeinflussende Parameter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Einstellhilfe]]&lt;br /&gt;
&lt;br /&gt;
== Symptombeschreibung ==&lt;br /&gt;
&lt;br /&gt;
In Zwischenräumen zwischen Teilen des Druckteils befinden sich dünne Fäden, i.d.R. entlang von Leerfahrt-Wegen. Die Fäden können über die gesamte Strecke gezogen sein oder auch nur einen Teil des Zwischenraumes abdecken. In der schwächsten Form sind lediglich kleine Knubbel auf der Oberfläche des Druckteils zu sehen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Stringing_or_Oozing.jpg|200px]]&lt;br /&gt;
[[Datei:Faedenbeispiel1.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
== Hintergrundinformation ==&lt;br /&gt;
&lt;br /&gt;
Das Symptom wird durch Oozing verursacht, d.h. Material läuft ohne Extruder-Vorschub aus dem Hotend.&lt;br /&gt;
&lt;br /&gt;
== Beeinflussende Parameter ==&lt;br /&gt;
&lt;br /&gt;
* [[Einstellhilfe:Retract|Rückzugsweg / Retract]] vergrößern&lt;br /&gt;
** Der Rückzug des Filaments reduziert den Druck im Hotend.&lt;br /&gt;
** Die Schwerkraft wird weiterhin Oozing verursachen, dies kann nicht durch einen höheren Retract verhindert werden.&lt;br /&gt;
* [[Einstellhilfe:Advance|Advance]] vergrößern (besser: neu kalibrieren)&lt;br /&gt;
** Advance verringert schon beim Abbremsen der Vorschubgeschwindigkeit in X/Y den Extrudervorschub (und erhöht diesen umgekehrt beim Beschleunigen). Dies hat einen ähnlichen Effekt wie der Retract.&lt;br /&gt;
* [[Einstellhilfe:Beschleunigung|Beschleunigung]] und/oder [[Einstellhilfe:Vorschubgeschwindigkeit|Vorschubgeschwindigkeit]] in X/Y erhöhen&lt;br /&gt;
** Je kürzer die Zeit für Leerfahrten ist, desto weniger Material kann aus dem Hotend austreten.&lt;br /&gt;
** Achtung: Wenn Advance nicht verwendet wird, sollte die Beschleunigung für Druckfahrten niedrig gehalten werden. Dies kann einen Konflikt darstellen, wenn die Beschleunigungen für Durck- und Leerfahrten nicht getrennt eingestellt werden können.&lt;br /&gt;
* [[Einstellhilfe:Hotend Temperatur|Hotend Temperatur]] so niedrig wie möglich&lt;br /&gt;
* [[Einstellhilfe:Düsendurchmesser|Düsendurchmesser]] so klein wie möglich&lt;br /&gt;
* Volumen der [[Einstellhilfe:Schmelzkammer|Schmelzkammer]] so klein wie möglich&lt;br /&gt;
&lt;br /&gt;
== Empfehlung zur Vorgehensweise ==&lt;br /&gt;
&lt;br /&gt;
* Retract auf einen für das Hotend typischen, eher niedrigen Wert stellen (z.B. 0.5mm für ein Renkforce v2 Hotend, oder 0.2mm für ein E3D v6)&lt;br /&gt;
* Hotend-Temperatur so klein wie möglich einstellen, dass das Material noch zuverlässig gefördert wird (zumindest ab 2. Layer)&lt;br /&gt;
* Advance für das genutzte Material mit den jeweilingen Slicer-Einstellungen (Temperaturen!) kalibrieren, siehe [[Advance kalibrieren]].&lt;br /&gt;
* Falls Oozing immer noch erheblich: Retract etwas erhöhen.&lt;br /&gt;
* Leerfahrt-Geschwindigkeit so hoch wie möglich&lt;br /&gt;
* Beschleunigung so hoch wie möglich, ohne dass Ecken zu stark abgerundet werden.&lt;br /&gt;
** Dieser Wert kann abhängig vom Modell gewählt werden: bei Modellen, die eine hohe Maßhaltigkeit erfordern, niedrige Beschleungigung bevorzugen (z.B. 500mm/s^2 oder niedriger). Bei Modellen, die gut aussehen sollen, hohe Beschleungigung bevorzugen (z.B. 1500mm/s^2 oder höher).&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Einstellhilfe:Stringing&amp;diff=1144</id>
		<title>Einstellhilfe:Stringing</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Einstellhilfe:Stringing&amp;diff=1144"/>
		<updated>2020-12-30T17:35:46Z</updated>

		<summary type="html">&lt;p&gt;Mhier: /* Empfehlung zur Vorgehensweise */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Einstellhilfe]]&lt;br /&gt;
&lt;br /&gt;
== Symptombeschreibung ==&lt;br /&gt;
&lt;br /&gt;
In Zwischenräumen zwischen Teilen des Druckteils befinden sich dünne Fäden, i.d.R. entlang von Leerfahrt-Wegen. Die Fäden können über die gesamte Strecke gezogen sein oder auch nur einen Teil des Zwischenraumes abdecken. In der schwächsten Form sind lediglich kleine Knubbel auf der Oberfläche des Druckteils zu sehen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Stringing_or_Oozing.jpg|200px]]&lt;br /&gt;
[[Datei:Faedenbeispiel1.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
== Hintergrundinformation ==&lt;br /&gt;
&lt;br /&gt;
Das Symptom wird durch Oozing verursacht, d.h. Material läuft ohne Extruder-Vorschub aus dem Hotend.&lt;br /&gt;
&lt;br /&gt;
== Beeinflussende Parameter ==&lt;br /&gt;
&lt;br /&gt;
* [[Einstellhilfe:Retract|Rückzugsweg / Retract]] vergrößern&lt;br /&gt;
** Der Rückzug des Filaments reduziert den Druck im Hotend.&lt;br /&gt;
** Die Schwerkraft wird weiterhin Oozing verursachen, dies kann nicht durch einen höheren Retract verhindert werden.&lt;br /&gt;
* [[Einstellhilfe:Advance|Advance]] vergrößern (besser: neu kalibrieren)&lt;br /&gt;
** Advance verringert schon beim Abbremsen der Vorschubgeschwindigkeit in X/Y den Extrudervorschub (und erhöht diesen umgekehrt beim Beschleunigen). Dies hat einen ähnlichen Effekt wie der Retract.&lt;br /&gt;
* [[Einstellhilfe:Beschleunigung|Beschleunigung]] und/oder [[Einstellhilfe:Vorschubgeschwindigkeit|Vorschubgeschwindigkeit]] in X/Y erhöhen&lt;br /&gt;
** Je kürzer die Zeit für Leerfahrten ist, desto weniger Material kann aus dem Hotend austreten.&lt;br /&gt;
* [[Einstellhilfe:Hotend Temperatur|Hotend Temperatur]] so niedrig wie möglich&lt;br /&gt;
* [[Einstellhilfe:Düsendurchmesser|Düsendurchmesser]] so klein wie möglich&lt;br /&gt;
&lt;br /&gt;
== Empfehlung zur Vorgehensweise ==&lt;br /&gt;
&lt;br /&gt;
* Retract auf einen für das Hotend typischen, eher niedrigen Wert stellen (z.B. 0.5mm für ein Renkforce v2 Hotend, oder 0.2mm für ein E3D v6)&lt;br /&gt;
* Hotend-Temperatur so klein wie möglich einstellen, dass das Material noch zuverlässig gefördert wird (zumindest ab 2. Layer)&lt;br /&gt;
* Advance für das genutzte Material mit den jeweilingen Slicer-Einstellungen (Temperaturen!) kalibrieren, siehe [[Advance kalibrieren]].&lt;br /&gt;
* Falls Oozing immer noch erheblich: Retract etwas erhöhen.&lt;br /&gt;
* Leerfahrt-Geschwindigkeit so hoch wie möglich&lt;br /&gt;
* Beschleunigung so hoch wie möglich, ohne dass Ecken zu stark abgerundet werden.&lt;br /&gt;
** Dieser Wert kann abhängig vom Modell gewählt werden: bei Modellen, die eine hohe Maßhaltigkeit erfordern, niedrige Beschleungigung bevorzugen (z.B. 500mm/s^2 oder niedriger). Bei Modellen, die gut aussehen sollen, hohe Beschleungigung bevorzugen (z.B. 1500mm/s^2 oder höher).&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Einstellhilfe:Stringing&amp;diff=1143</id>
		<title>Einstellhilfe:Stringing</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Einstellhilfe:Stringing&amp;diff=1143"/>
		<updated>2020-12-30T17:33:08Z</updated>

		<summary type="html">&lt;p&gt;Mhier: /* Beeinflussende Parameter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Einstellhilfe]]&lt;br /&gt;
&lt;br /&gt;
== Symptombeschreibung ==&lt;br /&gt;
&lt;br /&gt;
In Zwischenräumen zwischen Teilen des Druckteils befinden sich dünne Fäden, i.d.R. entlang von Leerfahrt-Wegen. Die Fäden können über die gesamte Strecke gezogen sein oder auch nur einen Teil des Zwischenraumes abdecken. In der schwächsten Form sind lediglich kleine Knubbel auf der Oberfläche des Druckteils zu sehen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Stringing_or_Oozing.jpg|200px]]&lt;br /&gt;
[[Datei:Faedenbeispiel1.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
== Hintergrundinformation ==&lt;br /&gt;
&lt;br /&gt;
Das Symptom wird durch Oozing verursacht, d.h. Material läuft ohne Extruder-Vorschub aus dem Hotend.&lt;br /&gt;
&lt;br /&gt;
== Beeinflussende Parameter ==&lt;br /&gt;
&lt;br /&gt;
* [[Einstellhilfe:Retract|Rückzugsweg / Retract]] vergrößern&lt;br /&gt;
** Der Rückzug des Filaments reduziert den Druck im Hotend.&lt;br /&gt;
** Die Schwerkraft wird weiterhin Oozing verursachen, dies kann nicht durch einen höheren Retract verhindert werden.&lt;br /&gt;
* [[Einstellhilfe:Advance|Advance]] vergrößern (besser: neu kalibrieren)&lt;br /&gt;
** Advance verringert schon beim Abbremsen der Vorschubgeschwindigkeit in X/Y den Extrudervorschub (und erhöht diesen umgekehrt beim Beschleunigen). Dies hat einen ähnlichen Effekt wie der Retract.&lt;br /&gt;
* [[Einstellhilfe:Beschleunigung|Beschleunigung]] und/oder [[Einstellhilfe:Vorschubgeschwindigkeit|Vorschubgeschwindigkeit]] in X/Y erhöhen&lt;br /&gt;
** Je kürzer die Zeit für Leerfahrten ist, desto weniger Material kann aus dem Hotend austreten.&lt;br /&gt;
* [[Einstellhilfe:Hotend Temperatur|Hotend Temperatur]] so niedrig wie möglich&lt;br /&gt;
* [[Einstellhilfe:Düsendurchmesser|Düsendurchmesser]] so klein wie möglich&lt;br /&gt;
&lt;br /&gt;
== Empfehlung zur Vorgehensweise ==&lt;br /&gt;
&lt;br /&gt;
* Retract auf einen für das Hotend typischen, eher niedrigen Wert stellen (z.B. 1mm für ein Renkforce v2 Hotend, oder 0.5mm für ein E3D v6)&lt;br /&gt;
* Advance für das genutzte Material mit den jeweilingen Slicer-Einstellungen (Temperaturen!) kalibrieren, siehe [[Advance kalibrieren]].&lt;br /&gt;
* Falls Oozing immer noch erheblich: Retract etwas erhöhen.&lt;br /&gt;
* Leerfahrt-Geschwindigkeit so hoch wie möglich&lt;br /&gt;
* Beschleunigung so hoch wie möglich, ohne dass Ecken zu stark abgerundet werden.&lt;br /&gt;
** Dieser Wert kann abhängig vom Modell gewählt werden: bei Modellen, die eine hohe Maßhaltigkeit erfordern, niedrige Beschleungigung bevorzugen (z.B. 500mm/s^2 oder niedriger). Bei Modellen, die gut aussehen sollen, hohe Beschleungigung bevorzugen (z.B. 1500mm/s^2 oder höher).&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Einstellhilfe:Stringing&amp;diff=1142</id>
		<title>Einstellhilfe:Stringing</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Einstellhilfe:Stringing&amp;diff=1142"/>
		<updated>2020-12-30T17:18:20Z</updated>

		<summary type="html">&lt;p&gt;Mhier: /* Empfehlung zur Vorgehensweise */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Einstellhilfe]]&lt;br /&gt;
&lt;br /&gt;
== Symptombeschreibung ==&lt;br /&gt;
&lt;br /&gt;
In Zwischenräumen zwischen Teilen des Druckteils befinden sich dünne Fäden, i.d.R. entlang von Leerfahrt-Wegen. Die Fäden können über die gesamte Strecke gezogen sein oder auch nur einen Teil des Zwischenraumes abdecken. In der schwächsten Form sind lediglich kleine Knubbel auf der Oberfläche des Druckteils zu sehen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Stringing_or_Oozing.jpg|200px]]&lt;br /&gt;
[[Datei:Faedenbeispiel1.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
== Hintergrundinformation ==&lt;br /&gt;
&lt;br /&gt;
Das Symptom wird durch Oozing verursacht, d.h. Material läuft ohne Extruder-Vorschub aus dem Hotend.&lt;br /&gt;
&lt;br /&gt;
== Beeinflussende Parameter ==&lt;br /&gt;
&lt;br /&gt;
* [[Einstellhilfe:Retract|Rückzugsweg / Retract]] vergrößern&lt;br /&gt;
** Der Rückzug des Filaments reduziert den Druck im Hotend.&lt;br /&gt;
** Die Schwerkraft wird weiterhin Oozing verursachen, dies kann nicht durch einen höheren Retract verhindert werden.&lt;br /&gt;
* [[Einstellhilfe:Advance|Advance]] vergrößern (besser: neu kalibrieren)&lt;br /&gt;
** Advance verringert schon beim Abbremsen der Vorschubgeschwindigkeit in X/Y den Extrudervorschub (und erhöht diesen umgekehrt beim Beschleunigen). Dies hat einen ähnlichen Effekt wie der Retract.&lt;br /&gt;
* [[Einstellhilfe:Beschleunigung|Beschleunigung]] und/oder [[Einstellhilfe:Vorschubgeschwindigkeit|Vorschubgeschwindigkeit]] in X/Y erhöhen&lt;br /&gt;
** Je kürzer die Zeit für Leerfahrten ist, desto weniger Material kann aus dem Hotend austreten.&lt;br /&gt;
&lt;br /&gt;
== Empfehlung zur Vorgehensweise ==&lt;br /&gt;
&lt;br /&gt;
* Retract auf einen für das Hotend typischen, eher niedrigen Wert stellen (z.B. 1mm für ein Renkforce v2 Hotend, oder 0.5mm für ein E3D v6)&lt;br /&gt;
* Advance für das genutzte Material mit den jeweilingen Slicer-Einstellungen (Temperaturen!) kalibrieren, siehe [[Advance kalibrieren]].&lt;br /&gt;
* Falls Oozing immer noch erheblich: Retract etwas erhöhen.&lt;br /&gt;
* Leerfahrt-Geschwindigkeit so hoch wie möglich&lt;br /&gt;
* Beschleunigung so hoch wie möglich, ohne dass Ecken zu stark abgerundet werden.&lt;br /&gt;
** Dieser Wert kann abhängig vom Modell gewählt werden: bei Modellen, die eine hohe Maßhaltigkeit erfordern, niedrige Beschleungigung bevorzugen (z.B. 500mm/s^2 oder niedriger). Bei Modellen, die gut aussehen sollen, hohe Beschleungigung bevorzugen (z.B. 1500mm/s^2 oder höher).&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Einstellhilfe:Stringing&amp;diff=1141</id>
		<title>Einstellhilfe:Stringing</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Einstellhilfe:Stringing&amp;diff=1141"/>
		<updated>2020-12-30T14:06:36Z</updated>

		<summary type="html">&lt;p&gt;Mhier: /* Empfehlung zur Vorgehensweise */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Einstellhilfe]]&lt;br /&gt;
&lt;br /&gt;
== Symptombeschreibung ==&lt;br /&gt;
&lt;br /&gt;
In Zwischenräumen zwischen Teilen des Druckteils befinden sich dünne Fäden, i.d.R. entlang von Leerfahrt-Wegen. Die Fäden können über die gesamte Strecke gezogen sein oder auch nur einen Teil des Zwischenraumes abdecken. In der schwächsten Form sind lediglich kleine Knubbel auf der Oberfläche des Druckteils zu sehen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Stringing_or_Oozing.jpg|200px]]&lt;br /&gt;
[[Datei:Faedenbeispiel1.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
== Hintergrundinformation ==&lt;br /&gt;
&lt;br /&gt;
Das Symptom wird durch Oozing verursacht, d.h. Material läuft ohne Extruder-Vorschub aus dem Hotend.&lt;br /&gt;
&lt;br /&gt;
== Beeinflussende Parameter ==&lt;br /&gt;
&lt;br /&gt;
* [[Einstellhilfe:Retract|Rückzugsweg / Retract]] vergrößern&lt;br /&gt;
** Der Rückzug des Filaments reduziert den Druck im Hotend.&lt;br /&gt;
** Die Schwerkraft wird weiterhin Oozing verursachen, dies kann nicht durch einen höheren Retract verhindert werden.&lt;br /&gt;
* [[Einstellhilfe:Advance|Advance]] vergrößern (besser: neu kalibrieren)&lt;br /&gt;
** Advance verringert schon beim Abbremsen der Vorschubgeschwindigkeit in X/Y den Extrudervorschub (und erhöht diesen umgekehrt beim Beschleunigen). Dies hat einen ähnlichen Effekt wie der Retract.&lt;br /&gt;
* [[Einstellhilfe:Beschleunigung|Beschleunigung]] und/oder [[Einstellhilfe:Vorschubgeschwindigkeit|Vorschubgeschwindigkeit]] in X/Y erhöhen&lt;br /&gt;
** Je kürzer die Zeit für Leerfahrten ist, desto weniger Material kann aus dem Hotend austreten.&lt;br /&gt;
&lt;br /&gt;
== Empfehlung zur Vorgehensweise ==&lt;br /&gt;
&lt;br /&gt;
* Retract auf einen für das Hotend typischen, eher niedrigen Wert stellen (z.B. 2mm für ein Renkforce v2 Hotend, oder 0.5mm für ein E3D v6)&lt;br /&gt;
* Advance für das genutzte Material mit den jeweilingen Slicer-Einstellungen (Temperaturen!) kalibrieren, siehe [[Advance kalibrieren]].&lt;br /&gt;
* Falls Oozing immer noch erheblich: Retract etwas erhöhen.&lt;br /&gt;
* Leerfahrt-Geschwindigkeit so hoch wie möglich&lt;br /&gt;
* Beschleunigung so hoch wie möglich, ohne dass Ecken zu stark abgerundet werden.&lt;br /&gt;
** Dieser Wert kann abhängig vom Modell gewählt werden: bei Modellen, die eine hohe Maßhaltigkeit erfordern, niedrige Beschleungigung bevorzugen (z.B. 500mm/s^2 oder niedriger). Bei Modellen, die gut aussehen sollen, hohe Beschleungigung bevorzugen (z.B. 1500mm/s^2 oder höher).&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Einstellhilfe:Stringing&amp;diff=1140</id>
		<title>Einstellhilfe:Stringing</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Einstellhilfe:Stringing&amp;diff=1140"/>
		<updated>2020-12-30T14:04:31Z</updated>

		<summary type="html">&lt;p&gt;Mhier: /* Empfehlung zur Vorgehensweise */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Einstellhilfe]]&lt;br /&gt;
&lt;br /&gt;
== Symptombeschreibung ==&lt;br /&gt;
&lt;br /&gt;
In Zwischenräumen zwischen Teilen des Druckteils befinden sich dünne Fäden, i.d.R. entlang von Leerfahrt-Wegen. Die Fäden können über die gesamte Strecke gezogen sein oder auch nur einen Teil des Zwischenraumes abdecken. In der schwächsten Form sind lediglich kleine Knubbel auf der Oberfläche des Druckteils zu sehen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Stringing_or_Oozing.jpg|200px]]&lt;br /&gt;
[[Datei:Faedenbeispiel1.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
== Hintergrundinformation ==&lt;br /&gt;
&lt;br /&gt;
Das Symptom wird durch Oozing verursacht, d.h. Material läuft ohne Extruder-Vorschub aus dem Hotend.&lt;br /&gt;
&lt;br /&gt;
== Beeinflussende Parameter ==&lt;br /&gt;
&lt;br /&gt;
* [[Einstellhilfe:Retract|Rückzugsweg / Retract]] vergrößern&lt;br /&gt;
** Der Rückzug des Filaments reduziert den Druck im Hotend.&lt;br /&gt;
** Die Schwerkraft wird weiterhin Oozing verursachen, dies kann nicht durch einen höheren Retract verhindert werden.&lt;br /&gt;
* [[Einstellhilfe:Advance|Advance]] vergrößern (besser: neu kalibrieren)&lt;br /&gt;
** Advance verringert schon beim Abbremsen der Vorschubgeschwindigkeit in X/Y den Extrudervorschub (und erhöht diesen umgekehrt beim Beschleunigen). Dies hat einen ähnlichen Effekt wie der Retract.&lt;br /&gt;
* [[Einstellhilfe:Beschleunigung|Beschleunigung]] und/oder [[Einstellhilfe:Vorschubgeschwindigkeit|Vorschubgeschwindigkeit]] in X/Y erhöhen&lt;br /&gt;
** Je kürzer die Zeit für Leerfahrten ist, desto weniger Material kann aus dem Hotend austreten.&lt;br /&gt;
&lt;br /&gt;
== Empfehlung zur Vorgehensweise ==&lt;br /&gt;
&lt;br /&gt;
* Retract auf einen für das Hotend typischen, eher niedrigen Wert stellen (z.B. 2mm für ein Renkforce v2 Hotend, oder 0.5mm für ein E3D v6)&lt;br /&gt;
* Advance für das genutzte Material mit den jeweilingen Slicer-Einstellungen (Temperaturen!) kalibrieren, siehe [[Advance kalibrieren]].&lt;br /&gt;
* Falls Oozing immer noch erheblich: Retract etwas erhöhen.&lt;br /&gt;
* Leerfahrt-Geschwindigkeit so hoch wie möglich&lt;br /&gt;
* Beschleunigung so hoch wie möglich, ohne dass Ecken zu stark abgerundet werden.&lt;br /&gt;
** Dieser Wert kann abhängig vom Modell gewählt werden: bei Modellen, die eine hohe Maßhaltigkeit erfordern, niedrige Beschleungigung bevorzugen (z.B. 500mm/s^2 oder niedriger). Bei Modellen, die gut aussehen sollen, hohe Beschleungigung bevorzugen (z.B. 1500mm/s^2).&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Einstellhilfe:Stringing&amp;diff=1139</id>
		<title>Einstellhilfe:Stringing</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Einstellhilfe:Stringing&amp;diff=1139"/>
		<updated>2020-12-30T14:02:44Z</updated>

		<summary type="html">&lt;p&gt;Mhier: /* Empfehlung zur Vorgehensweise */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Einstellhilfe]]&lt;br /&gt;
&lt;br /&gt;
== Symptombeschreibung ==&lt;br /&gt;
&lt;br /&gt;
In Zwischenräumen zwischen Teilen des Druckteils befinden sich dünne Fäden, i.d.R. entlang von Leerfahrt-Wegen. Die Fäden können über die gesamte Strecke gezogen sein oder auch nur einen Teil des Zwischenraumes abdecken. In der schwächsten Form sind lediglich kleine Knubbel auf der Oberfläche des Druckteils zu sehen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Stringing_or_Oozing.jpg|200px]]&lt;br /&gt;
[[Datei:Faedenbeispiel1.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
== Hintergrundinformation ==&lt;br /&gt;
&lt;br /&gt;
Das Symptom wird durch Oozing verursacht, d.h. Material läuft ohne Extruder-Vorschub aus dem Hotend.&lt;br /&gt;
&lt;br /&gt;
== Beeinflussende Parameter ==&lt;br /&gt;
&lt;br /&gt;
* [[Einstellhilfe:Retract|Rückzugsweg / Retract]] vergrößern&lt;br /&gt;
** Der Rückzug des Filaments reduziert den Druck im Hotend.&lt;br /&gt;
** Die Schwerkraft wird weiterhin Oozing verursachen, dies kann nicht durch einen höheren Retract verhindert werden.&lt;br /&gt;
* [[Einstellhilfe:Advance|Advance]] vergrößern (besser: neu kalibrieren)&lt;br /&gt;
** Advance verringert schon beim Abbremsen der Vorschubgeschwindigkeit in X/Y den Extrudervorschub (und erhöht diesen umgekehrt beim Beschleunigen). Dies hat einen ähnlichen Effekt wie der Retract.&lt;br /&gt;
* [[Einstellhilfe:Beschleunigung|Beschleunigung]] und/oder [[Einstellhilfe:Vorschubgeschwindigkeit|Vorschubgeschwindigkeit]] in X/Y erhöhen&lt;br /&gt;
** Je kürzer die Zeit für Leerfahrten ist, desto weniger Material kann aus dem Hotend austreten.&lt;br /&gt;
&lt;br /&gt;
== Empfehlung zur Vorgehensweise ==&lt;br /&gt;
&lt;br /&gt;
* Retract auf einen für das Hotend typischen, eher niedrigen Wert stellen (z.B. 2mm für ein Renkforce v2 Hotend, oder 0.5mm für ein E3D v6)&lt;br /&gt;
* Advance für das genutzte Material mit den jeweilingen Slicer-Einstellungen (Temperaturen!) kalibrieren, siehe [[Advance kalibrieren]].&lt;br /&gt;
* Falls Oozing immer noch erheblich: Retract etwas erhöhen.&lt;br /&gt;
* Leerfahrt-Geschwindigkeit so hoch wie möglich&lt;br /&gt;
* Beschleunigung so hoch wie möglich, ohne dass Ecken zu stark abgerundet werden.&lt;br /&gt;
** Dieser Wert kann abhängig vom Modell gewählt werden: bei Modellen, die eine hohe Maßhaltigkeit erfordern, niedrige Beschleungigung bevorzugen. Bei Modellen, die gut aussehen sollen, hohe Beschleungigung bevorzugen.&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
	<entry>
		<id>https://www.rf1000.de/wiki/index.php?title=Einstellhilfe:Stringing&amp;diff=1138</id>
		<title>Einstellhilfe:Stringing</title>
		<link rel="alternate" type="text/html" href="https://www.rf1000.de/wiki/index.php?title=Einstellhilfe:Stringing&amp;diff=1138"/>
		<updated>2020-12-30T14:02:21Z</updated>

		<summary type="html">&lt;p&gt;Mhier: /* Empfehlung zur Vorgehensweise */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Einstellhilfe]]&lt;br /&gt;
&lt;br /&gt;
== Symptombeschreibung ==&lt;br /&gt;
&lt;br /&gt;
In Zwischenräumen zwischen Teilen des Druckteils befinden sich dünne Fäden, i.d.R. entlang von Leerfahrt-Wegen. Die Fäden können über die gesamte Strecke gezogen sein oder auch nur einen Teil des Zwischenraumes abdecken. In der schwächsten Form sind lediglich kleine Knubbel auf der Oberfläche des Druckteils zu sehen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Stringing_or_Oozing.jpg|200px]]&lt;br /&gt;
[[Datei:Faedenbeispiel1.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
== Hintergrundinformation ==&lt;br /&gt;
&lt;br /&gt;
Das Symptom wird durch Oozing verursacht, d.h. Material läuft ohne Extruder-Vorschub aus dem Hotend.&lt;br /&gt;
&lt;br /&gt;
== Beeinflussende Parameter ==&lt;br /&gt;
&lt;br /&gt;
* [[Einstellhilfe:Retract|Rückzugsweg / Retract]] vergrößern&lt;br /&gt;
** Der Rückzug des Filaments reduziert den Druck im Hotend.&lt;br /&gt;
** Die Schwerkraft wird weiterhin Oozing verursachen, dies kann nicht durch einen höheren Retract verhindert werden.&lt;br /&gt;
* [[Einstellhilfe:Advance|Advance]] vergrößern (besser: neu kalibrieren)&lt;br /&gt;
** Advance verringert schon beim Abbremsen der Vorschubgeschwindigkeit in X/Y den Extrudervorschub (und erhöht diesen umgekehrt beim Beschleunigen). Dies hat einen ähnlichen Effekt wie der Retract.&lt;br /&gt;
* [[Einstellhilfe:Beschleunigung|Beschleunigung]] und/oder [[Einstellhilfe:Vorschubgeschwindigkeit|Vorschubgeschwindigkeit]] in X/Y erhöhen&lt;br /&gt;
** Je kürzer die Zeit für Leerfahrten ist, desto weniger Material kann aus dem Hotend austreten.&lt;br /&gt;
&lt;br /&gt;
== Empfehlung zur Vorgehensweise ==&lt;br /&gt;
&lt;br /&gt;
* Retract auf einen für das Hotend typischen, eher niedrigen Wert stellen (z.B. 2mm für ein Renkforce v2 Hotend, oder 0.5mm für ein E3D v6)&lt;br /&gt;
* Advance für das genutzte Material mit den jeweilingen Slicer-Einstellungen (Temperaturen!) kalibrieren. Siehe [[Advance kalibrieren]].&lt;br /&gt;
* Falls Oozing immer noch erheblich: Retract etwas erhöhen.&lt;br /&gt;
* Leerfahrt-Geschwindigkeit so hoch wie möglich&lt;br /&gt;
* Beschleunigung so hoch wie möglich, ohne dass Ecken zu stark abgerundet werden.&lt;br /&gt;
** Dieser Wert kann abhängig vom Modell gewählt werden: bei Modellen, die eine hohe Maßhaltigkeit erfordern, niedrige Beschleungigung bevorzugen. Bei Modellen, die gut aussehen sollen, hohe Beschleungigung bevorzugen.&lt;/div&gt;</summary>
		<author><name>Mhier</name></author>
	</entry>
</feed>