Skip to main content

Introduction

Klipper unterstützt das sogen. Input- shaping. Dadurch kann (insbesondere bei hohem Drucktempo) "ringing" bzw. “ghosting” deutlich reduziert werden. Wir verwenden für die Messung der Resonanzen einen preisgünstigen Beschleunigungssensor (Accelerometer) vom Typ ADXL345 für die X- und Y- Achse. Es geht in diesem Tutorial primär um die praktische Umsetzung. Wer mehr über das Thema wissen möchte, wird hier fündig.

Der Autor übernimmt keine Verantwortung für mögliche Schäden am Drucker, Raspberry Pi oder ADXL345- Modul!

  1. Ein ADXL345- Modul (z.B. bei amazon erhältlich, Kostenpunkt ca. 2,00 bis 5,00 Euro) Es gibt verschiedene Ausführungen dieser Module. Die Reihenfolge der Pin- Belegung kann daher vom Foto abweichen.
    • Ein ADXL345- Modul (z.B. bei amazon erhältlich, Kostenpunkt ca. 2,00 bis 5,00 Euro)

    • Es gibt verschiedene Ausführungen dieser Module. Die Reihenfolge der Pin- Belegung kann daher vom Foto abweichen.

    • Eine gedruckte Halterung für die Y- Achse, stl- download von hier. Eine Mutter M3 und eine Schraube M3x12.

    • Sechs Dupontkabel female/female, Mindestlänge 40cm

    • Evtl. einen Lötkolben und etwas Lötzinn.

  2. Die Steckerleiste ist bei den meisten  ADXL345 Modulen noch nicht angelötet. Löten Sie diese auf die Oberseite der Platine und kneifen überstehende Spitzen auf der Unterseite mit einer kleinen Kneifzange ab. Trennen Sie den Drucker und Raspberry Pi vom Strom.
    • Die Steckerleiste ist bei den meisten ADXL345 Modulen noch nicht angelötet. Löten Sie diese auf die Oberseite der Platine und kneifen überstehende Spitzen auf der Unterseite mit einer kleinen Kneifzange ab.

    • Trennen Sie den Drucker und Raspberry Pi vom Strom.

    • Verbinden Sie den Raspberry Pi und das ADXL345 Modul mit den Dupont- Kabeln, wie auf der Skizze und dem Foto gezeigt.

    • Kontrollieren Sie die Verkabelung! Bei einer fehlerhaften Verkabelung können Pi oder Accelerometer beschädigt werden.

  3. Gehen Sie auf "Nummer sicher" und fertigen eine 1:1 Kopie der MicroSD, welche sich im Raspberry Pi befindet, an. Das geht z.B. mit dem Tool Win32DiskImager unter Windows problemlos. Wir benötigen des Weiteren unter Windows die Tools Putty und WinSCP, die wir bereits aus den anderen Tutorials kennen. Schließen Sie Pi und Drucker wieder an und booten mit der Sicherungskopie. Wir  loggen uns zunächst über Putty via SSH- Verbindung auf unserem Klipper- System  ein.
    • Gehen Sie auf "Nummer sicher" und fertigen eine 1:1 Kopie der MicroSD, welche sich im Raspberry Pi befindet, an. Das geht z.B. mit dem Tool Win32DiskImager unter Windows problemlos.

    • Wir benötigen des Weiteren unter Windows die Tools Putty und WinSCP, die wir bereits aus den anderen Tutorials kennen.

    • Schließen Sie Pi und Drucker wieder an und booten mit der Sicherungskopie. Wir loggen uns zunächst über Putty via SSH- Verbindung auf unserem Klipper- System ein.

    • Zunächst muss die Python- Programmbibliothek NumPy installiert werden. Dazu geben wir den Befehl ~/klippy-env/bin/pip install -v numpy ein und bestätigen mit Enter. Die Installation kann bis zu 20 Minuten dauern.

    • Danach geben wir sudo apt install python-numpy python-matplotlib ein und bestätigen erneut mit Enter. Nun werden weitere, programmbezogene Abhängigkeiten installiert.

    • Die folgende Abfrage beantworten wir mit "Yes".

  4. Für die Kommunikation zwischen Accelerometer und Pi müssen wir die SPI- Schnittstelle des Pi aktivieren. Dazu geben wir zunächst  in Putty sudo raspi-config ein,  bestätigen mit Enter und geben dann unser Passwort ein.
    • Für die Kommunikation zwischen Accelerometer und Pi müssen wir die SPI- Schnittstelle des Pi aktivieren.

    • Dazu geben wir zunächst in Putty sudo raspi-config ein, bestätigen mit Enter und geben dann unser Passwort ein.

    • Im Configuration Tool wählen wir zunächst Punkt 3 Interface Options.

    • Es öffnet sich ein weiteres Konfigurationsfenster und wir wählen P4 SPI. Wir gehen auf "Select" und speichern die Änderung ab.

  5. Wir loggen uns erneut über Putty ein und geben cd ~/klipper/ ein plus Enter. Danach sudo cp "./scripts/klipper-mcu-start.sh" /etc/init.d/klipper_mcu plus Enter und Passwortbestätigung, gefolgt von sudo update-rc.d klipper_mcu defaults plus Enter und make menuconfig plus Enter. Es öffnet sich ein Konfigurationsfenster wo wir Enable extra low-level und MicroController Architecture  (Linux process ) aktivieren. Wir speichern via "Quit". Wir geben dann sudo service klipper stop plus Enter ein, gefolgt von  sudo usermod -a -G tty pi plus Enter . Mit make flash plus Enter wird der virtuelle Drucker angelegt. Über sudo service klipper start plus Enter wird Klipper wieder gestartet.
    • Wir loggen uns erneut über Putty ein und geben cd ~/klipper/ ein plus Enter. Danach sudo cp "./scripts/klipper-mcu-start.sh" /etc/init.d/klipper_mcu plus Enter und Passwortbestätigung, gefolgt von sudo update-rc.d klipper_mcu defaults plus Enter und make menuconfig plus Enter.

    • Es öffnet sich ein Konfigurationsfenster wo wir Enable extra low-level und MicroController Architecture (Linux process ) aktivieren. Wir speichern via "Quit".

    • Wir geben dann sudo service klipper stop plus Enter ein, gefolgt von sudo usermod -a -G tty pi plus Enter . Mit make flash plus Enter wird der virtuelle Drucker angelegt. Über sudo service klipper start plus Enter wird Klipper wieder gestartet.

  6. Für die Messungen mit dem ADXL345 sind Änderungen in der Konfiguration erforderlich. Diese werden nach der Messung  wieder zurückgenommen. Wir öffnen nun in Mainsail unter "Maschine" printer.cfg und geben folgende Zeilen ein: [mcu rpi] serial: /tmp/klipper_host_mcu [adxl345] cs_pin: rpi:None [resonance_tester] accel_chip: adxl345 probe_points:     100,100,20  # an example
    • Für die Messungen mit dem ADXL345 sind Änderungen in der Konfiguration erforderlich. Diese werden nach der Messung wieder zurückgenommen.

    • Wir öffnen nun in Mainsail unter "Maschine" printer.cfg und geben folgende Zeilen ein: [mcu rpi] serial: /tmp/klipper_host_mcu [adxl345] cs_pin: rpi:None [resonance_tester] accel_chip: adxl345 probe_points: 100,100,20 # an example

    • Orientieren Sie sich bei der Formatierung am abgebildeten Screenshot!

    • Setzen Sie dann max_accel und max_accel_to_decel auf 10000 herauf.

    • Stellen Sie diese Werte nach der Messung unbedingt wieder auf die Normalwerte zurück oder verwenden Sie wieder die originale SD.

    • Speichern Sie die Änderungen ab.

  7. Für die Messung auf der X-Achse benötigt man nicht zwingend eine Halterung für das ADXL345- Modul. Es kann auf dem Deckel des Filamentsensors mit der  M3- Schraube fixiert werden. Evtl. muss eine etwas längere M3- Schraube verwendet werden. Achten Sie darauf, dass die X-Achsenmarkierung auf dem Accelerometer auch tatsächlich parallel zur X-Achse ist. Das Modul muss gut fixiert sein!
    • Für die Messung auf der X-Achse benötigt man nicht zwingend eine Halterung für das ADXL345- Modul. Es kann auf dem Deckel des Filamentsensors mit der M3- Schraube fixiert werden.

    • Evtl. muss eine etwas längere M3- Schraube verwendet werden.

    • Achten Sie darauf, dass die X-Achsenmarkierung auf dem Accelerometer auch tatsächlich parallel zur X-Achse ist. Das Modul muss gut fixiert sein!

    • Für die Y- Achse verwenden wir die gedruckte Halterung. Fixieren Sie das Modul zunächst mit zwei kurzen M3- Schrauben. Klemmen Sie für die zweite Messung den Halter mit Modul an die Fronseite des Druckbettes (s. Foto).

  8. Zunächst testen wir die Funktion des ADXL345. Dazu öffnen wir Mainsail, geben in der Konsole ACCELEROMETER_QUERY ein und gehen auf SENDEN.  Es sollten nun drei Werte angezeigt werden. Ist das nicht der Fall, prüfen Sie noch einmal die Verkabelung. War der Test erfolgreich, können wir mit TEST_RESONANCES AXIS=X unsere Messung für die X-Achse starten. Die Messung dauert ein paar Minuten und es wird mitunter recht laut. Lassen Sie den Drucker auf keinen Fall unbeaufsichtigt!!
    • Zunächst testen wir die Funktion des ADXL345. Dazu öffnen wir Mainsail, geben in der Konsole ACCELEROMETER_QUERY ein und gehen auf SENDEN. Es sollten nun drei Werte angezeigt werden. Ist das nicht der Fall, prüfen Sie noch einmal die Verkabelung.

    • War der Test erfolgreich, können wir mit TEST_RESONANCES AXIS=X unsere Messung für die X-Achse starten.

    • Die Messung dauert ein paar Minuten und es wird mitunter recht laut. Lassen Sie den Drucker auf keinen Fall unbeaufsichtigt!!

    • Wenn die Messung der X-Achse beendet ist, wird das ADXL345- Modul -wie zuvor beschrieben- am Heizbett montiert. Die zweite Messung starten wir mit TEST_RESONANCES AXIS=Y

  9. Wir öffnen nun das Tool Win SCP und navigieren zum Ordner tmp im Hauptverzeichnis. Dort sollten sich nun zwei csv- Dateien befinden. Diese beiden Dateien kopieren wir mit WinSCP sicherheitshalber auf unsere Festplatte, da der Ordner tmp beim shutdown des PI gelöscht wird.
    • Wir öffnen nun das Tool Win SCP und navigieren zum Ordner tmp im Hauptverzeichnis. Dort sollten sich nun zwei csv- Dateien befinden.

    • Diese beiden Dateien kopieren wir mit WinSCP sicherheitshalber auf unsere Festplatte, da der Ordner tmp beim shutdown des PI gelöscht wird.

    • Wir gehen wieder in das Putty- Terminal und geben folgende Zeile ein: ~/klipper/scripts/calibrate_shaper.py ~/resonances_x_*.csv -o ~/shaper_calibrate_x.png Das Script führt nun ein paar Berechnungen aus und schlägt am Ende einen shaper- Typ und eine Frequenz vor.

    • Klipper unterstützt mehrere shaper. Empfohlen werden zumeist MZV oder EI. Andere shaper arbeiten aggressiver. Dabei wird zwar mehr ringing eliminiert aber dafür werden Kanten unschärfer bzw. leicht rund gedruckt.

    • Für die Y- Achse gehen wir analog vor. Die Eingabe lautet: ~/klipper/scripts/calibrate_shaper.py ~/resonances_y_*.csv -o ~/shaper_calibrate_y.png

  10. Wenn wir nun in WinSCP noch einmal den Ordner tmp öffnen, sollten dort zwei Grafiken im Format *.png hinzugekommen sein. Die Grafiken können mit Windows- Tools geöffnet werden. Im abgebildeten Screenshot ist die grafische Auswertung für "X" dargestellt".  Der empfohlene shaper MZV korreliert mit dem Peak der X- Kurve.
    • Wenn wir nun in WinSCP noch einmal den Ordner tmp öffnen, sollten dort zwei Grafiken im Format *.png hinzugekommen sein.

    • Die Grafiken können mit Windows- Tools geöffnet werden. Im abgebildeten Screenshot ist die grafische Auswertung für "X" dargestellt". Der empfohlene shaper MZV korreliert mit dem Peak der X- Kurve.

    • Der MZV- shaper in der abgebildeten Grafik weicht von der shaper- Empfehlung aus step 9 etwas ab (66.2Hz vs. 61.0Hz), da es sich hier um eine andere Messung mit anderem Setup handelt.

    • Wir öffnen in Mainsail unter "Maschine" printer.cfg und fügen die vorgeschlagenen shaper und Frequenzen unter [input_shaper] in unsere Konfiguration ein und speichern diese.

    • Wir können nun den Drucker und den Pi ausschalten, das ADXL345 Modul vom Heizbett lösen und die Dupontkabel vom Pi abziehen. Wenn sich etwas am Setup des Druckers ändert oder der Drucker versetzt wird, sollte eine neue Messung vorgenommen werden.

  11. Unter https://www.klipper3d.org/prints/ringing... kann ein Testmodell für  das input shaper- Tuning heruntergeladen werden. Beachten Sie die slicer- settings (s. Screenshot) und deaktivieren Sie vor dem Druck PA durch Eingabe von SET_PRESSURE_ADVANCE ADVANCE=0 in der Mainsail- Konsole. Auf dem linken Modell (ohne shaper gedruckt ) ist das ringing gut zu erkennen, rechts (mit shaper) sieht es diesbezüglich deutlich besser aus :-)
    • Unter https://www.klipper3d.org/prints/ringing... kann ein Testmodell für das input shaper- Tuning heruntergeladen werden. Beachten Sie die slicer- settings (s. Screenshot) und deaktivieren Sie vor dem Druck PA durch Eingabe von SET_PRESSURE_ADVANCE ADVANCE=0 in der Mainsail- Konsole.

    • Auf dem linken Modell (ohne shaper gedruckt ) ist das ringing gut zu erkennen, rechts (mit shaper) sieht es diesbezüglich deutlich besser aus :-)

  12. Mitunter kommt die abgebildete Fehlermeldung. Hier liegt dann oft ein Konflikt vor, wenn z.B. Touchscreen- Treiber auf die SPI Schnittstelle zugreifen.  Lösung: Wir öffnen  via sudo nano /boot/config.txt die Bildschirmkonfiguration, setzen vor dtoverlay ein Rautezeichen und speichern ab. Nach einem Reboot sollte der Fehler behoben sein.
    • Mitunter kommt die abgebildete Fehlermeldung. Hier liegt dann oft ein Konflikt vor, wenn z.B. Touchscreen- Treiber auf die SPI Schnittstelle zugreifen. Lösung: Wir öffnen via sudo nano /boot/config.txt die Bildschirmkonfiguration, setzen vor dtoverlay ein Rautezeichen und speichern ab. Nach einem Reboot sollte der Fehler behoben sein.

    • Für die Messungen benötigen wir das Display nicht. Nach erfolgter Messung kann dtoverlay wieder aktiviert werden.

Finish Line

Bernd Brinkert

Member since: 11/21/2020

217 Reputation

11 Guides authored

2 Comments

Leider funktioniert die Anleitung nicht mehr mit Python 3 😢

Knut Knillenhauer - Reply

Die Anleitung bezieht sich auf die in "HowTo Nr.1" verlinkte image- Datei. Hier ist Python 2.7.16 installiert.

Bernd Brinkert -

Add Comment

View Statistics:

Past 24 Hours: 2

Past 7 Days: 31

Past 30 Days: 146

All Time: 5,076