diff --git a/calibration/calibration_macros.cfg b/calibration/calibration_macros.cfg index 1073d30..5c1a9ff 100644 --- a/calibration/calibration_macros.cfg +++ b/calibration/calibration_macros.cfg @@ -11,6 +11,7 @@ # ---------------------------------------------------------------------------- [gcode_macro CALIBRATION_MENU] description: Show calibration menu with all options +group: Calibration gcode: RESPOND MSG="==============================================" RESPOND MSG=" NEPTUNE 4 PLUS CALIBRATION SUITE" @@ -33,6 +34,7 @@ gcode: # ---------------------------------------------------------------------------- [gcode_macro CALIBRATE_Z_OFFSET] description: Calibrate Z-offset using Cartographer touch +group: Calibration gcode: RESPOND MSG="Starting Z-Offset Calibration..." RESPOND MSG="" @@ -62,6 +64,7 @@ gcode: # ---------------------------------------------------------------------------- [gcode_macro CALIBRATE_INPUT_SHAPER] description: Measure resonance frequencies with ADXL345 +group: Calibration gcode: RESPOND MSG="Starting Input Shaper Calibration..." RESPOND MSG="" @@ -84,6 +87,7 @@ gcode: # ---------------------------------------------------------------------------- [gcode_macro CALIBRATE_PRESSURE_ADVANCE] description: Calibrate Pressure Advance for optimal corners +group: Calibration gcode: {% set FILAMENT = params.FILAMENT|default("PLA")|upper %} {% set START_PA = params.START|default(0.01)|float %} @@ -139,6 +143,7 @@ gcode: # ---------------------------------------------------------------------------- [gcode_macro CALIBRATE_FLOW_RATE] description: Calibrate flow rate for exact wall dimensions +group: Calibration gcode: {% set FILAMENT = params.FILAMENT|default("PLA")|upper %} @@ -190,6 +195,7 @@ gcode: # ---------------------------------------------------------------------------- [gcode_macro CALIBRATE_TEMPERATURE] description: Print temperature tower to find optimal temp +group: Calibration gcode: {% set FILAMENT = params.FILAMENT|default("PLA")|upper %} {% set START_TEMP = params.START|default(195)|int %} @@ -234,6 +240,7 @@ gcode: # ---------------------------------------------------------------------------- [gcode_macro CALIBRATE_RETRACTION] description: Test retraction settings to minimize stringing +group: Calibration gcode: {% set FILAMENT = params.FILAMENT|default("PLA")|upper %} {% set HOTEND = params.HOTEND|default("ORIGINAL")|upper %} @@ -296,6 +303,7 @@ gcode: # ---------------------------------------------------------------------------- [gcode_macro CALIBRATE_BED_MESH] description: Calibrate bed mesh with Cartographer +group: Calibration gcode: RESPOND MSG="Starting Bed Mesh Calibration..." RESPOND MSG="" @@ -322,6 +330,7 @@ gcode: # ---------------------------------------------------------------------------- [gcode_macro CALIBRATION_FULL] description: Run complete calibration suite (takes ~2.5 hours) +group: Calibration gcode: RESPOND MSG="==============================================" RESPOND MSG=" STARTING FULL CALIBRATION SUITE" @@ -381,6 +390,7 @@ gcode: # ---------------------------------------------------------------------------- [gcode_macro CALIBRATION_QUICK] description: Run quick calibration (Z-offset + PA + Bed Mesh, ~30 min) +group: Calibration gcode: RESPOND MSG="==============================================" RESPOND MSG=" STARTING QUICK CALIBRATION" diff --git a/calibration/test_patterns.cfg b/calibration/test_patterns.cfg index 0869253..2384b59 100644 --- a/calibration/test_patterns.cfg +++ b/calibration/test_patterns.cfg @@ -9,6 +9,7 @@ # ---------------------------------------------------------------------------- [gcode_macro PA_TEST_PATTERN] description: Print Pressure Advance test pattern +group: Calibration gcode: {% set START_PA = params.START|default(0.01)|float %} {% set END_PA = params.END|default(0.05)|float %} @@ -66,6 +67,7 @@ gcode: # ---------------------------------------------------------------------------- [gcode_macro FLOW_TEST_CUBE] description: Print flow rate calibration cube +group: Calibration gcode: {% set START_FLOW = params.START|default(0.90)|float %} {% set END_FLOW = params.END|default(1.10)|float %} @@ -135,6 +137,7 @@ gcode: # ---------------------------------------------------------------------------- [gcode_macro RETRACT_TEST_PATTERN] description: Print retraction test pattern +group: Calibration gcode: {% set START_RETRACT = params.START|default(1.0)|float %} {% set END_RETRACT = params.END|default(4.0)|float %} @@ -210,6 +213,7 @@ gcode: # ---------------------------------------------------------------------------- [gcode_macro TEMP_TOWER] description: Print temperature tower +group: Calibration gcode: {% set START_TEMP = params.START|default(195)|int %} {% set END_TEMP = params.END|default(225)|int %} diff --git a/optimized_user_settings.cfg b/optimized_user_settings.cfg index 3b213d8..4baf97d 100644 --- a/optimized_user_settings.cfg +++ b/optimized_user_settings.cfg @@ -1,58 +1,39 @@ # ============================================================================ # USER SETTINGS - Neptune 4 Plus with Cartographer 3D -# ============================================================================ -# Includes are loaded in order - later includes override earlier ones +# Optimized for Bambu Lab Hotend (23 mm³/s) & Original Hotend (15 mm³/s) # ============================================================================ -[include KNCM_settings.cfg] # Nozzle cleaning macros -[include calibration/*.cfg] # Calibration suite (Z-offset, PA, etc.) +[include KNCM_settings.cfg] +[include open4neptune-new/calibration/*.cfg] [skew_correction] -#[probe] -#pin:^PA11 -#x_offset: -24.25 -#y_offset: 20.45 -#z_offset = 0.0 -#speed: 6.0 -#samples: 3 -#samples_result: median -#sample_retract_dist: 3.0 -#samples_tolerance: 0.025 -#samples_tolerance_retries: 3 - -#[resonance_tester] -#accel_chip_x: adxl345 x -#accel_chip_y: adxl345 y -#max_smoothing: 0.15 -#probe_points: -# 162.5, 162.5, 20 +# ============================================================================ +# CARTOGRAPHER 3D PROBE CONFIGURATION +# ============================================================================ [stepper_z] endstop_pin: probe:z_virtual_endstop homing_retract_dist: 0 -[mcu cartographer] # See https://www.klipper3d.org/Config_Reference.html#mcu -# Remove either the serial or canbus_uuid line dependant on your setup. -serial: /dev/serial/by-id/usb-Cartographer_614e_0A0002000643303459323220-if00 -#canbus_uuid: -#restart_method: command # Not needed for probes using CAN. +[mcu cartographer] +serial: /dev/serial/by-id/usb-Cartographer_614e_0A0002000643303459323220-if00 [cartographer] mcu: cartographer -x_offset: 0 # This is the offset of your probe from the nozzle tip, to the centre of the coil. -y_offset: 22 # This is the offset of your probe from the nozzle tip, to the centre of the coil. -verbose: no # For extra output +x_offset: 0 +y_offset: 22 +verbose: no [bed_mesh] -zero_reference_position: 165, 165 # The centre of your bed. +zero_reference_position: 165, 165 speed: 300 horizontal_move_z: 3 -mesh_min: 10, 21 # The first probed coordinate, nearest to the origin. This coordinate is relative to the probe's location. -mesh_max: 300.75, 315.45 # The probed coordinate farthest from the origin. This is not necessarily the last point probed, as the probing process occurs in a zig-zag fashion. As with mesh_min, this coordinate is relative to the probe's location. +mesh_min: 10, 21 +mesh_max: 300.75, 315.45 probe_count: 20, 20 adaptive_margin: 10 -mesh_pps: 0,0 # Disable interpolation - mesh is probably dense enough +mesh_pps: 0,0 [temperature_sensor cartographer] sensor_type: temperature_mcu @@ -61,102 +42,59 @@ min_temp: 5 max_temp: 105 [adxl345] -# Select 1 of the cs_pin below depending on the probe you have. -# Having the wrong one selected will cause an Endless Bootloop -# Cartographer V4 has int2 connected to the probes PA1 pin -cs_pin: cartographer:PA3 # For Cartographer V3 -#cs_pin: cartographer:PA0 # For Cartographer V4 +cs_pin: cartographer:PA3 spi_bus: spi1 [resonance_tester] accel_chip: adxl345 probe_points: - 165, 165, 20 # Fill out the blank with x and y coordinates where you want to run the resonance test. - -#[scanner] -#serial: /dev/serial/by-id/usb-Cartographer_614e_0A0002000643303459323220-if00 -# Offsets are measured from the centre of your coil, to the tip of your nozzle -# on a level axis. It is vital that this is accurate. -#x_offset: 0 -# adjust for your cartographers offset from nozzle to middle of coil -#y_offset: 22 -# adjust for your cartographers offset from nozzle to middle of coil -## -#backlash_comp: 0.01346 -# Backlash compensation distance for removing Z backlash before measuring -# the sensor response. -#sensor: cartographer -# this must be set as cartographer unless using IDM etc. -#sensor_alt: carto -# alternate name to call commands. CARTO_TOUCH etc -#mesh_runs: 2 -# Number of passes to make during mesh scan. + 165, 165, 20 +# ============================================================================ +# FILAMENT SENSORS +# ============================================================================ [filament_switch_sensor filament_sensor] pause_on_runout: True -#insert_gcode: -# M117 Insert Detected runout_gcode: {action_respond_info("FILAMENT SENSOR TRIGGERED")} M117 Runout Detected -## The minimum amount of time in seconds to delay between events. -## Events triggered during this time period will be silently -## ignored. The default is 3 seconds. event_delay: 5.0 -## The amount of time to delay, in seconds, between the pause command -## dispatch and execution of the runout_gcode. It may be useful to -## increase this delay if OctoPrint exhibits strange pause behavior. -## Default is 0.5 seconds. pause_delay: 1.5 switch_pin: PA12 [filament_motion_sensor filament_motion] switch_pin: PC1 -detection_length: 8.00 # Supports down to 2.88 +detection_length: 8.00 extruder: extruder pause_on_runout: False -## The minimum amount of time in seconds to delay between events. -## Events triggered during this time period will be silently -## ignored. The default is 3 seconds. event_delay: 5.0 -## The amount of time to delay, in seconds, between the pause command -## dispatch and execution of the runout_gcode. It may be useful to -## increase this delay if OctoPrint exhibits strange pause behavior. -## Default is 0.5 seconds. pause_delay: 2.0 runout_gcode: {action_respond_info("FILAMENT MOTION TRIGGERED")} M117 Runout Detected +# ============================================================================ +# PRINT START MACRO - Optimized with Cartographer +# ============================================================================ -## ---------------------------------------------------------------------------- ## -## PRINT_START MACRO ## -## ---------------------------------------------------------------------------- ## - -## Start print gcode defined here. In slicer, use only the following lines for start gcode: -## in slicer, use only the following lines for start gcode: -## PrusaSlicer: ## PRINT_START EXTRUDER_TEMP=[first_layer_temperature] BED_TEMP=[first_layer_bed_temperature] -## OrcaSlicer: ## PRINT_START EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] -## SuperSlicer: ## PRINT_START EXTRUDER_TEMP={first_layer_temperature[initial_extruder]+extruder_temperature_offset[initial_extruder]} BED_TEMP=[first_layer_bed_temperature] -## Cura: ## PRINT_START EXTRUDER_TEMP={material_print_temperature_layer_0} BED_TEMP={material_bed_temperature_layer_0} - -[gcode_macro PRINT_START_NOCCI] +[gcode_macro PRINT_START] +group: Printing gcode: #--- Setup & Reset --- M117 Setting up parameters... RESPOND MSG="Starting Print Sequence..." - SET_GCODE_OFFSET Z=0 ; ⭐ NEW: Reset Z-Offset for Cartographer + SET_GCODE_OFFSET Z=0 G92 E0 - G90 ; Absolute positioning + G90 BED_MESH_CLEAR Frame_Light_ON Part_Light_ON #--- Home with Cartographer --- - CG28 ; ⭐ CHANGE: G28 → CG28 (Open4Neptune smart home) - CARTOGRAPHER_TOUCH_HOME ; ⭐ NEW: Precise Z0 measurement with Cartographer + CG28 + CARTOGRAPHER_TOUCH_HOME #--- Parameters --- {% set BED_TEMP = params.BED_TEMP|default(60)|float %} @@ -164,7 +102,7 @@ gcode: {% set FILAMENT_TYPE = params.FILAMENT_TYPE|default("PLA")|upper %} #--- Pre-Heat --- - SET_HEATER_TEMPERATURE HEATER=extruder TARGET=160 ; No-drip pre-heat + SET_HEATER_TEMPERATURE HEATER=extruder TARGET=160 SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={BED_TEMP} #--- Wait for Bed & Mesh --- @@ -177,8 +115,8 @@ gcode: #--- Final Heat --- SET_HEATER_TEMPERATURE HEATER=extruder TARGET={EXTRUDER_TEMP} - TEMPERATURE_WAIT SENSOR=extruder MINIMUM={EXTRUDER_TEMP-2} MAXIMUM={EXTRUDER_TEMP+2} ; ⭐ TIGHTER: ±2°C - TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={BED_TEMP-2} MAXIMUM={BED_TEMP+2} ; ⭐ TIGHTER: ±2°C + TEMPERATURE_WAIT SENSOR=extruder MINIMUM={EXTRUDER_TEMP-2} MAXIMUM={EXTRUDER_TEMP+2} + TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={BED_TEMP-2} MAXIMUM={BED_TEMP+2} #--- Prime & Start --- SMART_PARK @@ -191,107 +129,43 @@ gcode: M117 Printer goes brrbrrr...:) RESPOND MSG="Print starting..." -## ---------------------------------------------------------------------------- ## -## PRINT_END MACRO ## -## ---------------------------------------------------------------------------- ## +# ============================================================================ +# PRINT END MACRO - Optimized +# ============================================================================ -## End print gcode defined here. In slicer, use only the following lines for start gcode: -## PrusaSlicer/OrcaSlicer/SuperSlicer: PRINT_END -## Cura: PRINT_END - -[gcode_macro PRINT_END_NOCCI] -description: Optimized PRINT_END with better user feedback +[gcode_macro PRINT_END] +group: Printing gcode: - M117 Finishing print... ; LCD message + M117 Finishing print... RESPOND MSG="Print completed! Finishing up..." - M400 ; Wait for buffer to clear - TURN_OFF_HEATERS ; Turn off all heaters - G92 E0 ; Reset extruder - G91 ; Relative positioning - G1 E-2 F2700 ; Retract filament - G1 X5 Y5 F3000 ; Wipe nozzle - G1 E-2 Z0.2 F1600 ; Retract and lift Z - G1 Z10 F3000 ; Raise Z more (total ~10mm) - G90 ; Absolute positioning - G1 X0 Y315 F3000 ; Present print (Neptune 4 Plus) - M107 ; Turn off part fan - Frame_Light_OFF ; Turn off frame light - Part_Light_OFF ; Turn off part light + M400 + TURN_OFF_HEATERS + G92 E0 + G91 + G1 E-2 F2700 + G1 X5 Y5 F3000 + G1 E-2 Z0.2 F1600 + G1 Z10 F3000 + G90 + G1 X0 Y315 F3000 + M107 + Frame_Light_OFF + Part_Light_OFF SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SET_FILAMENT_SENSOR SENSOR=filament_motion ENABLE=0 - M84 ; Disable all steppers - END_TUNE ; Play completion jingle - M117 Done! Have a nice day! :) ; Final LCD message + M84 + END_TUNE + M117 Done! Have a nice day! :) RESPOND MSG="Print complete! You can remove your print now." -####################################################################### -## Start Macro -####################################################################### - -####################################################################### -## Clean Nozzle -####################################################################### -[gcode_macro CLEAN_NOZZLE_OLD] -gcode: - {% set LOWERED_EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(200)|int-30 %} - {% set WIPES = params.WIPES|default(10)|int %} - #Position the nozzle - G90 - G0 X-10 Y20 Z10 F5000 - #Heat up nozzle to extruder temperature - 40°C - {action_respond_info("Clean nozzle: Heating up to {}°C the do {} wipes.".format( - (LOWERED_EXTRUDER_TEMP), - (WIPES) - ))} - M109 S{LOWERED_EXTRUDER_TEMP} - #Bring the nozzle down - G0 Z4 - #Swing the nozzle - {% for wipe in range(WIPES) %} - G0 Y5 F3000 - G0 Y35 F3000 - {% endfor %} - #Bring the nozzle up - G0 X-10 Y20 Z10 F5000 - # Home to get the correct offset -# G28 - -[gcode_macro CLEAN_NOZZLE_WHILE_PRINT] -gcode: - {% set LOWERED_EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(240)|int-40 %} - {% set WIPES = params.WIPES|default(10)|int %} - #Position the nozzle - G90 - G0 X-10 Y20 Z10 F5000 - #Heat up nozzle to extruder temperature - 40°C - {action_respond_info("Clean nozzle: Heating up to {}°C the do {} wipes.".format( - (LOWERED_EXTRUDER_TEMP), - (WIPES) - ))} - M109 S{LOWERED_EXTRUDER_TEMP} - #Bring the nozzle down - G0 Z4 - #Swing the nozzle - {% for wipe in range(WIPES) %} - G0 Y5 F3000 - G0 Y35 F3000 - {% endfor %} - #Bring the nozzle up - G0 X-10 Y20 Z10 F5000 - # Home to get the correct offset -# G28 -#### CUSTOM END -#[gcode_macro update_git] -#gcode: -# RUN_SHELL_COMMAND CMD=update_git_script - -#[gcode_shell_command update_git_script] -#command: bash -c "bash $HOME/klipper-backup/script.sh" -#timeout: 90.0 +# ============================================================================ +# HELPER MACROS +# ============================================================================ [gcode_macro QUICK_TOUCH] -description: Führt eine schnelle Z-Messung per Touch durch +description: Quick Z measurement with Cartographer +group: Calibration gcode: {% if printer.toolhead.homed_axes != "xyz" %} G28 @@ -299,99 +173,73 @@ gcode: G1 Z10 F600 CARTOGRAPHER_TOUCH - [gcode_macro CALIBRATE_PROBE] -description: Startet die manuelle Z-Offset Kalibrierung +description: Manual Z-offset calibration +group: Calibration gcode: {% if printer.toolhead.homed_axes != "xyz" %} - G28 # Homed, falls noch nicht geschehen + G28 {% endif %} G1 X{printer.toolhead.axis_maximum.x / 2} Y{printer.toolhead.axis_maximum.y / 2} Z10 F6000 CARTOGRAPHER_CALIBRATE +[gcode_macro BABYZ_PLUS] +group: Helpers +gcode: + SET_GCODE_OFFSET Z_ADJUST=0.005 MOVE=1 + +[gcode_macro BABYZ_MINUS] +group: Helpers +gcode: + SET_GCODE_OFFSET Z_ADJUST=-0.005 MOVE=1 + +# ============================================================================ +# FAN CONFIGURATION +# ============================================================================ [controller_fan heatbreak+mainboard_fan] fan_speed: 0.40 idle_speed: 0.40 cycle_time: 0.00004 +# ============================================================================ +# STEPPER DRIVERS +# ============================================================================ + [tmc2209 stepper_x] driver_SGTHRS: 110 +# ============================================================================ +# SAFE Z HOME +# ============================================================================ + [safe_z_home] home_xy_position: 165,165 -# Example home_xy_position: 175,175 - This would be for a 350 * 350mm bed. z_hop: 10 +# ============================================================================ +# SKEW CORRECTION +# ============================================================================ +[skew_correction noccis_skew_profile] +xy_skew = 0.00100050075747056 +xz_skew = 0.0 +yz_skew = 0.0 -#[temperature_sensor cartographer] -#sensor_type: temperature_mcu -#sensor_mcu: cartographer -#min_temp: 5 -#max_temp: 105 - -[bed_mesh] -zero_reference_position: 165.00,165.00 - -[stepper_z] -endstop_pin: probe:z_virtual_endstop # use cartographer as virtual endstop -homing_retract_dist: 0 # cartographer needs this to be set to 0 - - -[bed_mesh] -zero_reference_position: 162.5 ,162.5 -# set this to the middle of your bed -speed: 200 -# movement speed of toolhead during bed mesh -horizontal_move_z: 5 -# height of scanner during bed mesh scan -mesh_min: 35, 6 -# start point of bed mesh [X, Y] -mesh_max: 240, 198 -# end point of bed mesh [X, Y] -probe_count: 30, 30 -algorithm: bicubic - -[gcode_macro PROBE_CALIBRATE] -gcode: - CARTOGRAPHER_CALIBRATE - - -#[mcu scanner] - -#serial: //dev/serial/by-id/usb-Cartographer_614e_0A0002000643303459323220-if00 -# adjust to suit your scanner, if using usb change to serial - -#[temperature_sensor Cartographer_MCU] -#sensor_type: temperature_mcu -#sensor_mcu: scanner -#min_temp: 0 -#max_temp: 105 - - -[force_move] -enable_force_move: True - -#[adxl345] -#cs_pin: scanner:PA3 -#spi_bus: spi1 - -[resonance_tester] -accel_chip: adxl345 -probe_points: - 165.2, 165.2, 20 +# ============================================================================ +# SCREWS TILT ADJUST (for manual bed leveling) +# ============================================================================ [screws_tilt_adjust] screw1: 165.0,189.55 screw1_name: middle-rear bed mount (shim adjust) screw2: 165.0,99.55 screw2_name: middle-front bed mount (shim adjust) -screw3: 32.50,277.05 +screw3: 32.50,277.05 screw3_name: rear left screw -screw4: 32.50,144.55 +screw4: 32.50,144.55 screw4_name: center left screw -screw5: 32.50,12.05 +screw5: 32.50,12.05 screw5_name: front left screw screw6: 288.5,12.05 screw6_name: front right screw @@ -403,35 +251,13 @@ horizontal_move_z: 5 speed: 150 screw_thread: CW-M4 -[gcode_macro BABYZ_PLUS] -# Babystep Up .05 -gcode: - SET_GCODE_OFFSET Z_ADJUST=0.005 MOVE=1 +# ============================================================================ +# FORCE MOVE (for manual adjustments) +# ============================================================================ -[gcode_macro BABYZ_MINUS] -# Babystep Down .05 -gcode: - SET_GCODE_OFFSET Z_ADJUST=-0.005 MOVE=1 +[force_move] +enable_force_move: True - - -############################################################################# -# OLD Probe Config -############################################################################# - -#[probe] -#pin:^PA11 -#x_offset: -24.25 -#y_offset: 20.45 -#z_offset = 1.660 -#speed: 10.0 -#samples: 2 -#samples_result: average -#sample_retract_dist: 3.0 -#samples_tolerance: 0.025 -#samples_tolerance_retries: 3 - -[skew_correction noccis_skew_profile] -xy_skew = 0.00100050075747056 -xz_skew = 0.0 -yz_skew = 0.0 +# ============================================================================ +# END OF USER SETTINGS +# ============================================================================ diff --git a/user_settings_clean.cfg b/user_settings_clean.cfg index 23f91ab..4baf97d 100644 --- a/user_settings_clean.cfg +++ b/user_settings_clean.cfg @@ -79,6 +79,7 @@ runout_gcode: # ============================================================================ [gcode_macro PRINT_START] +group: Printing gcode: #--- Setup & Reset --- M117 Setting up parameters... @@ -133,6 +134,7 @@ gcode: # ============================================================================ [gcode_macro PRINT_END] +group: Printing gcode: M117 Finishing print... RESPOND MSG="Print completed! Finishing up..." @@ -163,6 +165,7 @@ gcode: [gcode_macro QUICK_TOUCH] description: Quick Z measurement with Cartographer +group: Calibration gcode: {% if printer.toolhead.homed_axes != "xyz" %} G28 @@ -172,6 +175,7 @@ gcode: [gcode_macro CALIBRATE_PROBE] description: Manual Z-offset calibration +group: Calibration gcode: {% if printer.toolhead.homed_axes != "xyz" %} G28 @@ -180,10 +184,12 @@ gcode: CARTOGRAPHER_CALIBRATE [gcode_macro BABYZ_PLUS] +group: Helpers gcode: SET_GCODE_OFFSET Z_ADJUST=0.005 MOVE=1 [gcode_macro BABYZ_MINUS] +group: Helpers gcode: SET_GCODE_OFFSET Z_ADJUST=-0.005 MOVE=1