TL;DR: KAMP (Klipper Adaptive Mesh and Purge) sorgt dafür, dass dein Klipper-Drucker nur dort mesht, wo dein Modell tatsächlich steht – und automatisch eine Purge-Linie zieht. Das spart Zeit beim Druckstart und verbessert die erste Schicht deutlich.

🖨️ Was ist KAMP?

3D-Druck ist eine faszinierende Welt voller Innovationen und technischer Raffinessen. Eine der besten Entwicklungen für Klipper-Nutzer ist KAMP – Klipper Adaptive Mesh and Purge. Statt das gesamte Druckbett zu scannen, analysiert KAMP die G-Code-Datei und erstellt nur dort ein Mesh, wo dein Modell tatsächlich gedruckt wird. Das Ergebnis: deutlich schnellere Druckstarts und trotzdem perfekte erste Schichten.

3D Drucker einschalten wenn Slicer geöffnet wird

Klipper selbst ist bekannt für seine Fähigkeit, die Rechenleistung von 3D-Druckern durch die Nutzung eines externen Computers (z.B. einem Raspberry Pi) zu maximieren. KAMP geht einen Schritt weiter, indem es adaptives Mesh-Bed-Leveling und automatisiertes Purging in den Druckprozess integriert.

Adaptive Mesh Bed Leveling 🌐

Adaptive Mesh Bed Leveling ist eine Technik, bei der der Drucker nur den Bereich des Druckbetts scannt, der tatsächlich bedruckt wird. Statt ein komplettes Gitter über das gesamte Bett zu legen, berechnet KAMP anhand des G-Codes die Bounding Box deines Modells und beschränkt das Mesh darauf. Das spart enorm viel Zeit – besonders bei kleinen Teilen auf einem großen Bett.

Automatisiertes Purging 🧼

Adaptive Purge platziert die Purge-Linie direkt neben deinem Modell, statt sie immer an der gleichen Stelle zu zeichnen. Das minimiert unnötige Fahrbewegungen und stellt sicher, dass die Düse optimal vorbereitet ist, bevor der eigentliche Druck beginnt.

🚀 Warum KAMP?

Vorteile des Adaptive Mesh Bed Leveling

  1. Schnellere Druckstarts: Statt 25+ Messpunkte über das gesamte Bett abzufahren, werden nur die relevanten Punkte gemessen. Bei kleinen Modellen kann das den Mesh-Vorgang von 2 Minuten auf 15 Sekunden reduzieren.
  2. Bessere Haftung der ersten Schicht: Durch die Anpassung des Druckkopfes an die Höhenunterschiede des Druckbetts haftet die erste Schicht besser.
  3. Verbesserte Druckqualität: Ungleichmäßige Druckbetten können zu Verformungen und Druckfehlern führen. Mit KAMP wird dies effektiv vermieden.
  4. Weniger manuelle Kalibrierung: Das lästige manuelle Leveln des Druckbetts entfällt größtenteils.

Vorteile des Adaptive Purge

  1. Intelligente Purge-Positionierung: Die Purge-Linie wird direkt neben dem Druckobjekt platziert – keine langen Fahrbewege mehr.
  2. Konsistente Druckqualität: Eine gut vorbereitete Düse liefert gleichbleibend gute Ergebnisse.
  3. Weniger Wartungsaufwand: Automatisierung bedeutet weniger manuelle Eingriffe.

🛠️ Installation von KAMP

Voraussetzungen

Bevor wir loslegen, brauchst du:

  • Einen 3D-Drucker mit Klipper-Firmware
  • Einen Raspberry Pi (oder ähnlichen SBC) mit Moonraker und Mainsail/Fluidd
  • Git auf dem Pi installiert
  • Grundlegende Kenntnisse im Umgang mit Klipper-Konfigurationsdateien

Schritt 1: KAMP klonen

Verbinde dich per SSH mit deinem Raspberry Pi und klone das Repository:

cd ~
git clone https://github.com/kyleisah/Klipper-Adaptive-Meshing-Purging.git
ln -s ~/Klipper-Adaptive-Meshing-Purging/Configuration/ ~/printer_data/config/KAMP

