Recommend a Prusa printer, earn $30! See the updated Prusa Rewards Program.

SK-Tank CF BMG Dual 5015s Mount

This is a replacement SecKit SK-Tank mount for a BMG and CF gantry, with dual 5015 radial/blower fans for part…
7
39
0
1642
updated February 28, 2022

Description

PDF

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:

  • Print the parts. The default orientation should be OK, but adjust as needed.
  • Tap the hotend fan holes in the back of the extruder plate for M3, or your preference. The holes as designed are intentionally a bit small for M3, so they tap easily. If you don't plan to tap them you may want to drill them with a 3mm bit to accept an M3 screw.
  • Install the hotend fan.
  • If using an inductive probe, install the inductive probe (height is not important yet, just put it about halfway) into the L-shaped inductive probe mount, with the L pointing up.
  • If using a BLTouch, install the BLTouch into the appropriate mount, with the wires facing away from the mount. The mounting point for the BLTouch is at the top of the mount, with the BLTouch hanging down facing the mount. The slot should allow a bit of vertical adjustment.
  • Install the probe mount to the extruder plate using two short M3 screws.
  • Remove the 4020 duct, BMG and hotend, if installed.
  • Sandwich the extruder plate between the extruder stepper and the BMG, and start the three long M3 screws. Do not tighten fully just yet.
  • (Dragon HF only) Rotate the hotend so that the heat block points towards the front. This is to prevent radiant heat from deforming the hotend fan duct.
  • If necessary, reverse the heater and thermistor so that the wires will exit to the left.
  • Tighten the three long M3 screws to firmly attach the BMG to the stepper motor and lock the hotend in place.
  • Pass the heater and thermistor wires through the rounded pass-through hole in the extruder plate.
  • Trim and/or file the inside of the fan duct attachment sockets, so that they are smooth and free of obstructions.
  • Trim and/or file the fan ducts the same way. You may want to test fit them during the process to ensure they will go all the way in and fit snugly.
  • Install the extruder assembly to the four existing M3 standoffs.
  • On each of the 5015 fans:
    • File down the top screw channel so there is room to accommodate a nut between the screw channel and the body of the BMG. The side that needs to be filed is different per fan; file one side on one fan, and the other side on the other fan.
    • File down the little nub at the bottom of the +Y side of the fan, to allow it to seat fully.
  • Test fit the 5015 fans. Make any necessary adjustments, then install the fans, placing a nut toward the inside, between the fan and the BMG. Run the wire for the left fan through the same opening as the other wires. Run the right one around the right side of the fan, then up along the stepper motor inside the standoffs.
  • Insert the fan ducts until snug, then tighten them down at the top.
  • Connect the wiring.
  • Adjust the firmware configuration to reflect the new probe X and Y offsets:
    • Inductive probe: X -22.2 mm, Y +32.3 mm
    • BLTouch: X -29.2 mm, Y +36.0 mm
  • Accordingly you should also adjust your bed mesh and z tilt coordinates. I have pasted my current Klipper config below for reference.
  • Calibrate the probe Z offset.
  • Adjust fan speeds in your slicer.
  • You're done!

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
    

Tags



Model origin

The author marked this model as their own original creation. Imported from Thingiverse.

License