[Sammelthread] die Klipper Makro Sammlung

toscdesign

Enthusiast
Thread Starter
Mitglied seit
17.02.2022
Beiträge
6.290
Hier dürfen alle Makros für Klipper rein, welche ihr in irgend einer Weise verwendet (y)




Ich mache mal den Anfang mit einer Auto-Abschaltfunktion:

Wenn das Druckbett und der Extruder die 50°C unterschritten haben, wird die angeschlossense Tasmota Steckdose abgeschaltet.
Das Makro prüft alle 30 Sekunden die Temperaturen:


Makro:
Code:
[gcode_macro _POWER_OFF_PRINTER]
gcode:
  {action_call_remote_method("set_device_power",
                             device="tasmota_plug",
                             state="off")}

[delayed_gcode POWER_OFF_PRINTER_CHECK]
gcode:
  {% if printer.idle_timeout.state == "Idle" or printer.idle_timeout.state == "Ready" %}
    {% if printer.extruder.temperature < 50.0 and printer.heater_bed.temperature < 50.0 %}
        {% if printer.extruder.target == 0.0 and printer.heater_bed.target == 0.0 %}
            UPDATE_DELAYED_GCODE ID=POWER_OFF_PRINTER_CHECK DURATION=0
            _POWER_OFF_PRINTER
        {% else %}
            UPDATE_DELAYED_GCODE ID=POWER_OFF_PRINTER_CHECK DURATION=2
        {% endif %}
    {% else %}
        {% if printer.idle_timeout.state == "Printing" %}
            UPDATE_DELAYED_GCODE ID=POWER_OFF_PRINTER_CHECK DURATION=0
        {% else %}
            {% if printer.extruder.target == 0.0 and printer.heater_bed.target == 0.0 %}
                UPDATE_DELAYED_GCODE ID=POWER_OFF_PRINTER_CHECK DURATION=2
            {% else %}
                UPDATE_DELAYED_GCODE ID=POWER_OFF_PRINTER_CHECK DURATION=0
            {% endif %}
        {% endif %}
    {% endif %}
  {% endif %}

[gcode_macro ACTIVATE_POWER_OFF]
gcode:
    UPDATE_DELAYED_GCODE ID=POWER_OFF_PRINTER_CHECK_ACT DURATION=60

[gcode_macro DEACTIVATE_POWER_OFF]
gcode:
    UPDATE_DELAYED_GCODE ID=POWER_OFF_PRINTER_CHECK_ACT DURATION=0

[delayed_gcode POWER_OFF_PRINTER_CHECK_ACT]
gcode:
  {% if printer.idle_timeout.state == "Idle" or printer.idle_timeout.state == "Ready" %}
    UPDATE_DELAYED_GCODE ID=POWER_OFF_PRINTER_CHECK DURATION=30
  {% else %}
    UPDATE_DELAYED_GCODE ID=POWER_OFF_PRINTER_CHECK_ACT DURATION=60
  {% endif %}

Buttons zum Aktivieren und Deaktivieren der Funktion, lassen sich über die Einstellungen der Weboberfläche einblenden:
Poweroff_Makro_1.png
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Kleiner Disclaimer, ich hab die nicht selber entworfen, das ist auch nur zusammenkopiert.

Code:
[gcode_macro PRINT_START]
gcode:
  # This part fetches data from your slicer. Such as bed temp, extruder temp, chamber temp and size of your printer.
  {% set target_bed = params.BED|int %}
  {% set target_extruder = params.EXTRUDER|int %}
  {% set target_chamber = params.CHAMBER|default("40")|int %}
  {% set x_wait = printer.toolhead.axis_maximum.x|float / 2 %}
  {% set y_wait = printer.toolhead.axis_maximum.y|float / 2 %}

  # Homes the printer, sets absolute positioning and updates the Stealthburner leds.
  G28                   # Full home (XYZ)
  G90                   # Absolut position

  ##  Uncomment for bed mesh (1 of 2)
  BED_MESH_CLEAR       # Clears old saved bed mesh (if any)

  # Checks if the bed temp is higher than 90c - if so then trigger a heatsoak.
  {% if params.BED|int > 90 %}
    SET_DISPLAY_TEXT MSG="Bed: {target_bed}c"           # Displays info
    M106 S255                                           # Turns on the PT-fan

    G1 X{x_wait} Y{y_wait} Z15 F9000                    # Goes to center of the bed
    M190 S{target_bed}                                  # Sets the target temp for the bed  STATUS_HOMING         # Sets SB-leds to homing-mode

  # If the bed temp is not over 90c, then it skips the heatsoak and just heats up to set temp with a 5min soak
  {% else %}
     G1 X{x_wait} Y{y_wait} Z15 F9000                    # Goes to center of the bed
    M190 S{target_bed}                                  # Sets the target temp for the bed
    G4 P300000                                          # Waits 5 min for the bedtemp to stabilize
  {% endif %}

  # Heating nozzle to 150 degrees. This helps with getting a correct Z-home
  M109 S150                                    # Heats the nozzle to 150c

  ##  Uncomment for bed mesh (2 of 2)
  bed_mesh_calibrate                 # Starts bed mesh

  # Heats up the nozzle up to target via data from slicer
  G1 X{x_wait} Y{y_wait} Z15 F9000                              # Goes to center of the bed
  M107                                                          # Turns off partcooling fan
  M109 S{target_extruder}                                       # Heats the nozzle to printing temp

  # Gets ready to print by doing a purge line and updating the SB-leds
  G0 X{x_wait - 50} Y4 F10000                      # Moves to starting point
  G0 Z0.4                                          # Raises Z to 0.4
  G91                                              # Incremental positioning
  LINE_PURGE                                       # Purge line
  G90                                              # Absolut position

