Kingroon KP3S
Appearance
Hardware Mods
Change TMC drivers to UART Mode
- Solder TMC driver "UART" pins to (PA3, PA6, PA1)=E1-connector, (PE5)=TC-connector
- https://github.com/makerbase-mks/MKS-Robin-Nano-V1.X/blob/master/hardware/MKS%20Robin%20Nano%20V1.2_003/MKS%20Robin%20Nano%20V1.2_003%20PIN.pdf
- https://github.com/makerbase-mks/MKS-Robin-Nano-V1.X/issues/78
- https://www.3d-druck-community.de/showthread.php?tid=28594
- https://marlinfw.org/docs/hardware/tmc_drivers.html
ABL Sensor
- LJ12A3-4-Z/BX (4mm, NPN, Normally Open)
- Sensor output directly to Z-switch input and via 1.2K resistor to ground
Software Mods
Installing Klipper
git clone https://github.com/th33xitus/kiauh.git cd kiauh ./kiauh.sh
-> 4) Advanced -> 3) Build only Enable extra low-level STMicroelectronics STM32 STM32F103 28KiB bootloader 8 MHZ crystal USART PB11/PB10 250000 Baud !PC6,!PD13 GPIO pins at startup
cd ~/klipper/ ./scripts/update_mks_robin.py ./out/klipper.bin ./out/Robin_nano.bin cp /out/Robin_nano.bin ~
Klipper printer.cfg
# reference:
# http://hitoriblog.com/kingroon_kp3s/docs/improving_speed_and_quality_by_using_klipper/
# https://3dprintbeginner.com/how-to-install-klipper-on-kingroon-kp3s/
# https://github.com/nehilo/klipper_KP3S
#####################################PRINTER##############################################
[printer]
kinematics: cartesian
#max_velocity: 300
max_velocity: 220
#max_accel: 7000 # klipper ringing test
# max_accel: 900
# max_accel: 1000
max_accel: 2500
#max_accel_to_decel: 7000 # klipper ringing test
# max_accel_to_decel: 900
# max_accel_to_decel: 1000
max_accel_to_decel: 2500
max_z_velocity: 25
max_z_accel: 100
square_corner_velocity: 5.0
[input_shaper]
shaper_freq_x: 44.3
shaper_freq_y: 28.5
shaper_type: mzv
[bed_screws]
screw1: 24,24
screw2: 156,24
screw3: 156,156
screw4: 24,156
[gcode_arcs]
resolution: 0.1
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
restart_method: command
[virtual_sdcard]
path: ~/gcode_files
[static_digital_output display_reset]
pins: !PC6, !PD13
#####################################STEPPER##############################################
[tmc2208 stepper_x]
uart_pin: PA3
uart_address: 0
run_current: 0.650
hold_current: 0.6
stealthchop_threshold: 999999
interpolate: true
sense_resistor: 0.110
driver_PWM_AUTOGRAD: True
driver_PWM_AUTOSCALE: True
driver_HEND: 3
driver_HSTRT: 0
[stepper_x]
step_pin: PE3
dir_pin: PE2
enable_pin: !PE4
microsteps: 32
rotation_distance: 39.93 # decrease number to make part bigger
endstop_pin: ^!PA15
position_endstop: 0
position_min: 0
position_max: 180
homing_speed: 50
homing_retract_dist: 0
[tmc2208 stepper_y]
uart_pin: PA6
uart_address: 0
run_current: 0.650
hold_current: 0.6
stealthchop_threshold: 999999
interpolate: true
sense_resistor: 0.110
driver_PWM_AUTOGRAD: True
driver_PWM_AUTOSCALE: True
driver_HEND: 3
driver_HSTRT: 0
[stepper_y]
step_pin: PE0
dir_pin: PB9
enable_pin: !PE1
microsteps: 32
rotation_distance: 39.89 # decrease number to make part bigger
endstop_pin: ^!PA12
full_steps_per_rotation: 200
position_endstop: 0
position_min: 0
position_max: 180
homing_speed: 50
homing_retract_dist: 0
[tmc2208 stepper_z]
uart_pin: PA1
uart_address: 0
run_current: 0.650
hold_current: 0.6
stealthchop_threshold: 999999
interpolate: true
sense_resistor: 0.110
driver_PWM_AUTOGRAD: True
driver_PWM_AUTOSCALE: True
driver_HEND: 3
driver_HSTRT: 0
[probe]
pin: ^!PA11
x_offset: 32
y_offset: 0
z_offset: 1.90
#z_offset: decrease number to print further from print bed
#z_offset: increase number to print closer to print bed
speed: 50
[stepper_z]
step_pin: PB5
dir_pin: !PB4
enable_pin: !PB8
microsteps: 32
rotation_distance: 8.0 # decrease number to make part bigger
#endstop_pin: ^!PA11
endstop_pin: probe:z_virtual_endstop
# position_endstop: 0 # without probe
position_min: -2 # with probe
position_max: 180
homing_speed: 10
homing_retract_dist: 5.0
full_steps_per_rotation: 200
[safe_z_home]
home_xy_position: 69,95
speed: 50
z_hop: 15
z_hop_speed: 5
[bed_mesh]
mesh_min: 30,30
mesh_max: 150,150
probe_count: 3,3
horizontal_move_z: 4
#####################################EXTRUDER#############################################
[tmc2208 extruder]
uart_pin: PE5
hold_current: 0.35
run_current: 0.4
stealthchop_threshold: 999999
interpolate: True
sense_resistor: 0.110
driver_PWM_AUTOGRAD: True
driver_PWM_AUTOSCALE: True
driver_HEND: 3
driver_HSTRT: 0
[extruder]
step_pin: PD6
dir_pin: !PD3
enable_pin: !PB3
microsteps: 32
rotation_distance: 7.34
full_steps_per_rotation: 200
nozzle_diameter: 0.400
filament_diameter: 1.750
max_extrude_only_distance: 150.0
max_extrude_only_velocity: 50
max_extrude_only_accel: 1500
instantaneous_corner_velocity: 1.50
heater_pin: PC3
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC1
control: pid
pid_Kp: 14.669
pid_Ki: 0.572
pid_Kd: 94.068
min_temp: 0
max_temp: 280
pressure_advance: 0.12
# 0.08
#####################################BED##################################################
[heater_bed]
heater_pin: PA0
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC0
control: pid
pid_Kp: 325.10
pid_Ki: 63.35
pid_Kd: 417.10
min_temp: 0
max_temp: 130
#####################################FAN##################################################
[fan]
pin: PB1
[heater_fan my_nozzle_fan]
pin: PB0
heater: extruder
heater_temp: 50.0
fan_speed: 1.0
#####################################MACROS###############################################
[display_status]
[pause_resume]
recover_velocity: 50
#[gcode_macro M900]
#default_parameter_K: 0.08
#gcode:
# SET_PRESSURE_ADVANCE ADVANCE={K}
[gcode_macro PAUSE]
rename_existing: BASE_PAUSE
#default_parameter_X: 5 # edit to your park position
#default_parameter_Y: 5 # edit to your park position
#default_parameter_Z: 10 # edit to your park position
#default_parameter_E: 0.5 # edit to your retract length
gcode:
SAVE_GCODE_STATE NAME=PAUSE_state
BASE_PAUSE
G91
G1 E-0.5 F2100
G1 Z10
G90
G1 X5 Y5 F6000
[gcode_macro RESUME]
rename_existing: BASE_RESUME
#default_parameter_e: 0.5
gcode:
G91
G1 E0.5 F2100
G90
RESTORE_GCODE_STATE NAME=PAUSE_state MOVE=1
BASE_RESUME
[gcode_macro CANCEL_PRINT]
rename_existing: BASE_CANCEL_PRINT
gcode:
M107
TURN_OFF_HEATERS
CLEAR_PAUSE
SDCARD_RESET_FILE
BASE_CANCEL_PRINT
G1 Z+0.5 E-5 F9000 ;move Z up and retract filament
G1 Z+25 F9000 ;move up 25mm
M84 ;steppers off
M106 S0 ;disable fan
[gcode_macro G29]
gcode:
BED_MESH_CLEAR
BED_MESH_CALIBRATE
[gcode_macro MESH_CALIBRATE]
gcode:
BED_MESH_CLEAR
G28
BED_MESH_CALIBRATE
[gcode_macro Z_STEP_UP]
gcode:
SET_GCODE_OFFSET Z_ADJUST=0.02 MOVE=1
[gcode_macro Z_STEP_DOWN]
gcode:
SET_GCODE_OFFSET Z_ADJUST=-0.02 MOVE=1
[output_pin BEEPER_pin]
pin: PC5
pwm: True
value: 0
shutdown_value: 0
cycle_time: 0.001
scale: 1
[gcode_macro M300]
gcode:
# Use a default 1kHz tone if S is omitted.
{% set S = params.S|default(1000)|int %}
# Use a 10ms duration is P is omitted.
{% set P = params.P|default(100)|int %}
SET_PIN PIN=BEEPER_pin VALUE=0.5 CYCLE_TIME={ 1.0/S if S > 0 else 1 }
G4 P{P}
SET_PIN PIN=BEEPER_pin VALUE=0
- https://3dprintbeginner.com/how-to-install-klipper-on-kingroon-kp3s/
- https://gist.github.com/nezuppo/0d06444bbf61e6d6a8953caf31e5f25d
- Extruder=7.41