4
$\begingroup$

My Setup

  • Ender 3 Pro
  • Creality Board v4.2.7
  • Klipper Firmware (worked great with the stock Creality Bowden hotend and Creality Direct Drive Extruder)
  • Brand new Creality Sprite Pro hotend.

Wiring

  • I have verified that the hotend heater cartridge is wired properly. In fact, if I reverse the polarity of the hotend heater, the LCD blinks on and off as if the board is continuously rebooting.

Problem

The hotend immediately starts heating at 100% (24 V DC) on startup without any command to do so.

What I've tried

  • I've unplugged the hot end heater (on the Sprite Pro head) and I see 24 V DC at the board nozzle output.
  • If I unplug the ribbon cable on the sprite end, I see ~ 300 mV at the nozzle output.

Question

How do I stop the hot end from heating up on startup?

Klipper printer.cfg:

[include moonraker_obico_macros.cfg]
# This file contains pin mappings for the Creality "v4.2.7" board. To
# use this config, during "make menuconfig" select the STM32F103 with
# a "28KiB bootloader" and serial (on USART1 PA10/PA9) communication.

# If you prefer a direct serial connection, in "make menuconfig"
# select "Enable extra low-level configuration options" and select
# serial (on USART3 PB11/PB10), which is broken out on the 10 pin IDC
# cable used for the LCD module as follows:
# 3: Tx, 4: Rx, 9: GND, 10: VCC

# Flash this firmware by copying "out/klipper.bin" to a SD card and
# turning on the printer with the card inserted. The firmware
# filename must end in ".bin" and must not match the last filename
# that was flashed.

# See docs/Config_Reference.md for a description of parameters.

[skew_correction]

# [filament_switch_sensor runout_sensor]
# pause_on_runout: True
# switch_pin: PA4

[stepper_x]
step_pin: PB9
dir_pin: PC2
enable_pin: !PC3
microsteps: 16
rotation_distance: 39.83
endstop_pin: ^PA5
position_endstop: 0
position_max: 235
homing_speed: 50

[stepper_y]
step_pin: PB7
dir_pin: PB8
enable_pin: !PC3
microsteps: 16
rotation_distance: 39.78
endstop_pin: ^PA6
position_endstop: 0
position_max: 235
homing_speed: 50

[stepper_z]
step_pin: PB5
dir_pin: !PB6
enable_pin: !PC3
microsteps: 16
rotation_distance: 8
# position_endstop: 0.0                     # disable to use BLTouch
# endstop_pin: ^PA7                         # disable to use BLTouch
endstop_pin: probe:z_virtual_endstop    # enable to use BLTouch
position_min: -5                        # enable to use BLTouch
position_max: 250

[safe_z_home]                         # enable for BLTouch
home_xy_position: 157.5,120.5
speed: 100
z_hop: 10
z_hop_speed: 5

[bltouch]                             # enable for BLTouch - fast-mode
sensor_pin: PA7
control_pin: PB0
pin_up_touch_mode_reports_triggered: True
probe_with_touch_mode: True
# x_offset: -44                         # modify as needed for bltouch location
# y_offset: -6                          # modify as needed for bltouch location
x_offset: -28                           # For the sprite
y_offset: -40                           # For the sprite
#z_offset: 0.0                         # modify as needed for bltouch or run PROBE_CALIBRATE
speed: 10
sample_retract_dist: 5.0              # Can be set lower, example 2.5 depending on height of bltouch from bed
lift_speed: 40
samples_tolerance_retries: 3
speed: 10
samples: 1

[bed_mesh]
speed: 80
horizontal_move_z: 5
mesh_min: 18,18
mesh_max: 175,202
probe_count: 5,5
algorithm: bicubic

# manual Bed adjustment via BED_SCREWS_ADJUST
[bed_screws]
screw1: 72.5, 41.5
screw1_name: front left screw
screw2: 198.5,35.5
screw2_name: front right screw
screw3: 198.5,205.5
screw3_name: rear right screw
screw4: 28.5,205.5
screw4_name: rear left screw
horizontal_move_z: 10
speed: 50

