This file contains common pin mappings for the BIGTREETECH SKR mini
E3 v3.0. To use this config, the firmware should be compiled for the
STM32G0B1 with a “8KiB bootloader” and USB communication.
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.
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.
*** THINGS TO CHANGE/CHECK: ***
MCU paths [mcu] section
Hotend heater pin [extruder] section"“”“”“”“”“”"
Leadscrew Rotation Distance [stepper_z], [stepper_z1], [stepper_“”“”“”“”“”""z2]
Z Endstop Switch location [safe_z_home] section"“”“”“”“”“”"
Z Endstop Switch offset for Z0 [stepper_z] section"“”“”“”“”“”"
Stepper Z1 enable pin [stepper_z1] section"“”“”“”“”“”"
PID tune [extruder] and [heater_bed] sections"“”“”“”“”“”"
Probe pin [probe] section"“”“”“”“”“”"
Fine tune E steps [extruder] section"“”“”“”“”“”"
#====================================================================
INCLUDES
#====================================================================
[include fluidd.cfg]
#[include/home/brian/printer_data/config/printer.cfg]
[include menu.cfg] # custom lcd display menu
#[include ./KAMP/Adaptive_Meshing.cfg] # Include to enable adaptive meshing configuration.
#[include ./KAMP/Line_Purge.cfg] # Include to enable adaptive line purging configuration.
#[include ./KAMP/Voron_Purge.cfg] # Include to enable adaptive Voron logo purging configuration.
#[include ./KAMP/Smart_Park.cfg] # Include to enable the Smart Park function, which parks the printhead near the print area for final heating.
#[include /home/brian/printer_data/config/KAMP_Settings.cfg]
#[include eddy.cfg]
#[include variables.cfg]
[include /home/brian/printer_data/]
#[include canbus-ebb36.cfg]
#[include moonraker_obico_macros.cfg]
#[include generic-bigtreetech-xxx.cfg]
[include timelapse.cfg]
#[include macros.cfg]
[include mainsail.cfg]
#[include menu.cfg]
#====================================================================
EXCLUDE OBJECTS
#====================================================================
The [exclude_object] module allows Klipper to exclude objects
while a print is in progress.
[exclude_object]
#====================================================================
Respond Messages
#====================================================================
[respond]
#default_type: echo
Sets the default prefix of the “M118” and “RESPOND” output to one
of the following:
#echo: "echo: " (This is the default)
command: "// "
error: "!! "
default_prefix:
Directly sets the default prefix. If present, this value will
override the “default_type”.
##################################################
MCU
##################################################
[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_3F0043000651313133353932-if00
restart_method: command
[mcu EBBCan]
#serial: /dev/serial/by-id/1d50:606f
canbus_uuid: 4820dd4a7218
canbus_uuid: f24a938f95eb ###0e0d81e4210c 4820dd4a7218
[virtual_sdcard]
path: ~/printer_data/gcodes
#[mcu host]
#serial: /tmp/klipper_host_mcu
#[mcu eddy]
#serial: /dev/serial/by-id/usb-Klipper_rp2040_45474E621B065B9A-if00
#restart_method: command
#[mcu CB2]
#serial: /tmp/klipper_host_mcu
#serial: /dev/serial/by-id/{REPLACE WITH YOUR SERIAL}
#serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
CAN bus is also available on this board
##################################################
PRINTER
##################################################
[printer]
kinematics: corexy
max_velocity: 500
max_accel: 4000 #Max 4000
max_z_velocity: 30 #Max 15 for 12V TMC Drivers, can increase for 24V
max_z_accel: 500
square_corner_velocity: 5.0
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.
#====================================================================
X Y Stepper Settings
#====================================================================
B Stepper - Left
Connected to MOTOR_0
Endstop connected to DIAG_0
[stepper_x]
step_pin: !PF13
dir_pin: PF12
enable_pin: !PF14
rotation_distance: 40
microsteps: 64
full_steps_per_rotation:200 #set to 400 for 0.9 degree stepper
endstop_pin: ^EBBCan: PB6 # PC13 #!EBBCan:PC13 # PD0 PG6 PB6??
position_min: 0
position_endstop: 208 ## Uncomment below for 250mm build
position_max: 208
homing_speed: 100 #Max 100
homing_retract_dist: 10
homing_positive_dir: true
A Stepper - Right
Connected to MOTOR_1
Endstop connected to DIAG_1
[stepper_y]
step_pin: !PG0
dir_pin: !PG1
enable_pin: !PF15
rotation_distance: 40
microsteps: 64
full_steps_per_rotation:200 #set to 400 for 0.9 degree stepper
endstop_pin: !PG9
position_min: 0
position_endstop: 215 ## Uncomment for 250mm build
position_max: 215
homing_speed: 100 #Max 100
homing_retract_dist: 10
homing_positive_dir: true
#####################################################################
Z Stepper Settings
#####################################################################
Z0 Stepper - Front Left
Connected to MOTOR_2_1
Endstop connected to DIAG_2
[stepper_z]
step_pin: PF11
dir_pin: PG3
enable_pin: !PG5
rotation_distance: 8 # Rotation Distance for TR8x8 = 8, TR8x4 = 4, TR8x2 = 2
microsteps: 64
endstop_pin: probe:z_virtual_endstop ##endstop_pin: PG10 ## octopus seting pins PG10 # need to set up eddy later with = probe:z_virtual_endstop
Z-position of nozzle (in mm) to z-endstop trigger point relative to print surface (Z0)
(+) value = endstop above Z0, (-) value = endstop below
Increasing position_endstop brings nozzle closer to the bed
After you run Z_ENDSTOP_CALIBRATE, position_endstop will be stored at the very end of your config
#position_endstop: 0
position_max: 220
position_min: 0
homing_speed: 10.0 # Leadscrews are slower than 2.4, 10 is a recommended max.
second_homing_speed: 3
homing_retract_dist: 3
Z1 Stepper - Rear Center
Connected to MOTOR_3
[stepper_z1]
step_pin: PG4
dir_pin: PC1
enable_pin: !PA0 ## Octopus 1.0 & 1.1. Octopus PRO 1.0
Octopus PRO 1.1
#enable_pin: !PA2
Rotation Distance for TR8x8 = 8, TR8x4 = 4, TR8x2 = 2
rotation_distance: 8
microsteps: 64
Z2 Stepper - Front Right
Connected to MOTOR_4
[stepper_z2]
step_pin: PF9
dir_pin: PF10
enable_pin: !PG2
Rotation Distance for TR8x8 = 8, TR8x4 = 4, TR8x2 = 2
rotation_distance: 8
microsteps: 64
#####################################################################
Extruder
#####################################################################
Connected to MOTOR_6
Heater - HE0
Thermistor - T0
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.
[extruder]
step_pin: EBBCan: PD0 #PE2
dir_pin: !EBBCan: PD1 #!PE3
enable_pin: !EBBCan: PD2 #!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
USe 47.088 for Galieto 2 extruder
rotation_distance: 47.088
Update Gear Ratio depending on your Extruder Type
USE 22.6789511 #Bondtech 5mm Drive Gears
USe 9:1 Galieto 2 extruder
Use 50:10 for Stealthburner/Clockwork 2
Use 50:17 for Afterburner/Clockwork (BMG Gear Ratio)
Use 80:20 for M4, M3.1
gear_ratio: 9:1
microsteps: 64
rotation_distance: 33.500 #full_steps_per_rotation: #200 #200 for 1.8 degree, 400 for 0.9 degree
nozzle_diameter: 0.400
filament_diameter: 1.75
Octopus 1.0 & 1.1. Octopus PRO 1.0
heater_pin: EBBCan: PB13 # PA2
Use “Generic 3950” for NTC 100k 3950 thermistors
sensor_type:MAX31865 # sensor_type: ATC Semitec 104NT-4-R025H42G # EPCOS 100K B57560G104F# Generic 3950 # NTC 100K 3950 # NTC 100K MGB18-104F39050L3 # ATC Semitec 104GT-2 # ATC Semitec 104NT-4-R025H42G #100k 104nt-4
sensor_pin: EBBCan: PA4 # sensor_pin: EBBCan: PA3 # PF4
min_temp: 0
max_temp: 310
max_power: 1.0
min_extrude_temp: 0
max_extrude_cross_section: 12
control: pid
pid_kp: 18.295
pid_ki: 0.797
pid_kd: 104.966
spi_bus: spi1
rtd_nominal_r: 100
rtd_reference_r: 430
rtd_num_of_wires: 2
Try to keep pressure_advance below 1.0
pressure_advance: 0.05
Default is 0.040, leave stock
pressure_advance_smooth_time: 0.040
sensor_type:MAX31865
sensor_pin: EBBCan: PA4
spi_bus: spi1
rtd_nominal_r: 100
rtd_reference_r: 430
rtd_num_of_wires: 2
#####################################################################
TMC2209 Stepper Settings
#####################################################################
Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_x]
uart_pin: PC4
interpolate: False
run_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 0
Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_y]
uart_pin: PD11
interpolate: False
run_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 0
[tmc2209 stepper_z]
uart_pin: PC6
interpolate: False
run_current: 0.65
sense_resistor: 0.110
stealthchop_threshold: 0
Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_z1]
uart_pin: PC7
interpolate: False
run_current: 0.65
sense_resistor: 0.110
stealthchop_threshold: 0
Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_z2]
uart_pin: PF2
interpolate: False
run_current: 0.65
sense_resistor: 0.110
stealthchop_threshold: 0
[tmc2209 extruder]
uart_pin: EBBCan: PA15
run_current: 0.650
stealthchop_threshold: 999999
E0 on MOTOR6
Make sure to update below for your relevant driver (2208 or 2209)
#[tmc2209 extruder]
#uart_pin: PE1
#interpolate: false#3run_current: 0.6
#sense_resistor: 0.110
#stealthchop_threshold: 0
#####################################################################
Thermals
#####################################################################
[temperature_sensor Pi2_MCU]
Pi Temps
sensor_type: temperature_host
max_temp: 100
##[temperature_sensor mcu_temp]
[temperature_sensor Octopus_MCU]
octopus temp Temps
sensor_type: temperature_mcu
max_temp: 90
#[temperature_sensor Eddy_MCU]
#sensor_type: temperature_mcu # Sets the type of sensor for Klipper to read
#sensor_mcu: EBBCan # eddy # Sets the MCU of the eddy probe tempereature sensor
#min_temp: 10 # Sets the minimum tempereature for eddys tempereature sensor to operate
#max_temp: 100 # Sets the maximum tempereature for eddys tempereature sensor to operate
[temperature_sensor bed_top]
Top of Bed Temps
sensor_type: Generic 3950
sensor_pin: PC2
#####################################################################
Bed Heater
#####################################################################
[heater_bed]
SSR Pin - HE1
Thermistor - TB
heater_pin: PA1
Use “Generic 3950” for Keenovo heaters
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PF3
Adjust max_power so it doesn’t exceed the SSR rating. The Omron G3NA-210B-DC5 SSR is rated at 4 amps without a heatsink.
The formula is “4 / (Wattage_of_bed_heater / Mains_voltage) = max_power”
If max_power is greater than 1.0, use 1.0
max_power: 1.0
min_temp: 0
max_temp: 130
control: pid
pid_Kp: 68.992
pid_Ki: 1.288
pid_Kd: 923.636
## pid_kp = 68.992
## pid_ki = 1.288
#*# pid_kd = 923.636
#[temperature_sensor chamber]
#sensor_type: XXX
#sensor_pin: XXX
#####################################################################
Fan Control
#####################################################################
[fan]
Print Cooling Fan - FAN0
pin: EBBCan: PA0 # 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]
Hotend Fan - FAN1
pin: EBBCan: PA1 # 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
[controller_fan controller_fan1]
Controller fan - FAN2
pin: PD12
kick_start_time: 0.5
heater: heater_bed
[controller_fan controller_fan2]
Controller fan - FAN3
pin: PD13
kick_start_time: 0.5
heater: heater_bed
#[controller_fan controller_fan]
Controller fan - FAN4
#pin: PD13
#kick_start_time: 0.5
#heater: heater_bed
#[heater_fan exhaust_fan]
Exhaust fan - FAN5
#pin: PD14
#max_power: 1.0
#shutdown_speed: 0.0
#kick_start_time: 5.0
#heater: heater_bed
#heater_temp: 60
#fan_speed: 1.0
#######################################################################
RGB
#######################################################################
[neopixel StealthBurner]
pin: EBBCan: PD3 # can0:PD3
chain_count: 3
color_order: GRBW
initial_RED: 1.0
initial_GREEN: 1.0
initial_BLUE: 1.0
initial_WHITE: 1.0
#[neopixel hotend_rgb]
pin: EBBCan:PA3
[output_pin caselight ]
Chamber Lighting - In E1 OUT Position
pin: PC8
pwm: true
shutdown_value: 0
cycle_time: 0.01
#[output_pin caselight]
Chamber Lighting - HE2 Connector (Optional)
##Octopus 1.0 & 1.1, Octopus PRO 1.0
#pin: PB10
##Octopus PRO 1.1
#pin: PB0
#pwm:true
#shutdown_value: 0
#value:1
#cycle_time: 0.01
#######################################################################################################################
MESH SETTINGS
#######################################################################################################################
[z_tilt]
Use Z_TILT_ADJUST to level the bed .
z_positions: Location of toolhead
z_positions:
-40, 18
100, 110
214, 18
points:
15, 2
110, 180
204, 2
speed: 180
horizontal_move_z: 10
retries: 10
retry_tolerance: 0.02
[bed_mesh]
speed: 50 # The speed (in mm/s) of non-probing moves during the calibration
horizontal_move_z: 5 # The height (in mm) that the head should be commanded to move to # just prior to starting a probe operation.
mesh_min: 10, 10 # Defines the minimum X, Y coordinate of the mesh for rectangular beds. This coordinate is relative to the probe’s location.
mesh_max: 203, 180
probe_count: 5, 5
SEE BELOW HOMOING SECTION**** Uncomment this if you are using Eddy as the probe AND the homing endstop
XY Location of the Z Endstop Switch
Update -10,-10 to the XY coordinates of your endstop pin
(such as 157,305) after going through Z Endstop Pin
Location Definition step.
Choose an X,Y position that is in the center of your bed. For a 300x300 machine that will be 150, 150. Use the same principle to calculate your bed center.
[safe_z_home]
home_xy_position: 100, 110 # 123, 215 #100, 110 # prior to eddy settigs 100, 110 ### old z pin locatioin with bed endstop = 128, 215 #home_xy_position: 110, 115
z_hop: 10
z_hop_speed: 25
speed: 200
#####################################################################
Probe
#####################################################################
[output_pin probe_enable]
pin: EBBCan:PB9 ## PE5 # The control IO on the SKR 3 is PE5
value: 0 # Probe default retracted
#control_pin: EBBCan:PB9
[gcode_macro Probe_Deploy] # Probe deploy command
gcode:
SET_PIN PIN=probe_enable VALUE=1
[gcode_macro Probe_Stow] # Probe stow command
gcode:
SET_PIN PIN=probe_enable VALUE=0
[probe]
pin: ^!EBBCan:PB8 #^PC13 # The detection IO on the SKR 3 is PC13, V1 should be ^PC13 means high-level triggered, V2 should be ^!PC13 means low -level triggered.
deactivate_on_each_sample: False
x_offset: 0.0 # Actual installed offset of MicroProbe
y_offset: -20.6 # Actual installed offset of MicroProbe
#z_offset: 0 # Actual installed offset of MicroProbe
speed: 5.0
#sensor_pin: ^EBBCan:PB8
activate_gcode:
Probe_Deploy
G4 P500 # Allow 500 milliseconds for the probe to deploy
deactivate_gcode:
Probe_Stow
#[probe]
This probe is not used for Z height, only Quad Gantry Leveling
In Z+ position
If your probe is NO instead of NC, change pin to ^!PA3
pin: ^PA3 ## Spider Pin
#pin: ^PG15 # J34 #pin: EBBCan: PB9
#x_offset: 0
#y_offset: 25.0
#z_offset: 9.5 #when using induction, set to zero
#speed: 5.0 # when using induction, set to 10
#lift_speed: 10 #remove when using inductionsamples: 3
#samples_result: median
#sample_retract_dist: 3.0
#samples_tolerance: 0.006
#samples_tolerance_retries: 4
#[bltouch]
#sensor_pin: ^EBBCan:PB8 # blue wire
#control_pin: EBBCan:PB9 # yellow wire
#x_offset: -30
#y_offset: -40
#z_offset: 6 #uncomment if starting fresh: Default distance = 6 to start new
#speed: 4.0
#samples: 2
#samples_result: median
#sample_retract_dist: 6.0
#samples_tolerance: 0.01
#samples_tolerance_retries: 3
#stow_on_each_sample: true
#probe_with_touch_mode: true
#pin_up_reports_not_triggered: false
#pin_up_touch_mode_reports_triggered: false
#set_output_mode: 5V
This probe is not used for Z height, only Quad Gantry Leveling
NPN and PNP proximity switch types can be set by jumper
#####################################################################
Homing and Gantry Adjustment Routines
#####################################################################
[idle_timeout]
timeout: 3600
#[adxl345]
#cs_pin: CB1:None
#spi_bus: spidev1.1
#axes_map: z,y,-x # Modify according to the actual orientation of the ADXL345 installed on the printer.
[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
#[adxl345]
#cs_pin: PA15
#spi_bus: spi3
[resonance_tester]
accel_chip: adxl345
#accel_per_hz: 70
probe_points: 115,115,20
[input_shaper]
## shaper_type_x = 2hump_ei
## shaper_freq_x = 83.2
## shaper_type_y = 3hump_ei
## shaper_freq_y = 69.0
#[adxl345] #BTT PI
#cs_pin: host:gpio67
#pi_bus: spidev0_0
#axes_map: x,y,z
#[resonance_tester]
#accel_chip: adxl345
#probe_points:
115,115,20
#####################################################################
Filiment Sensors
#####################################################################
#[filament_switch_sensor switch_sensor]
#switch_pin: EBBCan:PB4
#[filament_motion_sensor motion_sensor]
#switch_pin: ^EBBCan:PB3
########################################
EXP1 / EXP2 (display) pins
########################################
[board_pins]
aliases:
# EXP1 header
EXP1_1=PE8, EXP1_2=PE7,
EXP1_3=PE9, EXP1_4=PE10,
3 EXP1_5=PE12, EXP1_6=PE13, # Slot in the socket on this side
EXP1_7=PE14, EXP1_8=PE15,
EXP1_9=, EXP1_10=<5V>,
# EXP2 header
EXP2_1=PA6, EXP2_2=PA5,
EXP2_3=PB1, EXP2_4=PA4,
EXP2_5=PB2, EXP2_6=PA7, # Slot in the socket on this side
EXP2_7=PC15, EXP2_8=<RST>,
EXP2_9=<GND>, EXP2_10=<5V>
[board_pins EBB36_G0B1_v1.2]
mcu: EBBCan
aliases:
aliases_step:
EXT_EN=PD2,EXT_STEP=PD0,EXT_DIR=PD1,EXT_UART=PA15
aliases_limitsw: # these are preferred for endstops (including klicky)
LIMIT_1=PB7,LIMIT_2=PB5,LIMIT_3=PB6
aliases_bltouch: # these are the dupont connectors for bltouch
PROBE_1=PB9,PROBE_2=PB8
aliases_fans:
FAN0=PA1,FAN1=PA0
aliases_thermistors:
TH0=PA3,PT100_CS=PA4,PT100_SCLK=PA5,PT100_MISO=PA6,PT100_MOSI=PA7
aliases_heaters:
HE0=PA2
aliases_rgb:
RGBLED=PD3
aliases_adxl:
ADXL_CS=PB12,ADXL_SCLK=PB10,ADXL_MISO=PB2,ADXL_MOSI=PB11
aliases_i2c:
AUX0=PB3,AUX1=PB4
See the sample-lcd.cfg file for definitions of common LCD displays.
## <---------------------- SAVE_CONFIG ---------------------->
## DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
##
## [probe]
#*# z_offset = -1.000
## <---------------------- SAVE_CONFIG ---------------------->
## DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
##
## [probe]
#*# z_offset = -0.800
## <---------------------- SAVE_CONFIG ---------------------->
## DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
##
## [probe]
#*# z_offset = -2.800