Qidi X-Max 3 Testing / Mesh leveling funktioniert nicht - z fade - load mesh - Klipper Configuration files - Macros anpassen

  • Hallo Leute,

    nachdem ich nun Zugriff auf meine Kiste via SSH bekommen habe, zerbreche ich mir gerade den Kopf, wie ich ein aktuelles Problem mit ungenügend extrahierten Stellen nach dem Mesh Bed Leveling beheben kann.


    Meine Ecken sehen die ganze Zeit unterextrudiert aus, während der mittlere Bereich Top ausschaut. Die Bett Mitte ist ja gemäss Klipper auch ca. 0,2mm höher als die Ecken.


    Es geht um einen Qidi X-Max 3.


    Mesh Bed Leveling erzeugt ein schönes Mesh und die Varianz ist in Ordnung.

    Aber jetzt vermute ich, dass das Mesh nie geladen wird und daher bei der Erstellung der ersten Schicht nicht berücksichtigt wird.


    Wie kann ich also auf die Konfiguration zugreifen und etwas wie BED_MESH_PROFILE LOAD=default eingeben?

    Oder wo ist es möglich, einen Z-Offset-Wert zuzuweisen, denn sobald man SAVE_CONFIG drückt, schreddert die Maschine die Düse in die Builplate (Offset vom Drucker wird irgendwie nicht übertragen).


    Beim lesen der Klipper Doku ist mir "Z-Fade" aufgefallen. Hier möchte ich auch die Spezifikationen anpassen.


    Wie kann ich am besten die vorhandenen Makros anpassen?

    Und Frage 2, wie kann ich testen, ob ein Mesh nicht nur erstellt wurde, sondern auch tatsächlich geladen und berücksichtigt wird?


    Ich wäre dankbar, wenn mir jemand einen Tipp geben könnte. Klipper ist neu für mich :)

  • Finger an die Z-Spindeln, wenn er während der ersten Schicht die Z-Achse bewegt, dann wird die Korrektur angewendet.. Bewegt er sich in Z nicht, dann ist sie vermutlich nicht aktiv.


    Wenn ichs recht im Kopf habe, gab es da eine Stolperfalle in Klipper mit der Zeile: BED_MESH_PROFILE LOAD=default .. von wegen was mit Schreibweise und Anführungsstrichen. Üblicherweise kommt das wohl in das Print Start Macro normal in der Printer.cfg. Die müsste doch im Dateieditor in Fluidd oder per SSH problemlos editierbar sein.


    und dann hört mein Vierteilwissen zu Klipper leider wieder auf, ich hab da an meinem Max nix gemacht, das lief so aus dem Karton raus (allerdings habe ich nicht die neueste Firmware drauf).

  • Ok, ich habe es durchgezogen und erstmal 1 Stunde Tests gemacht.


    Ende vom Lied ist folgendes: das Teil erzeugten die schönsten meshs in Klipper, aber beim ersten Layer bleiben die Achsen still. Außer ein bissl z-Hop.


    Dann mal unter custom GCODE ein Kommando hinter G28 (Aber in Prusaslicer bzw. Qidislicer!) eingefügt. Printer.CFG kann ich auch öffnen aber habe die richtige Stelle nicht gefunden.


    BED_MESH_PROFILE LOAD=default



    Das Teil bewegt nun die Z Achse beim abfahren des ersten Layers und produziert beste Ergebnisse. Fuck off. Seit einem Monat bin ich da dran. Warum sagt mir das keiner? Kann doch nicht wahr sein. Ich bin voll der Anfänger. Warum muss ich so etwas herausfinden😃





    Und jetzt möchte ich gerne Feintuning erreichen. Wer weiß was das KAMPS Profil ist?

    Und wo bzw in welcher cog Datei stelle ich z-Fade ein?


    Edited once, last by 3dJones ().

  • Irgend etwas machst du grundlegend falsch. Normalerweise machen die Qidis X-Plus3/X-Max3 das mesh vor jedem Druck und laden das auch. Welchen Slicer benutzt du ?

    Der Befehl dafür steht im Start G-Code ( Printer Settings/Custom G-Code/ Start G-Code) im Qidi-Slicer ( G29 ; mesh bed leveling ,comment this code to close it ). Damit Kamp Meshing funktioniert muss nur im Qidi Slicer im Start G-Code ganz am Anfang ein M117 eingefügt werden. Danach sollte alles funktionieren.


    Gruß Sven

  • Ok cool. Danke für die Tipps.

    G29 hatte ich selbst auskommentiert, weil es mir auf die Nerven gegangen ist. Ansonsten war das alles wie im Auslieferungszustand von Qidislicer in der letzten Version….



    Edited once, last by 3dJones ().

  • Bei mir fehlt ausserdem PRINT_START


    Habe gerade Qidislicer auf einer anderen Maschine neu installiert, dort steht der String.

    Wer weiss. Vielleicht hat der DAU das gelöscht und in PRINT_START steht auch die Routine für Mesh loading drin.....


    Probiere ich gleich mal aus.


    Warum muss man M117 (Set LCD Message) eingeben? Verstehe ich nicht. Was wird damit ausgelöst?

  • Die Erklärung dazu findest du im Github für Kamp


    GitHub - kyleisah/Klipper-Adaptive-Meshing-Purging: A unique leveling solution for Klipper-enabled 3D printers!
    A unique leveling solution for Klipper-enabled 3D printers! - GitHub - kyleisah/Klipper-Adaptive-Meshing-Purging: A unique leveling solution for…
    github.com


    Troubleshooting:

    No matter what, meshes and purges are not adapting!

    This happens when Moonraker's object processor is putting exclude object definitions in the wrong spot (AFTER Print_Start rather than before). This is usually fixed if you add M117 before your print_start macro in your slicer's starting gcode. M117 is just a basic "clear display" gcode, but will force the preprocessor to place the definition macros in the correct spot.

  • Cool Danke:thumbup:


    Also Du hast schon recht.

    Bei mir funktioniert plötzlich das mesh leveling und auch Kamp wird ausgeführt.

    Bei kleinen Teilen wird ein mini Mesh erzeugt, dass kann ich mir dann auch in Klipper anschauen. Bei Drucken sehe ich auch ein automatisch aktiviertes Profil KAMP.


    In dem Github Artikel gibt es viel mehr Infos und Einstellungsmöglichkeiten. Z.B. adaptive purge und andere Kleinigkeiten kann man modifizieren. Hast Du das bei Dir alles aktiviert?


    Wie genau der Zusammenhang bei Qidi Maschinen ist, habe ich noch nicht verstanden.

    Hast Du da einfach die configs geändert oder vielleicht sogar überschrieben?

    Es gibt den Install Wizard den ich über SSH laufen lassen kann. Davor habe ich mich gesträubt, da ich glaube ich deutlich schaden anrichten kann.

    Also scheinbar ist KAMP bei Qidi in einer Grundvariante von Haus aus aktiviert, stimmt's?


    Allgemein würde ich gerne lernen und verstehen wie das bei Klipper mit den Macros läuft und was die Zusatzbedingungen bei Qidi sind.

    Beispiel, ich sehe ein Macro "Purge Line" und kann da Einstellungen vornehmen und SEND drücken (in Klipper). Aber es passiert nichts und ich bin unsicher an welcher Stelle der Prozesskette ich stehe bzw. was die Auswirkungen sind. Offenbar kann ich ja wohl nicht einfach die Standard Klipper Empfehlungen umsetzen, da es Qidi spezifische Eigenheiten gibt...


    Kennt Ihr eine gute Quelle dafür oder noch andere gute Tricks bei denen es sich lohnen würde vorhandene Macros zu erweitern?

  • Ich persönlich würde an den Konfigurationsdateien im Drucker nichts ändern.

    Sobald es ein Update von Qidi gibt ist das ja alles wieder futsch und du darfst von vorne anfangen.

    Wenn du etwas verändern willst dann mach das über G-Code aus dem Slicer heraus und nicht direkt im Drucker.


    Was möchtest du überhaupt erreichen ?

    Passt die Druckqualität nicht oder was ist das Problem ?


    Gruß Sven

  • Bed Mesh - Klipper documentation


    Quote

    Loading the default profile

    Previous versions of bed_mesh always loaded the profile named default on startup if it was present. This behavior has been removed in favor of allowing the user to determine when a profile is loaded. If a user wishes to load the default profile it is recommended to add BED_MESH_PROFILE LOAD=default to either their START_PRINT macro or their slicer's "Start G-Code" configuration, whichever is applicable.

    Alternatively the old behavior of loading a profile at startup can be restored with a [delayed_gcode]:

    Code
    [delayed_gcode bed_mesh_init]
    initial_duration: .01
    gcode:  BED_MESH_PROFILE LOAD=default

    Sieht bei mir so aus:

  • Moin,


    woran kann es liegen, dass Prusaslicer nicht folgendes Grid für das KAMP meshing produziert?

    Hier ist die Konsole, wenn ich Qidislicer nutze:


    07:46:53 // probe at 59.132,70.937 is z=-0.050000

    07:46:56 // probe at 38.419,70.943 is z=-0.065000

    07:46:57 // probe at 38.419,70.943 is z=-0.065000

    07:46:59 // probe at 38.419,70.943 is z=-0.065000

    07:47:00 // probe at 38.419,70.943 is z=-0.065000

    07:47:03 // probe at 17.707,70.937 is z=-0.085000

    07:47:04 // probe at 17.707,70.937 is z=-0.087500

    07:47:06 // probe at 17.707,70.937 is z=-0.085000

    07:47:07 // probe at 17.707,70.937 is z=-0.087500

    07:47:10 // probe at -3.000,70.937 is z=-0.107500

    07:47:11 // probe at -3.000,70.937 is z=-0.110000

    07:47:13 // probe at -3.000,70.937 is z=-0.110000

    08:19:14 !! Probing failed due to printer shutdown

    08:19:14 // Shutdown due to webhooks request

    // Once the underlying issue is corrected, use the

    // "FIRMWARE_RESTART" command to reset the firmware, reload the

    // config, and restart the host software.

    // Printer is shutdown

    08:19:14 !! Shutdown due to webhooks request

    08:19:17 $ FIRMWARE_RESTART

    08:19:17 // Klipper state: Disconnect

    08:19:26 // Klipper state: Ready

    09:54:04 // metadata={"size": 40547, "modified": 1672557858.7720053, "uuid": "0fba213c-d117-4143-8267-45ac688d1c87", "slicer": "QIDISlicer", "slicer_version": "1.0.7", "gimage": "0`0007`1001l0@00?

    09:54:04 File opened:.cache/Form-Kubus.gcode Size:40547

    09:54:04 File selected

    09:54:07 // Run Current: 0.80A Hold Current: 0.80A

    09:54:09 // Run Current: 0.98A Hold Current: 0.98A

    09:54:09 // Run Current: 0.89A Hold Current: 0.89A

    09:54:12 // Run Current: 0.98A Hold Current: 0.98A

    09:54:21 // Run Current: 1.09A Hold Current: 1.09A

    09:54:22 // Run Current: 1.09A Hold Current: 1.09A

    09:56:08 // led_enable : 0

    09:56:08 // status_macro: 'status_meshing'

    09:56:08 // fuzz_enable : 0

    09:56:08 // fuzz_min : 0.000000

    09:56:08 // fuzz_max : 4.000000

    09:56:08 // probe_dock_enable: 0

    09:56:08 // attach_macro: 'Attach_Probe'

    09:56:08 // detach_macro: 'Dock_Probe'

    09:56:08 // 4 object points, clamping to bed mesh [(25.0, 10.0) (315.0, 315.0)]

    09:56:08 // Object bounds, clamped to the bed_mesh: (25.0, 25.043), (118.43, 125.043)

    09:56:08 // Algorithm: lagrange

    09:56:08 // Points: x: 6, y: 6

    09:56:08 // Generating new points...

    09:56:08 // bed_mesh: generated points

    // Index | Tool Adjusted | Probe

    09:56:08 // 0 | (-3.0, 20.6) | (25.0, 25.0)

    09:56:08 // 1 | (15.7, 20.6) | (43.7, 25.0)

    09:56:08 // 2 | (34.4, 20.6) | (62.4, 25.0)

    09:56:08 // 3 | (53.0, 20.6) | (81.0, 25.0)

    09:56:08 // 4 | (71.7, 20.6) | (99.7, 25.0)

    09:56:09 // 5 | (90.4, 20.6) | (118.4, 25.0)

    09:56:09 // 6 | (90.4, 40.6) | (118.4, 45.0)

    09:56:09 // 7 | (71.7, 40.6) | (99.7, 45.0)

    09:56:09 // 8 | (53.0, 40.6) | (81.0, 45.0)

    09:56:09 // 9 | (34.4, 40.6) | (62.4, 45.0)

    09:56:09 // 10 | (15.7, 40.6) | (43.7, 45.0)

    09:56:09 // 11 | (-3.0, 40.6) | (25.0, 45.0)

    09:56:09 // 12 | (-3.0, 60.6) | (25.0, 65.0)

    09:56:09 // 13 | (15.7, 60.6) | (43.7, 65.0)

    09:56:09 // 14 | (34.4, 60.6) | (62.4, 65.0)

    09:56:09 // 15 | (53.0, 60.6) | (81.0, 65.0)

    09:56:09 // 16 | (71.7, 60.6) | (99.7, 65.0)

    09:56:09 // 17 | (90.4, 60.6) | (118.4, 65.0)

    09:56:09 // 18 | (90.4, 80.6) | (118.4, 85.0)

    09:56:09 // 19 | (71.7, 80.6) | (99.7, 85.0)

    09:56:09 // 20 | (53.0, 80.6) | (81.0, 85.0)

    09:56:09 // 21 | (34.4, 80.6) | (62.4, 85.0)

    09:56:09 // 27 | (53.0, 100.6) | (81.0, 105.0)

    09:56:09 // 28 | (71.7, 100.6) | (99.7, 105.0)

    09:56:09 // 35 | (-3.0, 120.6) | (25.0, 125.0)










    Bei Prusaslicer wird stumpf das komplette Bett gemeshed....

    Hier der definierte Start custom gcode in prusaslicer (sieht identisch aus mit Qidislicer):



    M117

    PRINT_START

    G28

    M141 S0

    G0 Z50 F600

    M190 S[first_layer_bed_temperature]

    G28 Z

    G29

    G0 X0 Y0 Z50 F6000

    M109 S[first_layer_temperature]

    M83

    G0 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0)} Z5 F6000

    G0 Z0.2 F600

    G1 E3 F1800

    G1 X{(min(print_bed_max[0], first_layer_print_min[0] + 80))} E{85 * 0.04} F3000

    G1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 2} E{2 * 0.04} F3000

    G1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} E{85 * 0.04} F3000

    G1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 85} E{83 * 0.04} F3000

    G1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0) + 2} E{2 * 0.04} F3000

    G1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 5} E{80 * 0.04} F3000

  • Dieser Teil in der printer.cfg am Qidi X-Plus3 war/ist dafür veranwortlich. Achtung! Das ist der Auszug aus der printer.cfg Firmware 4.2.8.

    Weiter konnte ich es nicht untersuchen, da ich den X-Plus3 nicht länger hatte.

    Offenbar übergibt der Qidi Slicer irgendwo eben diesen K-Wert an das G-Code .. keine Ahnung wo. Da hatte ich auch einige Diskussionen mit Qidi-Support, betreff fremde Slicer und KAMP.

    Es gab noch eine "Adaptive_Mesh.cfg", die dann das Übrige tat.

    Edited once, last by wwoody ().

  • Sehr schön. :thumbup:

    Edited 2 times, last by wwoody ().

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!

Unread Threads

    1. Title
    2. Replies
    3. Last Reply
    1. Neue Version von Bambustudio-finde sie jedoch nicht 1

      • Gallier1975
    2. Replies
      1
      Views
      24
      1
    3. DIYLAB

    1. Sovol SV06 oder Bambu Lab A1 mini 7

      • luu
    2. Replies
      7
      Views
      106
      7
    3. DIYLAB

    1. Das Hotend muss auch mal wieder gereinigt werden ;-) 11

      • Nobs_3D
    2. Replies
      11
      Views
      210
      11
    3. Druckt nicht

    1. Verständnis für Druckprobleme 8

      • 10 G.
    2. Replies
      8
      Views
      166
      8
    3. Achim1

    1. SolidEdge - Vernähen erzeugt keinen Volumenkörper 5

      • wersy
    2. Replies
      5
      Views
      88
      5
    3. roerich_64