[FluidNC Issue#1469] Problem: Unexpected Cross-Axis Movement During Homing on CoreXY Frame

未分类 bolang 4个月前 (10-14) 41次浏览

Issue #1469 | 状态: 已关闭 | 作者: bibidentuhanoi | 创建时间: 2025-03-31


Wiki Search Terms

Corexy

Controller Board

MKS DLC32

Machine Description

Corexy

!Image

Input Circuits


Configuration file

board: MKS-DLC32 V2.1
name: Plottergeist
meta: (21.11.2022) by thedevleon

kinematics: corexy:

stepping: engine: I2S_STATIC idle_ms: 0 pulse_us: 4 dirdelayus: 1 disabledelayus: 0

start: must_home: false deactivate_parking: true check_limits: false

axes: sharedstepperdisable_pin: I2SO.0 x: stepspermm: 80.000 maxratemmpermin: 6000.000 accelerationmmper_sec2: 5000 maxtravelmm: 230.000 soft_limits: true homing: cycle: 2 positive_direction: false mpos_mm: 0 feedmmper_min: 500 seekmmper_min: 500 settle_ms: 2 seek_scaler: 1.100 feed_scaler: 1.100 motor0: limitallpin: gpio.36:low hard_limits: true pulloff_mm: 3 stepstick: step_pin: I2SO.1 direction_pin: I2SO.2:low

y: stepspermm: 80.000 maxratemmpermin: 6000.000 accelerationmmper_sec2: 5000 maxtravelmm: 240.000 soft_limits: true homing: cycle: 2 positive_direction: false mpos_mm: 0 feedmmper_min: 500.000 seekmmper_min: 500.000 settle_ms: 2 seek_scaler: 1.1 feed_scaler: 1.1 motor0: limitallpin: gpio.35:low hard_limits: true pulloff_mm: 3 stepstick: step_pin: I2SO.5 direction_pin: I2SO.6:low

z: stepspermm: 10 maxratemmpermin: 2000 accelerationmmper_sec2: 2000 maxtravelmm: 10 homing: cycle: 1 mpos_mm: 0 positive_direction: true motor0: rc_servo: pwm_hz: 50 output_pin: gpio.22 minpulseus: 1000 maxpulseus: 2000

i2so: bck_pin: gpio.16 data_pin: gpio.21 ws_pin: gpio.17

spi: miso_pin: gpio.12 mosi_pin: gpio.13 sck_pin: gpio.14

Startup Messages

[MSG:INFO: FluidNC v3.9.5 https://github.com/bdring/FluidNC]
[MSG:INFO: Compiled with ESP32 SDK:v4.4.7-dirty]
[MSG:INFO: Local filesystem type is spiffs]
[MSG:INFO: Configuration file:config.yaml]
[MSG:INFO: Machine Plottergeist]
[MSG:INFO: Board MKS-DLC32 V2.1]
[MSG:INFO: I2SO BCK:gpio.16 WS:gpio.17 DATA:gpio.21Min Pulse:2us]
[MSG:INFO: SPI SCK:gpio.14 MOSI:gpio.13 MISO:gpio.12]
[MSG:INFO: Stepping:I2S_STATIC Pulse:4us Dsbl Delay:0us Dir Delay:1us Idle Delay:0ms]
[MSG:INFO: Axis count 3]
[MSG:INFO: Shared stepper disable I2SO.0]
[MSG:INFO: Axis X (0.000,230.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     stepstick Step:I2SO.1 Dir:I2SO.2:low Disable:NO_PIN]
[MSG:INFO:  X All Limit gpio.36:low]
[MSG:INFO: Axis Y (0.000,240.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     stepstick Step:I2SO.5 Dir:I2SO.6:low Disable:NO_PIN]
[MSG:INFO:  Y All Limit gpio.35:low]
[MSG:INFO: Axis Z (-10.000,0.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     rc_servo Pin:gpio.22 Pulse Len(1000,2000 period:1048575)]
[MSG:INFO:     Update timer for rc_servo at 20 ms]
[MSG:INFO: Kinematic system: CoreXY]
[MSG:INFO: Connecting to STA SSID:*]
[MSG:INFO: Connecting.]
[MSG:INFO: Connecting..]
[MSG:INFO: Connected - IP is *]
[MSG:INFO: WiFi on]
[MSG:INFO: Start mDNS with hostname:http://fluidnc.local/]
[MSG:INFO: HTTP started on port 80]
[MSG:INFO: Telnet started on port 23]
ok

User Interface Software

Webui

What happened?

I’m using a CoreXY setup with limit switches. During homing, when the Y axis is homed, the X axis moves unexpectedly (and vice versa). This only happens during the homing pull-off; normal movements and limit switches work fine.I expect the only the homing axis should move, with no cross-axis movement.

GCode File

No response

Other Information

$HX









[MSG:Homed:X]
ok


评论 (15)

#1 – bdring 于 2025-03-31

Try changing the homing cycles to

– Z: cycle: 1
– X cycle: 2
– Y cycle: 3

…basically change the cycle for Y in your config to 3.


#2 – bibidentuhanoi 于 2025-03-31

Thanks for your reply, but the problem is still there—the toolholder slowly drifts toward the X axis limit switch while homing Y.

$HY
[MSG:Homed:Y]
ok

$HY
[MSG:Homed:Y]
ok

$HX
[MSG:ERR: Ambiguous limit switch touching. Manually clear all switches]
[MSG:INFO: ALARM: Ambiguous Switch]
ALARM:12
ALARM:12
ok


#3 – bdring 于 2025-03-31

Are you sure the microstepping is the same on both motors?


#4 – bibidentuhanoi 于 2025-03-31

I’m using two MKS Servo42 driver boards, both set to 16 microsteps. Sorry for not mentioning that earlier.


#5 – bibidentuhanoi 于 2025-03-31

I forgot to mention that this issue only occurs when I set the kinematics to CoreXY. In midTbot mode, the problem of drifting toward the limit switch disappears. However, with midTbot (using the same steps-per-mm), the Y axis doesn’t move far enough to reach the intended goal distance.


#6 – bdring 于 2025-03-31

That is another clue that suggests a microstepping issue

Try removing the kinematics temporarily and jogging short equal amounts for X and Y. Watch the rotation amount for each motor. Ignore the actual motion of the machine.


#7 – bibidentuhanoi 于 2025-03-31

Based on my measurements and the OLED display on the controller board, each 10mm move results in approximately 90 degrees of motor rotation.


#8 – bdring 于 2025-03-31

without kinematics, do some long jogs at 45 degree angles. that should be straight lines on a corexy machine.


#9 – bibidentuhanoi 于 2025-03-31

Without kinematics, it should be in Cartesian mode, right? In that case, with a long jog (100mm), both axes move when I command a single-axis move.


#10 – bdring 于 2025-03-31

What about a 45 degree angle jog?


#11 – bibidentuhanoi 于 2025-03-31

oh sorry I commanded $J=G91 G21 X60 Y60 F200, and yes, it moves in a straight line along the X axis.


#12 – bdring 于 2025-03-31

I don’t have any more things to try. There are a lot of corexy users and I don’t hear any issues.

A lot of people have given up on those MKS motors. Primarily for reliability issues. They lock up sometimes.


#13 – MitchBradley 于 2025-04-02

You might try adding :low to the step pins in the config file.


#14 – Vorobeyyyyyy 于 2025-04-10

Iam facing same issue for now. Right after touching X endstop i moves X back (as expected) and also Y forward (around 0.5mm). This behavior only when homing – if i move axes manualy they move independent

upd: After some investigation, I think this is because pulloff_mm refers to the motor instead of the axis. Moving the motor back causes both axes to move.

my configuration:

board: None
name: Default (Test Drive no I/O)
stepping:
  engine: RMT (using GPIO)
  idle_ms: 255
  pulse_us: 4
  dirdelayus: 0
  disabledelayus: 0
  segments: 12
uart1:
  txd_pin: gpio.22
  rxd_pin: gpio.23
  baud: 115200
  mode: 8N1
kinematics:
  corexy:
axes:
  sharedstepperdisable_pin: gpio.21
  sharedstepperresetpin: NOPIN
  homing_runs: 2
  x:
    maxratemmpermin: 12000
    accelerationmmper_sec2: 5000
    motor0:
      pulloff_mm: 4
      limitnegpin: gpio.36
      limitpospin: NO_PIN
      limitallpin: NO_PIN
      tmc_2209:
        run_amps: 1.2
        step_pin: gpio.32
        direction_pin: gpio.33
        uart_num: 1
        addr: 0
        use_enable: false
        run_mode: StealthChop
        homing_mode: StealthChop
    homing:
      cycle: 2
      positive_direction: false
      seekmmper_min: 3000
      feedmmper_min: 600
      feed_scaler: 20
      settle_ms: 0
  y:
    maxratemmpermin: 12000
    accelerationmmper_sec2: 5000
    motor0:
      pulloff_mm: 4
      limitnegpin: gpio.39
      limitpospin: NO_PIN
      limitallpin: NO_PIN
      tmc_2209:
        run_amps: 1.2
        step_pin: gpio.25
        direction_pin: gpio.26
        uart_num: 1
        addr: 1
        run_mode: StealthChop
        homing_mode: StealthChop
    homing:
      cycle: 3
      positive_direction: false
      seekmmper_min: 3000
      feedmmper_min: 600
      feed_scaler: 20
      settle_ms: 0
coolant:
  floodpin: NOPIN
  mistpin: NOPIN
  delay_ms: 0
macros: {}
start:
  must_home: false
  deactivate_parking: false
  check_limits: false
arctolerancemm: 0.002
junctiondeviationmm: 0.01
verbose_errors: true
report_inches: false
enableparkingoverride_control: false
uselinenumbers: false
planner_blocks: 16


#15 – Vorobeyyyyyy 于 2025-04-12

Ive created PR to fix this. Iam new in contributing on github so dont know how to link properly
https://github.com/bdring/FluidNC/pull/1478


原始Issue: https://github.com/bdring/FluidNC/issues/1469

喜欢 (0)