Schritt 2: Moonraker konfigurieren

Damit KAMP automatisch Updates über Moonraker erhält, füge folgendes in deine moonraker.conf ein:

[update_manager Klipper-Adaptive-Meshing-Purging]
type: git_repo
channel: dev
path: ~/Klipper-Adaptive-Meshing-Purging
origin: https://github.com/kyleisah/Klipper-Adaptive-Meshing-Purging.git
managed_services: klipper
primary_branch: main

Schritt 3: KAMP in printer.cfg einbinden

Füge ganz oben in deiner printer.cfg die Include-Anweisung hinzu:

[include KAMP_Settings.cfg]

# Wichtig: Sicherstellen, dass exclude_object aktiv ist
[exclude_object]

Wichtig: Dein Slicer muss Object Labeling (z.B. in PrusaSlicer/OrcaSlicer unter "Label objects") aktiviert haben, damit KAMP die einzelnen Objekte erkennen und die Bounding Box korrekt berechnen kann.

⚙️ Konfiguration

KAMP_Settings.cfg

Die Datei KAMP_Settings.cfg ist das Herzstück der Konfiguration. Hier legst du fest, welche Features aktiv sind und wie sie sich verhalten:

# KAMP_Settings.cfg

[include ./KAMP/Adaptive_Meshing.cfg]
[include ./KAMP/Line_Purge.cfg]
# [include ./KAMP/Voron_Purge.cfg]  # Alternative für Voron-Drucker
# [include ./KAMP/Smart_Park.cfg]   # Optionales Smart Parking

# ── Adaptive Meshing ──
[gcode_macro _KAMP_Settings]
variable_mesh_margin: 5             # Rand um das Modell in mm
variable_fuzz_amount: 0             # Zufällige Verschiebung der Messpunkte (0 = aus)
variable_probe_dock_enable: False   # True wenn du ein Klicky/Euclid-Probe nutzt
variable_attach_macro: 'Attach_Probe'
variable_detach_macro: 'Detach_Probe'

# ── Purge ──
variable_purge_height: 0.8          # Höhe der Purge-Linie
variable_tip_distance: 0            # Abstand zwischen Filament-Ende und Düsenspitze
variable_purge_margin: 10           # Abstand der Purge-Linie zum Druckobjekt
variable_purge_amount: 30           # Filament-Menge für die Purge-Linie (mm)
variable_flow_rate: 12              # Flussrate der Purge-Linie (mm³/s)
gcode:

Mesh-Parameter in printer.cfg

Deine bestehende [bed_mesh]-Sektion bleibt erhalten. KAMP überschreibt die mesh_min, mesh_max und probe_count Parameter dynamisch basierend auf dem G-Code:

[bed_mesh]
speed: 150
horizontal_move_z: 5
mesh_min: 10, 10
mesh_max: 220, 220
probe_count: 5, 5
algorithm: bicubic
fade_start: 1
fade_end: 10
fade_target: 0

🔧 Klipper Macro Integration

Spoolman: Deine Filament-Rollenverwaltung

Der entscheidende Schritt ist die Integration in dein START_PRINT-Makro. Hier rufst du die KAMP-Funktionen auf:

[gcode_macro START_PRINT]
gcode:
    {% set BED_TEMP = params.BED_TEMP|default(60)|float %}
    {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(200)|float %}

    # Bett aufheizen
    M190 S{BED_TEMP}

    # Homen
    G28

    # ── KAMP: Adaptives Mesh erstellen ──
    BED_MESH_CALIBRATE    # KAMP überschreibt dieses Kommando automatisch

    # Extruder aufheizen (nach dem Mesh, um Oozing zu vermeiden)
    M109 S{EXTRUDER_TEMP}

    # ── KAMP: Adaptive Purge-Linie ──
    LINE_PURGE            # Zeichnet Purge-Linie neben dem Modell

    # Druck starten
    G92 E0
    G1 Z2.0 F3000

