1
$\begingroup$

I replaced the fans of my ender 3v2 with Noctuas & Buck converters. During the replacement, I made a mistake and burnt the motherboard (shorted one of the fans). I replaced the motherboard, finished the wiring. The new motherboard is the Creality Ender 3 V2 V4.2.7 Silent Motherboard 32 Bit Mainboard with TMC 2225 Drivers from amazon. The old board with the exact same, but in version 4.2.2

The printer works and auto-home runs normally with marlin (all options by default). Name of the binary: Ender-3 V2_32bit_4.2.7_BLTouch_Marlin_2.0.1_V1.1.1_TMC2225

Klipper version: FIRMWARE_VERSION:v0.9.1-160-g8a6619d1 FIRMWARE_NAME:Klipper When the printer is running Klipper, controlled by an Octoprint, the steppers dont spin. I can hear the gentle "thud" of the motors being energized when I send a "auto-home" command, they rotate for like a baby step (feels like a single vibration more than a spin, like they're "trying" but don't have the power to actually move) and stay stuck there until the auto-home times-out.

I tried running STEPPER_BUZZ STEPPER=stepper_x and the same for the Y axis, but it doesn't look like anything is happening.

I am more or less sure this is a software problem, since the printer works just fine with Marlin but I never had this problem with Klipper before I replaced the motherboard.

I have put aside my custom config and am using the "default" printer.cfg config that I found here (copy/pasted below)

# This file contains pin mappings for the stock 2020 Creality Ender 3
# V2. 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.

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

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

[stepper_z]
step_pin: PB6
dir_pin: !PB5
enable_pin: !PC3
microsteps: 16
rotation_distance: 8
endstop_pin: ^PA7
position_endstop: 0.0
position_max: 250

[extruder]
max_extrude_only_distance: 100.0
step_pin: PB4
dir_pin: PB3
enable_pin: !PC3
microsteps: 16
rotation_distance: 34.406
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PA1
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC5
control: pid
# tuned for stock hardware with 200 degree Celsius target
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
# tuned for stock hardware with 50 degree Celsius target
pid_Kp: 54.027
pid_Ki: 0.770
pid_Kd: 948.182
min_temp: 0
max_temp: 130

[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_z_velocity: 5
max_z_accel: 100

What could be causing the steppers to be stuck with Klipper, but work with Marlin ?

What I tried, with no success (as advised by the internet):

  • Untighten the belts
  • Remove the ! from enable_pin: !PC3 in the config
  • Re-build & flash the firmware instead of reusing the old bin I had kept
$\endgroup$
1
  • $\begingroup$ Doublecheck your microsteps to make sure they are the same between software. 200 steps != 200 steps w/ microsteps @ 4 != 200 steps w/ microsteps @ 16. $\endgroup$ – computercarguy Apr 12 at 23:38
4
$\begingroup$

It seems the pinout scheme changed on the Creality board between the versions V4.2.2 and 4.2.8. For example, PB9 & PC2 were inverted between step_pin and dir_pin.

Using the following Klipper config (found here) allows the motors to do their job again.

[stepper_x]
step_pin: PB9
dir_pin: PC2
enable_pin: !PC3
step_distance: .0125
endstop_pin: ^PA5
position_endstop: 0
position_max: 235
homing_speed: 50

[stepper_y]
step_pin: PB7
dir_pin: PB8
enable_pin: !PC3
step_distance: .0125
endstop_pin: ^PA6
position_endstop: 0
position_max: 235
homing_speed: 50

[stepper_z]
step_pin: PB5
dir_pin: !PB6
enable_pin: !PC3
step_distance: .0025
endstop_pin: ^PA7
position_endstop: 0.0
position_max: 250

[extruder]
max_extrude_only_distance: 100.0
step_pin: PB3
dir_pin: PB4
enable_pin: !PC3
step_distance: 0.010752
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PA1
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC5
control: pid
# tuned for stock hardware with 200 degree Celsius target
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
# tuned for stock hardware with 50 degree Celsius target
pid_Kp: 54.027
pid_Ki: 0.770
pid_Kd: 948.182
min_temp: 0
max_temp: 130

[fan]
pin: PA0

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

[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 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 
```
$\endgroup$
0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.