# This file contains common pin mappings for the 2018 Creality # Ender 3. To use this config, the firmware should be compiled for the # AVR atmega1284p. # Note, a number of Melzi boards are shipped with a bootloader that # requires the following command to flash the board: # avrdude -p atmega1284p -c arduino -b 57600 -P /dev/ttyUSB0 -U out/klipper.elf.hex # If the above command does not work and "make flash" does not work # then one may need to flash a bootloader to the board - see the # Klipper docs/Bootloaders.md file for more information. # See docs/Config_Reference.md for a description of parameters. [stepper_x] step_pin: PD7 dir_pin: !PC5 enable_pin: !PD6 microsteps: 16 rotation_distance: 40 endstop_pin: ^PC2 position_endstop: 0 position_max: 235 homing_speed: 50 [stepper_y] step_pin: PC6 dir_pin: !PC7 enable_pin: !PD6 microsteps: 16 rotation_distance: 40 endstop_pin: ^PC3 position_endstop: 0 position_max: 235 homing_speed: 50 [stepper_z] step_pin: PB3 dir_pin: PB2 enable_pin: !PA5 microsteps: 16 rotation_distance: 8 endstop_pin: ^PC4 position_endstop: 0.0 position_max: 250 [extruder] # DropEffect OmniaDrop V2.1 max_extrude_only_distance: 100.0 step_pin: PB1 dir_pin: !PB0 enable_pin: !PD6 microsteps: 16 rotation_distance: 33.683 nozzle_diameter: 0.400 filament_diameter: 1.750 gear_ratio: 5:1 heater_pin: PD5 sensor_type: EPCOS 100K B57560G104F sensor_pin: PA7 control: pid # tuned for stock hardware with 200 degree Celsius target pid_Kp: 21.527 pid_Ki: 1.063 pid_Kd: 108.982 min_temp: 0 max_temp: 285 [heater_bed] heater_pin: PD4 sensor_type: EPCOS 100K B57560G104F sensor_pin: PA6 control: pid # tuned for stock hardware with 50 degree Celsius target pid_Kp: 54.027 pid_Ki: 0.770 pid_Kd: 948.182 min_temp: 0 max_temp: 130 [fan] pin: PB4 [mcu] serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 #baud: 115200 [printer] kinematics: cartesian max_velocity: 300 max_accel: 3000 max_z_velocity: 5 max_z_accel: 100 [display] lcd_type: st7920 cs_pin: PA3 sclk_pin: PA1 sid_pin: PC1 encoder_pins: ^PD2, ^PD3 click_pin: ^!PC0 [virtual_sdcard] path: ~/gcode_files [display_status] [pause_resume] [gcode_macro PAUSE] description: Pause the actual running print rename_existing: PAUSE_BASE # change this if you need more or less extrusion variable_extrude: 1.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 x_park = printer.toolhead.axis_maximum.x|float - 5.0 %} {% set y_park = printer.toolhead.axis_maximum.y|float - 5.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 - 2.0) %} {% set z_safe = 2.0 %} {% else %} {% set z_safe = max_z - act_z %} {% endif %} ##### end of definitions ##### PAUSE_BASE G91 {% if printer.extruder.can_extrude|lower == 'true' %} G1 E-{E} F2100 {% else %} {action_respond_info("Extruder not hot enough")} {% endif %} {% if "xyz" in printer.toolhead.homed_axes %} G1 Z{z_safe} F900 G90 G1 X{x_park} Y{y_park} F6000 {% else %} {action_respond_info("Printer not homed")} {% endif %} [gcode_macro RESUME] description: Resume the actual running print rename_existing: RESUME_BASE gcode: ##### read E from pause macro ##### {% set E = printer["gcode_macro PAUSE"].extrude|float %} #### 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 %} RESUME_BASE {get_params} [gcode_macro CANCEL_PRINT] description: Cancel the actual running print rename_existing: CANCEL_PRINT_BASE gcode: TURN_OFF_HEATERS CANCEL_PRINT_BASE # The print bed can move so far to the front, that the nozzle can reach the # plastic cover of the print bed heater cable (only when the bed is moved by # hand). By homing the Y axis before the X axis, it is ensured the nozzle will # not melt through the plastic part. # BEWARE: You will lose the ability to home axes individually. The printer will # always home all axes for every G28 command. #[homing_override] #gcode: # G28 Y0 # G28 X0 # G28 Z0