Code:
[gcode_macro END_PRINT]
gcode:
    # Turn off bed, extruder, and fan
    M140 S0
    M104 S0
    M106 S0
    # Move nozzle away from print while retracting
    G91
    G1 X-2 Y-2 E-8 F300
    # Raise nozzle by 10mm
    G1 Z10 F3000
    G90
    # Disable steppers
    M84

bed_mesh_calibrate triggert dann KAMP, was das Mesh und den Purge erstellt. Die Slicer Start und End G-Codes sind auch entsprechend angepasst

Start
Code:
M104 S0 ; Stops OrcaSlicer from sending temp waits separately
M140 S0
print_start EXTRUDER=[first_layer_temperature] BED=[first_layer_bed_temperature] CHAMBER=[chamber_temperature]
End
Code:
END_PRINT

Start
Code:
M104 S0 ; Stops PrusaSlicer from sending temp waits separately
M140 S0
print_start EXTRUDER=[first_layer_temperature[initial_extruder]] BED=[first_layer_bed_temperature]
End
Code:
END_PRINT
 
@toscdesign Erstmal danke für das Makro, bin neu hier und es ist mein erster Post, sofort mit einer Frage.
Wo wird denn entschieden, welche Tasmota Steckdose geschaltet wird?
Oder habe ich da was falsch verstenden?
 
Dann bin ich erstmal wieder raus, was ich da eintragen soll, erschließt sich mir nicht, und falsch machen möchte ich auch nichts!
Danke für die Tipps.
 
@toscdesign Erstmal danke für das Makro, bin neu hier und es ist mein erster Post, sofort mit einer Frage.
Wo wird denn entschieden, welche Tasmota Steckdose geschaltet wird?
Oder habe ich da was falsch verstenden?
Gerne, musste dich aber bei ChatGPT bedanken 😅

Ich muss mir das nochmal anschauen und gebe dann Rückmeldung. In irgend einer Configs hab ich das eingetragen.
 
Danke, ich habs jetzt.
Habe das, in die moonraker.conf eingetragen, nun klappt es.

[power tasmota_plug]
type: tasmota
address: 192.168.0.141
 
Zuletzt bearbeitet:
Mal wieder was neues von mir.
Hier mal meine Preheat Makros, die sind nun für meinen Voron 2.4r2 350 optimiert:

Edit 03.10.24:
Mein Makro hatte nicht richtig funktioniert, da Klipper nur Zeitangaben in Millisekunden erlaubt.
Habe das Makro nun angepasst. Außerdem gibt es jetzt eine Ausgabe mit der verbleibenden Zeit in der Klipper Console.

Dazu muss folgendes in der Printer.cfg eingetragen werden:
Code:
[respond]
default_type: echo
#   Sets the default prefix of the "M118" and "RESPOND" output to one
#   of the following:
#       echo: "echo: " (This is the default)
#       command: "// "
#       error: "!! "
#default_prefix: echo:
#   Directly sets the default prefix. If present, this value will
#   override the "default_type".


Hier das nun aktuelle PETG PreHeat Makro, die anderen folgen später:
Code:
[gcode_macro preheat_PETG]
gcode:
    SET_FAN_SPEED FAN=BedFans SPEED=1 #bed fans 100%
    RESPOND TYPE=command MSG='heat bed to 100°C'
    M190 S100                         #set bed temp to 100°C
    RESPOND TYPE=command MSG='remaining wait time 2min 30sec'
    G4 P30000                           #wait 30sec
    RESPOND TYPE=command MSG='remaining wait time 2min'
    G4 P30000                            #wait 30sec
    RESPOND TYPE=command MSG='remaining wait time 1min 30sec'
    G4 P30000                            #wait 30sec
    RESPOND TYPE=command MSG='remaining wait time 1min'
    G4 P30000                            #wait 30sec
    RESPOND TYPE=command MSG='remaining wait time 30sec'
    G4 P30000                            #wait 30sec
    RESPOND TYPE=command MSG='cool bed down to 80°C'
    SET_FAN_SPEED FAN=BedFans SPEED=0 #bed fans 0%
    M190 S80                          #set bed temp to 80°C
    G4 P30000                            #wait 30sec
    RESPOND TYPE=command MSG='preheat PETG finish'

Bildschirmfoto_20241003_140538.png

Die Filter Lüfter fehlen noch, sind aber aktuell auch extern angeschlossen.
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh