printer: add ebb36 with sensorless homing

This commit is contained in:
Konstantin Koslowski 2023-03-10 21:19:16 +01:00
parent 556b32e0f6
commit 3b6ad1b9f8
6 changed files with 183 additions and 105 deletions

82
ebb36.cfg Normal file
View file

@ -0,0 +1,82 @@
# This file contains common pin mappings for the BIGTREETECH EBBCan
# Canbus board. To use this config, the firmware should be compiled for the
# STM32G0B1 with "8 MHz crystal" and "USB (on PA11/PA12)" or "CAN bus (on PB0/PB1)".
# The "EBB Can" micro-controller will be used to control the components on the nozzle.
# See docs/Config_Reference.md for a description of parameters.
[mcu EBBCan]
# serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
canbus_uuid: 8192d675a56e
[adxl345]
cs_pin: EBBCan: PB12
spi_software_sclk_pin: EBBCan: PB10
spi_software_mosi_pin: EBBCan: PB11
spi_software_miso_pin: EBBCan: PB2
axes_map: x,y,z
[extruder]
step_pin: EBBCan: PD0
dir_pin: EBBCan: PD1
enable_pin: !EBBCan: PD2
## Update value below when you perform extruder calibration
## If you ask for 100mm of filament, but in reality it is 98mm:
## rotation_distance = <previous_rotation_distance> * <actual_extrude_distance> / 100
## 22.6789511 is a good starting point
rotation_distance: 22.6789511 #Bondtech 5mm Drive Gears
## Update Gear Ratio depending on your Extruder Type
## - 50:17 for Afterburner/Clockwork
## - 50:10 for Stealthburner/Clockwork2
## - 80:20 for M4, M3.1
gear_ratio: 50:10 # SB BMG
microsteps: 32
full_steps_per_rotation: 200 # 1.8 deg stepper: 200, 0.9 deg stepper: 400
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: EBBCan: PB13
sensor_type: ATC Semitec 104NT-4-R025H42G
sensor_pin: EBBCan: PA3
max_power: 1.0
min_extrude_temp: 180
min_temp: 0
max_temp: 280 # specified to 300
## Try to keep pressure_advance below 1.0
# pressure_advance: 0.05
## Default is 0.040, leave stock
pressure_advance_smooth_time: 0.040
# Maximum length (in mm of raw filament) that a retraction or
# extrude-only move may have, default: 50
max_extrude_only_distance: 200
# Maximum area (in mm^2) of an extrusion cross section (eg,
# extrusion width multiplied by layer height). This setting prevents
# excessive amounts of extrusion during relatively small XY moves.
# If a move requests an extrusion rate that would exceed this value
# it will cause an error to be returned. The default is: 4.0 *
# nozzle_diameter^2
max_extrude_cross_section: 50.0 # default 4 * 0.4 = 0.64
control: pid
pid_Kp: 21.527
pid_Ki: 1.063
pid_Kd: 108.982
[tmc2209 extruder]
uart_pin: EBBCan: PA15
run_current: 0.650
stealthchop_threshold: 999999
[fan]
pin: EBBCan: PA0
[heater_fan hotend_fan]
pin: EBBCan: PA1
heater: extruder
heater_temp: 50.0
[filament_switch_sensor toolhead_sensor]
pause_on_runout: False
switch_pin: ^EBBCan: PB3
# runout_gcode:
# M118 toolhead filament removed
# insert_gcode:
# M118 toolhead filament inserted

View file

@ -2,23 +2,6 @@
# Fan Control # Fan Control
##################################################################### #####################################################################
[fan]
pin: PA8
kick_start_time: 0.5
## Depending on your fan, you may need to increase this value
## if your fan will not start. Can change cycle_time (increase)
## if your fan is not able to slow down effectively
off_below: 0.10
[heater_fan hotend_fan]
pin: PE5
max_power: 1.0
kick_start_time: 0.5
heater: extruder
heater_temp: 50.0
## If you are experiencing back flow, you can reduce fan_speed
#fan_speed: 1.0
# [fan_generic nevermore1] # [fan_generic nevermore1]
[heater_fan nevermore1] [heater_fan nevermore1]
pin: PD12 pin: PD12
@ -51,20 +34,3 @@ heater: heater_bed
heater_temp: 40.0 heater_temp: 40.0
fan_speed: 0.40 fan_speed: 0.40
# ## exhaust automatic
# [heater_fan exhaust_fan]
# pin: PD14
# max_power: 1.0
# shutdown_speed: 0.0
# kick_start_time: 0.5
# heater: heater_bed
# heater_temp: 40
# fan_speed: 0.6
# ## exhaust manual
# [fan_generic exhaust_fan]
# pin: PD14
# max_power: 1.0
# shutdown_speed: 0.0
# kick_start_time: 0.5

View file

@ -5,4 +5,5 @@
[include debug.cfg] [include debug.cfg]
[include helpers.cfg] [include helpers.cfg]
[include print.cfg] [include print.cfg]
[include sensorless.cfg]
[include timelapse.cfg] [include timelapse.cfg]

76
macros/sensorless.cfg Normal file
View file

@ -0,0 +1,76 @@
[gcode_macro _HOME_X]
gcode:
# Always use consistent run_current on A/B steppers during sensorless homing
{% set RUN_CURRENT_X = printer.configfile.settings['tmc5160 stepper_x'].run_current|float %}
{% set RUN_CURRENT_Y = printer.configfile.settings['tmc5160 stepper_y'].run_current|float %}
{% set HOME_CURRENT = 0.5 %}
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CURRENT}
SET_TMC_CURRENT STEPPER=stepper_y CURRENT={HOME_CURRENT}
# Home
G28 X
# Move away
G91
G1 X-10 F1200
G90
# Wait just a moment
G4 P500
# Set current during print
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CURRENT_X}
SET_TMC_CURRENT STEPPER=stepper_y CURRENT={RUN_CURRENT_Y}
[gcode_macro _HOME_Y]
gcode:
# Set current for sensorless homing
{% set RUN_CURRENT_X = printer.configfile.settings['tmc5160 stepper_x'].run_current|float %}
{% set RUN_CURRENT_Y = printer.configfile.settings['tmc5160 stepper_y'].run_current|float %}
{% set HOME_CURRENT = 0.5 %}
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CURRENT}
SET_TMC_CURRENT STEPPER=stepper_y CURRENT={HOME_CURRENT}
# Home
G28 Y
# Move away
G91
G1 Y-10 F1200
G90
# Wait just a moment
G4 P500
# Set current during print
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CURRENT_X}
SET_TMC_CURRENT STEPPER=stepper_y CURRENT={RUN_CURRENT_Y}
[homing_override]
axes: xyz
set_position_z: 0
gcode:
{% set home_all = 'X' not in params and 'Y' not in params or 'Z' in params %}
# set_position_z does home z
# but if x and y are not, guess that z is not really either z
{% if not "x" in printer.toolhead.homed_axes and not "y" in printer.toolhead.homed_axes %}
# move up 5
G91
G0 Z5
G90
{% else %}
# or to 5
G0 Z5
{% 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 %}
G0 X150 Y150 F6000
G28 Z
G1 Z10
{% endif %}

View file

@ -11,7 +11,8 @@ initial_BLUE: 0.4
[neopixel toolhead] [neopixel toolhead]
# pin: PB6 # Octopus BL_Touch # pin: PB6 # Octopus BL_Touch
pin: PB0 # Octopus LED # pin: PB0 # Octopus LED
pin: EBBCan: PD3
chain_count: 3 chain_count: 3
color_order: GRBW color_order: GRBW
initial_RED: 0.3 initial_RED: 0.3

View file

@ -58,6 +58,7 @@ path: /home/pi/printer_data/gcodes
# includes # includes
##################################################################### #####################################################################
[include ebb36.cfg]
[include macros/_init.cfg] [include macros/_init.cfg]
[include neopixel.cfg] [include neopixel.cfg]
[include fans.cfg] [include fans.cfg]
@ -77,14 +78,16 @@ step_pin: PF13
dir_pin: !PF12 dir_pin: !PF12
enable_pin: !PF14 enable_pin: !PF14
rotation_distance: 40 rotation_distance: 40
homing_speed: 20
microsteps: 32 microsteps: 32
full_steps_per_rotation: 400 # 200: 1.8 deg stepper, 400: 0.9 deg stepper full_steps_per_rotation: 400 # 200: 1.8 deg stepper, 400: 0.9 deg stepper
endstop_pin: PG6 # endstop_pin: PG6 # octopus
endstop_pin: tmc5160_stepper_x:virtual_endstop
position_min: 0 position_min: 0
position_endstop: 300 position_endstop: 300
position_max: 300 position_max: 300
homing_speed: 30 # speed: mm/sec, feedrate: mm/min # homing_retract_dist: 5
homing_retract_dist: 5 homing_retract_dist: 0
homing_positive_dir: true homing_positive_dir: true
[tmc5160 stepper_x] [tmc5160 stepper_x]
@ -96,6 +99,8 @@ interpolate: False
run_current: 1.0 run_current: 1.0
sense_resistor: 0.110 sense_resistor: 0.110
stealthchop_threshold: 0 stealthchop_threshold: 0
diag0_pin: ^!PG6
driver_SGT: 1 # -64 most sensitive, 63 least sensitive
## Y Stepper on MOTOR1 (A Motor) ## Y Stepper on MOTOR1 (A Motor)
[stepper_y] [stepper_y]
@ -103,14 +108,16 @@ step_pin: PG0
dir_pin: !PG1 dir_pin: !PG1
enable_pin: !PF15 enable_pin: !PF15
rotation_distance: 40 rotation_distance: 40
homing_speed: 20
microsteps: 32 microsteps: 32
full_steps_per_rotation: 400 # 200: 1.8 deg stepper, 400: 0.9 deg stepper full_steps_per_rotation: 400 # 200: 1.8 deg stepper, 400: 0.9 deg stepper
endstop_pin: PG9 # endstop_pin: PG9 # octopus
endstop_pin: tmc5160_stepper_y:virtual_endstop
position_min: 0 position_min: 0
position_endstop: 302.5 position_endstop: 303
position_max: 306 position_max: 303
homing_speed: 30 # Max 100 # homing_retract_dist: 5
homing_retract_dist: 5 homing_retract_dist: 0
homing_positive_dir: true homing_positive_dir: true
[tmc5160 stepper_y] [tmc5160 stepper_y]
@ -122,6 +129,8 @@ interpolate: False
run_current: 1.0 run_current: 1.0
sense_resistor: 0.110 sense_resistor: 0.110
stealthchop_threshold: 0 stealthchop_threshold: 0
diag0_pin: ^!PG9
driver_SGT: 1 # -64 most sensitive, 63 least sensitive
##################################################################### #####################################################################
@ -200,64 +209,6 @@ sense_resistor: 0.110
stealthchop_threshold: 0 stealthchop_threshold: 0
#####################################################################
# Extruder
#####################################################################
# E0 on MOTOR6
[extruder]
step_pin: PE2
dir_pin: !PE3
enable_pin: !PD4
## Update value below when you perform extruder calibration
## If you ask for 100mm of filament, but in reality it is 98mm:
## rotation_distance = <previous_rotation_distance> * <actual_extrude_distance> / 100
## 22.6789511 is a good starting point
rotation_distance: 22.6789511 #Bondtech 5mm Drive Gears
## Update Gear Ratio depending on your Extruder Type
## - 50:17 for Afterburner/Clockwork
## - 50:10 for Stealthburner/Clockwork2
## - 80:20 for M4, M3.1
gear_ratio: 50:10 # SB BMG
microsteps: 32
full_steps_per_rotation: 200 # 1.8 deg stepper: 200, 0.9 deg stepper: 400
nozzle_diameter: 0.400
filament_diameter: 1.75
heater_pin: PA2
sensor_type: ATC Semitec 104NT-4-R025H42G
sensor_pin: PF4
min_temp: 10
max_temp: 280 # specified to 300
max_power: 1.0
min_extrude_temp: 170
#control = pid
#pid_kp = 26.213
#pid_ki = 1.304
#pid_kd = 131.721
## Try to keep pressure_advance below 1.0
# pressure_advance: 0.05
## Default is 0.040, leave stock
pressure_advance_smooth_time: 0.040
# Maximum length (in mm of raw filament) that a retraction or
# extrude-only move may have, default: 50
max_extrude_only_distance: 200
# Maximum area (in mm^2) of an extrusion cross section (eg,
# extrusion width multiplied by layer height). This setting prevents
# excessive amounts of extrusion during relatively small XY moves.
# If a move requests an extrusion rate that would exceed this value
# it will cause an error to be returned. The default is: 4.0 *
# nozzle_diameter^2
max_extrude_cross_section: 50.0 # default 4 * 0.4 = 0.64
## E0 on MOTOR6
[tmc2209 extruder]
uart_pin: PE1
interpolate: false
run_current: 0.5
sense_resistor: 0.110
stealthchop_threshold: 0
##################################################################### #####################################################################
# Bed Heater # Bed Heater
##################################################################### #####################################################################
@ -309,9 +260,9 @@ max_temp: 100
[idle_timeout] [idle_timeout]
timeout: 1800 timeout: 1800
[safe_z_home] # [safe_z_home]
home_xy_position: 150, 150 # home_xy_position: 150, 150
z_hop: 10 # z_hop: 5
##################################################################### #####################################################################
@ -320,7 +271,8 @@ z_hop: 10
[probe] [probe]
## Voron-Tap ## Voron-Tap
pin: ^PG11 # pin: ^PG11
pin: EBBCan: PB9
x_offset: 0 x_offset: 0
y_offset: 0 y_offset: 0
#z_offset: 0 #z_offset: 0