[screws_tilt_adjust]
screw1: 72.5, 41.5
screw1_name: front left screw
screw2: 220,41.5
screw2_name: front right screw
screw3: 220,212.5
screw3_name: rear right screw
screw4: 72.5,212.5
screw4_name: rear left screw
horizontal_move_z: 10
speed: 50
screw_thread: CW-M4

[input_shaper]
shaper_freq_x: 100
shaper_freq_y: 100
shaper_type: mzv

[gcode_macro G29]
gcode:
    G28
    BED_MESH_CALIBRATE
    G0 X0 Y0 Z10 F6000
    BED_MESH_PROFILE save=default
    SAVE_CONFIG


[extruder]
max_extrude_only_distance: 100.0
step_pin: PB3
dir_pin: PB4
enable_pin: !PC3
microsteps: 16
rotation_distance: 33.500
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PA1
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC5
control: pid
pid_Kp: 21.527
pid_Ki: 1.063
pid_Kd: 108.982
min_temp: 0
max_temp: 250

[heater_bed]
heater_pin: PA2
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC4
control: pid
pid_Kp: 54.027
pid_Ki: 0.770
pid_Kd: 948.182
min_temp: 0
max_temp: 130

#[fan]
#pin: PA0

[fan]
pin: PA0

[mcu]
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
restart_method: command

[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_accel_to_decel: 3000
max_z_velocity: 5
max_z_accel: 100

[display]
lcd_type: st7920
cs_pin: PB12
sclk_pin: PB13
sid_pin: PB15
encoder_pins: ^PB14, ^PB10
click_pin: ^!PB2

[gcode_macro G29]
gcode:
    G28
    G1 Z10 F600
    BED_MESH_CLEAR
    BED_MESH_CALIBRATE
    BED_MESH_PROFILE SAVE=default
    SAVE_CONFIG

[temperature_sensor raspberry_pi]
sensor_type: temperature_host
min_temp: 10
max_temp: 100

[temperature_sensor mcu_temp]
sensor_type: temperature_mcu
min_temp: 0
max_temp: 100

[board_pins]
aliases:
  EXP1_1=PC6,EXP1_3=PB10,EXP1_5=PB14,EXP1_7=PB12,EXP1_9=<GND>,
  EXP1_2=PB2,EXP1_4=PB11,EXP1_6=PB13,EXP1_8=PB15,EXP1_10=<5V>,
  PROBE_IN=PB0,PROBE_OUT=PB1,FIL_RUNOUT=PC6

[exclude_object]

[include mainsail.cfg]
[include timelapse.cfg]

[gcode_macro do_the_mesh]
gcode:
  BED_MESH_PROFILE LOAD="default"
  SKEW_PROFILE LOAD=my_skew_profile

description: Either load the default mesh or perform a mesh load operation.

#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [bltouch]
#*# z_offset = 1.420
#*#
#*# [bed_mesh default]
#*# version = 1
#*# points =
#*#       0.005000, -0.022500, -0.015000, -0.015000, -0.017500
#*#       0.032500, -0.022500, -0.015000, -0.042500, -0.047500
#*#       0.105000, 0.022500, 0.020000, -0.045000, -0.077500
#*#       0.140000, 0.080000, 0.055000, 0.015000, 0.022500
#*#       0.225000, 0.182500, 0.147500, 0.077500, 0.067500
#*# x_count = 5
#*# y_count = 5
#*# mesh_x_pps = 2
#*# mesh_y_pps = 2
#*# algo = bicubic
#*# tension = 0.2
#*# min_x = 18.0
#*# max_x = 175.0
#*# min_y = 18.0
#*# max_y = 202.0
#*#
#*# [skew_correction my_skew_profile]
#*# xy_skew = -0.0008053242270892168
#*# xz_skew = 0.0
#*# yz_skew = 0.0
```
$\endgroup$

1 Answer 1

3
$\begingroup$

After much gnashing of teeth, I determined that the problem revolved around the Z-stop wire from the 40 conductor cable being connected.

The Sprite Pro is equipped with a 5-pin BL Touch connector. For whatever reason, having the 2-pin connector plugged into the Z-stop port causes the nozzle heater output to peg at 24 V DC.

Updated printer.cfg

[include moonraker_obico_macros.cfg]
# This file contains pin mappings for the Creality "v4.2.7" board. To
# use this config, during "make menuconfig" select the STM32F103 with
# a "28KiB bootloader" and serial (on USART1 PA10/PA9) communication.

# If you prefer a direct serial connection, in "make menuconfig"
# select "Enable extra low-level configuration options" and select
# serial (on USART3 PB11/PB10), which is broken out on the 10 pin IDC
# cable used for the LCD module as follows:
# 3: Tx, 4: Rx, 9: GND, 10: VCC

# Flash this firmware by copying "out/klipper.bin" to a SD card and
# turning on the printer with the card inserted. The firmware
# filename must end in ".bin" and must not match the last filename
# that was flashed.

# See docs/Config_Reference.md for a description of parameters.

[skew_correction]

# [filament_switch_sensor runout_sensor]
# pause_on_runout: True
# switch_pin: PA4

[stepper_x]
step_pin: PB9
dir_pin: PC2
enable_pin: !PC3
microsteps: 16
rotation_distance: 39.83
endstop_pin: ^PA5
position_endstop: 0
position_max: 235
homing_speed: 50

[stepper_y]
step_pin: PB7
dir_pin: PB8
enable_pin: !PC3
microsteps: 16
rotation_distance: 39.78
endstop_pin: ^PA6
position_endstop: 0
position_max: 235
homing_speed: 50

[stepper_z]
step_pin: PB5
dir_pin: !PB6
enable_pin: !PC3
microsteps: 16
rotation_distance: 8
# position_endstop: 0.0                     # disable to use BLTouch
# endstop_pin: ^PA7                         # disable to use BLTouch
endstop_pin: probe:z_virtual_endstop    # enable to use BLTouch
position_min: -5                        # enable to use BLTouch
position_max: 250

[safe_z_home]                         # enable for BLTouch
# home_xy_position: 157.5,120.5
home_xy_position: 139.5,169
speed: 100
z_hop: 10
z_hop_speed: 5

[bltouch]                             # enable for BLTouch - fast-mode
# sensor_pin: PA7                     # 3 pin connector plus separate z endstop
sensor_pin: ^PB1                      # 5 pin connector: https://www.reddit.com/r/ender3v2/comments/pw1eyq/printercfg_with_bltouch_for_klipper/
control_pin: PB0
pin_up_touch_mode_reports_triggered: True
probe_with_touch_mode: True
# x_offset: -44                         # modify as needed for bltouch location
# y_offset: -6                          # modify as needed for bltouch location
x_offset: -30                           # For the sprite
y_offset: -41.5                         # For the sprite
#z_offset: 0.0                         # modify as needed for bltouch or run PROBE_CALIBRATE
speed: 10
sample_retract_dist: 5.0              # Can be set lower, example 2.5 depending on height of bltouch from bed
lift_speed: 40
samples_tolerance_retries: 3
speed: 10
samples: 1

[bed_mesh]
speed: 80
horizontal_move_z: 5
mesh_min: 18,18
mesh_max: 175,202
probe_count: 5,5
algorithm: bicubic

# manual Bed adjustment via BED_SCREWS_ADJUST
[bed_screws]
screw1: 72.5, 41.5
screw1_name: front left screw
screw2: 198.5,35.5
screw2_name: front right screw
screw3: 198.5,205.5
screw3_name: rear right screw
screw4: 28.5,205.5
screw4_name: rear left screw
horizontal_move_z: 10
speed: 50

[screws_tilt_adjust]
screw1: 72.5, 41.5
screw1_name: front left screw
screw2: 220,41.5
screw2_name: front right screw
screw3: 220,212.5
screw3_name: rear right screw
screw4: 72.5,212.5
screw4_name: rear left screw
horizontal_move_z: 10
speed: 50
screw_thread: CW-M4

[input_shaper]
shaper_freq_x: 100
shaper_freq_y: 100
shaper_type: mzv

[gcode_macro G29]
gcode:
    G28
    BED_MESH_CALIBRATE
    G0 X0 Y0 Z10 F6000
    BED_MESH_PROFILE save=default
    SAVE_CONFIG


[extruder]
max_extrude_only_distance: 100.0
step_pin: PB3
dir_pin: PB4
enable_pin: !PC3
microsteps: 16
# rotation_distance: 33.500  # for stock extruder
rotation_distance: 7.53      # for sprite pro
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PA1
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC5
#control: pid
#pid_Kp: 21.527
#pid_Ki: 1.063
#pid_Kd: 108.982
min_temp: 0
max_temp: 250

[heater_bed]
heater_pin: PA2
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC4
control: pid
pid_Kp: 54.027
pid_Ki: 0.770
pid_Kd: 948.182
min_temp: 0
max_temp: 130

#[fan]
#pin: PA0

[fan]
pin: PA0

[mcu]
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
restart_method: command

[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_accel_to_decel: 3000
max_z_velocity: 5
max_z_accel: 100

[display]
lcd_type: st7920
cs_pin: PB12
sclk_pin: PB13
sid_pin: PB15
encoder_pins: ^PB14, ^PB10
click_pin: ^!PB2

[gcode_macro G29]
gcode:
    G28
    G1 Z10 F600
    BED_MESH_CLEAR
    BED_MESH_CALIBRATE
    BED_MESH_PROFILE SAVE=default
    SAVE_CONFIG

[temperature_sensor raspberry_pi]
sensor_type: temperature_host
min_temp: 10
max_temp: 100

[temperature_sensor mcu_temp]
sensor_type: temperature_mcu
min_temp: 0
max_temp: 100

[board_pins]
aliases:
  EXP1_1=PC6,EXP1_3=PB10,EXP1_5=PB14,EXP1_7=PB12,EXP1_9=<GND>,
  EXP1_2=PB2,EXP1_4=PB11,EXP1_6=PB13,EXP1_8=PB15,EXP1_10=<5V>,
  PROBE_IN=PB0,PROBE_OUT=PB1,FIL_RUNOUT=PC6

[exclude_object]

[include mainsail.cfg]
[include timelapse.cfg]

[gcode_macro do_the_mesh]
gcode:
  BED_MESH_PROFILE LOAD="default"
  SKEW_PROFILE LOAD=my_skew_profile

description: Either load the default mesh or perform a mesh load operation.

#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [bltouch]
#*# z_offset = 4.350
#*#
#*# [bed_mesh default]
#*# version = 1
#*# points =
#*#     0.005000, -0.022500, -0.015000, -0.015000, -0.017500
#*#     0.032500, -0.022500, -0.015000, -0.042500, -0.047500
#*#     0.105000, 0.022500, 0.020000, -0.045000, -0.077500
#*#     0.140000, 0.080000, 0.055000, 0.015000, 0.022500
#*#     0.225000, 0.182500, 0.147500, 0.077500, 0.067500
#*# x_count = 5
#*# y_count = 5
#*# mesh_x_pps = 2
#*# mesh_y_pps = 2
#*# algo = bicubic
#*# tension = 0.2
#*# min_x = 18.0
#*# max_x = 175.0
#*# min_y = 18.0
#*# max_y = 202.0
#*#
#*# [skew_correction my_skew_profile]
#*# xy_skew = -0.0008053242270892168
#*# xz_skew = 0.0
#*# yz_skew = 0.0
#*#
#*# [extruder]
#*# control = pid
#*# pid_kp = 19.488
#*# pid_ki = 1.101
#*# pid_kd = 86.236
```
$\endgroup$
1
  • 2
    $\begingroup$ Glad you found the problem and posted an answer, many thanks! $\endgroup$
    – 0scar
    Mar 4 at 12:19

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .