#Adaptive Meshing and START macro confusion

1 messages · Page 1 of 1 (latest)

untold parcel
#

Hello everyone,

I have a few questions about how klipper's config works, relating to adaptive meshing and other features.

I noticed my slicer tends to output gcode that calls this macro, PRINT_START, but in the config file, its empty.

[gcode_macro PRINT_START]
gcode:
    #HOT_CALIBRATE_START

There is a HOT_CALIBRATE_START

[gcode_macro HOT_CALIBRATE_START]
variable_k: 0
gcode:
    {% if k == 0 %}
        {% if printer['heater_generic hot'].temperature > 49 %}
            SET_GCODE_VARIABLE MACRO=HOT_CALIBRATE_END VARIABLE=hot_set VALUE=1
            SET_GCODE_OFFSET Z_ADJUST=-0.10 MOVE=0
            SET_GCODE_VARIABLE MACRO=HOT_CALIBRATE_START VARIABLE=k VALUE=1
        {% endif %}
    {% endif %}

But its not actually being called. What actually directs the printer to run its bed level routine and heat up the nozzle?

green basinBOT
#
AI Help

It seems like you are using Klipper firmware for your 3D printer, and you are looking into how the hot calibration and bed leveling routines are initiated. In Klipper, the bed leveling routine and nozzle heating can be triggered using the configuration directives in the printer.cfg file.

The PRINT_START gcode macro in your config is currently empty, but you can add the necessary commands to trigger the hot calibration and bed leveling routines there. You can call the HOT_CALIBRATE_START macro within the PRINT_START macro or add the commands directly in the PRINT_START macro.

To initiate the bed leveling routine and heat up the nozzle, you may need to add commands like BED_MESH_CALIBRATE or specific G-codes to heat up the hotend in the PRINT_START macro.

You can refer to the Klipper documentation for detailed instructions on setting up and customizing the bed leveling and nozzle heating routines in your printer.cfg file.

If you need further assistance with Klipper con...

untold parcel
#
[gcode_macro PRINT_START]
gcode:
    M140 S[first_layer_bed_temperature]
    G28  # Home all axes
    M109 S100  # Heat extruder to 100°C prior to leveling.
    BED_MESH_CALIBRATE  # Calibrate bed mesh

    M104 S[first_layer_temperature] # Begin heating nozzle.
    M190 S[first_layer_bed_temperature]  # Wait for bed to reach desired temperature.

    G0 X0 Y0 Z50 F6000  # Move nozzle to starting position
    M109 S[first_layer_temperature]  # Finish heating nozzle.
    M106 P3 S255  # Turn on fan
    M83  # Set extruder to relative mode
    G4 P3000  # Wait for 3 seconds
    LINE_PURGE  # Purge the nozzle
#

heres what I have for my gcode so far, but I suspect im probably missing some stuff

#

the default gcode in the slicer is pretty comprehensive:

#
PRINT_START
G28
M141 S0
G0 Z50 F600
M190 S[first_layer_bed_temperature]
G28 Z
G29; mesh bed leveling ,comment this code to close it
G0 X0 Y0 Z50 F6000
M109 S[first_layer_temperature]
M106 P3 S255
M83
G4 P3000
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 Z[first_layer_height] F600
G1 E3 F1800
G1 X{(min(print_bed_max[0], first_layer_print_min[0] + 80))} E{85 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000
G1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 2} E{2 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000
G1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} E{85 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000
G1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 85} E{83 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000
G1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0) + 2} E{2 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000
G1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 3} E{82 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000
G1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0) + 12} E{-10 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000
G1 E{10 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000