Tipp: Die Reihenfolge ist wichtig! Erst BED_MESH_CALIBRATE (Mesh erstellen), dann Extruder aufheizen, dann LINE_PURGE. So vermeidest du, dass Filament während des Meshings aus der Düse tropft.

In deinem Slicer (z.B. OrcaSlicer) sieht der Start-G-Code dann so aus:

START_PRINT BED_TEMP=[bed_temperature_initial_layer_single] EXTRUDER_TEMP=[nozzle_temperature_initial_layer]

📊 Ergebnisse: Vorher vs. Nachher

Die Unterschiede nach der Einrichtung von KAMP sind sofort spürbar:

AspektOhne KAMPMit KAMP
Mesh-Dauer (kleines Teil)~90-120 Sekunden~10-20 Sekunden
Mesh-Dauer (volles Bett)~90-120 Sekunden~80-100 Sekunden
Purge-Linie PositionImmer gleich (z.B. linker Rand)Direkt neben dem Modell
Erste Schicht QualitätGut (bei kalibriertem Bett)Sehr gut (lokal optimiert)
Zeitersparnis pro DruckReferenz30-90 Sek. bei kleinen Teilen

Gerade bei kleinen Modellen auf einem großen Druckbett (z.B. ein Benchy auf einem 300x300mm Bett) macht sich KAMP extrem bemerkbar. Statt 25 Punkte auf dem gesamten Bett zu messen, werden nur 4-9 Punkte im relevanten Bereich gemessen. Das ist nicht nur schneller, sondern auch genauer, weil die Messpunkte dichter am tatsächlichen Druckbereich liegen.

🔍 Troubleshooting

Hier sind die häufigsten Probleme und ihre Lösungen:

"Move out of range" Fehler

Dieser Fehler tritt auf, wenn KAMP Messpunkte außerhalb des definierten Bereichs berechnet. Lösung:

# In KAMP_Settings.cfg den Margin reduzieren:
variable_mesh_margin: 0    # Statt 5

Überprüfe auch, ob deine mesh_min und mesh_max Werte in [bed_mesh] korrekt zum physischen Druckbereich passen.

KAMP erstellt kein adaptives Mesh

Das liegt meistens daran, dass der Slicer keine Objektinformationen im G-Code hinterlegt. Lösung:

  • PrusaSlicer/OrcaSlicer: Aktiviere "Label objects" in den Druckeinstellungen
  • Cura: Ist standardmäßig aktiviert (ab Version 5.x)
  • Prüfe den G-Code auf EXCLUDE_OBJECT_DEFINE-Einträge am Anfang der Datei

Purge-Linie klebt nicht / zu dünn

Passe die Purge-Parameter in KAMP_Settings.cfg an:

variable_purge_height: 0.6      # Niedriger = mehr Quetschung
variable_purge_amount: 40       # Mehr Filament = dickere Linie
variable_flow_rate: 10          # Langsamer = bessere Haftung

Mesh wird bei jedem Druck gleich erstellt

Stelle sicher, dass [exclude_object] in deiner printer.cfg aktiviert ist und Moonraker die G-Code-Dateien preprocessiert. In der moonraker.conf sollte stehen:

[file_manager]
enable_object_processing: True

🏁 Fazit

KAMP ist ein Must-Have für jeden Klipper-Nutzer. Die Installation dauert keine 10 Minuten und die Vorteile sind sofort spürbar:

  • Schnellere Druckstarts durch gezieltes Meshing nur im relevanten Bereich
  • Bessere erste Schichten durch lokal optimiertes Bed Leveling
  • Intelligentes Purging direkt neben dem Druckobjekt
  • Weniger Verschleiß am Probe-Sensor durch weniger Messpunkte

Wenn du bereits Klipper nutzt, gibt es keinen Grund, KAMP nicht zu installieren. Es ist eines dieser Upgrades, bei dem du dich fragst, warum du es nicht schon früher gemacht hast. Probier es aus – dein Drucker wird es dir danken! 🎉

Artikel teilen:Share article: