196 lines
9.7 KiB
Markdown
196 lines
9.7 KiB
Markdown
# Makros und G-code: Kobra S1 und Kobra 3
|
||
|
||
Stand **19.10.2026**. Interne Referenz — nicht unter `/doku`. Messwerte und Bettnetz-Story: `D:\Projekte\3DP\FDM\Wissen\Drucker\` (`Kobra S1.md`, `Kobra 3.md`). Stack: [Anycubic-Stack](Anycubic-Stack.md).
|
||
|
||
Quellen: `printer/gcode/help` (11.10. auf den Maschinen), GoKlipper/`extras_ace.go`, Rinkhals-RE `GOKLIPPER_ACE_GCODE_COMMANDS.md`, Grotti-Policy.
|
||
|
||
---
|
||
|
||
## Nicht tun
|
||
|
||
| Nicht | Warum | Stattdessen |
|
||
| --- | --- | --- |
|
||
| `FIRMWARE_RESTART` / `RESTART` | gklib Deadlock bis Power-Cycle (Rinkhals #32) | Display-Reboot oder Strom; hängenden Job: **Fehler löschen** (`SDCARD_RESET_FILE`) |
|
||
| `LEVIQ` / `LEVIQ2` aus Mainsail | Heizung + volle Nivellierfolge, fährt unerwartet | Am Display Auto-Level; Einzelschritte nur bewusst |
|
||
| `SAVE_CONFIG` aus Mainsail | schreibt u. a. Z-Offset mit | Dauerhaft nur gezielt / nach Display-Nivellieren |
|
||
| Nur Moonraker-Cancel | Anycubic-Task bleibt → Start-Code **10101** | Cancel + MQTT-stop (Grotti `abbrechen`) |
|
||
| Community-`ACE_SET_SLOT` / manuelles `G9111` als Grotti-Pfad | Grotti mappt über `.acm` + MQTT | Map in der App; Slice-`G9111` im Start-G-code belassen |
|
||
| `minimum_cruise_ratio` auf **0** (S1) | Moonraker hängt auf dieser Firmware | bei **0,05** belassen |
|
||
| `G28 Y` mit Teilen auf dem Bett (K3) | Sensorless-Home nach **vorn** über die Teile | Bett leeren; Abräumen ohne `G28 Z` |
|
||
| Blind `FEED` / `FEED_FILAMENT` ohne Unwind | Blockade bis Neustart (RE-Doku) | Unload/Unwind-Sequenz einhalten |
|
||
| `SET_KINEMATIC_POSITION` mit erfundener Z nach Stepper-aus | Portal sackt → Null daneben, Probe „No trigger“ oder Crash | echte letzte XYZ; oder Bett leer + `G28` |
|
||
| Freie G-code-Konsole in Grotti für Experimente | Policy | nur bekannte, bestätigte Scripts |
|
||
| Abräumen-Makro in `printer.cfg` pflegen | Rinkhals schreibt Config neu | Grotti schickt Scripts per Moonraker |
|
||
|
||
---
|
||
|
||
## Vanilla-Klipper-Alltag (beide Typen)
|
||
|
||
Befehl → was er macht. Anycubic-Hinweis nur wo nötig.
|
||
|
||
### Homes und Bewegung
|
||
|
||
| Befehl | Funktion |
|
||
| --- | --- |
|
||
| `G28` | Homed die genannten Achsen (ohne Argument: alle). **K3:** Y-Home fährt nach vorn — Bett muss leer sein. |
|
||
| `G0` / `G1` | Lineare Bewegung / Extrusion. Absolute/relative Modi wie üblich (`G90`/`G91`, `M82`/`M83`). |
|
||
| `M400` | Wartet, bis alle Moves fertig sind. |
|
||
| `SET_VELOCITY_LIMIT` | Limits für Speed/Accel zur Laufzeit. |
|
||
| `SET_KINEMATIC_POSITION` | Setzt die interne Position ohne zu fahren. Nach `M84`/Leerlauf riskant — siehe „Nicht tun“. |
|
||
| `SET_IDLE_TIMEOUT` | Idle-Zeit bis Stepper aus. Abräumen hält Idle bewusst länger. |
|
||
| `M84` / `M18` | Stepper aus → Achsen unhomed. Slice-Ende K3 macht das oft; Abräumen entfernt es beim Upload. |
|
||
|
||
### Heizen
|
||
|
||
| Befehl | Funktion |
|
||
| --- | --- |
|
||
| `M104` / `M109` | Düse Soll / warten bis erreicht. |
|
||
| `M140` / `M190` | Bett Soll / warten. |
|
||
| `TURN_OFF_HEATERS` | Düse und Bett aus. |
|
||
| `PID_CALIBRATE` | PID für Extruder oder Bett kalibrieren. Danach oft `SAVE_CONFIG` — auf diesen Maschinen vorsichtig. |
|
||
| `M106` / `M107` | Teilkühlung an / aus. |
|
||
|
||
### Drucklauf
|
||
|
||
| Befehl | Funktion |
|
||
| --- | --- |
|
||
| `PAUSE` / `RESUME` / `CANCEL_PRINT` | Rinkhals-Makros um Pause/Weiter/Abbruch. Moonraker-Cancel allein räumt den Anycubic-Task nicht. |
|
||
| `SDCARD_RESET_FILE` | Löscht hängenden virtual-sdcard-/Druckstatus („Fehler löschen“ in Grotti). |
|
||
| `PRINT_STATS` | Status des laufenden/letzten Jobs (Objekt auch über Moonraker). |
|
||
|
||
### Bettnetz und Probe
|
||
|
||
| Befehl | Funktion |
|
||
| --- | --- |
|
||
| `BED_MESH_CALIBRATE` | Tastet das Netz und schaltet es aktiv. |
|
||
| `BED_MESH_OUTPUT` | Gibt die Punkte aus, ohne zu fahren. |
|
||
| `BED_MESH_MAP` | Schreibt das interpolierte Netz in die Konsole. |
|
||
| `BED_MESH_CLEAR` | Schaltet die Korrektur aus. |
|
||
| `BED_MESH_OFFSET` | Verschiebt das Netz in X/Y. |
|
||
| `BED_MESH_PROFILE` | `LOAD` / `SAVE` / `REMOVE` für Profile. Dauerhaft erst mit `SAVE_CONFIG`. |
|
||
| `PROBE` | Ein Tastpunkt an der aktuellen Position. |
|
||
| `PROBE_ACCURACY` | Mehrfach tasten, Streuung ausgeben. |
|
||
| `PROBE_CALIBRATE` | Sensor kalibrieren (nicht der Z-Regler am Display). |
|
||
| `Z_OFFSET_APPLY_PROBE` | Laufenden G-code-Offset in `probe.z_offset` schreiben. |
|
||
| `SET_GCODE_OFFSET` | Offset nur für den aktuellen Auftrag. |
|
||
| `SAVE_CONFIG` | Schreibt Config dauerhaft — **nicht** blind aus Mainsail. |
|
||
|
||
### Diagnose
|
||
|
||
| Befehl | Funktion |
|
||
| --- | --- |
|
||
| `QUERY_ENDSTOPS` / `M119` | Endstop-Zustände. |
|
||
| `GET_POSITION` / `M114` | Toolhead-/Stepper-Position. |
|
||
| `QUERY_ADC` | ADC-Werte (z. B. Thermistoren). |
|
||
| `DUMP_TMC` | TMC-Register (Stepper nennen). |
|
||
|
||
### Slice-Start Anycubic
|
||
|
||
| Befehl | Funktion |
|
||
| --- | --- |
|
||
| `G9111` | Vorheizen aus dem Slicer: typisch `bedTemp=…` und `extruderTemp=…`. Steht im Maschinen-Start-G-code. Grotti ersetzt das nicht und startet auch nicht darüber. |
|
||
|
||
---
|
||
|
||
## ACE (gemeinsam)
|
||
|
||
Zwei Namenswelten:
|
||
|
||
1. **Open-Source** GoKlipper `extras_ace.go` (BunnyACE-Stil): `ACE_CHANGE_TOOL`, `ACE_FEED`, `ACE_RETRACT`, `ACE_SET_SLOT`, `ACE_QUERY_SLOTS`, `ACE_START_DRYING` / `ACE_STOP_DRYING`, Feed-Assist, Endless Spool, …
|
||
2. **Ausgeliefertes Binary** (Rinkhals-RE): u. a. `FEED_FILAMENT`, `UNWIND_FILAMENT`, `UNWIND_ALL_FILAMENT`, `SET_CURRENT_FILAMENT`, `ACE_INFO`, `ACE_STATUS`, Cutter-/Pipe-Befehle.
|
||
|
||
Grotti nutzt **keine** Community-Makros `ACE_SET_SLOT` / manuelles Tool-Mapping per G-code. Zuordnung: Sidecar `.acm` + MQTT `ams_settings` ([Senden-Queue](Senden-Queue.md), [ACE-Live](ACE-Live.md)). Slots anzeigen: Moonraker-Objekt `mmu` (Rinkhals). Trocknen: Moonraker `POST /server/filament_hub/start_drying` (nicht zwingend der G-code).
|
||
|
||
| Befehl (Auswahl) | Funktion |
|
||
| --- | --- |
|
||
| `ACE_CHANGE_TOOL` / Tool-Macros `T0`… | Werkzeugwechsel über ACE. |
|
||
| `ACE_FEED` / `FEED_FILAMENT` | Filament vom Gate zur Düse laden. **Vorher unloaden.** |
|
||
| `ACE_RETRACT` / `UNWIND_FILAMENT` | Zurückziehen / parkieren. |
|
||
| `ACE_SET_SLOT` | Inventar Slot setzen — Grotti meidet das. |
|
||
| `ACE_START_DRYING` / `ACE_STOP_DRYING` | Trockner; alternativ `filament_hub`-API. |
|
||
| `ACE_ENABLE_ENDLESS_SPOOL` / `…_DISABLE` / `…_STATUS` | Endless Spool. |
|
||
|
||
Details und Parameter: Rinkhals `docs/GOKLIPPER_ACE_GCODE_COMMANDS.md` (lokal unter `D:\Projekte\_ref\Rinkhals\`).
|
||
|
||
---
|
||
|
||
## Kobra S1 — Anycubic-Makros
|
||
|
||
Config-Sektion heißt `[leviQ3]`, die Befehle auf dem Gerät heißen **`LEVIQ2`**. Stecken in GoKlipper. Hilfe gelesen 11.10. über `printer/gcode/help`.
|
||
|
||
### LeviQ2
|
||
|
||
| Befehl | Funktion |
|
||
| --- | --- |
|
||
| `LEVIQ2` | Ganze Nivellierfolge: heizen, wischen, antasten. **Nicht** aus Mainsail. `SYNC=enable` startet danach neu. |
|
||
| `LEVIQ2_PREHEATING` | Vorheizen: Bett 55 °C, Düse 170 °C, dann `HOME_XY`. `S` = Düsentemp, `E` = Temp nach dem Wischen. |
|
||
| `LEVIQ2_WIPING` | Wischen: Netz löschen, Düse auf 140 °C, intern `G9112`, dann `G28 Z`. |
|
||
| `LEVIQ2_PROBE` | Antasten: `BED_MESH_CALIBRATE`, Lüfter/Bett aus, Z auf 20 mm, `HOME_XY`, Düse aus. |
|
||
| `LEVIQ_SET_ZERO` | Z-Basis und Home-Position auf 0. |
|
||
| `LEVIQ2_AUTO_ZOFFSET` | Löscht laut Hilfe den Koeffizienten K. |
|
||
| `LEVIQ2_AUTO_ZOFFSET_ON_OFF` | Schaltet automatischen Z-Offset. |
|
||
| `LEVIQ2_TEMP_OFFSET` | Temperaturausgleich (`expansion_factor` / `zoffset_base` in der Config). Fehlt im veröffentlichten Quelltext. |
|
||
| `HOME_XY` | Nur X/Y homen (von LeviQ-Schritten genutzt). |
|
||
|
||
Netz: 5×5, X/Y 5–245 mm. Details: Wissen `Kobra S1.md`.
|
||
|
||
### Wipe (Pad hinten)
|
||
|
||
| Befehl | Funktion |
|
||
| --- | --- |
|
||
| `WIPE_ENTER` | Anfahrt Pad (Y 250 → X 81, Y 273). |
|
||
| `WIPE_NOZZLE` | Wischbahn; wiederholt die Strecke X 96↔81. |
|
||
| `WIPE_STOP` | Kurze Stopp-Bahnen, dann X 75. |
|
||
| `WIPE_EXIT` | Weg vom Pad (X 83, Y 250). |
|
||
| `TO_THROW_POSITION` | Position zum Abwerfen (~X 47, Y 276). |
|
||
| `MOVE_TO_SWEEP_POSITION` | Wisch-/Kehrposition (gleiche Gegend). |
|
||
| `MOVE_TO_IMPACT_POSITION` | Weg vom Pad nach vorn rechts (Y 25, X 261). |
|
||
| `PRINT_LINE` | Purge-Linie bei Y 251, Z 0,28 bis X 125. |
|
||
|
||
---
|
||
|
||
## Kobra 3 — Anycubic-Makros
|
||
|
||
Befehle gelesen 11.10. auf `da26` (`92ee`/`6e41` gleiche `printer.generated.cfg`). Im veröffentlichten Quelltext heißen Teile noch `LEVIQ3_*` / `LEVIQ2_PROBE` — auf den drei Druckern gelten die Namen unten.
|
||
|
||
### LeviQ
|
||
|
||
| Befehl | Funktion |
|
||
| --- | --- |
|
||
| `LEVIQ` | Ganze Folge inkl. Z-Offset-Rechnung. **Nicht** aus Mainsail. `SYNC=enable` startet danach neu. |
|
||
| `LEVIQ_PREHEATING` | Z-Basis 0, Bett 60 °C, Düse 170 °C, `HOME_XY`, auf Düse warten. `S` / `E` wie bei S1. |
|
||
| `LEVIQ_WIPING` | Netz löschen, Düse 140 °C, `G9112`, `G28 Z`. |
|
||
| `LEVIQ_PROBE` | `BED_MESH_CALIBRATE`, Lüfter/Bett aus, Z auf 30 mm, `HOME_XY`, Düse aus. |
|
||
| `LEVIQ_SET_ZERO` | Z-Basis und Home auf 0. |
|
||
| `LEVIQ_AUTO_ZOFFSET` | Löscht Koeffizient K (Hilfe). |
|
||
| `LEVIQ_AUTO_ZOFFSET_ON_OFF` | Automatischen Z-Offset schalten (oft an). |
|
||
| `LEVIQ_TEMP_OFFSET` | Temperaturausgleich (Hilfezeile „LEVIQ3 TEMP OFFSET“). Fehlt im Open-Source-Code. |
|
||
| `HOME_XY` | Nur X/Y homen. |
|
||
|
||
Netz: 5×5, X 15–240, Y 15–235 mm. Details: Wissen `Kobra 3.md`.
|
||
|
||
### Wipe
|
||
|
||
| Befehl | Funktion |
|
||
| --- | --- |
|
||
| `WIPE_NOZZLE` | Dreimal `SINGLE_WIPE_NOZZLE` (Y 260/259, X 46–90, Z −0,8↔1, Lüfter an). |
|
||
| `SINGLE_WIPE_NOZZLE` | Eine einzelne Wischbahn. |
|
||
| `MOVE_HEAT_POS` | Z 15, dann X 278 (Heiz-/Parknahe Position). |
|
||
| `UNDERLINE` | Purge-Linie Z 0,28 bis X 180, ~40 mm Extrusion. |
|
||
| `MOVE_END_POS` | Ende/Park X 5, Y 242. |
|
||
|
||
### Wägezelle
|
||
|
||
| Befehl | Funktion |
|
||
| --- | --- |
|
||
| `CS1237_DUMP` | Debug-Ausgabe zum CS1237 (Z-Sensor / Kraft). Moonraker liefert keine laufende Gramm-Anzeige; `probe.last_z_result` fehlt. |
|
||
|
||
---
|
||
|
||
## Siehe auch
|
||
|
||
- [Anycubic-Stack](Anycubic-Stack.md) — MQTT-Start/Stop, 10101, kein Firmware-Restart
|
||
- [Senden-Queue](Senden-Queue.md) — `.acm`, kein Community-ACE-Makro
|
||
- [Abraeumen](Abraeumen.md) — K3 Farm-Scripts statt Druckermakro
|
||
- [ACE-Live](ACE-Live.md) — Live-Mapping und Trailer
|