This is a replacement SecKit SK-Tank mount for a BMG and CF gantry, with dual 5015 radial/blower fans for part cooling, and a ducted axial 30mm (3010, 3015, or 3020) fan for hotend cooling. The same mount supports the Dragon HF, E3D V6, and E3D Volcano using different friction-fit air ducts for part cooling.
EDIT 2022-02-25: Added support for BLTouch. There are two mounts - one for Volcano, and one for V6 and Dragon HF. I recommend printing these in the default orientation for strength. The Volcano one can be printed without supports, but the V6/Dragon one will probably need supports (build plate only).
EDIT 2022-04-07: Added a mount for the Euclid Z probe toolboard. I recommend putting the dock in the back right corner of the Tank, with this mount going on the +X side of the back of the extruder plate. That way homing X and Y will go away from the dock, minimizing any chance of collision. My dock design is posted separately as it is not dependent on this toolboard mount or even this extruder setup.
In future, I plan to add support for the stock aluminum gantry... the hole pattern is a bit different so this one only works on the CF gantry.
Assembly instructions:
My Klipper config is below, for reference (only):
# This file contains common pin mappings for the 6 stepper motor
# "FLYmaker Fly-CDYv2" board from creative3dprinter.com. To
# use this config, the firmware should be compiled for the STM32F407
# with a "32KiB bootloader".
# see hardware details on https://github.com/FLYmaker/Fly-CDYv2
# The "make flash" command does not work on the Fly-CDYv2. 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 Fly-CDYv2
# with that SD card.
# See docs/Config_Reference.md for a description of parameters.
# This file can be used as a basline printer.cfg for the SK-Tank
################################################################################################################################################################
# ATTENTION # You shall not use this file without checking and adopting the settings according to your actual built! (e.g. wiring, dimensions, extruder setup) #
################################################################################################################################################################
# Note: please check https://www.klipper3d.org/Config_Reference.html to get the full list of settings. Default settings and not set explicit in this cfg
########################################
# basic settings
########################################
[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32f407xx_220040001651383230343230-if00
[printer]
kinematics: corexy
max_velocity: 300
max_accel: 5000 ;set to 7000 for resonance test
max_z_velocity: 7
max_z_accel: 100
# Note: Extruder settings have to be set in on the extruder in the Steppers & Stepper
# Drivers section usig "max_extrude_only_velocity:" and "max_extrude_only_accel:" attributes
########################################
# Steppers & Stepper Drivers
########################################
# using TMC2208 configuration for TMC2225 steper drivers
# lower belt stepper left back
# usind X socket on Fly-CDYv2
[stepper_x]
step_pin: PE5
dir_pin: !PC0 # for standard SK-Tank wiring you have to change the direction by adding "!" so the new pin will be "!PC0"
enable_pin: !PC1
microsteps: 16
rotation_distance: 32 # Marlin/RRF reference: 200 steps / mm (rotation_distance = <full_steps_per_rotation> * <microsteps> / <steps_per_mm>)
full_steps_per_rotation: 200 # 400 for a 0.9 stepper, 200 for 1.8 stepper
endstop_pin: PC7
position_endstop: 0
position_min: -1
position_max: 350
homing_speed: 150 #150
#[tmc2208 stepper_x]
#uart_pin: PC15
#interpolate: True
#run_current: 0.800
#hold_current: 0.500
# upper belt stepper right back
# usind Y socket on Fly-CDYv2
[stepper_y]
step_pin: PE4
dir_pin: !PC13 # for standard SK-Tank wiring you have to change the direction by adding "!" so the new pin will be "!PC13"
enable_pin: !PC14
microsteps: 16
rotation_distance: 32 # Marlin/RRF reference: 200 steps / mm (rotation_distance = <full_steps_per_rotation> * <microsteps> / <steps_per_mm>)
full_steps_per_rotation: 200 # 400 for a 0.9 stepper, 200 for 1.8 stepper
endstop_pin: PD11
position_endstop: -3
position_min: -4
position_max: 324
homing_speed: 150 #150
#[tmc2208 stepper_y]
#uart_pin: PA8
#interpolate: True
#run_current: 0.800
#hold_current: 0.500
# Z stepper front left
# usind ZA socket on Fly-CDYv2 - ZB socket need to be jumpered when not used (connect 2B<>2A and 1A<>1B pin in socket)
[stepper_z]
step_pin: PE3
dir_pin: PB7
enable_pin: !PB8
microsteps: 16
rotation_distance: 32 # Marlin/RRF reference: 2000 steps / mm (rotation_distance = <full_steps_per_rotation> * <microsteps> / <steps_per_mm> * <gear_ratio>)
full_steps_per_rotation: 200 # for a 1.8 stepper
gear_ratio: 20:1 # to match z stepper 20:1 gearbox NEMA8
#endstop_pin: PB10 # use optical endstop for Z endstop
endstop_pin: probe:z_virtual_endstop # use BL-Touch or inductive probe for Z endstop
#position_endstop: 2.5 # disable when using BL-Touch or inductive probe for Z endstop
position_min: -6
position_max: 400
homing_retract_dist: 2 # added to lift the nozzle 2mm after homing vs. endstop
[tmc2208 stepper_z]
uart_pin: PB6
interpolate: True
run_current: 0.500
hold_current: 0.400
# Z1 stepper front right
# usind E1 socket on Fly-CDYv2
[stepper_z1]
step_pin: PE1
dir_pin: !PD3 # direction inverted since SK-Tank setup is using flipped stepper orientation for Z1
enable_pin: !PD4
microsteps: 16
rotation_distance: 32 # Marlin/RRF reference: 2000 steps / mm (rotation_distance = <full_steps_per_rotation> * <microsteps> / <steps_per_mm> * <gear_ratio>)
full_steps_per_rotation: 200 # for a 1.8 stepper
gear_ratio: 20:1 # to match z stepper 20:1 gearbox NEMA8
[tmc2208 stepper_z1]
uart_pin: PD1
interpolate: True
run_current: 0.500
hold_current: 0.400
# Z2 stepper back center
# usind E2 socket on Fly-CDYv2
[stepper_z2]
step_pin: PE0
dir_pin: PA15
enable_pin: !PD0
microsteps: 16
rotation_distance: 32 # Marlin/RRF reference: 2000 steps / mm (rotation_distance = <full_steps_per_rotation> * <microsteps> / <steps_per_mm> * <gear_ratio>)
full_steps_per_rotation: 200 # for a 1.8 stepper
gear_ratio: 20:1 # to match z stepper 20:1 gearbox NEMA8
[tmc2208 stepper_z2]
uart_pin: PE9
interpolate: True
run_current: 0.500
hold_current: 0.400
# extruder stepper
# usind E0 socket on Fly-CDYv2
[extruder]
step_pin: PE2
dir_pin: !PD6
enable_pin: !PD7
microsteps: 16 # values set for Biqu H2
#rotation_distance: 3.45 # Biqu H2. Marlin/RRF reference: 1900 steps / mm (rotation_distance = <full_steps_per_rotation> * <microsteps> / <steps_per_mm> * <gear_ratio>) # values set for Flex3Drive G5 Flex Extruder
rotation_distance: 7.71 # Triangle Lab BMG clone
full_steps_per_rotation: 200 # for a 1.8 stepper
#gear_ratio: 19:16 # values set for Flex3Drive G5 Flex Extruder
nozzle_diameter: 0.400
filament_diameter: 1.750
#max_extrude_only_velocity: 40 # values set for Flex3Drive G5 Flex Extruder
max_extrude_only_distance: 100.0
#max_extrude_only_accel: 60 # values set for Flex3Drive G5 Flex Extruder
pressure_advance: 0.04
heater_pin: PD12 # T0
sensor_pin: PA3 # T0 Temp
# Thermistor - Biqu H2
#sensor_type: NTC 100K beta 3950
#control: pid
#pid_Kp: 13.385 # to be adjusted by running PID_CALIBRATE HEATER=extruder TARGET=205
#pid_Ki: 0.386 # to be adjusted by running PID_CALIBRATE HEATER=extruder TARGET=205
#pid_Kd: 115.950 # to be adjusted by running PID_CALIBRATE HEATER=extruder TARGET=205
#Thermistor - Triangle Lab Dragon HF
sensor_type: NTC 100K beta 3950 # basic Thermistor, type to be verified by Ernest
control: pid # changed to "watermark" and comment/delet the PID seetings below if you have issues with the SSR (like some SSR dont like PID control)
pid_Kp: 23.242 # to be adjusted by running PID_CALIBRATE HEATER=extruder TARGET=220
pid_Ki: 1.476 # to be adjusted by running PID_CALIBRATE HEATER=extruder TARGET=220
pid_Kd: 91.516 # to be adjusted by running PID_CALIBRATE HEATER=extruder TARGET=220
min_extrude_temp: 170
min_temp: 0
max_temp: 260
[tmc2208 extruder]
uart_pin: PD5
interpolate: True
run_current: 0.800
hold_current: 0.300
########################################
# BED HEATERS & FANS
########################################
[heater_bed]
heater_pin: PB0 # BED
sensor_pin: PB1 # B-TEMP
sensor_type: NTC 100K beta 3950 # basic Thermistor, type to be verified by Ernest
control: pid # changed to "watermark" and comment/delet the PID seetings below if you have issues with the SSR (like some SSR dont like PID control)
pid_Kp: 53.190 # to be adjusted by running PID_CALIBRATE HEATER=heater_bed TARGET=60
pid_Ki: 2.955 # to be adjusted by running PID_CALIBRATE HEATER=heater_bed TARGET=60
pid_Kd: 239.354 # to be adjusted by running PID_CALIBRATE HEATER=heater_bed TARGET=60
min_temp: 0
max_temp: 100
[fan]
pin: PA0 # FAN0 used as print cooling fan
[heater_fan FAN1]
pin: PA2 # FAN1 used as hotend cooling fan
heater: extruder
heater_temp: 50.0
#[controller_fan FAN2]
# this will allow you to connect to driver cooling fan to FAN2 instead of VCC (permanent power) so its only cooling if the stepper drivers are active
#pin: PA2 # FAN2 used as controller cooling fan
########################################
# Inductive sensor
########################################
#[probe]
#pin: PB10
##x_offset: -22.0 # BMG/Dragon stock
##y_offset: 16.0 # BMG/Dragon stock
#x_offset: -22.2 # BMG/Dragon dual 5015s
#y_offset: 32.3 # BMG/Dragon dual 5015s
##x_offset: -27.4 # BMG/Dragon Berd-Air
##y_offset: 14.9 # BMG/Dragon Berd-Air
#z_offset: 0.75
#speed: 7.5 # Speed (in mm/s) of the Z axis when probing. The default is 5mm/s.
#samples: 1
########################################
# BL-Touch
########################################
[bltouch]
sensor_pin: ^PC2
control_pin: PE6
pin_move_time: 0.4
stow_on_each_sample: True
probe_with_touch_mode: True #Needed for BLTouch V3.0 / V3.1
x_offset: -29.2
y_offset: 36
z_offset: 3.25
speed: 5
samples: 1
sample_retract_dist: 2
samples_result: average
[safe_z_home]
home_xy_position: 204.2,139 # Nozzle coordinates that will put the probe in the center of the bed
speed: 150
z_hop: 10 # Move up 10mm
z_hop_speed: 7.5
[bed_mesh]
speed: 150
horizontal_move_z: 6
mesh_min: 35,51 #Probe coordinates
mesh_max: 310,341 #Probe coordinates
probe_count: 7,7
algorithm: bicubic
bicubic_tension: 0.2
move_check_distance: 5
split_delta_z: .025
fade_start: 1
fade_end: 10
#fade_target: 0
[z_tilt]
#Positions of the bed mounts, in nozzle coordinates. Shouldn't need to change these once set up.
z_positions:
6, 6
344, 6
175, 325
#Positions to measure, in nozzle coordinates - i.e. make sure the probe is above the bed when the nozzle is at these positions
points:
39.2, 0
350, 0
204.2, 304
speed: 150
horizontal_move_z: 10
retries: 2
retry_tolerance: 0.1
[force_move]
enable_force_move: True # Set to true to enable FORCE_MOVE and SET_KINEMATIC_POSITION
########################################
# Input Shaping
########################################
[mcu rpi]
serial: /tmp/klipper_host_mcu
[adxl345]
cs_pin: rpi:None
[resonance_tester]
accel_chip: adxl345
probe_points:
175,175,20 # an example
[input_shaper]
# Biqu H2
#shaper_freq_x: 74.0
#shaper_type_x: mzv
#shaper_freq_y: 82.4
#shaper_type_y: 2hump_ei
# BMG/Dragon HF - Aluminum gantry
#shaper_freq_x: 61.6
#shaper_type_x: mzv
#shaper_freq_y: 46.4
#shaper_type_y: mzv
# BMG/Dragon HF - CF gantry - stock
#shaper_freq_x: 60.0
#shaper_type_x: zv
#shaper_freq_y: 52.0
#shaper_type_y: zv
# BMG/Dragon HF - CF gantry - dual 5015s
shaper_freq_x: 66.2
shaper_type_x: mzv
shaper_freq_y: 48.6
shaper_type_y: mzv
########################################
# Filament Switch Sensor
########################################
[filament_switch_sensor my_sensor]
pause_on_runout: True
switch_pin: ^!PB11 # Z-Max pin
######################################################################
# Fysetc Mini 12864Panel v2.1 (with neopixel backlight leds)
######################################################################
# you can choose from samples https://github.com/KevinOConnor/klipper/blob/master/config/sample-lcd.cfg or configure your own https://www.klipper3d.org/Config_Reference.html#display-support
#[display]
#lcd_type: uc1701
#cs_pin: EXP1_3
#a0_pin: EXP1_4
#rst_pin: EXP1_5
#contrast: 63
#encoder_pins: ^EXP2_5, ^EXP2_3
#click_pin: ^!EXP1_2
## Some micro-controller boards may require an spi bus to be specified:
# spi_bus: spi
## Alternatively, some micro-controller boards may work with software spi:
#spi_software_miso_pin: EXP2_1 # on the Fly-CDYv2 this needs to be enabled
#spi_software_mosi_pin: EXP2_6 # on the Fly-CDYv2 this needs to be enabled
#spi_software_sclk_pin: EXP2_2 # on the Fly-CDYv2 this needs to be enabled
#[output_pin beeper]
# pin: EXP1_1 # on the Fly-CDYv2 this pin in <NC> means its not connected. If you want to use teh beeper with this board you have to change the standard EXP1 wire or on the board connect the EXP1 NC pin another pin
#[neopixel fysetc_mini12864]
#pin: EXP1_6
#chain_count: 3
#color_order: RGB
#initial_RED: 0.4
#initial_GREEN: 0.4
#initial_BLUE: 0.4
# Set RGB values on boot up for each Neopixel.
# Index 1 = display, Index 2 and 3 = Knob
#[delayed_gcode setdisplayneopixel]
#initial_duration: 1
#gcode:
# SET_LED LED=fysetc_mini12864 RED=0.3 GREEN=0.3 BLUE=0.3 INDEX=1 TRANSMIT=0
# SET_LED LED=fysetc_mini12864 RED=0.3 GREEN=0.3 BLUE=0.3 INDEX=2 TRANSMIT=0
# SET_LED LED=fysetc_mini12864 RED=1 GREEN=1 BLUE=1 INDEX=3
########################################
# EXP1 / EXP2 (display) pins
########################################
#[board_pins]
#aliases:
# # EXP1 header
# EXP1_2=PA9, EXP1_4=PA10, EXP1_6=PE14, EXP1_8=PA14, EXP1_10=<5V>,
# EXP1_1=<NC>, EXP1_3=PB2, EXP1_5=PE15, EXP1_7=PA13, EXP1_9=<GND>,
# # EXP2 header
# EXP2_2=PA5, EXP2_4=PA4, EXP2_6=PA7, EXP2_8=<RST>, EXP2_10=<NC>,
# EXP2_1=PA6, EXP2_3=PD8, EXP2_5=PD9, EXP2_7=PE13, EXP2_9=<GND>
# See the sample-lcd.cfg file for definitions of common LCD displays.
######################################################################
# Plug pin locations
######################################################################
# Some micro-controller boards and displays use inconsistent labeling
# for the EXP1 and EXP2 headers. The following diagram shows the
# correct location of pin 1 along with ground and power pins on the
# EXP1 and EXP2 plugs:
#
# EXP1: EXP2:
# +-----------------+ +-----------------+
# | o o o o 5V | | o o o o o |
# | 1 o o o GND | | 1 o o o GND |
# +------ ------+ +------ ------+
#
# Some boards may have the cutout in the wrong location. If so, it may
# be possible to carefully pry the plastic header off of the pins with
# a small screwdriver, then correct the orientation and reapply the
# plastic header.
########################################
# NeoPixel
########################################
#[neopixel my_neopixel]
#pin: PD15 # pin already set for Fly-CDYv2
# The pin connected to the neopixel. This parameter must be
# provided.
#chain_count:
# The number of Neopixel chips that are "daisy chained" to the
# provided pin. The default is 1 (which indicates only a single
# Neopixel is connected to the pin).
#color_order: GRB
# Set the pixel order required by the LED hardware. Options are GRB,
# RGB, GRBW, or RGBW. The default is GRB.
#initial_RED: 0.0
#initial_GREEN: 0.0
#initial_BLUE: 0.0
#initial_WHITE: 0.0
# Sets the initial LED color of the Neopixel. Each value should be
# between 0.0 and 1.0. The WHITE option is only available on RGBW
# LEDs. The default for each color is 0.
########################################
# Menu
########################################
#[menu __main __seckit]
#type: list
#name: SecKit
#[menu __main __seckit __cheerup]
#type: command
#name: CheerUpForErnest
#gcode:
# SET_LED LED=fysetc_mini12864 RED=1 GREEN=0 BLUE=0 INDEX=1 TRANSMIT=0
# SET_LED LED=fysetc_mini12864 RED=0 GREEN=1 BLUE=0 INDEX=2 TRANSMIT=0
# SET_LED LED=fysetc_mini12864 RED=0 GREEN=0 BLUE=1 INDEX=3
#[menu __main __seckit __cheerdown]
#type: command
#name: CheerDown
#gcode:
# SET_LED LED=fysetc_mini12864 RED=0.3 GREEN=0.3 BLUE=0.3 INDEX=1 TRANSMIT=0
# SET_LED LED=fysetc_mini12864 RED=0.3 GREEN=0.3 BLUE=0.3 INDEX=2 TRANSMIT=0
# SET_LED LED=fysetc_mini12864 RED=1 GREEN=1 BLUE=1 INDEX=3
########################################
# MACROS
########################################
[gcode_macro PAUSE]
rename_existing: BASE_PAUSE
default_parameter_X: 10 #edit to your park position
default_parameter_Y: 10 #edit to your park position
default_parameter_Z: 10 #edit to your park position
default_parameter_E: 1 #edit to your retract length
gcode:
SAVE_GCODE_STATE NAME=PAUSE_state
BASE_PAUSE
G91
G1 E-{E} F2100
G1 Z{Z}
G90
G1 X{X} Y{Y} F6000
[gcode_macro RESUME]
rename_existing: BASE_RESUME
default_parameter_E: 1 #edit to your retract length
gcode:
G91
G1 E{E} F2100
G90
RESTORE_GCODE_STATE NAME=PAUSE_state MOVE=1
BASE_RESUME
[gcode_macro CANCEL_PRINT]
rename_existing: BASE_CANCEL_PRINT
gcode:
TURN_OFF_HEATERS
CLEAR_PAUSE
SDCARD_RESET_FILE
BASE_CANCEL_PRINT
[gcode_macro G29]
gcode:
BED_MESH_CALIBRATE
######################################################################
# Start Print and End Print
######################################################################
# Replace the slicer's custom start and end g-code scripts with
# START_PRINT and END_PRINT.
[gcode_macro START_PRINT]
default_parameter_BED_TEMP: 60
default_parameter_EXTRUDER_TEMP: 210
gcode:
{% set BED_TEMP = params.BED_TEMP|default(60)|float %}
{% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(190)|float %}
# Start bed heating
M140 S{BED_TEMP}
# Start bed extruder
M104 S{EXTRUDER_TEMP}
# Use absolute coordinates
G90
# Reset the G-Code Z offset (adjust Z offset if needed)
SET_GCODE_OFFSET Z=0.0
# Home the printer
G28
# Adjust Z tilt for 2 Z axis
Z_TILT_ADJUST
# # Move the nozzle near the bed
# G1 Z5 F3000
# # Move the nozzle very close to the bed
# G1 Z0.2 F300
# Wait for bed to reach temperature
M190 S{BED_TEMP}
# Set and wait for nozzle to reach temperature
M109 S{EXTRUDER_TEMP}
# Move to the middle of the bed
G1 X175 Y175 Z5 F3000
[gcode_macro END_PRINT]
gcode:
# Turn off bed, extruder, and fan
M140 S0
M104 S0
M106 S0
# Move nozzle away from print while retracting
G91
G1 X-2 Y-2 Z2 E-3 F300
# Raise nozzle by 10mm
G1 Z10 F3000
# move nozzle to the middle back
G90
G1 X175 Y324 F3000
The author marked this model as their own original creation. Imported from Thingiverse.