Anycubic Kobra Max: Unterschied zwischen den Versionen

Aus Stratum 0
Wechseln zu:Navigation, Suche
K (Notiz zu Hardwaremodifikation am Mainboard des Anycubic Kobra Max in Vorbereitung für Klipper)
K (Umrüstung auf Klipper)
 
(5 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 7: Zeile 7:
 
}}
 
}}
  
Der [https://www.anycubic.com/collections/kobra-series/products/kobra-max Anycubic Kobra Max] ist unser großer 3D-Drucker mit einem Bauraum von 40x40x45 cm. Er hat eine 0.4mm nozzle und kann 1.75 mm Filament (PETG, PLA, ABS, TPU) drucken.  
+
Der [https://www.anycubic.com/collections/kobra-series/products/kobra-max Anycubic Kobra Max] ist unser großer 3D-Drucker mit einem Bauraum von 40x40x45 cm. Er hat eine austauschbare nozzle und kann 1.75 mm Filament (PETG, PLA, ABS, TPU) drucken.  
 
Der Drucker kalibirert sich nicht vor jedem Druck. Es gibt aber einen Assistenten, um die Kalibrierung automatisch durchzuführen. Die mitgelieferte Software, sowie das Handbuch befinden sich im Auslieferungszustand auf der SD-Karte. Eine Sicherungskopie der Dateien liegt auf [http://trokn.space.stratum0.net/software/Anycubic%20Kobra%20Max/ trokn].
 
Der Drucker kalibirert sich nicht vor jedem Druck. Es gibt aber einen Assistenten, um die Kalibrierung automatisch durchzuführen. Die mitgelieferte Software, sowie das Handbuch befinden sich im Auslieferungszustand auf der SD-Karte. Eine Sicherungskopie der Dateien liegt auf [http://trokn.space.stratum0.net/software/Anycubic%20Kobra%20Max/ trokn].
  
 
==Hinweise zur Benutzung==
 
==Hinweise zur Benutzung==
 +
 +
Der Drucker scheint defekt zu sein. (Bei mir hat's funktioniert dadada, 2025-03-16)
 +
 +
Beim Drucken hört der Motor ab und zu auf das Filament zu befördern, vermutlich weil das Filament irgendwo im Nozzle verklebt. Manchmal nur für ein paar Sekunden, manchmal auch länger. Dabei macht der Motor teilweise unschöne, knirschende Geräusche, weil sich dann die Zahnräder ins Filament fressen, zuverlässig drucken ist deshalb nicht möglich.
 +
 +
Eine eventuelle Lösung (noch nicht getestet) wäre Retraction im Slicer auszustellen, dann tritt bei PLA aber auch viel Stringing auf.
 +
 +
Das Problem ist bei einer 0.6er und 0.8er Nozzle aufgetreten, meistens nach ca. 30 Minuten Druckzeit.
 +
 
:''Siehe [[3D-Drucken#Hinweise_zur_Benutzung]].''
 
:''Siehe [[3D-Drucken#Hinweise_zur_Benutzung]].''
  
Zeile 27: Zeile 36:
 
==== Datei drucken ====
 
==== Datei drucken ====
  
Die im Slicer präparierte GCode-Datei kann über die mitgelieferte microSD-Karte vom Rechner auf den Drucker übertragen werden. Octoprint ist aufgrund von Pi-Shortage noch ein WIP.
+
Die im Slicer präparierte GCode-Datei kann über die mitgelieferte microSD-Karte vom Rechner auf den Drucker übertragen werden. Alternativ kann über Octoprint auf [https://anycubic.s0 anycubic.s0] gedruckt werden.
  
 
==== Filament wechseln ====
 
==== Filament wechseln ====
Zeile 137: Zeile 146:
  
 
Die notwendigen Firmware Anpassungen für das Board in dem Drucker wurden bereits [https://github.com/Klipper3d/klipper/pull/6084 Upstream in Klipper gemerged], eine Beispiel-Konfiguration findet sich hier: [https://github.com/ryanpie86/Anycubic-Kobra-Max-Klipper-Conversion/blob/main/printer.cfg].
 
Die notwendigen Firmware Anpassungen für das Board in dem Drucker wurden bereits [https://github.com/Klipper3d/klipper/pull/6084 Upstream in Klipper gemerged], eine Beispiel-Konfiguration findet sich hier: [https://github.com/ryanpie86/Anycubic-Kobra-Max-Klipper-Conversion/blob/main/printer.cfg].
 +
 +
Die Klipper firmware wurde nun (2025-03-31) auf das Board geflashed, und MainsailOS auf dem anhängen Raspberry PI Zero 2 W installiert. Das WebUI ist unter [http://anycubic-kobra-max.local/ http://anycubic-kobra-max.local/] aus dem lokalen Netz im Stratum0 erreichbar. Der default Username ist <code>pi</code>.
 +
 +
== Kompilieren der Klipper Firmware mit Nix ==
 +
 +
Zunächst muss eine Nix expression zum bauen angelegt werde:
 +
 +
<pre>
 +
{
 +
  pkgs ? import <nixpkgs> { },
 +
}:
 +
 +
# Rename klipper.bin to firmware.bin, and copy to sdcard
 +
pkgs.klipper-firmware.override {
 +
  mcu = "HC32F460";
 +
 +
  # Generate this config file using
 +
  # `nix run nixpkgs#klipper-genconf`
 +
  firmwareConfig = ./config;
 +
}
 +
</pre>
 +
 +
Dann muss die firmware-config erzeugt werden. Hierzu kann das interaktive Konfigurationsmenü in einer Konsole wie folgt geöffnet werden: <code>nix-shell --packages klipper-genconf --command klipper-genconf</code>, und das Ergebnis in die lokale Datei <code>./firmware-config</code> ablegen. Wichtig ist:
 +
 +
* Microcontroller: HC32F460
 +
* Communication Interface: PA3 & PA2
 +
* Clock Speed: 200 MHz
 +
 +
Dann wird die Firmware mit <code>nix-build firmware.nix</code> gebaut. Hinter dem <code>result</code> Symlink findet sich eine <code>clipper.bin</code>, welche man umbenannt als <code>firmware.bin</code> auf die SD-Karte des Druckers kopiert. Es ist nicht notwendig, aber auch nicht schädlich, die <code>firmware.bin</code> nach dem erstem Boot (bei dem der Drucker die Firmware flashed) zu löschen.
 +
 +
== Installieren der Software auf dem Raspberry Pi Zero 2 W
 +
 +
* Download Image für rpi64 (der Raspberry Pi Zero 2 W ist bereits Aarch64 kompatibel) von [https://github.com/mainsail-crew/MainsailOS/releases/tag/1.3.2 https://github.com/mainsail-crew/MainsailOS/releases/tag/1.3.2]
 +
* <code>unxz</code> the image
 +
* Image auf SD-Karte brennen, z.B. mit <code>dd if=MAINSAILOS_IMAGE.xz of=/dev/disk/by-id/MEINE_SD status=progress oflag=direct bs=4M</code>
 +
* Auf der <code>bootfs</code> partition die <code>wpa_supplicant.conf</code> mit folgendem Inhalt anlegen:
 +
<pre>
 +
# Simple configuration for a typical WPA2 network
 +
 +
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
 +
update_config=1
 +
country=DE # DE Country code
 +
 +
network={
 +
        scan_ssid=1
 +
        ssid="Stratum0"
 +
        psk="stehtinderinfoecke"
 +
        proto=RSN
 +
        key_mgmt=WPA-PSK
 +
        pairwise=CCMP
 +
        auth_alg=OPEN
 +
}
 +
</pre>
 +
* Fertig, das system bootet und ist unter <code>mainsailos.local</code> verfügbar
 +
* Gute Anpassungen:
 +
** Per ssh mit <code>pi</code>:<code>raspberry</code> anmelden, und das Passwort ändern
 +
** Hostname ändern, via <code>raspi-config</code>
 +
** MainsailOS configurieren
 +
  
 
[[Kategorie:3D-Druck]]
 
[[Kategorie:3D-Druck]]

Aktuelle Version vom 31. März 2025, 22:01 Uhr

Anycubic Kobra Max
Anycubic Kobra Max.jpg
Beschreibung: 3D-Drucker
Status: working (Was heißt das?)
Kontakt: larsan, Pecca, #Druckberechtigte
Usage Policy: nach Einweisung durch Druckberechtigte

Der Anycubic Kobra Max ist unser großer 3D-Drucker mit einem Bauraum von 40x40x45 cm. Er hat eine austauschbare nozzle und kann 1.75 mm Filament (PETG, PLA, ABS, TPU) drucken. Der Drucker kalibirert sich nicht vor jedem Druck. Es gibt aber einen Assistenten, um die Kalibrierung automatisch durchzuführen. Die mitgelieferte Software, sowie das Handbuch befinden sich im Auslieferungszustand auf der SD-Karte. Eine Sicherungskopie der Dateien liegt auf trokn.

Hinweise zur Benutzung

Der Drucker scheint defekt zu sein. (Bei mir hat's funktioniert dadada, 2025-03-16)

Beim Drucken hört der Motor ab und zu auf das Filament zu befördern, vermutlich weil das Filament irgendwo im Nozzle verklebt. Manchmal nur für ein paar Sekunden, manchmal auch länger. Dabei macht der Motor teilweise unschöne, knirschende Geräusche, weil sich dann die Zahnräder ins Filament fressen, zuverlässig drucken ist deshalb nicht möglich.

Eine eventuelle Lösung (noch nicht getestet) wäre Retraction im Slicer auszustellen, dann tritt bei PLA aber auch viel Stringing auf.

Das Problem ist bei einer 0.6er und 0.8er Nozzle aufgetreten, meistens nach ca. 30 Minuten Druckzeit.

Siehe 3D-Drucken#Hinweise_zur_Benutzung.
Siehe 3D-Drucken#Druckberechtigte.

Workflow

Druckbett vorbereiten

Das Heizbett fährt zum Homen weiter nach hinten, als man vielleicht annimmt. Daher bitte darauf achten, dass die Füße in den grünen Markierungen stehen. Ist dies nicht der Fall, fährt der Drucker mit dem Stecker des Heizbetts in die Wand. Das macht den Drucker kaputt. Sind keine Markierungen vorhanden, sollten die vorderen Füße ziemlich genau an der Tischkannte stehen.

Slicen

PrusaSlicer bringt noch kein Profil speziell für den Anycubic Kobra Max, jedoch funktioniert der Drucker hervorragen mit den Einstellungen für den Creality CR-6 Max (0.4 mm nozzle) (Getestet von NoikK). Das Preset für dasFilament PETG funktioniert soweit ganz gut, ist mit 240°C jedoch etwas heiß. 240°C für die erste Schicht und 230°C oder weniger für weitere Schichten.

Der Drucker funktioniert in neueren Cura-Versionen (getestet mit 5.3).

Datei drucken

Die im Slicer präparierte GCode-Datei kann über die mitgelieferte microSD-Karte vom Rechner auf den Drucker übertragen werden. Alternativ kann über Octoprint auf anycubic.s0 gedruckt werden.

Filament wechseln

Das Filament kann man über die Navigation auf dem Display automatisch wechseln. Dabei sind ein paar Dinge unbedingt zu beachten, damit das Verstopfen des Seilzugs beim Entfernen des aktuell verwendeten Filaments verhindert wird. Das Handbuch enthält eine Beschreibung der notwendigen Schritte und eine Sicherungskopie liegt auf trokn.

Modell vom Bett entfernen

Um das Modell ohne Beschädigung des Druckbetts (z.B. durch Kratzen mit scharfkantigen, harten Gegenständen) zu entfernen muss darauf gewartet werde, dass das Druckbett hinreichend abgekühlt ist. Danach löst sich der Druck einfach von selbst ab.

Druck pausieren

Der Drucker kann im Druck pausiert werden und danach nahtlos weiterdrucken. Praktisch bei a) Stromausfällen, b) langen Druckzeiten, c) falls man die Farbe im Druck wechseln möchte bzw das Filament ausgeht d) falls man im Druck zum Beispiel eine Mutter in ein Modell einfügen soll.


Kalibrierung

Standard-Firmware-Einstellungen

>>> M503
SENDING:M503
echo:  G21    ; Units in mm (mm)
echo:; Filament settings: Disabled
echo:  M200 S0 D1.75
echo:; Steps per unit:
echo: M92 X80.00 Y80.00 Z400.00 E405.00
echo:; Maximum feedrates (units/s):
echo:  M203 X300.00 Y300.00 Z40.00 E60.00
echo:; Maximum Acceleration (units/s2):
echo:  M201 X700.00 Y600.00 Z100.00 E3000.00
echo:; Acceleration (units/s2): P<print_accel> R<retract_accel> T<travel_accel>
echo:  M204 P800.00 R1000.00 T1000.00
echo:; Advanced: B<min_segment_time_us> S<min_feedrate> T<min_travel_feedrate> X<max_x_jerk> Y<max_y_jerk> Z<max_z_jerk> E<max_e_jerk>
echo:  M205 B20000.00 S0.00 T0.00 X5.00 Y5.00 Z0.30 E5.00
echo:; Home offset:
echo:  M206 X0.00 Y0.00 Z0.00
echo:; Auto Bed Leveling:
echo:  M420 S0 Z0.00
echo:; PID settings:
echo:  M301 P22.20 I1.08 D119.00
echo:  M304 P97.10 I1.41 D1675.16
; Controller Fan
echo:  M710 S255 I0 A1 D60 ; (100% 0%)
echo:; Power-Loss Recovery:
echo:  M413 S1
echo:; Z-Probe Offset (mm):
echo:  M851 X0 Y0 Z0.20
echo:; Stepper driver current:
echo:  M906 X800 Y900 Z1300
echo:  M906 T0 E700
echo:; Driver stepping mode:
echo:  M569 S1 X Y Z
echo:  M569 S1 T0 E
echo:; Filament load/unload lengths:
echo:  M603 L0.00 U100.00
echo:; Filament runout sensor:
echo:  M412 S1


PID-Autotuning-Ergebnisse

HotEnd

>>> M303 E0 C10 S200
SENDING:M303 E0 C10 S200
PID Autotune start
....
PID Autotune finished! Put the last Kp, Ki and Kd constants from below into Configuration.h
#define DEFAULT_Kp 27.06
#define DEFAULT_Ki 2.53
#define DEFAULT_Kd 72.46


Bed

>>> M303 E-1 C3 S60
SENDING:M303 E-1 C3 S60
PID Autotune start
....
PID Autotune finished! Put the last Kp, Ki and Kd constants from below into Configuration.h
#define DEFAULT_bedKp 140.13
#define DEFAULT_bedKi 14.23
#define DEFAULT_bedKd 919.60


E-Steps

Commanded 100mm, but the actual extrusion was 97.55

From before (M92) E = 405.00

Correct Setting = (100 / 97.55) * 405 = 415.17

After retesting, this number didn't work. After some trial and error, I got perfect results with E = 423.00


Einstellungen Speichern

The last command saves it to non-volatile memory. In Pronterface Send:

M301 P27.06 I2.53 D72.46
M304 P140.13 I14.23 D919.60
M92 E423.00
M500

Umrüstung auf Klipper

Um auf dem Drucker die alternative Klipper Firmware zum laufen zu bekommen ist eine Hardwaremodifikation notwendig. Der 0 Ω Widerstand auf R65 muss entfernt werden, stattdessen muss R66 mit einem 0 Ω Widerstand bestückt werden (Quelle auf Reddit). Diese Modifikation wurde am 2024-12-23 durch Wucke13 durchgeführt. Nach der Veränderung wurde ein Homing aller Achsen (mit der original Firmware) erfolgreich getestet. Es lassen sich verfahren: X, Y, Z, E Achse; Heizung von Nozzle und Bett funktionieren (laut eigener Temperaturanzeige). Weitere Schritte zur Installation der Klipper Firmware wurden bisher nicht durchgeführt.

Die notwendigen Firmware Anpassungen für das Board in dem Drucker wurden bereits Upstream in Klipper gemerged, eine Beispiel-Konfiguration findet sich hier: [1].

Die Klipper firmware wurde nun (2025-03-31) auf das Board geflashed, und MainsailOS auf dem anhängen Raspberry PI Zero 2 W installiert. Das WebUI ist unter http://anycubic-kobra-max.local/ aus dem lokalen Netz im Stratum0 erreichbar. Der default Username ist pi.

Kompilieren der Klipper Firmware mit Nix

Zunächst muss eine Nix expression zum bauen angelegt werde:

{
  pkgs ? import <nixpkgs> { },
}:

# Rename klipper.bin to firmware.bin, and copy to sdcard
pkgs.klipper-firmware.override {
  mcu = "HC32F460";

  # Generate this config file using
  # `nix run nixpkgs#klipper-genconf`
  firmwareConfig = ./config;
}

Dann muss die firmware-config erzeugt werden. Hierzu kann das interaktive Konfigurationsmenü in einer Konsole wie folgt geöffnet werden: nix-shell --packages klipper-genconf --command klipper-genconf, und das Ergebnis in die lokale Datei ./firmware-config ablegen. Wichtig ist:

  • Microcontroller: HC32F460
  • Communication Interface: PA3 & PA2
  • Clock Speed: 200 MHz

Dann wird die Firmware mit nix-build firmware.nix gebaut. Hinter dem result Symlink findet sich eine clipper.bin, welche man umbenannt als firmware.bin auf die SD-Karte des Druckers kopiert. Es ist nicht notwendig, aber auch nicht schädlich, die firmware.bin nach dem erstem Boot (bei dem der Drucker die Firmware flashed) zu löschen.

== Installieren der Software auf dem Raspberry Pi Zero 2 W

  • Download Image für rpi64 (der Raspberry Pi Zero 2 W ist bereits Aarch64 kompatibel) von https://github.com/mainsail-crew/MainsailOS/releases/tag/1.3.2
  • unxz the image
  • Image auf SD-Karte brennen, z.B. mit dd if=MAINSAILOS_IMAGE.xz of=/dev/disk/by-id/MEINE_SD status=progress oflag=direct bs=4M
  • Auf der bootfs partition die wpa_supplicant.conf mit folgendem Inhalt anlegen:
# Simple configuration for a typical WPA2 network

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=DE # DE Country code

network={
        scan_ssid=1
        ssid="Stratum0"
        psk="stehtinderinfoecke"
        proto=RSN
        key_mgmt=WPA-PSK
        pairwise=CCMP
        auth_alg=OPEN
}
  • Fertig, das system bootet und ist unter mainsailos.local verfügbar
  • Gute Anpassungen:
    • Per ssh mit pi:raspberry anmelden, und das Passwort ändern
    • Hostname ändern, via raspi-config
    • MainsailOS configurieren