Klipper is a 3d-Printer firmware. It combines the power of a general purpose computer with one or more micro-controllers. Details can be found from https://www.klipper3d.org/
This configuration is mainly for AM8 (Anet A8 metal frame upgrade) but it should work with Anet A8 on SKR v1.3 mainboard.
Note: Depending on your bed position you should specify position_endstop: value for both X and Y.
# This file contains common pin mappings for the BIGTREETECH SKR V1.3 # board. To use this config, the firmware should be compiled for the # LPC1768. ############################################################################# ########### CONFIGURATION STARTS HERE ########### ############################################################################# [mcu] serial: /dev/serial/by-id/usb-Klipper_lpc1768_1E70000F801C3DAF883E975CC22000F5-if00 [printer] kinematics: cartesian max_velocity: 300 max_accel: 1000 max_z_velocity: 20 max_z_accel: 100 ##################################################################### # X/Y/Z Stepper Settings ##################################################################### [stepper_x] step_pin: P2.2 dir_pin: !P2.6 enable_pin: !P2.1 step_distance: .009981 endstop_pin: !P1.29 # P1.28 for X-max position_endstop: -10 position_min: -14 position_max: 220 homing_speed: 50 second_homing_speed: 25 homing_retract_dist: 5 [stepper_y] step_pin: P0.19 dir_pin: !P0.20 enable_pin: !P2.8 step_distance: .00995 endstop_pin: !P1.27 # P1.26 for Y-max position_min: -26 position_endstop: -24 position_max: 220 homing_speed: 50 second_homing_speed: 25 homing_retract_dist: 5 [stepper_z] step_pin: P0.22 dir_pin: !P2.11 enable_pin: !P0.21 step_distance: .002470 endstop_pin: !P1.25 # P1.24 for Z-max position_endstop: 0 position_max: 200 position_min: -5 homing_speed: 10.0 second_homing_speed: 3 homing_retract_dist: 3.0 ##################################################################### # Extruder Settings ##################################################################### [extruder] step_pin: P2.13 dir_pin: !P0.11 enable_pin: !P2.12 heater_pin: P2.7 sensor_pin: P0.25 smooth_time: 3.0 step_distance: 0.001733 nozzle_diameter: 0.4 filament_diameter: 1.75 max_extrude_cross_section: 50.0 max_extrude_only_distance: 780 sensor_type: ATC Semitec 104GT-2 control: pid pid_Kp: 27.666 pid_Ki: 1.724 pid_Kd: 111 min_temp: 15 max_temp: 260 max_power: 1.0 ######### Try to keep pressure_advance below 1.0 ######### PA can be disabled by declaring a 0.0 value pressure_advance: 0.0 # time seconds to look ahead for PA moves default is 0.010 or 10ms #pressure_advance_lookahead_time: 0.030 [verify_heater extruder] max_error: 600 check_gain_time: 40 hysteresis: 15 heating_gain: 2 ##################################################################### # Bed Heater ##################################################################### [heater_bed] heater_pin: P2.5 sensor_type: ATC Semitec 104GT-2 sensor_pin: P0.23 min_temp: 0 max_temp: 110 smooth_time: 3.0 control: pid pid_Kp=75.945 pid_Ki=1.285 pid_Kd=1122.092 [verify_heater heater_bed] max_error: 120 check_gain_time: 60 hysteresis: 5 heating_gain: 2 ##################################################################### # Fan Control ##################################################################### [fan] pin: P2.3 [heater_fan my_nozzle_fan] pin: P2.4 heater: extruder heater_temp: 60.0 fan_speed: 1.0 ##################################################################### # Homing and Adjustment Routines ##################################################################### [bed_mesh] mesh_min: 50,20 mesh_max: 220,185 probe_count: 4,4 horizontal_move_z: 12 ##################################################################### # Other Settings ##################################################################### [idle_timeout] gcode: TURN_OFF_HEATERS M84 ; disable steppers timeout: 1800 ;30 min [skew_correction] # Pause/Resume Functionality [pause_resume] recover_velocity: 100 # This adds the 'respond' G-Code that you can use to send commands back to OctoPrint [respond] default_type: echo #[force_move] #enable_force_move: true # add virtual sd card [virtual_sdcard] path: ~/.octoprint/uploads/ #[include /home/pi/custommenu.cfg] ##################################################################### # Display Routines # RepRapDiscount 128x64 Full Graphic Smart Controller ##################################################################### [display] lcd_type: st7920 cs_pin: P1.19 sclk_pin: P1.20 sid_pin: P1.18 encoder_pins: ^P3.26, ^P3.25 click_pin: ^!P0.28 #kill_pin: ^!<RST> [output_pin beeper] pin: P1.30 ##################################################################### ### MACROS ##################################################################### [gcode_macro G32] gcode: {% if printer.toolhead.status == "Ready" %} M141 S55 ; set chamber for 55C max {% if "z" not in printer.toolhead.homed_axes %} ; G28 Home if needed M117 Homing... G28 {% endif %} M117 Nozzle Cleaning... NOZZLE_CLEAN ; Clean Nozzle M117 Homing... G28 Z0 G0 X150 Y150 Z10 F6000 {% else %} { printer.gcode.action_respond_info("G32 is disabled while printing!") } {% endif %} [gcode_macro PRINT_START] gcode: PRINT_START_1 ;print start macro 1 M140 S{BED_TEMP} ;set bed temperature and wait M109 S{EXTRUDER_TEMP} ;set hotend temperature and wait M190 S{BED_TEMP} ;set bed temperature and do not wait #G32 #M117 Bed meshing... BED_MESH_CLEAR #bed_mesh_calibrate #BED_MESH_PROFILE LOAD=am8 M117 Ready default_parameter_EXTRUDER_TEMP: 205 default_parameter_BED_TEMP: 60 [gcode_macro PRINT_START_1] gcode: M104 S0 ;cancel set temp M107 ;turn cooling fans off G21 ;set units to mm G90 ;use absolute coordinates M83 ;use relative extrusion G92 E0.0 ;reset e count M220 S100 ;reset speed multiplier G28 G0 X110 Y110 Z10 F6000 [gcode_macro PRINT_END] # Use PRINT_END for the slicer ending script - PLEASE CUSTOMISE THE SCRIPT FOR YOUR SLICER OF CHOICE gcode: M400 ; wait for buffer to clear G92 E0 ; zero the extruder G1 E-4.0 F3600 ; retract filament G91 ; relative positioning G0 Z20 F3000 ; move nozzle up 25mm TURN_OFF_HEATERS M107 ; turn off fan G90 ; absolute positioning G0 X110 Y200 F3600 ; park nozzle at rear M117 Finished! ; display message [gcode_macro NOZZLE_CLEAN] # Use for scrubbing the nozzle to keep it clean and ensure accurate z height default_parameter_I: 5 gcode: G0 Z10 F3000 ;lift z 10mm {% if "z" not in printer.toolhead.homed_axes %} ; G28 Home if needed M117 Homing... G28 {% endif %} SAVE_GCODE_STATE NAME=cleaning ;save pre-run g-code state (relative/absolute, etc) G91 ;relative positioning G90 ;absolute positioning G0 X60 Y300 F3000 ;move to nozzle scrubber G0 Z9 F5000 ;lower z to brush height G91 ;relative positioning M117 Cleaning... # loop scrub move back/forth I amount of times {% for wipe in range(1,I|int,1) %} {% for distance in [50,-50] %} G0 X{distance} F10000 {% endfor %} {% endfor %} G0 Z10 F3000 ;lift z 10mm RESTORE_GCODE_STATE NAME=cleaning ;restore previous g-code state (relative/absolute, etc) M117 Ready... # Prime the nozzle [gcode_macro PRIME_LINE] gcode: SAVE_GCODE_STATE NAME=BEFORE_PRIME M117 Prime Line M83 {% if "z" not in printer.toolhead.homed_axes %} G28 ;Only G28 Home if needed {% endif %} G92 E0 ;Reset Extruder G1 Z5.0 F3000 ;Move Z Axis up G1 X5 Y30 Z0.24 F5000.0 ;Move to start position (5,30,.24) G1 X5 Y230.0 Z0.24 F1500.0 E20 ;Draw the first 200mm line G1 X5.5 Y230.0 Z0.24 F5000.0 ;Move to side a little G1 X5.5 Y30 Z0.24 F1500.0 E20 ;Draw the second line G92 E0 ;Reset Extruder G1 Z5.0 F3000 ;Move Z Axis up RESTORE_GCODE_STATE NAME=BEFORE_PRIME [gcode_macro OFFSET] default_parameter_D: 0.025 gcode: set_gcode_offset z_adjust={D} NULL_MOVE [gcode_macro BABY_UP] gcode: OFFSET D=0.025 [gcode_macro BABY_DOWN] gcode: OFFSET D=-0.025 [gcode_macro NULL_MOVE] gcode: G91 G1 Z0 Y0 X0 G90 [gcode_macro LOAD_FILAMENT] # Extrusion lengths must be adjusted for your particular configuration before use gcode: {% if printer.toolhead.status == "Ready" %} M83 ; set extruder to relative G1 E400 F1800 ; quickly load filament to down bowden G1 E40 F300 ; slower extrusion for hotend path G1 E30 F150 ; prime nozzle with filament M82 ; set extruder to absolute {% else %} { printer.gcode.action_respond_info("Filament loading disabled while printing!") } {% endif %} [gcode_macro UNLOAD_FILAMENT] # Extrusion lengths must be adjusted for your particular configuration before use gcode: {% if printer.toolhead.status == "Ready" %} M83 ; set extruder to relative G1 E10 F300 ; extrude a little to soften tip G1 E-650 F1800 ; retract filament completely M82 ; set extruder to absolute {% else %} { printer.gcode.action_respond_info("Filament unloading disabled while printing!") } {% endif %} [gcode_macro M600] default_parameter_X: 110 default_parameter_Y: 0 default_parameter_Z: 20 gcode: SAVE_GCODE_STATE NAME=STATE PAUSE G91 G1 Z{Z} F900 G90 G1 X{X} Y{Y} F18000 RESTORE_GCODE_STATE NAME=STATE [gcode_macro ADVANCED_RESUME] default_parameter_E: 2.5 default_parameter_Z: -20 gcode: SAVE_GCODE_STATE NAME=STATE G91 G1 Z{Z} E{E} F900 RESTORE_GCODE_STATE NAME=STATE RESUME [gcode_macro ABS60] gcode: M140 S60 ;set bed temperature and do not wait M109 S235 ;set print head temperature and wait [gcode_macro ABS80] gcode: M140 S80 ;set bed temperature and do not wait M109 S235 ;set print head temperature and wait [gcode_macro ABS100] gcode: M140 S100 ;set bed temperature and do not wait M109 S235 ;set print head temperature and wait [gcode_macro PLA60] gcode: M140 S60 ;set bed temperature and do not wait M109 S205 ;set print head temperature and wait