diff --git a/docs/firmwares/install-and-update-rooted-firmware-ender3.md b/docs/firmwares/install-and-update-rooted-firmware-ender3.md index 95fe5862..0f366f03 100644 --- a/docs/firmwares/install-and-update-rooted-firmware-ender3.md +++ b/docs/firmwares/install-and-update-rooted-firmware-ender3.md @@ -9,10 +9,14 @@ This guide explain how to install firmware and enable Root access. - Ender-3 V3:     :material-google-drive: [1.2.3.10 (Google Drive)](https://drive.google.com/file/d/10C3l2vppEA_tmbGjGqz5hRkYXvc29V0D/view?usp=drive_link) / :material-note-text: [Changelog](https://raw.githubusercontent.com/Guilouz/Creality-Helper-Script-Wiki/main/downloads/Changelogs/Ender-3V3/Changelog_1.2.3.10.txt) + +     :material-google-drive: [1.2.3.21 (Google Drive)](https://drive.google.com/file/d/1M-mxhIKSw2jmhW5YX_K6QvIhRx0EJ6UO/view?usp=drive_link) / :material-note-text: [Changelog](https://raw.githubusercontent.com/Guilouz/Creality-Helper-Script-Wiki/main/downloads/Changelogs/Ender-3V3/Changelog_1.2.3.21.txt) - Ender-3 V3 Plus:     :material-google-drive: [1.2.3.8 (Google Drive)](https://drive.google.com/file/d/12tCO7zBVLqz-Wrbc7WgQnIuNbYdtdhdl/view?usp=drive_link) / :material-note-text: [Changelog](https://raw.githubusercontent.com/Guilouz/Creality-Helper-Script-Wiki/main/downloads/Changelogs/Ender-3V3-Plus/Changelog_1.2.3.8.txt) + +     :material-google-drive: [1.2.3.21 (Google Drive)](https://drive.google.com/file/d/10EOuyyhm4bGDt1yL7Vga5ZkZlgIlJsb0/view?usp=drive_link) / :material-note-text: [Changelog](https://raw.githubusercontent.com/Guilouz/Creality-Helper-Script-Wiki/main/downloads/Changelogs/Ender-3V3-Plus/Changelog_1.2.3.21.txt) ## Installation & Update diff --git a/downloads/Changelogs/Ender-3V3-Plus/Changelog_1.2.3.21.txt b/downloads/Changelogs/Ender-3V3-Plus/Changelog_1.2.3.21.txt new file mode 100644 index 00000000..030c0aff --- /dev/null +++ b/downloads/Changelogs/Ender-3V3-Plus/Changelog_1.2.3.21.txt @@ -0,0 +1,9 @@ +Version Update V1.2.3.21 + +1. Add Z-axis offset save control and risk reminder confirmation pop-up interface. +2. Boot animation: change the page to a green theme. +3. Fixed frequent disconnections of the cloud camera, optimized WebRTC connection speed. +4. Adjusted the camera AI interface layout. +5. Adjusted leveling anomaly prompts. +6. Fixed other known UI issues. +7. Updated privacy policy text. \ No newline at end of file diff --git a/downloads/Changelogs/Ender-3V3/Changelog_1.2.3.21.txt b/downloads/Changelogs/Ender-3V3/Changelog_1.2.3.21.txt new file mode 100644 index 00000000..030c0aff --- /dev/null +++ b/downloads/Changelogs/Ender-3V3/Changelog_1.2.3.21.txt @@ -0,0 +1,9 @@ +Version Update V1.2.3.21 + +1. Add Z-axis offset save control and risk reminder confirmation pop-up interface. +2. Boot animation: change the page to a green theme. +3. Fixed frequent disconnections of the cloud camera, optimized WebRTC connection speed. +4. Adjusted the camera AI interface layout. +5. Adjusted leveling anomaly prompts. +6. Fixed other known UI issues. +7. Updated privacy policy text. \ No newline at end of file diff --git a/downloads/Stock Config Files/Ender-3V3/1.2.3.21/factory_printer.cfg b/downloads/Stock Config Files/Ender-3V3/1.2.3.21/factory_printer.cfg new file mode 100644 index 00000000..3ac7aec2 --- /dev/null +++ b/downloads/Stock Config Files/Ender-3V3/1.2.3.21/factory_printer.cfg @@ -0,0 +1,351 @@ +# K1-MAX +# Printer_size: 300x300x300 +# Version: v1.0.1 +# CreateDate: 2023/03/21 +# Nozzle_mcu: chip: GD32F303CBT6 +# version: K1-NOZZLE-M_V12 +# Leveling_mcu: chip: GD32E230F8P6 +# version: K1-MAX-L-V11 +# mcu: chip: GD32F303RET6 +# version: CR4CU220812S12 + +[include sensorless.cfg] +[include gcode_macro.cfg] +[include printer_params.cfg] + +[mcu] +serial: /dev/ttyS7 +baud: 230400 +restart_method: command + +[mcu nozzle_mcu] +serial: /dev/ttyS1 +baud: 230400 +restart_method: command + +[mcu leveling_mcu] +serial: /dev/ttyS9 +baud: 230400 +restart_method: command + +[verify_heater extruder] +[verify_heater heater_bed] + +[mcu rpi] +serial: /tmp/klipper_host_mcu + +[bl24c16f] +i2c_mcu: rpi +i2c_bus: i2c.2 +i2c_speed: 400000 + +[idle_timeout] +timeout: 99999999 + +[virtual_sdcard] +path: /usr/data/printer_data/gcodes + +[gcode_arcs] +resolution: 1.0 + +[temperature_sensor mcu_temp] +sensor_type: temperature_mcu +min_temp: 0 +max_temp: 100 + +[temperature_sensor chamber_temp] +sensor_type: EPCOS 100K B57560G104F +sensor_pin: PC5 +min_temp: -273 +max_temp: 999 + +[stepper_x] +step_pin: PC2 +dir_pin: !PB9 +enable_pin: !PC3 +microsteps: 32 +rotation_distance: 72 +endstop_pin: tmc2209_stepper_x:virtual_endstop +position_endstop: 306.5 +position_min: -2 +position_max: 306.5 +homing_speed: 36 +homing_retract_dist:0 + +[tmc2209 stepper_x] +uart_pin:PA9 +interpolate: True +run_current:1.5 +hold_current:1.0 +sense_resistor: 0.100 +stealthchop_threshold: 0 +uart_address:3 +diag_pin: ^PB12 +# driver_IHOLDDELAY: 8 +# driver_TPOWERDOWN: 20 +# driver_TBL: 1 +# driver_TOFF: 1 +# driver_HEND: 0 +# driver_HSTRT: 7 +driver_SGTHRS: 65 + +[stepper_y] +step_pin: PB8 +dir_pin: !PB7 +enable_pin: !PC3 +microsteps: 32 +rotation_distance: 72 +endstop_pin: tmc2209_stepper_y:virtual_endstop +position_endstop: -2 +position_min: -2 +position_max: 306 +homing_speed: 36 +homing_retract_dist:0 + +[tmc2209 stepper_y] +uart_pin:PA10 +interpolate: True +run_current:1.5 +hold_current:1.0 +sense_resistor: 0.100 +stealthchop_threshold: 0 +uart_address:3 +diag_pin: ^PB13 +# driver_IHOLDDELAY: 8 +# driver_TPOWERDOWN: 20 +# driver_TBL: 1 +# driver_TOFF: 1 +# driver_HEND: 0 +# driver_HSTRT: 7 +driver_SGTHRS: 65 + +[stepper_z] +step_pin: PB6 +dir_pin: !PB5 +enable_pin: !PC3 +microsteps: 16 +rotation_distance:8 +gear_ratio: 64:20 +endstop_pin: tmc2209_stepper_z:virtual_endstop# PA15 #probe:z_virtual_endstop +position_endstop: 0 +position_max: 305 +position_min: -10 +homing_speed: 10 +second_homing_speed: 1 +homing_retract_dist: 2.0 + +[tmc2209 stepper_z] +uart_pin: PA11 +uart_address: 3 +run_current: 0.8 +diag_pin: ^PB14 +stealthchop_threshold: 0 +sense_resistor: 0.100 +# driver_IHOLDDELAY: 8 +# driver_TPOWERDOWN: 20 +# driver_TBL: 1 +# driver_TOFF: 1 +# driver_HEND: 2 +# driver_HSTRT: 2 +driver_SGTHRS: 0 + +[extruder] +max_extrude_only_distance: 1000.0 +max_extrude_cross_section: 80 +step_pin: nozzle_mcu:PB1 +dir_pin: nozzle_mcu:PB0 +enable_pin: !nozzle_mcu:PB2 +microsteps: 16 +rotation_distance: 6.9 +nozzle_diameter: 0.400 +filament_diameter: 1.750 +heater_pin: nozzle_mcu:PB7 +sensor_type: EPCOS 100K B57560G104F +sensor_pin: nozzle_mcu:PA0 +pressure_advance: 0.04 +pressure_advance_smooth_time: 0.040 +control: pid +pid_Kp: 25.013 +pid_Ki: 2.566 +pid_Kd: 60.966 +min_temp: 0 +max_temp: 320 + +[tmc2209 extruder] +uart_pin: nozzle_mcu: PB11 +tx_pin: nozzle_mcu: PB10 +uart_address: 3 +run_current: 0.5 +sense_resistor: 0.150 +stealthchop_threshold: 0 +# driver_IHOLDDELAY: 8 +# driver_TPOWERDOWN: 20 +# driver_TBL: 2 +# driver_TOFF: 3 +# driver_HEND: 0 +# driver_HSTRT: 5 + +[heater_bed] +heater_pin: PC12 +sensor_type: EPCOS 100K B57560G104F +sensor_pin: PC4 +control: pid +pid_Kp: 54.901 +pid_Ki: 1.142 +pid_Kd: 375.483 +min_temp: 0 +max_temp: 140 + +[filament_switch_sensor filament_sensor] +pause_on_runout: true +switch_pin: ^!PC15 + +[multi_pin heater_fans] +pins:nozzle_mcu:PB5 + +[heater_fan hotend_fan] +pin: multi_pin:heater_fans +heater: extruder +heater_temp: 40 + +[static_digital_output my_fan_output_pins] +pins: nozzle_mcu: PB6 + +[output_pin fan0] +pin: nozzle_mcu: PB8 +pwm: True +cycle_time: 0.0100 +hardware_pwm: false +value: 0.00 +scale: 255 +shutdown_value: 0.0 + +[output_pin fan1] +pin: PC0 +pwm: True +cycle_time: 0.0100 +hardware_pwm: false +value: 0.00 +scale: 255 +shutdown_value: 0.0 + +[output_pin fan2] +pin: PB1 +pwm: True +cycle_time: 0.0100 +hardware_pwm: false +value: 0.00 +scale: 255 +shutdown_value: 0.0 + +[output_pin LED] +pin:PB0 +pwm: True +cycle_time: 0.010 + +[output_pin PA0] +pin:PA0 +pwm: True +cycle_time: 0.010 + +[output_pin PB2] +pin:PB2 +pwm: True +cycle_time: 0.010 + +[output_pin PB10] +pin:PB10 +pwm: True +cycle_time: 0.010 + +[output_pin PC8] +pin:PC8 +pwm: True +cycle_time: 0.010 + +[output_pin PC9] +pin:PC9 +pwm: True +cycle_time: 0.010 + +[adxl345] +cs_pin: nozzle_mcu:PA4 +spi_speed: 5000000 +axes_map: x,-z,y +spi_software_sclk_pin: nozzle_mcu:PA5 +spi_software_mosi_pin: nozzle_mcu:PA7 +spi_software_miso_pin: nozzle_mcu:PA6 + +[resonance_tester] +accel_chip: adxl345 +accel_per_hz: 50 +probe_points: + 150,150,10 + +[prtouch_v2] +z_offset: 0 +step_base:2 +pres_cnt: 4 +#show_msg: True +noz_ex_com: 0.1 +tilt_corr_dis: 0.00 +#pres0_clk_pins: leveling_mcu:PA5 +#pres0_sdo_pins: leveling_mcu:PA1 +#pres1_clk_pins: leveling_mcu:PA2 +#pres1_sdo_pins: leveling_mcu:PA0 +#pres2_clk_pins: leveling_mcu:PA6 +#pres2_sdo_pins: leveling_mcu:PA3 +#pres3_clk_pins: leveling_mcu:PA7 +#pres3_sdo_pins: leveling_mcu:PA4 +#step_swap_pin: mcu:PC10 +#pres_swap_pin: leveling_mcu:PB1 +pres0_clk_pins: leveling_mcu:PB13 +pres0_sdo_pins: leveling_mcu:PB12 +pres1_clk_pins: leveling_mcu:PB15 +pres1_sdo_pins: leveling_mcu:PB14 +pres2_clk_pins: leveling_mcu:PA9 +pres2_sdo_pins: leveling_mcu:PA8 +pres3_clk_pins: leveling_mcu:PA11 +pres3_sdo_pins: leveling_mcu:PA10 +step_swap_pin: mcu:PC10 +pres_swap_pin: leveling_mcu:PA12 +best_above_z: 2 +low_spd_nul:2 +rdy_xy_spd:400 +clr_noz_start_x: 85 +clr_noz_start_y: 219 +clr_noz_len_x: 50 +clr_noz_len_y: 2 +tri_min_hold:2000 +tri_hftr_cut:1 + +# correct_tri_hold: 6000 +# correct_step_mm: 0.02 +z_high_default: -264.0 +min_z_pos: -250 +retract_z_dist: 230 +retract_z_speed: 3600 + + +[bed_mesh] +speed: 150 +mesh_min: 5,5 +mesh_max: 295,295 +probe_count: 5,5 +fade_start: 3.0 +fade_end: 10.0 + +[display_status] + +[printer] +kinematics: corexy +max_velocity: 1000 +max_accel: 20000 +max_accel_to_decel: 10000 +max_z_velocity: 20 +square_corner_velocity: 5.0 +max_z_accel: 300 + + + +[pause_resume] diff --git a/downloads/Stock Config Files/Ender-3V3/1.2.3.21/gcode_macro.cfg b/downloads/Stock Config Files/Ender-3V3/1.2.3.21/gcode_macro.cfg new file mode 100755 index 00000000..41007246 --- /dev/null +++ b/downloads/Stock Config Files/Ender-3V3/1.2.3.21/gcode_macro.cfg @@ -0,0 +1,816 @@ +# F001 +# CreateDate: 2023/08/17 + +[gcode_macro PRINTER_PARAM] +variable_z_safe_pause: 0.0 +variable_z_safe_g28: 3.0 +variable_max_x_position: 220.0 +variable_max_y_position: 220.0 +variable_max_z_position: 250.0 +variable_fans: 3 +variable_auto_g29: 0 +variable_fan0_min: 90 +variable_fan1_min: 50 +variable_fan2_min: 50 +variable_fan2_speed: 0 +variable_hotend_temp: 0 +variable_e_min_current: 0.27 +variable_z_coefficient: 0.9972 +variable_z_pwl_offset: 0.43 +gcode: + +[gcode_macro STRUCTURE_PARAM] +variable_bed_length: 220.0 +variable_bed_width: 220.0 +variable_bed_hight: 250.0 +gcode: + +[gcode_macro AUTOTUNE_SHAPERS] +variable_autotune_shapers: 'ei' +gcode: + +[gcode_macro LOAD_MATERIAL_CLOSE_FAN2] +variable_fan2_value: 0 +gcode: + SAVE_GCODE_STATE NAME=myMoveState + {% if printer['output_pin fan2'].value > 0.0 %} + SET_GCODE_VARIABLE MACRO=LOAD_MATERIAL_CLOSE_FAN2 VARIABLE=fan2_value VALUE={printer['output_pin fan2'].value} + M107 P2 + {% endif %} + RESTORE_E_CURRENT + +[gcode_macro LOAD_MATERIAL_RESTORE_FAN2] +gcode: + {% set fan2_value = printer['gcode_macro LOAD_MATERIAL_CLOSE_FAN2'].fan2_value|float %} + RESTORE_GCODE_STATE NAME=myMoveState + {% if fan2_value > 0.0 %} + {% set s_value = (fan2_value * 255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) * 255 / (255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) %} + M106 P2 S{s_value} G1 + SET_GCODE_VARIABLE MACRO=LOAD_MATERIAL_CLOSE_FAN2 VARIABLE=fan2_value VALUE=0 + {% endif %} + SET_E_MIN_CURRENT + +[gcode_macro SET_E_MIN_CURRENT] +gcode: + {% set e_current = printer['gcode_macro PRINTER_PARAM'].e_min_current %} + M400 + SET_TMC_CURRENT STEPPER=extruder CURRENT={e_current} HOLDCURRENT={e_current} + G4 P2000 + +[gcode_macro RESTORE_E_CURRENT] +gcode: + {% set e_current = printer.configfile.settings['tmc2209 extruder'].run_current %} + M400 + SET_TMC_CURRENT STEPPER=extruder CURRENT={e_current} HOLDCURRENT={e_current} + G4 P2000 + +[gcode_macro LOAD_MATERIAL] +gcode: + LOAD_MATERIAL_CLOSE_FAN2 + M109 S{printer.custom_macro.default_extruder_temp} + G91 + G1 E160 F180 + LOAD_MATERIAL_RESTORE_FAN2 + +[gcode_macro QUIT_MATERIAL] +gcode: + SAVE_GCODE_STATE NAME=myMoveState + RESTORE_E_CURRENT + M109 S{printer.custom_macro.default_extruder_temp} + M83 + G1 E100 F300 + G1 E-15 F3000 + G1 E-22.4700 F2400 + G1 E-6.4200 F1200 + G1 E-3.2100 F720 + G1 E5.0000 F356 + G1 E-5.0000 F384 + G1 E5.0000 F412 + G1 E-5.0000 F440 + G1 E5.0000 F467 + G1 E-5.0000 F495 + G1 E5.0000 F523 + G1 E-5.0000 F3000 + G1 E-15 F3000 + SET_E_MIN_CURRENT + RESTORE_GCODE_STATE NAME=myMoveState + +[gcode_macro Qmode] +variable_flag: 0 +variable_accel: 0 +variable_accel_to_decel: 0 +variable_velocity: 0 +variable_square_corner_velocity: 0 +variable_pressure_advance:0.0 +variable_fan0_value: 0.00 +variable_fan1_value: 0.00 +variable_fan2_value: 0.00 +variable_speed_factor: 0 +variable_max_accel: 3000 +variable_max_accel_to_decel: 3000 +gcode: + {% set printer_state = printer.print_stats.state %} + {% if printer['gcode_macro Qmode'].flag|int == 0 %} + {% if printer_state == "printing" or printer_state == "paused" %} + SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=accel VALUE={printer.toolhead.max_accel} + SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=accel_to_decel VALUE={printer.toolhead.max_accel_to_decel} + SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=velocity VALUE={printer.toolhead.max_velocity} + SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=square_corner_velocity VALUE={printer.toolhead.square_corner_velocity} + SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=pressure_advance VALUE={printer.extruder.pressure_advance} + SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=speed_factor VALUE={printer.gcode_move.speed_factor} + SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE={printer['output_pin fan0'].value} + SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE={printer['output_pin fan1'].value} + SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE={printer['output_pin fan2'].value} + SET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadcycle VALUE=0 + SET_TMC_FIELD STEPPER=stepper_y FIELD=en_spreadcycle VALUE=0 + + SET_TMC_CURRENT STEPPER=stepper_x CURRENT=0.9 + SET_TMC_CURRENT STEPPER=stepper_y CURRENT=0.9 + G4 P500 + + # Set Motion Parameters + SET_VELOCITY_LIMIT ACCEL=3000 + SET_VELOCITY_LIMIT ACCEL_TO_DECEL=3000 + SET_VELOCITY_LIMIT VELOCITY=160 + SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5 + SET_PRESSURE_ADVANCE ADVANCE=0.05 + M220 S50 + + {% set tmp = printer['output_pin fan0'].value * 255 %} + SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE={tmp} + {% if tmp - printer['gcode_macro PRINTER_PARAM'].fan0_min > (255 - printer['gcode_macro PRINTER_PARAM'].fan0_min) / 2 %} + {% set tmp = printer['gcode_macro PRINTER_PARAM'].fan0_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan0_min) / 2 %} + SET_PIN PIN=fan0 VALUE={tmp} + {% endif %} + + {% set tmp = printer['output_pin fan1'].value * 255 %} + SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE={printer['output_pin fan1'].value * 255} + {% if tmp - printer['gcode_macro PRINTER_PARAM'].fan1_min > (255 - printer['gcode_macro PRINTER_PARAM'].fan1_min) / 2 %} + {% set tmp = printer['gcode_macro PRINTER_PARAM'].fan1_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan1_min) / 2 %} + SET_PIN PIN=fan1 VALUE={tmp} + {% endif %} + + {% set tmp = printer['output_pin fan2'].value * 255 %} + SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE={printer['output_pin fan2'].value * 255} + {% if tmp - printer['gcode_macro PRINTER_PARAM'].fan2_min > (255 - printer['gcode_macro PRINTER_PARAM'].fan2_min) / 2 %} + {% set tmp = printer['gcode_macro PRINTER_PARAM'].fan2_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan2_min) / 2 %} + SET_PIN PIN=fan2 VALUE={tmp} + {% endif %} + + SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=flag VALUE=1 + SET_QMODE_FLAG FLAG=1 + {% endif %} + {% endif %} + +[gcode_macro Qmode_exit] +gcode: + {% set printer_state = printer.print_stats.state %} + {% if printer['gcode_macro Qmode'].flag|int == 1 %} + {% if printer_state == "printing" or printer_state == "paused" %} + SET_VELOCITY_LIMIT ACCEL={printer['gcode_macro Qmode'].accel} + SET_VELOCITY_LIMIT ACCEL_TO_DECEL={printer['gcode_macro Qmode'].accel_to_decel} + SET_VELOCITY_LIMIT VELOCITY={printer['gcode_macro Qmode'].velocity} + SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={printer['gcode_macro Qmode'].square_corner_velocity} + SET_PRESSURE_ADVANCE ADVANCE={printer['gcode_macro Qmode'].pressure_advance} + M220 S{printer['gcode_macro Qmode'].speed_factor * 100} + + {% set X_RUN_CUR = printer.configfile.settings['tmc2209 stepper_x'].run_current %} + {% set Y_RUN_CUR = printer.configfile.settings['tmc2209 stepper_y'].run_current %} + SET_TMC_CURRENT STEPPER=stepper_x CURRENT={X_RUN_CUR} + SET_TMC_CURRENT STEPPER=stepper_y CURRENT={Y_RUN_CUR} + + SET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadcycle VALUE=1 + SET_TMC_FIELD STEPPER=stepper_y FIELD=en_spreadcycle VALUE=1 + G4 P500 + + SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=flag VALUE=0 + SET_QMODE_FLAG FLAG=0 + + {% if printer['output_pin fan0'].value != 0 %} + {action_respond_info("fan0_value = %s" % printer['gcode_macro Qmode'].fan0_value)} + SET_PIN PIN=fan0 VALUE={printer['gcode_macro Qmode'].fan0_value} + SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE=0 + {% endif %} + {% if printer['output_pin fan1'].value != 0 %} + {action_respond_info("fan1_value = %s" % printer['gcode_macro Qmode'].fan1_value)} + SET_PIN PIN=fan1 VALUE={printer['gcode_macro Qmode'].fan1_value} + SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE=0 + {% endif %} + {% if printer['output_pin fan2'].value != 0 %} + {action_respond_info("fan2_value = %s" % printer['gcode_macro Qmode'].fan2_value)} + SET_PIN PIN=fan2 VALUE={printer['gcode_macro Qmode'].fan2_value} + SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE=0 + {% endif %} + {% endif %} + {% endif %} + +[gcode_macro M204] +rename_existing: M204.1 +gcode: + # {% if printer['gcode_macro Qmode'].flag|int == 0 %} + {% set get_params = "" %} + {% set qmode_max_accel = printer['gcode_macro Qmode'].max_accel|string %} + {% if 'S' in params|upper %} + {% if printer['gcode_macro Qmode'].flag|int == 1 and params.S|float > qmode_max_accel|float %} + {% set get_params = (get_params + ' ' + 'S' + qmode_max_accel) %} + {% else %} + {% set get_params = (get_params + ' ' + 'S' + params.S) %} + {% endif %} + {% endif %} + {% if 'P' in params|upper %} + {% if printer['gcode_macro Qmode'].flag|int == 1 and params.P|float > qmode_max_accel|float %} + {% set get_params = (get_params + ' ' + 'P' + qmode_max_accel) %} + {% else %} + {% set get_params = (get_params + ' ' + 'P' + params.P) %} + {% endif %} + {% endif %} + {% if 'T' in params|upper %} + {% if printer['gcode_macro Qmode'].flag|int == 1 and params.T|float > qmode_max_accel|float %} + {% set get_params = (get_params + ' ' + 'T' + qmode_max_accel) %} + {% else %} + {% set get_params = (get_params + ' ' + 'T' + params.T) %} + {% endif %} + {% endif %} + M204.1 {get_params} + # {% endif %} + +[gcode_macro M205] +gcode: + {% if 'X' in params %} + SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={params.X} + {% elif 'Y' in params %} + SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={params.Y} + {% endif %} + +[gcode_macro M106] +variable_user_flag: 0 +gcode: + + {% if (params.U is defined and params.U|int == 1) or (params.U is not defined and printer["gcode_macro M106"].user_flag|int == 0) or (params.G is defined)%} + {% if (params.U is defined and params.U|int == 1) %} + SET_GCODE_VARIABLE MACRO=M106 VARIABLE=user_flag VALUE={params.U|int} + {% endif %} + + + {% set fans = printer["gcode_macro PRINTER_PARAM"].fans|int %} + {% set fan = 0 %} + {% set value = 0 %} + {% if params.P is defined %} + {% set tmp = params.P|int %} + {% if tmp < fans %} + {% set fan = tmp %} + {% endif %} + {% endif %} + {% if params.S is defined %} + {% set tmp = params.S|float %} + {% else %} + {% set tmp = 255 %} + {% endif %} + {% if tmp > 0 %} + {% if fan == 0 %} + {% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan0_min) / 255 * tmp %} + {% if printer['gcode_macro Qmode'].flag | int == 1 %} + SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan0_min + value} + {% if value > (255 - printer['gcode_macro PRINTER_PARAM'].fan0_min) / 2 %} + {% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan0_min) / 2 %} + {% else %} + {% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + value %} + {% endif %} + {% else %} + {% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + value %} + {% endif %} + {% endif %} + {% if fan == 1 %} + {% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan1_min) / 255 * tmp %} + {% if printer['gcode_macro Qmode'].flag | int == 1 %} + SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan1_min + value} + {% if value > (255 - printer['gcode_macro PRINTER_PARAM'].fan1_min) / 2 %} + {% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan1_min) / 2 %} + {% else %} + {% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + value %} + {% endif %} + {% else %} + {% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + value %} + {% endif %} + {% endif %} + {% if fan == 2 %} + {% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) / 255 * tmp %} + {% if printer['gcode_macro Qmode'].flag | int == 1 %} + SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan2_min + value} + {% if value > (255 - printer['gcode_macro PRINTER_PARAM'].fan2_min) / 2 %} + {% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan2_min) / 2 %} + {% else %} + {% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + value %} + {% endif %} + {% else %} + {% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + value %} + {% endif %} + {% endif %} + {% endif %} + {% if value >= 255 %} + {% set value = 255 %} + {% endif %} + SET_PIN PIN=fan{fan} VALUE={value} + {% endif %} + +[gcode_macro M107] +gcode: + {% set fans = printer["gcode_macro PRINTER_PARAM"].fans|int %} + {% if params.P is defined %} + {% if params.P|int < fans %} + SET_PIN PIN=fan{params.P|int} VALUE=0 + {% else %} + SET_PIN PIN=fan0 VALUE=0 + {% endif %} + {% else %} + SET_PIN PIN=fan0 VALUE=0 + SET_PIN PIN=fan2 VALUE=0 + {% endif %} + +[gcode_macro M900] +gcode: + {% if 'K' in params %} + {% if 'E' in params %} + SET_PRESSURE_ADVANCE EXTRUDER={params.E} ADVANCE={params.K} + {% else %} + SET_PRESSURE_ADVANCE ADVANCE={params.K} + {% endif %} + {% endif %} + +[delayed_gcode wait_temp] +# initial_duration: 2. +gcode: + {% set cur_temp = printer.extruder.temperature %} + {% if cur_temp|int < 40 %} + #{action_respond_info("end_temp!\n")} + WAIT_TEMP_END + {% else %} + #{action_respond_info("cur_temp = %s \n" % (cur_temp))} + UPDATE_DELAYED_GCODE ID=wait_temp DURATION=5 + {% endif %} + +[gcode_macro WAIT_TEMP_START] +gcode: + UPDATE_DELAYED_GCODE ID=wait_temp DURATION=1 + #M106 P0 S255 G1 + M106 P2 S127 G1 + +[gcode_macro WAIT_TEMP_END] +gcode: + UPDATE_DELAYED_GCODE ID=wait_temp DURATION=0 + M106 P0 S0 G1 + M106 P2 S0 G1 + +[gcode_macro PRINT_CALIBRATION] +# This part of the command is replaced by the application side without passing parameters +gcode: + CX_PRINT_LEVELING_CALIBRATION + +[gcode_macro FIRST_FLOOR_PAUSE_POSITION] +gcode: + {% set extruder_temp = printer.custom_macro.g28_ext_temp %} + M104 S{extruder_temp} + {% set y_park = 5 %} + {% set x_park = 5 %} + G90 + G1 Z2 F600 + G1 X{x_park} Y{y_park} F6000 + G1 Z0.2 F600 + +[gcode_macro ACCURATE_G28] +gcode: + {% if printer['gcode_macro START_PRINT'].z_sensorless|int == 1 %} + G4 P1000 + STEPPER_Z_SENEORLESS + M400 + G4 P500 + SET_KINEMATIC_POSITION + {% set retract_z = printer.configfile.settings['prtouch_v2'].retract_z_dist %} + {% set retract_speed = printer.configfile.settings['prtouch_v2'].retract_z_speed %} + G91 + G1 Z-{retract_z} F{retract_speed} + M400 + G90 + G4 P1000 + {action_respond_info("STEPPER_Z_SENEORLESS \n")} + Z_SENSORLESS_CLEAR + {% endif %} + ACCURATE_HOME_Z + +[gcode_macro Z_SENSORLESS_SET] +gcode: + SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=z_sensorless VALUE=1 + {action_respond_info("set z_sensorless")} + +[gcode_macro Z_SENSORLESS_CLEAR] +gcode: + SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=z_sensorless VALUE=0 + {action_respond_info("clear z_sensorless")} + +[gcode_macro START_PRINT] +variable_prepare: 0 +variable_z_sensorless: 0 +gcode: + SET_GCODE_VARIABLE MACRO=M106 VARIABLE=user_flag VALUE=0 + WAIT_TEMP_END + CLEAR_PAUSE + SET_TEMPERATURE_FAN_TARGET temperature_fan=soc_fan target=5 + {% set g28_extruder_temp = printer.custom_macro.g28_ext_temp %} + {% set bed_temp = printer.custom_macro.default_bed_temp %} + {% set extruder_temp = printer.custom_macro.default_extruder_temp %} + + {% if 'BED_TEMP' in params|upper and (params.BED_TEMP|float) %} + {% set bed_temp = params.BED_TEMP %} + {% endif %} + + {% if 'EXTRUDER_TEMP' in params|upper and (params.EXTRUDER_TEMP|float) %} + {% set extruder_temp = params.EXTRUDER_TEMP %} + {% endif %} + + {% if printer['gcode_macro START_PRINT'].prepare|int == 0 %} + {action_respond_info("not prepare.\n")} + + PRINT_PREPARE_CLEAR + CX_ROUGH_G28 EXTRUDER_TEMP={extruder_temp} BED_TEMP={bed_temp} + CX_NOZZLE_CLEAR + Z_SENSORLESS_SET + ACCURATE_G28 + {% else %} + PRINT_PREPARE_CLEAR + {% endif %} + + CX_PRINT_DRAW_ONE_LINE + + +[gcode_macro PRINT_PREPARED] +gcode: + SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=prepare VALUE=1 + {action_respond_info("print prepared")} + +[gcode_macro PRINT_PREPARE_CLEAR] +gcode: + SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=prepare VALUE=0 + +[gcode_macro END_PRINT_POINT_WITHOUT_LIFTING] +gcode: + {% if "xyz" in printer.toolhead.homed_axes %} + {% set E = printer["gcode_macro PAUSE"].extrude|float %} + G91 + {% if printer.extruder.can_extrude|lower == 'true' %} + G1 E-1.0 F180 + G1 E-{E} F4000 + {% else %} + {action_respond_info("Extruder not hot enough")} + {% endif %} + G1 Z2.0 F600 + G90 + {% set y_park = printer.toolhead.axis_maximum.y/2 %} + {% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %} + G1 X{x_park} Y{y_park} F12000 + {% else %} + {action_respond_info("end print xyz_axes is NULL\n")} + {% endif %} + +[gcode_macro END_PRINT_POINT] +gcode: + {% if "xyz" in printer.toolhead.homed_axes %} + {% set E = printer["gcode_macro PAUSE"].extrude|float %} + {% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %} + {% set act_z = printer.toolhead.position.z|float %} + {% set z_safe = 0.0 %} + {% if act_z < (max_z ) %} + {% set z_safe = (max_z ) - act_z %} + {% elif act_z < max_z %} + {% set z_safe = 2.0 %} + {% endif %} + G91 + {% if printer.extruder.can_extrude|lower == 'true' %} + G1 E-1.0 F180 + G1 E-{E} F4000 + {% else %} + {action_respond_info("Extruder not hot enough")} + {% endif %} + G1 Z2.0 F1200 + G90 + {% set y_park = printer.toolhead.axis_maximum.y|float - 2.0 %} + {% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %} + G1 X{x_park} Y144 F6000 + {% if z_safe > 2.0 %} + G91 + {% set z_safe = z_safe - 2.0 %} + G1 Z{z_safe} F1200 + G90 + {% endif %} + {% else %} + {action_respond_info("end print xyz_axes is NULL\n")} + {% endif %} + +[gcode_macro END_SELF_TEST_POINT] +gcode: + {% if "xyz" in printer.toolhead.homed_axes %} + {% set E = printer["gcode_macro PAUSE"].extrude|float %} + {% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %} + {% set act_z = printer.toolhead.position.z|float %} + {% set z_safe = 0.0 %} + {% if act_z < (max_z ) %} + {% set z_safe = (max_z ) - act_z %} + {% elif act_z < max_z %} + {% set z_safe = 2.0 %} + {% endif %} + G91 + G1 Z2.0 F1200 + G90 + + {% if z_safe > 2.0 %} + G91 + {% set z_safe = z_safe - 2.0 %} + G1 Z{z_safe} F1200 + G90 + {% endif %} + {% else %} + {action_respond_info("end print xyz_axes is NULL\n")} + {% endif %} + +[gcode_macro END_PRINT] +gcode: + SET_GCODE_VARIABLE MACRO=M106 VARIABLE=user_flag VALUE=0 + Qmode_exit + EXCLUDE_OBJECT_RESET + PRINT_PREPARE_CLEAR + M220 S100 + SET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=2500 + TURN_OFF_HEATERS + M107 P1 + M107 P2 + END_PRINT_POINT + WAIT_TEMP_START + M84 + SET_TEMPERATURE_FAN_TARGET temperature_fan=soc_fan target=45 + +[gcode_macro END_SELF_TEST] +gcode: + Qmode_exit + EXCLUDE_OBJECT_RESET + PRINT_PREPARE_CLEAR + M220 S100 + SET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=2500 + TURN_OFF_HEATERS + M107 P1 + M107 P2 + END_SELF_TEST_POINT + WAIT_TEMP_START + M84 + SET_TEMPERATURE_FAN_TARGET temperature_fan=soc_fan target=45 + +[gcode_macro FIRST_FLOOR_PAUSE] +description: Pause the first floor print +# change this if you need more or less extrusion +variable_extrude: 2.0 +gcode: + ##### read E from pause macro ##### + {% set E = printer["gcode_macro FIRST_FLOOR_PAUSE"].extrude|float %} + ##### set park positon for x and y ##### + # default is your max posion from your printer.cfg + {% set y_park = 5 %} + {% set x_park = 5 %} + ##### calculate save lift position ##### + {% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %} + {% set act_z = printer.toolhead.position.z|float %} + {% set z_safe = 0.0 %} + {% if act_z < (max_z - 2.0) %} + {% set z_safe = 2.0 %} + {% elif act_z < max_z %} + {% set z_safe = max_z - act_z %} + {% endif %} + ##### end of definitions ##### + SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=z_safe_pause VALUE={z_safe|float} + PAUSE_BASE + G91 + {% if "xyz" in printer.toolhead.homed_axes %} + {% if printer.extruder.can_extrude|lower == 'true' %} + G1 E-1.0 F180 + G1 E-{E} F4000 + {% else %} + {action_respond_info("Extruder not hot enough")} + {% endif %} + G1 Z{z_safe} F600 + G90 + G1 X{x_park} Y{y_park} F12000 + {% else %} + {action_respond_info("Printer not homed")} + {% endif %} + # save fan2 value and turn off fan2 + SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=fan2_speed VALUE={printer['output_pin fan2'].value} + {% set fspeed = printer['gcode_macro PRINTER_PARAM'].fan2_speed %} + {action_respond_info("fan2_value = %s \n" % (fspeed))} + # SET_PIN PIN=fan2 VALUE=0 + M106 P2 S0 G1 + SET_E_MIN_CURRENT + +[gcode_macro FIRST_FLOOR_RESUME] +description: Resume the first floor print +gcode: + RESTORE_E_CURRENT + {% if printer['gcode_macro PRINTER_PARAM'].fan2_speed > 0 %} + # {% set fspeed = printer['gcode_macro PRINTER_PARAM'].fan2_speed %} + # {action_respond_info("fan2_value2 = %s \n" % (fspeed))} + # SET_PIN PIN=fan2 VALUE={(printer['gcode_macro PRINTER_PARAM'].fan2_speed * 255 + 0.5)|int} + {% set s_value = (printer['gcode_macro PRINTER_PARAM'].fan2_speed * 255 - printer['gcode_macro PRINTER_PARAM'].fan2_min) * 255 / (255 - printer['gcode_macro PRINTER_PARAM'].fan2_min)|float %} + M106 P2 S{s_value} G1 + {% endif %} + ##### read E from pause macro ##### + {% set E = printer["gcode_macro FIRST_FLOOR_PAUSE"].extrude|float + 1.0 %} + #### 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' %} + G91 + G1 E{E} F2100 + {% else %} + {action_respond_info("Extruder not hot enough")} + {% endif %} + M400 + RESUME_BASE {get_params} + +[gcode_macro PAUSE] +description: Pause the actual running print +rename_existing: PAUSE_BASE +# change this if you need more or less extrusion +variable_extrude: 2.0 +gcode: + ##### read E from pause macro ##### + {% set E = printer["gcode_macro PAUSE"].extrude|float %} + ##### set park positon for x and y ##### + # default is your max posion from your printer.cfg + {% set y_park = printer.toolhead.axis_maximum.y/2 %} + {% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %} + ##### calculate save lift position ##### + {% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %} + {% set act_z = printer.toolhead.position.z|float %} + {% set z_safe = 0.0 %} + {% if act_z < 48.0 %} + {% set z_safe = 50.0 - act_z %} + {% elif act_z < (max_z - 2.0) %} + {% set z_safe = 2.0 %} + {% elif act_z < max_z %} + {% set z_safe = max_z - act_z %} + {% endif %} + {action_respond_info("z_safe = %s"% (z_safe))} + ##### end of definitions ##### + SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=z_safe_pause VALUE={z_safe|float} + PAUSE_BASE + G91 + SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=hotend_temp VALUE={printer.extruder.target} + M104 S140 + {% if "xyz" in printer.toolhead.homed_axes %} + {% if printer.extruder.can_extrude|lower == 'true' %} + G1 E-1.0 F180 + G1 E-{E} F4000 + {% else %} + {action_respond_info("Extruder not hot enough")} + {% endif %} + G1 Z{z_safe} F600 + M400 + G90 + G1 X{x_park} Y{y_park} F12000 + {% else %} + {action_respond_info("Printer not homed")} + {% endif %} + # save fan2 value and turn off fan2 + SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=fan2_speed VALUE={printer['output_pin fan2'].value} + {% set fspeed = printer['gcode_macro PRINTER_PARAM'].fan2_speed %} + {action_respond_info("fan2_value = %s \n" % (fspeed))} + # SET_PIN PIN=fan2 VALUE=0 + M106 P2 S0 G1 + SET_E_MIN_CURRENT + +[gcode_macro INPUTSHAPER] +gcode: + SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 + #SET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=0 + SET_TEMPERATURE_FAN_TARGET temperature_fan=soc_fan target=5 + G90 + G28 + {% set POSITION_X = printer.configfile.settings['stepper_x'].position_max/2 %} + {% set POSITION_Y = printer.configfile.settings['stepper_y'].position_max/2 %} + G1 X{POSITION_X} Y{POSITION_Y} F6000 + G1 Z20 F1200 + SHAPER_CALIBRATE + CXSAVE_CONFIG + SET_TEMPERATURE_FAN_TARGET temperature_fan=soc_fan target=45 + SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 + #SET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=1 + +[gcode_macro BEDPID] +gcode: + PID_CALIBRATE HEATER=heater_bed TARGET=100 + SAVE_CONFIG + +[gcode_macro TUNOFFINPUTSHAPER] +gcode: + SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0 + +[gcode_macro RESUME] +description: Resume the actual running print +rename_existing: RESUME_BASE +gcode: + RESTORE_E_CURRENT + {% if printer['gcode_macro PRINTER_PARAM'].hotend_temp|int != 0 %} + {% if printer['gcode_macro PRINTER_PARAM'].hotend_temp|int > printer.extruder.temperature %} + M109 S{printer['gcode_macro PRINTER_PARAM'].hotend_temp|int} + {% else %} + M104 S{printer['gcode_macro PRINTER_PARAM'].hotend_temp|int} + {% endif %} + SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=hotend_temp VALUE=0 + {% endif %} + {% if printer['gcode_macro PRINTER_PARAM'].fan2_speed > 0 %} + # {% set fspeed = printer['gcode_macro PRINTER_PARAM'].fan2_speed %} + # {action_respond_info("fan2_value2 = %s \n" % (fspeed))} + # SET_PIN PIN=fan2 VALUE={(printer['gcode_macro PRINTER_PARAM'].fan2_speed * 255 + 0.5)|int} + {% set s_value = (printer['gcode_macro PRINTER_PARAM'].fan2_speed * 255 - printer['gcode_macro PRINTER_PARAM'].fan2_min) * 255 / (255 - printer['gcode_macro PRINTER_PARAM'].fan2_min)|float %} + M106 P2 S{s_value} G1 + {% endif %} + {% set z_resume_move = printer['gcode_macro PRINTER_PARAM'].z_safe_pause|int %} + {% if z_resume_move > 2 %} + {% set z_resume_move = z_resume_move - 2 %} + G91 + G1 Z-{z_resume_move} F600 + M400 + {% endif %} + {action_respond_info("z_resume_move = %s"% (z_resume_move))} + ##### read E from pause macro ##### + {% set E = printer["gcode_macro PAUSE"].extrude|float + 1.0 %} + #### 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' %} + G91 + G1 E{E} F2100 + G90 + {% else %} + {action_respond_info("Extruder not hot enough")} + {% endif %} + M400 + RESUME_BASE {get_params} + +[gcode_macro CANCEL_PRINT] +description: Cancel the actual running print +rename_existing: CANCEL_PRINT_BASE +gcode: + END_PRINT + CANCEL_PRINT_BASE + +[gcode_macro G29] +gcode: + {% if 'PROBE_COUNT' in params|upper %} + {% set get_count = ('PROBE_COUNT' + params.PROBE_COUNT) %} + {%else %} + {% set get_count = "" %} + {% endif %} + + {% set bed_temp = printer.custom_macro.default_bed_temp %} + {% set extruder_temp = printer.custom_macro.g28_ext_temp %} + {% set nozzle_clear_temp = printer.custom_macro.default_extruder_temp %} + + {% if 'BED_TEMP' in params|upper %} + {% set bed_temp = params.BED_TEMP %} + {% endif %} + + {% if 'EXTRUDER_TEMP' in params|upper %} + {% set nozzle_clear_temp = params.EXTRUDER_TEMP %} + {% endif %} + SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 + #SET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=0 + SET_TEMPERATURE_FAN_TARGET temperature_fan=soc_fan target=5 + M109 S140 + G28 + BED_MESH_CLEAR + NOZZLE_CLEAR HOT_MIN_TEMP={extruder_temp} HOT_MAX_TEMP={nozzle_clear_temp} BED_MAX_TEMP={bed_temp} + M204 S5000 + SET_VELOCITY_LIMIT ACCEL_TO_DECEL=5000 + BED_MESH_CALIBRATE {get_count} + BED_MESH_OUTPUT + {% set y_park = printer.toolhead.axis_maximum.y/2 %} + {% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %} + G1 Z50 F3600 + CXSAVE_CONFIG + TURN_OFF_HEATERS + SET_TEMPERATURE_FAN_TARGET temperature_fan=soc_fan target=45 + SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 + #SET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=1 + +# [gcode_macro G299] +# gcode: +# BED_MESH_CLEAR +# G28 +# PRTOUCH_READY +# BED_MESH_CALIBRATE +# BED_MESH_OUTPUT diff --git a/downloads/Stock Config Files/Ender-3V3/1.2.3.21/printer.cfg b/downloads/Stock Config Files/Ender-3V3/1.2.3.21/printer.cfg new file mode 100755 index 00000000..be616b12 --- /dev/null +++ b/downloads/Stock Config Files/Ender-3V3/1.2.3.21/printer.cfg @@ -0,0 +1,347 @@ +# F001 +# Printer_size: 220x220x250 +# Version: v1.8.1 +# CreateDate: 2023/09/01 +# Nozzle_mcu: chip: GD32F303CBT6 +# version: CR-K1-MAX-NOZZLE-V1.0.0 +# Leveling_mcu: chip: GD32E230F8P6 +# version: CR-K1-MAX-LEVELING-V1.0.0 +# mcu: chip: GD32F303RET6 +# version: CR4CU220812S12 +[include sensorless.cfg] +[include gcode_macro.cfg] +[include printer_params.cfg] + +[mcu] +serial: /dev/ttyS7 +baud: 230400 +restart_method: command + +[mcu nozzle_mcu] +serial: /dev/ttyS1 +baud: 230400 +restart_method: command + +[mcu leveling_mcu] +serial: /dev/ttyS9 +baud: 230400 +restart_method: command + +[gap_auto_comp] +#show_msg: True +x_gaps: 0.05 +y_gaps: 0 +z_gaps: 0 + +[prtouch_v2] +pr_version: 1 +step_base: 2 +z_offset: 0 +noz_ex_com: 0.10 +tilt_corr_dis: 0 +tri_min_hold: 2500 +tri_max_hold: 6000 +pres_cnt: 4 +pres0_clk_pins: leveling_mcu:PB13 +pres0_sdo_pins: leveling_mcu:PB12 +pres1_clk_pins: leveling_mcu:PB15 +pres1_sdo_pins: leveling_mcu:PB14 +pres2_clk_pins: leveling_mcu:PA9 +pres2_sdo_pins: leveling_mcu:PA8 +pres3_clk_pins: leveling_mcu:PA11 +pres3_sdo_pins: leveling_mcu:PA10 +step_swap_pin: mcu:PC10 +pres_swap_pin: leveling_mcu:PA12 +g28_wait_cool_down: true +pa_clr_down_mm: -0.15 +rdy_xy_spd:400 +clr_noz_start_x: 85 +clr_noz_start_y: 219 +clr_noz_len_x: 50 +clr_noz_len_y: 2 +speeds: 2.5,1.0 +tri_hftr_cut: 2,1 +tri_lftr_k1: 0.70,0.30 +tri_try_max_times: 10 +tri_min_hold: 2500,20000 +tri_max_hold: 6000,60000 +need_self_check:false + +# correct_tri_hold: 6000 +# correct_step_mm: 0.02 +z_high_default: -264.0 +min_z_pos: -250 +retract_z_dist: 250 +retract_z_speed: 3600 + +# [filament_switch_sensor filament_sensor_2] +# pause_on_runout: true +# switch_pin: nozzle_mcu:PA1 +[filament_switch_sensor filament_sensor] +pause_on_runout: true +switch_pin: !PC15 + +[verify_heater extruder] +check_gain_time:30 +[verify_heater heater_bed] +check_gain_time:120 +heating_gain: 1.0 +hysteresis: 10 + +[mcu rpi] +serial: /tmp/klipper_host_mcu + +[bl24c16f] +i2c_mcu: rpi +i2c_bus: i2c.2 +i2c_speed: 400000 + +[idle_timeout] +timeout: 99999999 + +[virtual_sdcard] +path: /usr/data/printer_data/gcodes + +[gcode_arcs] +resolution: 1.0 + +[duplicate_pin_override] +pins:PC6 +[temperature_fan soc_fan] +pin:PB2 +sensor_type: temperature_mcu +control:watermark +kick_start_time:0.500 +shutdown_speed:0 +off_below:0.1 +target_temp:45 +min_temp:-15 +max_temp:100 +max_speed:1 +min_speed:0.3 +tachometer_pin:PC6 +# [output_pin soc_fan] +# pin: PB2 +# pwm: True +# cycle_time: 0.0100 +# hardware_pwm: false +# value: 0.00 +# scale: 255 +# shutdown_value: 0.0 + +[stepper_x] +step_pin:PC2 +dir_pin:PB9 +enable_pin:!PC3 +microsteps:32 +rotation_distance:39.94 +# endstop_pin:tmc2209_stepper_x:virtual_endstop +endstop_pin:PA5 +position_endstop:-2 +position_min:-2 +position_max:227 +homing_speed:60 +homing_retract_dist:0#10 + +[tmc2209 stepper_x] +uart_pin:PA9 +driver_SGTHRS: 85 +uart_address:3 +interpolate: true +run_current:1.5 +sense_resistor: 0.10 +stealthchop_threshold: 0 +diag_pin: ^PB12 +driver_TBL: 1 +driver_TOFF: 2 +driver_HEND: 2 +driver_HSTRT: 4 + +[stepper_y] +step_pin: PB8 +dir_pin: PB7 +enable_pin: !PC3 +microsteps: 32 +rotation_distance: 40 +endstop_pin: tmc2209_stepper_y:virtual_endstop +position_endstop: -5 +position_min: -10 +position_max: 221.5 +homing_speed: 30 +homing_retract_dist:0 + +[tmc2209 stepper_y] +uart_pin:PA10 +driver_SGTHRS: 78 +uart_address:3 +interpolate: true +run_current:1.5 +sense_resistor: 0.10 +stealthchop_threshold: 0 +diag_pin: ^PB13 +driver_TBL: 1 +driver_TOFF: 2 +driver_HEND: 2 +driver_HSTRT: 4 + +[stepper_z] +step_pin: PB6 +dir_pin: PB5 +enable_pin: !PC3 +microsteps: 32 +rotation_distance:39.94 +# endstop_pin: tmc2209_stepper_z:virtual_endstop +endstop_pin:PA15 +position_endstop: 268 +position_min: -10 +position_max: 275 +homing_speed: 60 +homing_retract_dist:0 #10 + +[tmc2209 stepper_z] +uart_pin:PA11 +driver_SGTHRS: 80 +uart_address:3 +interpolate: true +run_current:1.5 +#hold_current:1.5 +sense_resistor: 0.10 +stealthchop_threshold: 0 +diag_pin: ^PB14 +driver_TBL: 1 +driver_TOFF: 2 +driver_HEND: 2 +driver_HSTRT: 4 + +[extruder] +max_extrude_cross_section: 80 +max_extrude_only_distance:1000.0 +step_pin:nozzle_mcu:PB5 +dir_pin:nozzle_mcu:PB4 +enable_pin:!nozzle_mcu:PB2 +microsteps:16 +rotation_distance:6.9 +nozzle_diameter:0.400 +filament_diameter:1.750 +heater_pin:nozzle_mcu:PB8 +sensor_type: EPCOS 100K B57560G104F +sensor_pin:nozzle_mcu:PA0#PC5 +pressure_advance: 0.04 +pressure_advance_smooth_time: 0.040 +control:pid +pid_Kp:24.669 +pid_Ki:2.937 +pid_Kd:51.804 +min_temp:-15 +max_temp:320 + +[tmc2209 extruder] +uart_pin:nozzle_mcu:PB11 +tx_pin:nozzle_mcu:PB10 +uart_address:3 +interpolate: false +run_current:0.55 +hold_current:0.5 +sense_resistor: 0.150 +stealthchop_threshold: 0 + +[heater_bed] +heater_pin: PB10 +sensor_type: EPCOS 100K B57560G104F +sensor_pin: PC4 +control: pid +pid_kp: 27 +pid_ki: 0.08 +pid_kd: 0 +min_temp: -15 +max_temp: 115 + +#喉管风扇# +[heater_fan my_nozzle_fan] +pin:nozzle_mcu:PB6 +heater:extruder +heater_temp:50.0 +cycle_time: 0.0100 +hardware_pwm: false +shutdown_speed: 0.0 +fan_speed:1 + + +[static_digital_output my_board_fan] +pins:nozzle_mcu:PB7 +#喷嘴风扇# +[output_pin fan0] +pin: !nozzle_mcu: PB3 +pwm: True +cycle_time: 0.0100 +hardware_pwm: false +value: 0.00 +scale: 255 +shutdown_value: 0.0 + +[output_pin fan2] +pin:nozzle_mcu:PB9 +pwm: True +cycle_time: 0.0100 +hardware_pwm: false +value: 0.00 +scale: 255 +shutdown_value: 0.0 + +[output_pin fan1] +pin:!nozzle_mcu:PC14 +pwm: True +cycle_time: 0.0100 +hardware_pwm: false +value: 0.00 +scale: 255 +shutdown_value: 0.0 + +[adxl345 adx_x] +cs_pin: nozzle_mcu:PA4 +spi_speed: 5000000 +axes_map: y,-z,x +spi_software_sclk_pin: nozzle_mcu:PA5 +spi_software_mosi_pin: nozzle_mcu:PA7 +spi_software_miso_pin: nozzle_mcu:PA6 + +[adxl345 adx_y] +cs_pin: leveling_mcu:PA4 +spi_speed: 5000000 +axes_map: y,x,z +spi_software_sclk_pin: leveling_mcu:PA5 +spi_software_mosi_pin: leveling_mcu:PA7 +spi_software_miso_pin: leveling_mcu:PA6 + +[resonance_tester] +accel_chip_x:adxl345 adx_x +accel_chip_y:adxl345 adx_y +#accel_per_hz: 50 +probe_points: + 110,110,20 + +[bed_mesh] +speed:80 +mesh_min:5,5 +mesh_max:215,215 +probe_count:5,5 +algorithm:bicubic +fade_start: 5.0 +fade_end: 50.0 + +[display_status] + +[printer] +kinematics:corexz +max_velocity:600 +max_accel:20000 +max_accel_to_decel: 10000 +max_z_velocity:500 +square_corner_velocity: 5.0 +square_corner_max_velocity: 200.0 +[pause_resume] + +[soft_homing] +diff_step:20 + +[exclude_object] diff --git a/downloads/Stock Config Files/Ender-3V3/1.2.3.21/printer_params.cfg b/downloads/Stock Config Files/Ender-3V3/1.2.3.21/printer_params.cfg new file mode 100755 index 00000000..0906f7a0 --- /dev/null +++ b/downloads/Stock Config Files/Ender-3V3/1.2.3.21/printer_params.cfg @@ -0,0 +1,23 @@ +# F001 +# Printer_size: 220x220x250 +# Version: v1.0.0 +# CreateDate: 2023/07/18 +# Nozzle_mcu: chip: GD32F303CBT6 +# version: CR-K1-MAX-NOZZLE-V1.0.0 +# Leveling_mcu: chip: GD32E230F8P6 +# version: CR-K1-MAX-LEVELING-V1.0.0 +# mcu: chip: GD32F303RET6 +# version: CR4CU220812S12 + +[fan_feedback] +# fan0_pin: nozzle_mcu:PB3 # model fan +#fan0_pin: nozzle_mcu:PB4 # throat fan +fan0_pin: PC6 # backplane fan +print_delay_time: 5 +current_delay_time: 2 + +[custom_macro] +default_bed_temp: 60 +default_extruder_temp: 240 +g28_ext_temp: 140 + diff --git a/downloads/Stock Config Files/Ender-3V3/1.2.3.21/sensorless.cfg b/downloads/Stock Config Files/Ender-3V3/1.2.3.21/sensorless.cfg new file mode 100755 index 00000000..2cd200d5 --- /dev/null +++ b/downloads/Stock Config Files/Ender-3V3/1.2.3.21/sensorless.cfg @@ -0,0 +1,201 @@ +# Createdate: 2023/08/08 + +[force_move] + enable_force_move: true + +[gcode_macro xyz_ready] +variable_x_ready: 0 +variable_y_ready: 0 +variable_z_ready: 0 +variable_xy_moved: 0 +variable_z_moved: 0 +variable_safe_z: 3 +gcode: + +[gcode_macro _IF_HOME_Z] +gcode: + {% if printer['gcode_macro xyz_ready'].z_ready|int == 1 %} + {% if printer.toolhead.position.z|int < 5 %} + {% set z_park = 5.0 - printer.toolhead.position.z|int %} + G91 + G1 z{z_park} F600 + G90 + {% endif %} + {% else %} + {% if printer['gcode_macro xyz_ready'].z_moved|int == 0 %} + # BED_MESH_SET_DISABLE + {% if printer.print_stats.power_loss == 1 %} + # SET_KINEMATIC_POSITION + # G91 + # G1 z{printer["gcode_macro PRINTER_PARAM"].z_safe_g28} F600 + # G90 + # G4 P2000 + {% else %} + # SET_KINEMATIC_POSITION + # G91 + # G1 z2 F600 + # G90 + # G4 P2000 + {% endif %} + SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_moved VALUE=1 + {% endif %} + {% endif %} + +[gcode_macro _IF_MOVE_XY] +gcode: + _IF_HOME_Z + {% if printer['gcode_macro xyz_ready'].xy_moved|int == 0 %} + SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=xy_moved VALUE=1 + #G4 P1000 + {% endif %} + +[gcode_macro _HOME_X] +gcode: + _IF_MOVE_XY + {% if printer['gcode_macro xyz_ready'].x_ready|int == 1 %} + {% if (printer.toolhead.position.x)|int < 10 %} + G91 + G1 x10 F3600 + G90 + G4 P2000 + {% endif %} + {% endif %} + # Home + G28 X + G91 + G1 x10 F3600 + M400 + G90 + G4 P500 + # SOFTX_G28 + SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=x_ready VALUE=1 + +[gcode_macro _HOME_Y] +gcode: + # _IF_MOVE_XY + #{% set HOME_CUR = 0.500 %} + #{% set driver_config = printer.configfile.settings['tmc2209 stepper_y'] %} + #{% set RUN_CUR = driver_config.run_current %} + #SET_TMC_CURRENT STEPPER=stepper_y CURRENT={HOME_CUR} + #G4 P2000 + {% if printer['gcode_macro xyz_ready'].y_ready|int == 1 %} + {% if (printer.toolhead.position.y)|int < 10 %} + G91 + G1 y10 F3600 + G90 + G4 P2000 + {% endif %} + {% endif %} + + # Home + #G28 Y + SOFTY_G28 + SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=y_ready VALUE=1 + #SET_TMC_CURRENT STEPPER=stepper_y CURRENT={RUN_CUR} + #G4 P1000 +[gcode_macro _HOME_Z] +gcode: + {% if printer['gcode_macro xyz_ready'].y_ready|int == 1 %} + {% if printer['gcode_macro xyz_ready'].x_ready|int == 1 %} + _IF_HOME_Z + {% endif %} + {% endif %} + + {% set POSITION_X = printer.configfile.settings['stepper_x'].position_max/2 %} + {% set POSITION_Y = printer.configfile.settings['stepper_y'].position_max/2 %} + G91 + {% set x_park = POSITION_X - printer.toolhead.position.x|int %} + {% set y_park = POSITION_Y - printer.toolhead.position.y|int %} + {action_respond_info("x_park = %s \n" % (x_park))} + {action_respond_info("y_park = %s \n" % (y_park))} + G1 x{x_park} y{y_park} F3600 + G90 + M400 + + G28 Z + SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_ready VALUE=1 + +[homing_override] +axes: xyz +gcode: + M220 S100 + SET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=2500 + BED_MESH_CLEAR + {% set x_axes = printer.toolhead.homed_axes %} + {% if x_axes is defined and x_axes[0] is defined %} + {action_respond_info( + "x_axes: %s \n" + % (x_axes))} + {% else %} + SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=x_ready VALUE=0 + SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=y_ready VALUE=0 + SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_ready VALUE=0 + SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=xy_moved VALUE=0 + SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_moved VALUE=0 + {action_respond_info( + "x_axes is NULL\n")} + {% endif %} + + {% if x_axes is defined and x_axes[0] is defined and x_axes[1] is defined %} + {action_respond_info("x_axes: %s \n"% (x_axes))} + {% set position_y = printer.toolhead.position.y|int %} + {% set max_y_position = printer["gcode_macro PRINTER_PARAM"].max_y_position|int %} + {% if position_y >= max_y_position %} + G91 + G0 Y-10 F3600 + G90 + {% endif %} + {% endif %} + + {% set home_all = 'X' not in params and 'Y' not in params %} + {% if 'Z' in params and 'X' not in params and 'Y' not in params %} + {% if x_axes[0] is defined and x_axes[1] is defined %} + {% set home_all = 0 %} + {% endif %} + {% endif %} + + {% if home_all or 'X' in params %} + {% if printer.print_stats.power_loss == 0 %} + SET_KINEMATIC_POSITION + G91 + G1 X3 F1200 + M400 + G90 + {% endif %} + STEPPER_Z_SENEORLESS + M400 + _HOME_X + {% if printer.print_stats.power_loss == 0 %} + SET_KINEMATIC_POSITION + {% set retract_z = printer.configfile.settings['prtouch_v2'].retract_z_dist %} + {% set retract_speed = printer.configfile.settings['prtouch_v2'].retract_z_speed %} + G91 + G1 Z-{retract_z} F{retract_speed} + M400 + G90 + G4 P500 + {% endif %} + {% endif %} + + {% if home_all or 'Y' in params %} + {% if printer.print_stats.power_loss == 1 %} + SOFT_CHECK_ERROR FLAG=1 + {% endif %} + _HOME_Y + + SOFT_CHECK_ERROR FLAG=0 + {% endif %} + + # {% if home_all or 'X' in params %} + # _HOME_X + # {% endif %} + + # {% if home_all or 'Y' in params %} + # _HOME_Y + # {% endif %} + + {% if home_all or 'Z' in params %} + _HOME_Z + BED_MESH_PROFILE LOAD="default" + {% endif %} + G4 P500