[include mainsail.cfg] # host MCU service is preinstalled and ready to use with: [mcu CB1] serial: /tmp/klipper_host_mcu [mcu] canbus_uuid: a39755b6c75c [mcu printhead] canbus_uuid: 0ab26b4c87c4 [printer] kinematics: corexy max_velocity: 500 max_accel: 20000 max_z_velocity: 20 max_z_accel: 350 square_corner_velocity: 5.0 [temperature_sensor Electronics] sensor_type: temperature_mcu [temperature_sensor CPU] sensor_type: temperature_host ##################################################################### # X/Y Stepper Settings ##################################################################### ## X Stepper on Motor1(B Motor) [stepper_x] step_pin: PE6 dir_pin: PE5 enable_pin: !PC14 microsteps: 16 rotation_distance: 40 full_steps_per_rotation:200 #set to 400 for 0.9 degree stepper endstop_pin: ^PF4 position_min: 0 position_endstop: 346 position_max: 346 homing_speed: 25 #Max 100 homing_retract_dist: 5 homing_positive_dir: true [tmc5160 stepper_x] cs_pin: PC13 spi_software_mosi_pin: PG6 spi_software_miso_pin: PG7 spi_software_sclk_pin: PG8 run_current: 1.000 stealthchop_threshold: 0 # Y Stepper on Motor2 (A Motor) [stepper_y] step_pin: PE2 dir_pin: PE1 enable_pin: !PE4 microsteps: 16 rotation_distance: 40 endstop_pin: ^PF3 full_steps_per_rotation:200 #set to 400 for 0.9 degree stepper position_min: 0 position_endstop: 355 position_max: 355 homing_speed: 25 #Max 100 homing_retract_dist: 5 homing_positive_dir: true [tmc5160 stepper_y] cs_pin: PE3 spi_software_mosi_pin: PG6 spi_software_miso_pin: PG7 spi_software_sclk_pin: PG8 run_current: 1.000 stealthchop_threshold: 0 ##################################################################### # Z Stepper Settings ##################################################################### ## Z0 Stepper - Front Left on MOTOR3_A [stepper_z] step_pin: PB8 dir_pin: PB7 enable_pin: !PE0 rotation_distance: 40 gear_ratio: 80:16 microsteps: 16 endstop_pin: probe:z_virtual_endstop ## Z-position of nozzle (in mm) to z-endstop trigger point relative to print surface (Z0) ## (+) value = endstop above Z0, (-) value = endstop below ## Increasing position_endstop brings nozzle closer to the bed ## After you run Z_ENDSTOP_CALIBRATE, position_endstop will be stored at the very end of your config #position_endstop: -2 position_max: 340 position_min: -5 homing_speed: 5 second_homing_speed: 3 homing_retract_dist: 3 [tmc5160 stepper_z] cs_pin: PB9 spi_software_mosi_pin: PG6 spi_software_miso_pin: PG7 spi_software_sclk_pin: PG8 run_current: 0.8 stealthchop_threshold: 0 ## Z1 Stepper - Rear Left on Motor5 [stepper_z1] step_pin: PG13 dir_pin: !PG12 enable_pin: !PG15 rotation_distance: 40 gear_ratio: 80:16 microsteps: 16 [tmc5160 stepper_z1] cs_pin: PG14 spi_software_mosi_pin: PG6 spi_software_miso_pin: PG7 spi_software_sclk_pin: PG8 run_current: 0.800 stealthchop_threshold: 0 ## Z2 Stepper - Rear Right on Motor6 [stepper_z2] step_pin: PG9 dir_pin: PD7 enable_pin: !PG11 rotation_distance: 40 gear_ratio: 80:16 microsteps: 16 [tmc5160 stepper_z2] cs_pin: PG10 spi_software_mosi_pin: PG6 spi_software_miso_pin: PG7 spi_software_sclk_pin: PG8 run_current: 0.800 stealthchop_threshold: 0 ## Z3 Stepper - Front Right on Motor7 [stepper_z3] step_pin: PD4 dir_pin: !PD3 enable_pin: !PD6 rotation_distance: 40 gear_ratio: 80:16 microsteps: 16 [tmc5160 stepper_z3] cs_pin: PD5 spi_software_mosi_pin: PG6 spi_software_miso_pin: PG7 spi_software_sclk_pin: PG8 run_current: 0.800 stealthchop_threshold: 0 ##################################################################### # Extruder ##################################################################### [extruder] step_pin: printhead: PD0 dir_pin: printhead: PD1 enable_pin: !printhead: PD2 rotation_distance: 5.7 gear_ratio: 1:1 microsteps: 16 full_steps_per_rotation: 200 #200 for 1.8 degree, 400 for 0.9 degree nozzle_diameter: 0.400 filament_diameter: 1.75 spi_speed: 4000000 heater_pin: printhead: PB13 sensor_type: MAX31865 sensor_pin: printhead: PA4 spi_bus: spi1 rtd_nominal_r: 1000 rtd_reference_r: 4300 rtd_num_of_wires: 4 min_temp: 10 max_temp: 350 max_power: 1.0 min_extrude_temp: 170 control = pid pid_kp = 23.189 pid_ki = 1.562 pid_kd = 86.089 ## Try to keep pressure_advance below 1.0 #pressure_advance: 0.05 ## Default is 0.040, leave stock #pressure_advance_smooth_time: 0.040 [tmc2209 extruder] uart_pin: printhead: PA15 interpolate: false run_current: 0.707 stealthchop_threshold: 0 [adxl345] cs_pin: printhead: PB12 spi_software_sclk_pin: printhead: PB10 spi_software_mosi_pin: printhead: PB11 spi_software_miso_pin: printhead: PB2 axes_map: x,z,y [resonance_tester] accel_chip: adxl345 probe_points: 175, 175, 30 ##################################################################### # Filament Sensor ##################################################################### [filament_switch_sensor switch_sensor] switch_pin: ^PF0 pause_on_runout: True runout_gcode: PAUSE M117 Filament switch runout insert_gcode: M117 Filament switch inserted [filament_motion_sensor encoder_sensor] switch_pin: ^PC15 detection_length: 2.88 # accuracy of motion sensor 2.88mm extruder: extruder pause_on_runout: True runout_gcode: PAUSE M117 Filament encoder runout insert_gcode: M117 Filament encoder inserted ##################################################################### # Bed Heater ##################################################################### ## SSR Pin - HE2 [heater_bed] heater_pin: PA3 sensor_type: Generic 3950 sensor_pin: PB1 max_power: 1 min_temp: 0 max_temp: 120 control = pid pid_kp = 62.274 pid_ki = 3.218 pid_kd = 301.250 ##################################################################### # Probe ##################################################################### [probe] ## Inductive Probe ## This probe is not used for Z height, only Quad Gantry Leveling ## NPN and PNP proximity switch types can be set by jumper pin: printhead: PB6 x_offset: 0 y_offset: 25.0 #z_offset: 0 speed: 10.0 samples: 3 samples_result: median sample_retract_dist: 5.0 samples_tolerance: 0.01 samples_tolerance_retries: 6 activate_gcode: {% set PROBE_TEMP = 150 %} {% set MAX_TEMP = PROBE_TEMP + 5 %} {% set ACTUAL_TEMP = printer.extruder.temperature %} {% set TARGET_TEMP = printer.extruder.target %} {% if TARGET_TEMP > PROBE_TEMP %} { action_respond_info('Extruder temperature target of %.1fC is too high, lowering to %.1fC' % (TARGET_TEMP, PROBE_TEMP)) } M106 S255 M109 S{ PROBE_TEMP } M106 S0 {% else %} # Temperature target is already low enough, but nozzle may still be too hot. {% if ACTUAL_TEMP > MAX_TEMP %} { action_respond_info('Extruder temperature %.1fC is still too high, waiting until below %.1fC' % (ACTUAL_TEMP, MAX_TEMP)) } TEMPERATURE_WAIT SENSOR=extruder MAXIMUM={ MAX_TEMP } {% endif %} {% endif %} ##################################################################### # Fan Control ##################################################################### [fan_generic part_cooling_fan] ## Print Cooling Fan - CNC_FAN0 pin: !PA4 kick_start_time: 0 ## Depending on your fan, you may need to increase this value ## if your fan will not start. Can change cycle_time (increase) ## if your fan is not able to slow down effectively off_below: 0.28 [heater_fan hotend_fan] ## Hotend Fan - CNC_FAN1 pin: printhead: PA0 max_power: 1.0 kick_start_time: 0.5 heater: extruder heater_temp: 50.0 fan_speed: 1.0 [fan_generic exhaust_fan] # Exhaust fan - CNC_FAN3 pin: PF6 max_power: 1.0 shutdown_speed: 0.0 kick_start_time: 5.0 [multi_pin controller_fans] pins: PF7,PF9 [heater_fan controller_fan] ## Controller fan - CNC_FAN2 pin: multi_pin:controller_fans kick_start_time: 0.5 heater: heater_bed heater_temp: 45.0 ##################################################################### # LED Control ##################################################################### [neopixel caselight] pin: PD15 chain_count: 30 color_order: GRB [neopixel hotend_rgb] pin: printhead: PD3 chain_count: 3 color_order: GRB ##################################################################### # Homing and Gantry Adjustment Routines ##################################################################### [idle_timeout] timeout: 1800 [safe_z_home] ## XY Location of the Z Endstop Switch ## Update -10,-10 to the XY coordinates of your endstop pin ## (such as 157,305) after going through Z Endstop Pin ## Location Definition step. home_xy_position:170,170 speed:100 z_hop:10 [quad_gantry_level] ## Use QUAD_GANTRY_LEVEL to level a gantry. ## Min & Max gantry corners - measure from nozzle at MIN (0,0) and ## MAX (250, 250), (300,300), or (350,350) depending on your printer size ## to respective belt positions gantry_corners: -60,-10 410,420 points: 50,25 50,275 300,275 300,25 speed: 300 horizontal_move_z: 10 retries: 10 retry_tolerance: 0.01 max_adjust: 15 [board_pins] aliases: # EXP1 header EXP1_1=PE9, EXP1_2=PE10, EXP1_3=PE11, EXP1_4=PE12, EXP1_5=PE13, EXP1_6=PE14, # Slot in the socket on this side EXP1_7=PE15, EXP1_8=PB10, EXP1_9=, EXP1_10=<5V>, # EXP2 header EXP2_1=PB14, EXP2_2=PB13, EXP2_3=PF7, EXP2_4=PB12, EXP2_5=PE7, EXP2_6=PB11, # Slot in the socket on this side EXP2_7=PE8, EXP2_8=, EXP2_9=, EXP2_10=PC5 ##################################################################### # Optional G-Codes ##################################################################### [gcode_arcs] resolution: 0.1 [exclude_object] [pause_resume] recover_velocity: 100 [firmware_retraction] retract_length: 0.8 retract_speed: 40 unretract_extra_length: 0 unretract_speed: 40 [respond] default_type: echo ##################################################################### # Macros ##################################################################### [gcode_macro G32] gcode: BED_MESH_CLEAR G28 QUAD_GANTRY_LEVEL G28 G0 X345 Y345 Z30 F3600 [gcode_macro PARK_NOZZLE_REAR] gcode: G0 X345 Y345 F3600 [gcode_macro PARK_NOZZLE_FRONT] gcode: G0 X15 Y15 F3600 [gcode_macro PRINT_START] gcode: M140 S{ params.BED | float } ; set bed temperature {% set PROBE_TEMP = 150 %} {% set ACTUAL_TEMP = printer.extruder.temperature %} {% if ACTUAL_TEMP > PROBE_TEMP %} M106 S255 M109 S{ PROBE_TEMP } M106 S0 {% else %} M109 S{ PROBE_TEMP } {% endif %} ; get nozzle to probing temperture M190 S{ params.BED | float } ; wait for bed to reach temperture G32 ; home all axes G1 Z20 F3000 ; move nozzle away from bed M109 S{ params.EXTRUDER | float } ; wait for nozzle to reach temperture SET_LED LED="hotend_rgb" RED=1 GREEN=0 BLUE=1 SYNC=0 TRANSMIT=1 ; turn on hotend LED SET_LED LED="caselight" RED=1 GREEN=1 BLUE=1 SYNC=0 TRANSMIT=1 ; turn on case light [gcode_macro PRINT_PURGE_LINE] gcode: G0 X10Y10Z0.25 F10000 G0 X200Y10Z0.25 E50 F1000 [gcode_macro PRINT_END] gcode: M400 ; wait for buffer to clear G92 E0 ; zero the extruder G1 E-10.0 F3600 ; retract filament G91 ; relative positioning G0 Z1.00 X20.0 Y20.0 F20000 ; move nozzle to remove stringing TURN_OFF_HEATERS ; turn off heaters M107 ; turn off fan G1 Z2 F3000 ; move nozzle up 2mm G90 ; absolute positioning PARK_NOZZLE_REAR ; park nozzle M84 ; disable motors SET_LED LED="hotend_rgb" RED=0 GREEN=0 BLUE=0 SYNC=0 TRANSMIT=1 ; turn off hotend LED SET_LED LED="caselight" RED=0 GREEN=0 BLUE=0 SYNC=0 TRANSMIT=1 ; turn off case light [gcode_macro LOAD_FILAMENT] gcode: M83 G1 E50 F300 G1 E30 F150 [gcode_macro UNLOAD_FILAMENT] gcode: M83 G1 E-50 F3000 G1 E-50 F3000 G1 E-50 F3000 [gcode_macro M106] gcode: # P0: Part cooling fan, P3: Exhaust fan # If no P parameter is given, assume Part Cooling Fan {% set speed = (params.S|float / 255 if params.S is defined else 1.0) %} {% set fan_id = (params.P)|int if params.P is defined else 0 %} {% if fan_id == 0 %} SET_FAN_SPEED FAN=part_cooling_fan SPEED={speed} {% elif fan_id == 3 %} SET_FAN_SPEED FAN=exhaust_fan SPEED={speed} {% endif %} #*# <---------------------- SAVE_CONFIG ----------------------> #*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated. #*# #*# [input_shaper] #*# shaper_type_x = mzv #*# shaper_freq_x = 49.4 #*# shaper_type_y = zv #*# shaper_freq_y = 62.0 #*# #*# [probe] #*# z_offset = -1.875 #*# #*# [extruder] #*# #*# [heater_bed]