diff --git a/creality-ender3/Klipper/config/adxl345.cfg b/creality-ender3/Klipper/config/adxl345.cfg new file mode 100644 index 0000000..1a7c741 --- /dev/null +++ b/creality-ender3/Klipper/config/adxl345.cfg @@ -0,0 +1,23 @@ +[mcu x_adxl] +# Change to whatever you found above. For example, +# usb-Klipper_rp2040_E661640843545B2E-if00 +serial: /dev/serial/by-path/platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.1:1.0 + + + +[adxl345] +cs_pin: x_adxl:gpio9 +spi_software_sclk_pin: x_adxl:gpio10 +spi_software_mosi_pin: x_adxl:gpio11 +spi_software_miso_pin: x_adxl:gpio12 + +axes_map: y,x,-z # x,z,y + +[resonance_tester] +accel_chip: adxl345 +probe_points: + # Somewhere slightly above the middle of your print bed + 150,150, 20 + +#[output_pin power_mode] # Improve power stability +#pin: adxl:gpio23 \ No newline at end of file diff --git a/creality-ender3/Klipper/config/led-progress.cfg b/creality-ender3/Klipper/config/led-progress.cfg new file mode 100644 index 0000000..f5666f2 --- /dev/null +++ b/creality-ender3/Klipper/config/led-progress.cfg @@ -0,0 +1,117 @@ +# use NEOPIXEL_DISPLAY LED=Led_Name TYPE=template_type MODE=template_mode + +# for TYPE use: +# extruder_temp :extruder temperature progress +# bed_temp :bed temperature progress +# print_percent :print progress +# printer_speed :printer speed + +# for MODE use: +# progress :the leds will light up one by one +# glow :all leds will fade from one color (or non) to other color + +# more info: https://github.com/digitalninja-ro/klipper-neopixel/blob/master/README.md + +[gcode_macro NEOPIXEL_DISPLAY] +gcode: + {% set led = params.LED %} + {% set type = params.TYPE %} + {% set mode = params.MODE %} + {% set my_neopixel = printer.configfile.config['neopixel ' ~ led] %} + + {% if mode == 'progress' %} + {% for i in range(my_neopixel.chain_count|int) %} + SET_LED_TEMPLATE LED={led} INDEX={i+1} TEMPLATE={'led_' ~ type ~ '_' ~ mode} param_led_num={i+1} param_led_total={my_neopixel.chain_count|int} + {% endfor %} + {% endif %} + {% if mode == 'glow' %} + SET_LED_TEMPLATE LED={led} TEMPLATE={'led_' ~ type ~ '_' ~ mode} + {% endif %} + +[display_template led_extruder_temp_glow] +text: + {% if printer.extruder.target > 0.0 %} + {% set temp = printer.extruder.target %} + {% else %} + {% set temp = printer.configfile.config.extruder.max_temp %} + {% endif %} + {% set ratio = printer.extruder.temperature / temp|float %} + {ratio}, 0.0, {1-ratio}, 0.0 + +[display_template led_extruder_temp_progress] +param_led_num: 0 +param_led_total: 1 +text: + {% if printer.extruder.target > 0.0 %} + {% set temp = printer.extruder.target %} + {% else %} + {% set temp = printer.configfile.config.extruder.max_temp %} + {% endif %} + {% set ratio = printer.extruder.temperature / temp|float %} + {% set led_ratio = param_led_num|float / param_led_total %} + {% if ratio > led_ratio %} + {led_ratio}, 0.0, 0.0, 0.0 + {% else %} + 0.0, 0.0, 0.0, 0.0 + {% endif %} + +[display_template led_bed_temp_glow] +text: + {% if printer.heater_bed.target > 0.0 %} + {% set temp = printer.heater_bed.target %} + {% else %} + {% set temp = printer.configfile.config.heater_bed.max_temp %} + {% endif %} + {% set ratio = printer.heater_bed.temperature / temp|float %} + {ratio}, 0.0, {1-ratio}, 0.0 + +[display_template led_bed_temp_progress] +param_led_num: 0 +param_led_total: 1 +text: + {% if printer.heater_bed.target > 0.0 %} + {% set temp = printer.heater_bed.target %} + {% else %} + {% set temp = printer.configfile.config.heater_bed.max_temp %} + {% endif %} + {% set ratio = printer.heater_bed.temperature / temp|float %} + {% set led_ratio = param_led_num|float / param_led_total %} + {% if ratio > led_ratio %} + {led_ratio}, 0.0, 0.0, 0.0 + {% else %} + 0.0, 0.0, 0.0, 0.0 + {% endif %} + +[display_template led_print_percent_glow] +text: + {% set ratio = printer.virtual_sdcard.progress %} + 0.0, {ratio}, 0.0, 0.0 + +[display_template led_print_percent_progress] +param_led_num: 0 +param_led_total: 1 +text: + {% set ratio = printer.virtual_sdcard.progress %} + {% set led_ratio = param_led_num|float / param_led_total %} + {% if ratio > led_ratio %} + 0.0, {led_ratio}, 0.0, 0.0 + {% else %} + 0.0, 0.0, 0.0, 0.0 + {% endif %} + +[display_template led_printer_speed_glow] +text: + {% set ratio = printer.motion_report.live_velocity|float / printer.configfile.config.printer.max_velocity|float %} + 0.0, {ratio}, 0.0, 0.0 + +[display_template led_printer_speed_progress] +param_led_num: 0 +param_led_total: 1 +text: + {% set ratio = printer.motion_report.live_velocity|float / printer.configfile.config.printer.max_velocity|float %} + {% set led_ratio = param_led_num|float / param_led_total %} + {% if ratio > led_ratio %} + 0.0, {led_ratio}, 0.0, 0.0 + {% else %} + 0.0, 0.0, 0.0, 0.0 + {% endif %} \ No newline at end of file diff --git a/creality-ender3/Klipper/config/macros.cfg b/creality-ender3/Klipper/config/macros.cfg new file mode 100644 index 0000000..62c8c8c --- /dev/null +++ b/creality-ender3/Klipper/config/macros.cfg @@ -0,0 +1,188 @@ +[gcode_macro START_PRINT] +gcode: + #Get Bed and Extruder temperature from Slicer GCode + {% set BED_TEMP = params.BED_TEMP|default(60)|float %} + {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(200)|float %} + + CLEAR_PAUSE + G90 + + ELED_ON + + M117 Heatup Bed {BED_TEMP} degres Nozzle {EXTRUDER_TEMP} degres + + SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={BED_TEMP} + TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={BED_TEMP*0.96} MAXIMUM={BED_TEMP*1.04} + SET_HEATER_TEMPERATURE HEATER=extruder TARGET={EXTRUDER_TEMP} + + G28 + + BED_MESH_PROFILE LOAD=default + + G1 Z10 F3000 ; move z up little to prevent scratching of surface + G1 X2 Y2 Z10 F5000.0 ; move to start-line position + + TEMPERATURE_WAIT SENSOR=extruder MINIMUM={EXTRUDER_TEMP*0.98} MAXIMUM={EXTRUDER_TEMP*1.02} + + PRIME_LINE + + M117 + +[gcode_macro END_PRINT] +gcode: + ELED_OFF + + M117 End print + TURN_OFF_HEATERS + + M117 Present print + PRESENT_PRINT + + M117 + M84 + +[gcode_macro PRIME_LINE] +gcode: + SAVE_GCODE_STATE NAME=prime_line_state + + #Precondition extruder + G92 E0 ; reset extruder + G1 X2 Y20 Z1.0 F4000.0 ; move to start-line position + G1 X2 Y20 Z0.3 F300.0 ; move z up little to prevent scratching of surface + G1 X2 Y200.0 Z0.3 F1500.0 E15 ; draw 1st line + G1 X2 Y200.0 Z0.4 F5000.0 ; move to side a little + G1 X2 Y20 Z0.4 F1500.0 E30 ; draw 2nd line + G92 E0 ; reset extruder + G1 Z1.0 F300 ; move z up little to prevent scratching of surface + + RESTORE_GCODE_STATE NAME=prime_line_state + +[gcode_macro PRESENT_PRINT] +gcode: + SAVE_GCODE_STATE NAME=present_print_state + + {% set X_MAX = printer.toolhead.axis_maximum.x|float %} + {% set Y_MAX = printer.toolhead.axis_maximum.y|float %} + {% set Z_MAX = printer.toolhead.axis_maximum.z|float %} + {% set Z_PARK_MIN = 100 | float %} + {% set Z_PARK_LIFT = 10 | float %} + + # Move nozzle away from print while retracting + G91 + G1 E-3 F300 + + G90 + {% if printer.toolhead.position.z + Z_PARK_LIFT > Z_PARK_MIN %} + G1 X{X_MAX / 2} Y{Y_MAX * 0.8} Z{printer.toolhead.position.z + Z_PARK_LIFT} F4000 + {% else %} + G1 X{X_MAX / 2} Y{Y_MAX * 0.8} Z{Z_PARK_MIN} F4000 + {% endif %} + + RESTORE_GCODE_STATE NAME=present_print_state + +[gcode_macro PAUSE] +description: Pause the actual running print +rename_existing: PAUSE_BASE +gcode: + PAUSE_BASE + + SET_ELED RED=0.0 GREEN=1.0 BLUE=1.0 + + _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 %} + + ELED_ON + + RESUME_BASE {get_params} + +[gcode_macro CANCEL_PRINT] +description: Cancel the actual running print +rename_existing: CANCEL_PRINT_BASE +variable_park: True +gcode: + ## Move head and retract only if not already in the pause state and park set to true + {% if printer.pause_resume.is_paused|lower == 'false' and park|lower == 'true'%} + _TOOLHEAD_PARK_PAUSE_CANCEL + {% endif %} + TURN_OFF_HEATERS + + SET_ELED RED=1.0 GREEN=1.0 + + CANCEL_PRINT_BASE + +[gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL] +description: Helper: park toolhead used in PAUSE and CANCEL_PRINT +variable_extrude: 1.0 +gcode: + ##### set park positon for x and y ##### + # default is your max posion 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 %} + +[gcode_macro ELED_ON] +description: Turn extruder LED on and resets led colors +gcode: + SET_ELED RED=1.0 GREEN=1.0 BLUE=1.0 + +[gcode_macro ELED_OFF] +description: Turn extruder LED strip off +gcode: + SET_ELED RED=0.0 GREEN=0.0 BLUE=0.0 + +[gcode_macro SET_ELED] +description: SET_LED extruder shortcut +#rename_existing: SET_LED_BASE +gcode: + {% set RED = params.RED|default(0)|float %} + {% set GREEN = params.GREEN|default(0)|float %} + {% set BLUE = params.BLUE|default(0)|float %} + {% set WHITE = params.BLUE|default(0)|float %} + + SET_LED LED=extruder RED={RED} GREEN={GREEN} BLUE={BLUE} WHITE={WHITE} + \ No newline at end of file diff --git a/creality-ender3/Klipper/config/printer.cfg b/creality-ender3/Klipper/config/printer.cfg new file mode 100644 index 0000000..5b3699d --- /dev/null +++ b/creality-ender3/Klipper/config/printer.cfg @@ -0,0 +1,259 @@ +# Paste here and save your klipper configuration +# This file contains common pin mappings for the BIGTREETECH SKR mini +# E3 v2.0. To use this config, the firmware should be compiled for the +# STM32F103 with a "28KiB bootloader" and USB communication. Also, +# select "Enable extra low-level configuration options" and configure +# "GPIO pins to set at micro-controller startup" to "!PA14". + +# The "make flash" command does not work on the SKR mini E3. Instead, +# after running "make", copy the generated "out/klipper.bin" file to a +# file named "firmware.bin" on an SD card and then restart the SKR +# mini E3 with that SD card. + +# See docs/Config_Reference.md for a description of parameters. + +# Inpput shaper auto-calibration: +# accelerometer configuration +#[include adxl345.cfg] + +# [include macros.cfg] + +[mcu] +serial: /dev/serial/by-id/usb-Klipper_stm32f103xe_37FFD9054252353440740557-if00 + +[printer] +kinematics: cartesian +max_velocity: 300 +max_accel: 3000 +max_z_velocity: 50 +max_z_accel: 400 +square_corner_velocity: 5.0 + +[stepper_x] +step_pin: PB13 +dir_pin: !PB12 +enable_pin: !PB14 +microsteps: 16 +rotation_distance: 40 +endstop_pin: ^PC0 +position_endstop: 0 +position_max: 220 +homing_retract_dist: 5.0 +homing_speed: 40 +homing_retract_dist: 5.0 +second_homing_speed: 2 + +[tmc2209 stepper_x] +uart_pin: PC11 +tx_pin: PC10 +uart_address: 0 +run_current: 0.580 +stealthchop_threshold: 999999 + +[stepper_y] +step_pin: PB10 +dir_pin: !PB2 +enable_pin: !PB11 +microsteps: 16 +rotation_distance: 40 +endstop_pin: ^PC1 +position_endstop: 0 +position_max: 220 +homing_speed: 40 +homing_retract_dist: 5.0 +second_homing_speed: 2 + +[tmc2209 stepper_y] +uart_pin: PC11 +tx_pin: PC10 +uart_address: 2 +run_current: 0.580 +stealthchop_threshold: 999999 + +[stepper_z] +step_pin: PB0 +dir_pin: PC5 +enable_pin: !PB1 +microsteps: 16 +rotation_distance: 8 +# endstop_pin: ^PC2 +endstop_pin: probe:z_virtual_endstop +# position_endstop: 0.0 +position_min: -2 +position_max: 250 +homing_speed: 10 +homing_retract_dist: 5.0 +second_homing_speed: 2 + +[tmc2209 stepper_z] +uart_pin: PC11 +tx_pin: PC10 +uart_address: 1 +run_current: 0.580 +stealthchop_threshold: 999999 + +[extruder] +step_pin: PB3 +dir_pin: !PB4 +enable_pin: !PD2 +microsteps: 16 +rotation_distance: 33.683 +nozzle_diameter: 0.400 +filament_diameter: 1.750 +heater_pin: PC8 +sensor_type: EPCOS 100K B57560G104F +sensor_pin: PA0 +control: pid +pid_Kp: 21.527 +pid_Ki: 1.063 +pid_Kd: 108.982 +min_temp: 0 +max_temp: 250 + +[tmc2209 extruder] +uart_pin: PC11 +tx_pin: PC10 +uart_address: 3 +run_current: 0.650 +stealthchop_threshold: 999999 + +[heater_bed] +heater_pin: PC9 +sensor_type: ATC Semitec 104GT-2 +sensor_pin: PC3 +control: pid +pid_Kp: 54.027 +pid_Ki: 0.770 +pid_Kd: 948.182 +min_temp: 0 +max_temp: 130 + +[heater_fan extruder] +# fan on hotend/extruder +pin: PC7 +heater: extruder + +[fan] +# filament_cooling +pin: PC6 +off_below: 0.1 + +[bed_screws] +# Nozzle / Screws alignment +screw1_name: front left +screw1: 25,35 +screw2_name: front right +screw2: 195,35 +screw3_name: back right +screw3: 197,200 +screw4_name: back left +screw4: 27,205 +speed: 100.0 + +[bltouch] +sensor_pin: PC2 +control_pin: PA1 +x_offset:-51 +y_offset:-12 +z_offset = 3.0 +speed:5 +samples: 3 +samples_result: average +samples_tolerance: 0.050 +samples_tolerance_retries: 3 + +[safe_z_home] +home_xy_position: 161,122 +z_hop: 15 + +[screws_tilt_adjust] +# BLTouch / Screws alignment +screw1_name: front left +screw1: 76,47 +screw2_name: front right +screw2: 220,47 +screw3_name: back left +screw3: 220,212 +screw4_name: back right +screw4: 79,217 +speed: 100.0 +screw_thread: CW-M4 + +[bed_mesh] +speed: 100 +mesh_min: 29.25, 12.8 +mesh_max: 272.75, 263 +algorithm: bicubic +probe_count: 5,5 +mesh_pps: 3 +fade_start: 1 +fade_end: 10 + +[neopixel lightbar] +pin: PA8 +chain_count: 17 +initial_RED: 1.0 +initial_GREEN: 1.0 +initial_BLUE: 1.0 + + +###################################################################### +# 128x64 Full Graphic Creality CR10 / ENDER 3 stockdisplay +# https://github.com/Klipper3d/klipper/blob/master/config/sample-lcd.cfg +###################################################################### + +# This section is used for a Creality "12864" display with a single +# ribbon cable between the display's EXP3 plug and the +# micro-controller board's EXP1 connector. + +# [display] +# lcd_type: st7920 +# cs_pin: EXP1_7 +# sclk_pin: EXP1_6 +# sid_pin: EXP1_8 +# encoder_pins: ^EXP1_5, ^EXP1_3 +# click_pin: ^!EXP1_2 + +# [output_pin beeper] +# pin: EXP1_1 + +###################################################################### + +[display] +lcd_type: st7920 +cs_pin: PB8 +sclk_pin: PB9 +sid_pin: PB15 +encoder_pins: ^PA10, ^PA9 +click_pin: ^!PA15 + +[output_pin beeper] +pin: PB5 + + + +# [filament_switch_sensor filament] +# pause_on_runout: True # Starts the PAUSE g-code script if filament runs out +# runout_gcode: M117 Filament runout # Optional +# insert_gcode: M117 Filament insert # Optional +# switch_pin: PC15 # + +# Support for M117 gcode (message display) +[display_status] + +[static_digital_output usb_pullup_enable] +pins: !PA14 + +[board_pins] +aliases: + # EXP1 header + EXP1_1=PB5, EXP1_2=PA15, + EXP1_3=PA9, EXP1_4=, + EXP1_5=PA10, EXP1_6=PB9, + EXP1_7=PB8, EXP1_8=PB15, + EXP1_9=, EXP1_10=<5V> + + + + +# See the sample-lcd.cfg file for definitions of common LCD displays. diff --git a/creality-ender3/Klipper/firmware/2024-01-22-firmware.bin b/creality-ender3/Klipper/firmware/2024-01-22-firmware.bin new file mode 100644 index 0000000..6c1d490 Binary files /dev/null and b/creality-ender3/Klipper/firmware/2024-01-22-firmware.bin differ