This connector does not look like it has contacts properly seated.
Just before you try to move the z axis, does $limits show both of the z limit switches closed?
You re-crimped that one (Looiks much better from the top), but they were sill moving opposite?
Then after that, you flipped just the last connector 180, and itâs still going opposite?
correct
it does indeed
That loose wire shielding is bugging me lol
Just to confirm, is it zmin or zmax that you believe going in the opposite direction?
I believe that you have your connectors wired as A- A+ B+ B-. Swap any two on one side, such as the red and blue pair or the white and red pair.
Zmin, it happened right after i recrimped that plug, with the exact same wiring
I just tried that as well with no success after that didnât work with zmin i also tried with zmax again didnt work then i tried adjusting the config file adding
dir_Invert: true
to the bottom of the z-axis - motor 0 section
Again didnt work
It had to have done something. If it didnât these arenât the cables for the Z steppers.
Do you happen to have a spare stepper motor that you can connect directly to the board for testing?
The logic for swapping the connector by 180 is that each pair gets reversed (which swaps the direction twice) and then the pairs get flipped (which also swaps the direction).
This is so weird⌠Not sure how this is possible.
Three different ways that have no explanation for why they arenât reversing the motors.
- Swapping one plug by 180
- Swapping one coil wire by 180
- Inverting the direction in the stepper motor config.
You seem very competent. Which is why it is extra confusing. My brain keeps thinking things like, âthis guy doesnât know what direction his steppers are movingâ. But youâre obviously more competent than that. I donât know how to explain it. There is a wrong assumption somewhere.
Are the stepper motors moving smoothly and is the gantry lifting smoothly?
When you do one of those things to swap the direction, does the direction if motor motors change, or neither?
I like this idea. When I get in a jam like this , I often bust out a spare so I can start bisecting the problem space.
Exactly.
yeah the steppers are still moving smoothly. There just isnât any change in the direction the steppers move. I do have a spare motor so ill test things with that next. also i realized after a $SS comand that the line i added to change the direction in the config file was apparently ignored, not sure why. I will add that config file below:
board: Jackpot TMC2209
name: LowRider
meta: 10-31-2024 RyanZ
planner_blocks: 32
stepping:
engine: I2S_STATIC
idle_ms: 255
pulse_us: 2
dir_delay_us: 1
disable_delay_us: 0
uart1:
txd_pin: gpio.0
rxd_pin: gpio.4
rts_pin: NO_PIN
baud: 115200
mode: 8N1
axes:
shared_stepper_disable_pin: NO_PIN
x:
steps_per_mm: 50.000
max_rate_mm_per_min: 9000.000
acceleration_mm_per_sec2: 200.000
max_travel_mm: 1260
soft_limits: false
homing:
cycle: 2
positive_direction: false
mpos_mm: 3
feed_mm_per_min: 300.000
seek_mm_per_min: 1500.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
#X
motor0:
limit_neg_pin: gpio.25:high
limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 4.000
tmc_2209:
uart_num: 1
addr: 0
cs_pin: NO_PIN
r_sense_ohms: 0.110
run_amps: 0.800
homing_amps: 0.800
hold_amps: 0.700
microsteps: 8
stallguard: 0
stallguard_debug: false
toff_disable: 0
toff_stealthchop: 5
toff_coolstep: 3
run_mode: StealthChop
homing_mode: StealthChop
use_enable: false
direction_pin: I2SO.1
step_pin: I2SO.2
disable_pin: I2SO.0
y:
steps_per_mm: 50.000
max_rate_mm_per_min: 9000.000
acceleration_mm_per_sec2: 200.000
max_travel_mm: 2480
soft_limits: false
homing:
cycle: 2
positive_direction: false
mpos_mm: 3
feed_mm_per_min: 300.000
seek_mm_per_min: 1500.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
#Y
motor0:
limit_neg_pin: gpio.33:high
limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 4.000
tmc_2209:
uart_num: 1
addr: 1
cs_pin: NO_PIN
r_sense_ohms: 0.110
run_amps: 0.800
homing_amps: 0.800
hold_amps: 0.700
microsteps: 8
stallguard: 0
stallguard_debug: false
toff_disable: 0
toff_stealthchop: 5
toff_coolstep: 3
run_mode: StealthChop
homing_mode: StealthChop
use_enable: false
step_pin: I2SO.5
direction_pin: I2SO.4
disable_pin: I2SO.7
#A
motor1:
limit_neg_pin: gpio.35:high
limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 4.000
tmc_2209:
uart_num: 1
addr: 3
cs_pin: i2so.14
r_sense_ohms: 0.110
run_amps: 0.800
homing_amps: 0.800
hold_amps: 0.700
microsteps: 8
stallguard: 0
stallguard_debug: false
toff_disable: 0
toff_stealthchop: 5
toff_coolstep: 3
run_mode: StealthChop
homing_mode: StealthChop
use_enable: false
step_pin: I2SO.13
direction_pin: I2SO.12
disable_pin: I2SO.15
z:
steps_per_mm: 200.000
max_rate_mm_per_min: 1800.000
acceleration_mm_per_sec2: 80.000
max_travel_mm: 300.000
soft_limits: false
homing:
cycle: 1
positive_direction: true
mpos_mm: 3
feed_mm_per_min: 200.000
seek_mm_per_min: 800.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0:
limit_neg_pin: NO_PIN
limit_pos_pin: gpio.32:high
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 4.000
tmc_2209:
uart_num: 1
addr: 2
cs_pin: NO_PIN
r_sense_ohms: 0.110
run_amps: 0.800
homing_amps: 0.800
hold_amps: 0.700
microsteps: 8
stallguard: 0
stallguard_debug: false
toff_disable: 0
toff_stealthchop: 5
toff_coolstep: 3
run_mode: StealthChop
homing_mode: StealthChop
use_enable: false
step_pin: I2SO.10
direction_pin: I2SO.9
dir_invert: true
disable_pin: I2SO.8
#B
motor1:
limit_neg_pin: NO_PIN
limit_pos_pin: gpio.34:high
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 4.000
tmc_2209:
uart_num: 1
addr: 3
cs_pin: i2so.19
r_sense_ohms: 0.110
run_amps: 0.800
homing_amps: 0.800
hold_amps: 0.700
microsteps: 8
stallguard: 0
stallguard_debug: false
toff_disable: 0
toff_stealthchop: 5
toff_coolstep: 3
run_mode: StealthChop
homing_mode: StealthChop
use_enable: false
step_pin: I2SO.18
direction_pin: I2SO.17
disable_pin: I2SO.16
# c:
# steps_per_mm: 80.000
# max_rate_mm_per_min: 5000.000
# acceleration_mm_per_sec2: 100.000
# max_travel_mm: 300.000
# soft_limits: false
# homing:
# cycle: 0
# positive_direction: true
# mpos_mm: 150.000
# feed_mm_per_min: 100.000
# seek_mm_per_min: 800.000
# settle_ms: 500
# seek_scaler: 1.100
# feed_scaler: 1.100
#
# motor0:
# limit_neg_pin: gpio.39:low
# limit_pos_pin: NO_PIN
# limit_all_pin: NO_PIN
# hard_limits: false
# pulloff_mm: 3.000
# tmc_2209:
# uart_num: 1
# addr: 3
# cs_pin: i2so.22
# r_sense_ohms: 0.110
# run_amps: .8
# homing_amps: 0.800
# hold_amps: 0.050
# microsteps: 16
# stallguard: 0
# stallguard_debug: false
# toff_disable: 0
# toff_stealthchop: 5
# toff_coolstep: 3
# run_mode: StealthChop
# homing_mode: StealthChop
# use_enable: false
# step_pin: I2SO.21
# direction_pin: I2SO.20
# disable_pin: I2SO.23
i2so:
bck_pin: gpio.22
data_pin: gpio.21
ws_pin: gpio.17
spi:
miso_pin: gpio.19
mosi_pin: gpio.23
sck_pin: gpio.18
sdcard:
cs_pin: gpio.5
card_detect_pin: NO_PIN
frequency_hz: 20000000
probe:
pin: gpio.36:low
toolsetter_pin: NO_PIN
check_mode_start: true
start:
must_home: false
coolant:
flood_pin: gpio.2
mist_pin: gpio.16
delay_ms: 0
control:
safety_door_pin: NO_PIN
reset_pin: NO_PIN
feed_hold_pin: NO_PIN
cycle_start_pin: NO_PIN
macro0_pin: NO_PIN
macro1_pin: NO_PIN
macro2_pin: NO_PIN
macro3_pin: NO_PIN
macros:
startup_line0:
startup_line1:
macro0:
macro1:
macro2:
macro3:
user_outputs:
analog0_pin: NO_PIN
analog1_pin: NO_PIN
analog2_pin: NO_PIN
analog3_pin: NO_PIN
analog0_hz: 5000
analog1_hz: 5000
analog2_hz: 5000
analog3_hz: 5000
digital0_pin: gpio.26
digital1_pin: gpio.27
digital2_pin: NO_PIN
digital3_pin: NO_PIN
#Laser:
# pwm_hz: 5000
# output_pin: gpio.27
# enable_pin: NO_PIN
# disable_with_s0: false
# s0_with_disable: true
# tool_num: 0
# speed_map: 0=0.000% 255=100.000%
# off_on_alarm: true
# pwm:
# pwm_hz: 5000
# direction_pin: gpio.26
# output_pin: gpio.27
# enable_pin: NO_PIN
# disable_with_s0: false
# s0_with_disable: true
# spinup_ms: 0
# spindown_ms: 0
# tool_num: 0
# speed_map: 0=0.000% 1000=100.000%
# off_on_alarm: false
# 5V out gpio.26/27
# VMot out gpoi.2/16
# In's left to right gpoi.25/33/32/35/34/39/36
Screen_Recording_20250727_132500_Chrome.mp4
this is what it looks like when i attached a spare stepper
That looks like you have a loose connection somewhere or one of the crimps is bad/slightly pulled out of the dupont causing it to lose connection erratically.
Just double checking - does the bad stepper always move the same direction no matter if you command it up or down? Or can it move either direction - always the wrong one?
This is the best news. It looks like there is a wiring issue. Or maybe a bad stepper driver.
Steppers work by holding one coil and then handing the magnet to the next and then back to the first coil. If you have a coil that isnât working, one coil can pull towards itself and only when the stepper gets going fast enough, it can pass over the dead coil. Iâm not explaining it very well. But the issue is probably wiring.
My guess is that you were jogging up when you tested your Z and the bad coil was going down because it was falling through the dead coil instead of lifting it up.
You can use a multimeter to check the wiring. If it is intermittent, you might consider replacing the whole wire just to regain trust.
only in 1 direction - ccw