Combined best features from printer.cfg PRINT_END and custom version: From printer.cfg: - END_TUNE beeper jingle - Park position X0 Y315 (better visibility) From custom version: - Detailed console/LCD messages - M84 to disable steppers - Higher Z-park (10mm) - Both Frame_Light and Part_Light OFF - Filament sensors disabled Usage: Call PRINT_END_NOCCI in slicer end gcode
437 lines
14 KiB
INI
437 lines
14 KiB
INI
# ============================================================================
|
|
# USER SETTINGS - Neptune 4 Plus with Cartographer 3D
|
|
# ============================================================================
|
|
# Includes are loaded in order - later includes override earlier ones
|
|
# ============================================================================
|
|
|
|
[include KNCM_settings.cfg] # Nozzle cleaning macros
|
|
[include calibration/*.cfg] # Calibration suite (Z-offset, PA, etc.)
|
|
|
|
[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
|
|
|
|
[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: <blank>
|
|
#restart_method: command # Not needed for probes using CAN.
|
|
|
|
[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
|
|
|
|
[bed_mesh]
|
|
zero_reference_position: 165, 165 # The centre of your bed.
|
|
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.
|
|
probe_count: 20, 20
|
|
adaptive_margin: 10
|
|
mesh_pps: 0,0 # Disable interpolation - mesh is probably dense enough
|
|
|
|
[temperature_sensor cartographer]
|
|
sensor_type: temperature_mcu
|
|
sensor_mcu: cartographer
|
|
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
|
|
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.
|
|
|
|
|
|
[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
|
|
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 ##
|
|
## ---------------------------------------------------------------------------- ##
|
|
|
|
## 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:
|
|
#--- Setup & Reset ---
|
|
M117 Setting up parameters...
|
|
RESPOND MSG="Starting Print Sequence..."
|
|
|
|
SET_GCODE_OFFSET Z=0 ; ⭐ NEW: Reset Z-Offset for Cartographer
|
|
G92 E0
|
|
G90 ; Absolute positioning
|
|
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
|
|
|
|
#--- Parameters ---
|
|
{% set BED_TEMP = params.BED_TEMP|default(60)|float %}
|
|
{% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(200)|float %}
|
|
{% 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=heater_bed TARGET={BED_TEMP}
|
|
|
|
#--- Wait for Bed & Mesh ---
|
|
{% set MIN_TEMP = BED_TEMP - (BED_TEMP * 0.15) %}
|
|
TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={MIN_TEMP}
|
|
BED_MESH_CALIBRATE ADAPTIVE=1
|
|
|
|
#--- Nozzle Clean (KNCM) ---
|
|
CLEAN_NOZZLE FILAMENT_TYPE={FILAMENT_TYPE}
|
|
|
|
#--- 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
|
|
|
|
#--- Prime & Start ---
|
|
SMART_PARK
|
|
SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1
|
|
SET_FILAMENT_SENSOR SENSOR=filament_motion ENABLE=0
|
|
LINE_PURGE
|
|
G92 E0
|
|
G1 Z2.0 F3000
|
|
|
|
M117 Printer goes brrbrrr...:)
|
|
RESPOND MSG="Print starting..."
|
|
|
|
## ---------------------------------------------------------------------------- ##
|
|
## PRINT_END MACRO ##
|
|
## ---------------------------------------------------------------------------- ##
|
|
|
|
## 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:
|
|
M117 Finishing print... ; LCD message
|
|
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
|
|
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
|
|
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
|
|
|
|
[gcode_macro QUICK_TOUCH]
|
|
description: Führt eine schnelle Z-Messung per Touch durch
|
|
gcode:
|
|
{% if printer.toolhead.homed_axes != "xyz" %}
|
|
G28
|
|
{% endif %}
|
|
G1 Z10 F600
|
|
CARTOGRAPHER_TOUCH
|
|
|
|
|
|
[gcode_macro CALIBRATE_PROBE]
|
|
description: Startet die manuelle Z-Offset Kalibrierung
|
|
gcode:
|
|
{% if printer.toolhead.homed_axes != "xyz" %}
|
|
G28 # Homed, falls noch nicht geschehen
|
|
{% endif %}
|
|
G1 X{printer.toolhead.axis_maximum.x / 2} Y{printer.toolhead.axis_maximum.y / 2} Z10 F6000
|
|
CARTOGRAPHER_CALIBRATE
|
|
|
|
|
|
[controller_fan heatbreak+mainboard_fan]
|
|
fan_speed: 0.40
|
|
idle_speed: 0.40
|
|
cycle_time: 0.00004
|
|
|
|
[tmc2209 stepper_x]
|
|
driver_SGTHRS: 110
|
|
|
|
[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
|
|
|
|
|
|
|
|
#[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]
|
|
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_name: rear left screw
|
|
screw4: 32.50,144.55
|
|
screw4_name: center left screw
|
|
screw5: 32.50,12.05
|
|
screw5_name: front left screw
|
|
screw6: 288.5,12.05
|
|
screw6_name: front right screw
|
|
screw7: 288.5,144.55
|
|
screw7_name: center right screw
|
|
screw8: 288.5,277.05
|
|
screw8_name: rear right screw
|
|
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
|
|
|
|
[gcode_macro BABYZ_MINUS]
|
|
# Babystep Down .05
|
|
gcode:
|
|
SET_GCODE_OFFSET Z_ADJUST=-0.005 MOVE=1
|
|
|
|
|
|
|
|
#############################################################################
|
|
# 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
|