[include mainsail.cfg] [mcu] canbus_uuid: 52a031bd2939 [mcu EBBCan] canbus_uuid: 29e87b131cca [printer] kinematics: corexy max_velocity: 300 max_accel: 10000 max_z_velocity: 30 max_z_accel: 350 square_corner_velocity: 5.0 [temperature_sensor MCU] sensor_type: temperature_mcu [temperature_sensor SoC] 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: ^EBBCan:gpio24 position_min: 0 ##-------------------------------------------------------------------- ## Uncomment below for 250mm build #position_endstop: 250 #position_max: 250 ## Uncomment for 300mm build position_endstop: 300 position_max: 300 ## Uncomment for 350mm build #position_endstop: 350 #position_max: 350 ##-------------------------------------------------------------------- homing_speed: 25 homing_retract_dist: 5 homing_positive_dir: true [tmc2209 stepper_x] uart_pin: PC13 interpolate: True run_current: 0.9 sense_resistor: 0.110 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 ##-------------------------------------------------------------------- ## Uncomment for 250mm build #position_endstop: 250 #position_max: 250 ## Uncomment for 300mm build position_endstop: 300 position_max: 300 ## Uncomment for 350mm build #position_endstop: 350 #position_max: 350 ##-------------------------------------------------------------------- homing_speed: 25 homing_retract_dist: 5 homing_positive_dir: true [tmc2209 stepper_y] uart_pin: PE3 interpolate: True run_current: 0.9 sense_resistor: 0.110 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 ##-------------------------------------------------------------------- ## Uncomment below for 250mm build #position_max: 240 ## Uncomment below for 300mm build position_max: 290 ## Uncomment below for 350mm build #position_max: 340 ##-------------------------------------------------------------------- position_min: -5 homing_speed: 8 second_homing_speed: 3 homing_retract_dist: 3 [tmc2209 stepper_z] uart_pin: PB9 interpolate: true run_current: 0.8 sense_resistor: 0.110 stealthchop_threshold: 0 ## Z1 Stepper - Rear Left on Motor5 [stepper_z1] step_pin: PB4 dir_pin: !PB3 enable_pin: !PB6 rotation_distance: 40 gear_ratio: 80:16 microsteps: 16 [tmc2209 stepper_z1] uart_pin: PB5 interpolate: true run_current: 0.8 sense_resistor: 0.110 stealthchop_threshold: 0 ## Z2 Stepper - Rear Right on Motor6 [stepper_z2] step_pin: PG13 dir_pin: PG12 enable_pin: !PG15 rotation_distance: 40 gear_ratio: 80:16 microsteps: 16 [tmc2209 stepper_z2] uart_pin: PG14 interpolate: true run_current: 0.8 sense_resistor: 0.110 stealthchop_threshold: 0 ## Z3 Stepper - Front Right on Motor7 [stepper_z3] step_pin: PG9 dir_pin: !PD7 enable_pin: !PG11 rotation_distance: 40 gear_ratio: 80:16 microsteps: 16 [tmc2209 stepper_z3] uart_pin: PG10 interpolate: true run_current: 0.8 sense_resistor: 0.110 stealthchop_threshold: 0 ##################################################################### # Extruder ##################################################################### # E0 on SB2209 [extruder] step_pin: EBBCan:gpio18 dir_pin: EBBCan:gpio19 enable_pin: !EBBCan:gpio17 microsteps: 16 rotation_distance: 22.905740611 gear_ratio: 50:10 nozzle_diameter: 0.400 filament_diameter: 1.750 heater_pin: EBBCan:gpio7 #control: pid min_temp: 0 max_temp: 300 max_extrude_only_distance: 105 max_extrude_cross_section: 2 #pid_kp: 57.369 #pid_ki: 2.533 #pid_kd: 324.854 sensor_type: MAX31865 sensor_pin: EBBCan:gpio9 spi_software_sclk_pin: EBBCan:gpio10 spi_software_mosi_pin: EBBCan:gpio8 spi_software_miso_pin: EBBCan:gpio11 rtd_nominal_r: 100 rtd_reference_r: 430 rtd_num_of_wires: 2 pressure_advance: 0.03 [tmc2209 extruder] uart_pin: EBBCan:gpio20 run_current: 0.65 stealthchop_threshold: 0 ##################################################################### # Bed Heater ##################################################################### [heater_bed] heater_pin: PA1 sensor_type: Generic 3950 sensor_pin: PB1 max_power: 1.0 min_temp: 0 max_temp: 115 #control: pid #pid_kp: 58.437 #pid_ki: 2.347 #pid_kd: 363.769 ##################################################################### # Probe ##################################################################### [probe] pin: ^EBBCan:gpio22 x_offset: 0 y_offset: 0 #z_offset: 0 lift_speed: 30 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)) } M109 S{ PROBE_TEMP } {% 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] pin: EBBCan:gpio13 [heater_fan hotend_fan] pin: EBBCan:gpio14 heater: extruder heater_temp: 70.0 [fan_generic nevermore] ## Print Cooling Fan - CNC_FAN0 pin: PF8 kick_start_time: 0.5 off_below: 0.10 [controller_fan controller_fan_1] ## Hotend Fan - CNC_FAN1 pin: PF9 max_power: 1.0 kick_start_time: 0.5 fan_speed: 0.66 [heater_fan controller_fan_2] ## Controller fan - CNC_FAN2 pin: PF6 kick_start_time: 0.5 heater: heater_bed heater_temp: 80 fan_speed: 0.66 [fan_generic exhaust_fan] # Exhaust fan - CNC_FAN0 pin: PF7 max_power: 1.0 shutdown_speed: 0.0 kick_start_time: 0.5 ##################################################################### # LED Control ##################################################################### #[neopixel toolhead_light] #pin: EBBCan:gpio16 #chain_count: 3 #color_order: GRBW [include stealthburner_leds.cfg] [led caselight] #Chamber Lighting - HE3 Connector white_pin: PA3 cycle_time: 0.01 ##################################################################### # Other ##################################################################### [servo wiper] # Servo for moving a wiper above the bed plate pin: PD15 ##################################################################### # Homing and Gantry Adjustment Routines ##################################################################### [idle_timeout] timeout: 3300 [safe_z_home] home_xy_position: 150,150 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 360,370 # points: # 40, 260 # 40, 40 # 260,40 # 260,260 points: 30, 30 30, 270 270, 270 270, 20 speed: 100 horizontal_move_z: 10 retries: 10 retry_tolerance: 0.0075 max_adjust: 10 [bed_mesh] mesh_min: 10,10 mesh_max: 290,290 probe_count: 5, 5 [adxl345] cs_pin: EBBCan:gpio1 spi_software_sclk_pin: EBBCan:gpio2 spi_software_mosi_pin: EBBCan:gpio0 spi_software_miso_pin: EBBCan:gpio3 axes_map: z,-y,x [resonance_tester] accel_chip: adxl345 probe_points: 150,150, 20 [exclude_object] [board_pins] aliases: # EXP1 header EXP1_1=PE7, EXP1_2=PG1, EXP1_3=PG0, EXP1_4=PF15, EXP1_5=PF14, EXP1_6=PF13, # Slot in the socket on this side EXP1_7=PF12, EXP1_8=PF11, EXP1_9=, EXP1_10=<5V>, # EXP2 header EXP2_1=PE13, EXP2_2=PE12, EXP2_3=PE15, EXP2_4=PE11, EXP2_5=PE10, EXP2_6=PE14, # Slot in the socket on this side EXP2_7=PE8, EXP2_8=, EXP2_9=, EXP2_10= ##################################################################### # Macros ##################################################################### # Conditional G28 (home if not already homed) [gcode_macro CG28] gcode: {% if "x" not in printer.toolhead.homed_axes or "y" not in printer.toolhead.homed_axes or "z" not in printer.toolhead.homed_axes %} M117 Homing G28 {% endif %} [gcode_macro G32] gcode: STATUS_HOMING BED_MESH_CLEAR CG28 STATUS_LEVELING M117 Leveling Gantry QUAD_GANTRY_LEVEL G28 G0 X150 Y150 Z30 F3600 M117 STATUS_READY [gcode_macro PRINT_START] gcode: {% set BED = params.BED|default(60)|int %} {% set EXTRUDER = params.EXTRUDER|default(210)|int %} {% set mat = params.FILAMENT_TYPE|default("PLA") %} {% if mat == "ABS" %} M118 Turning on exhaust for ABS SET_FAN_SPEED FAN=exhaust_fan SPEED=0.00 {% elif mat == "ASA" %} M118 Turning on exhaust for ASA SET_FAN_SPEED FAN=exhaust_fan SPEED=0.00 {% elif mat == "PETG" %} M118 Turning on exhaust for PETG SET_FAN_SPEED FAN=exhaust_fan SPEED=0.20 {% elif mat == "PLA" %} M118 Turning on exhaust for PLA SET_FAN_SPEED FAN=exhaust_fan SPEED=0.40 {% endif %} SAVE_GCODE_STATE NAME=start CLEAR_PAUSE SET_LED LED=caselight WHITE=0.50 STATUS_HEATING M117 Starting warmup SET_FAN_SPEED FAN=nevermore SPEED=0.75 _CHECK_CANCEL M140 S{BED} _CHECK_CANCEL CG28 G1 Z20 F3000 ; move nozzle away from bed # Heat bed first # Heat nozzle to 140 M117 Heating Bed STATUS_HEATING M104 S140 M190 S{BED} _CHECK_CANCEL # Home and QGL while nozzle is cold M117 Homing G32 # Now heat nozzle _CHECK_CANCEL M117 Heating Nozzle STATUS_HEATING M109 S{EXTRUDER} M117 #Clear Status STATUS_PRINTING BED_MESH_PROFILE LOAD=default RESTORE_GCODE_STATE NAME=start [gcode_macro PRINT_END] # Use PRINT_END for the slicer ending script - please customise for your slicer of choice gcode: SAVE_GCODE_STATE NAME=STATE_PRINT_END 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 M107 ; turn off fan G1 Z2 F3000 ; move nozzle up 2mm G90 ; absolute positioning G0 X125 Y250 F3600 ; park nozzle at rear SET_LED LED=caselight WHITE=0.03 BED_MESH_CLEAR # Wait 3 minutes before turning off fans G4 P180000 SET_FAN_SPEED FAN=nevermore SPEED=0.00 SET_FAN_SPEED FAN=exhaust_fan SPEED=0.00 STATUS_READY # The purpose of the SAVE_GCODE_STATE/RESTORE_GCODE_STATE # command pair is to restore the printer's coordinate system # and speed settings since the commands above change them. # However, to prevent any accidental, unintentional toolhead # moves when restoring the state, explicitly set MOVE=0. RESTORE_GCODE_STATE NAME=STATE_PRINT_END MOVE=0 [gcode_macro _CHECK_CANCEL] gcode: {% if printer.print_stats.state == "cancelling" %} action_respond_info("Macro cancelled") raise {% endif %} [gcode_macro M601] gcode: PAUSE [force_move] enable_force_move: true [pause_resume] recover_velocity: 50. [gcode_macro PAUSE] description: Pause the actual running print rename_existing: PAUSE_BASE gcode: PAUSE_BASE _TOOLHEAD_PARK_PAUSE_CANCEL [gcode_macro RESUME] description: Resume the actual running print rename_existing: RESUME_BASE gcode: ##### read extrude from _TOOLHEAD_PARK_PAUSE_CANCEL macro ##### {% set extrude = printer['gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL'].extrude %} #### get VELOCITY parameter if specified #### {% if 'VELOCITY' in params|upper %} {% set get_params = ('VELOCITY=' + params.VELOCITY) %} {%else %} {% set get_params = "" %} {% endif %} ##### end of definitions ##### {% if printer.extruder.can_extrude|lower == 'true' %} M83 G1 E{extrude} F2100 {% if printer.gcode_move.absolute_extrude |lower == 'true' %} M82 {% endif %} {% else %} {action_respond_info("Extruder not hot enough")} {% endif %} RESUME_BASE {get_params} [gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL] description: Helper: park toolhead used in PAUSE and CANCEL_PRINT variable_extrude: 1.0 gcode: ##### set park position for x and y ##### # default is your max position from your printer.cfg {% set x_park = printer.toolhead.axis_maximum.x|float - 5.0 %} {% set y_park = printer.toolhead.axis_maximum.y|float - 5.0 %} {% set z_park_delta = 2.0 %} ##### calculate save lift position ##### {% set max_z = printer.toolhead.axis_maximum.z|float %} {% set act_z = printer.toolhead.position.z|float %} {% if act_z < (max_z - z_park_delta) %} {% set z_safe = z_park_delta %} {% else %} {% set z_safe = max_z - act_z %} {% endif %} ##### end of definitions ##### {% if printer.extruder.can_extrude|lower == 'true' %} M83 G1 E-{extrude} F2100 {% if printer.gcode_move.absolute_extrude |lower == 'true' %} M82 {% endif %} {% else %} {action_respond_info("Extruder not hot enough")} {% endif %} {% if "xyz" in printer.toolhead.homed_axes %} G91 G1 Z{z_safe} F900 G90 G1 X{x_park} Y{y_park} F6000 {% if printer.gcode_move.absolute_coordinates|lower == 'false' %} G91 {% endif %} {% else %} {action_respond_info("Printer not homed")} {% endif %} # When capture/restore is enabled, the speed at which to return to # the captured position (in mm/s). Default is 50.0 mm/s. #*# <---------------------- SAVE_CONFIG ----------------------> #*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated. #*# #*# [heater_bed] #*# control = pid #*# pid_kp = 63.521 #*# pid_ki = 2.900 #*# pid_kd = 347.777 #*# #*# [extruder] #*# control = pid #*# pid_kp = 16.710 #*# pid_ki = 1.061 #*# pid_kd = 65.795 #*# #*# [probe] #*# z_offset = -1.737 #*# #*# [input_shaper] #*# shaper_type_x = 2hump_ei #*# shaper_freq_x = 71.4 #*# shaper_type_y = mzv #*# shaper_freq_y = 30.0 #*# #*# [bed_mesh default] #*# version = 1 #*# points = #*# -0.002896, 0.089604, 0.109604, 0.124604, 0.042104 #*# 0.002104, 0.097104, 0.059604, 0.037104, -0.040396 #*# -0.065396, -0.005396, 0.027104, -0.005396, -0.092896 #*# -0.030396, 0.047104, 0.064604, 0.027104, -0.032896 #*# 0.037104, 0.099604, 0.139604, 0.087104, 0.032104 #*# x_count = 5 #*# y_count = 5 #*# mesh_x_pps = 2 #*# mesh_y_pps = 2 #*# algo = lagrange #*# tension = 0.2 #*# min_x = 10.0 #*# max_x = 290.0 #*# min_y = 10.0 #*# max_y = 290.0