Skip to content

Problem: Homing sometimes doesn't do the final pulloff on XY axes #1738

Description

@HolyBlackCat

Wiki Search Terms

homing

Controller Board

MKS DLC32 MAX V1.2

Machine Description

3-axis, no gantry (one stepper per axis), DM542 drivers.

Mechanical normally-closed limit switches, wired in series per axis.

Image Image

Y limit switches:

Image

X limit switches:

Image

Input Circuits

I don't have schematics for the board.

The board provides 3 pins per axis limit switch, labeled: S, GND, 5V. I connect two NC switches in series to S and GND, ignoring the 5V pin.

Configuration file

board: MKC DLC32 Max
name: MKC DLC32 Max Default
meta:
stepping:
  engine: Timed
  idle_ms: 255
  pulse_us: 4
  dir_delay_us: 0
  disable_delay_us: 0
  segments: 12

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


kinematics:
  Cartesian:

axes:
  shared_stepper_disable_pin: gpio.8
  homing_runs: 2
  x:
    steps_per_mm: 320
    max_rate_mm_per_min: 2000
    acceleration_mm_per_sec2: 75
    max_travel_mm: 270
    soft_limits: true
    motor0:
      limit_all_pin: gpio.41:high
      hard_limits: true
      pulloff_mm: 3
      standard_stepper:
        step_pin: gpio.16
        direction_pin: gpio.15
    homing:
      cycle: 2
      allow_single_axis: true
      positive_direction: false
      mpos_mm: -135
      seek_mm_per_min: 500.000000
      feed_mm_per_min: 100.000000
      settle_ms: 250

  y:
    steps_per_mm: 320
    max_rate_mm_per_min: 2000
    acceleration_mm_per_sec2: 75
    max_travel_mm: 200
    soft_limits: true
    motor0:
      limit_all_pin: gpio.40:high
      hard_limits: true
      pulloff_mm: 3
      standard_stepper:
        step_pin: gpio.7
        direction_pin: gpio.6:low
    homing:
      cycle: 2
      allow_single_axis: true
      positive_direction: true
      mpos_mm: 100
      seek_mm_per_min: 500.000000
      feed_mm_per_min: 100.000000
      settle_ms: 250

  z:
    steps_per_mm: 320
    max_rate_mm_per_min: 1000
    acceleration_mm_per_sec2: 25
    max_travel_mm: 180
    soft_limits: true
    motor0:
      limit_all_pin: gpio.39:high
      hard_limits: true
      pulloff_mm: 3
      standard_stepper:
        step_pin: gpio.5
        direction_pin: gpio.4
    homing:
      cycle: 1
      allow_single_axis: true
      positive_direction: true
      mpos_mm: 0
      seek_mm_per_min: 500.000000
      feed_mm_per_min: 100.000000
      settle_ms: 250



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
  fault_pin: NO_PIN
  estop_pin: NO_PIN
  homing_button_pin: NO_PIN

coolant:
  flood_pin: gpio.1
  delay_ms: 0


macros:
  startup_line0:
  startup_line1:
  Macro0:
  Macro1:
  Macro2:
  Macro3:
  after_homing:
  after_reset:
  after_unlock:

pwm:
  pwm_hz: 5000
  direction_pin: NO_PIN
  output_pin: gpio.2
  enable_pin: gpio.42
  disable_with_s0: false
  s0_with_disable: false
  spinup_ms: 0
  spindown_ms: 0
  tool_num: 0
  speed_map: 0=0.000% 24000=100%
  off_on_alarm: false


start:
  must_home: false
  deactivate_parking: false
  check_limits: true

arc_tolerance_mm: 0.002000
junction_deviation_mm: 0.010000
verbose_errors: true
report_inches: false
enable_parking_override_control: false
use_line_numbers: false
planner_blocks: 16

Startup Messages

[MSG:INFO: FluidNC v4.0.3 https://github.com/bdring/FluidNC]
[MSG:INFO: Local filesystem is /littlefs]
[MSG:INFO: Configuration file:config.yaml]
[MSG:INFO: Machine MKC DLC32 Max Default]
[MSG:INFO: Board MKC DLC32 Max]
[MSG:INFO: SPI SCK:gpio.13 MOSI:gpio.14 MISO:gpio.12]
[MSG:INFO: Stepping:Timed Pulse:4us Dsbl Delay:0us Dir Delay:0us Idle Delay:255ms]
[MSG:INFO: Axis count 3]
[MSG:INFO: Shared stepper disable gpio.8]
[MSG:INFO: Axis X (-135.000,135.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     standard_stepper Step:gpio.16 Dir:gpio.15 Disable:NO_PIN]
[MSG:INFO:  X All Limit gpio.41]
[MSG:INFO: Axis Y (-100.000,100.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     standard_stepper Step:gpio.7 Dir:gpio.6:low Disable:NO_PIN]

User Interface Software

WebUI

What happened?

About 1/4 of the time, when homing the machine, it will not do the final pulloff on the XY axes (after hitting the switches the second time), and instead get stuck in homing mode, spamming the same message in the logs:

<Home|MPos:-138.003,103.003,0.000|FS:141,0|Pn:XY>

So it homes Z correctly, then starts to home XY: touches the switches once, pulls off, then touches them again and stops immediately, instead of trying to pull off.

This only reproduces (sometimes) when the debug logs are disabled. So it somtimes reproduces with $Message/Level=Info, but never with $Message/Level=Debug, so I suspect a software issue. An uninitialized variable somewhere perhaps?

GCode File

No response

Other Information

Here are the logs when the issue happens ($Message/Level=Info)

$H
<Home|MPos:-135.000,100.000,0.031|FS:240,0>
<Home|MPos:-135.000,100.000,0.831|FS:500,0>
<Home|MPos:-135.000,100.000,2.475|FS:500,0>
<Home|MPos:-135.000,100.000,3.000|FS:100,0|Pn:Z>
<Home|MPos:-135.000,100.000,2.666|FS:100,0|Pn:Z>
<Home|MPos:-135.000,100.000,2.494|FS:100,0>
<Home|MPos:-135.000,100.000,2.150|FS:100,0>
<Home|MPos:-135.000,100.000,1.806|FS:100,0>
<Home|MPos:-135.000,100.000,1.462|FS:100,0|WCO:13.766,-70.078,-170.859>
<Home|MPos:-135.000,100.000,1.122|FS:100,0|Ov:100,100,100>
<Home|MPos:-135.000,100.000,0.778|FS:100,0>
<Home|MPos:-135.000,100.000,0.434|FS:100,0>
<Home|MPos:-135.000,100.000,0.091|FS:0,0>
<Home|MPos:-135.000,100.000,0.178|FS:100,0>
<Home|MPos:-135.000,100.000,0.522|FS:100,0>
<Home|MPos:-135.000,100.000,0.866|FS:100,0>
<Home|MPos:-135.000,100.000,1.209|FS:100,0>
<Home|MPos:-135.000,100.000,1.553|FS:100,0>
<Home|MPos:-135.000,100.000,1.894|FS:100,0>
<Home|MPos:-135.000,100.000,2.237|FS:100,0>
<Home|MPos:-135.000,100.000,2.581|FS:100,0>
<Home|MPos:-135.000,100.000,2.925|FS:100,0>
<Home|MPos:-135.000,100.000,3.006|FS:100,0|Pn:Z>
<Home|MPos:-135.000,100.000,2.713|FS:100,0|Pn:Z>
<Home|MPos:-135.000,100.000,2.537|FS:100,0>
<Home|MPos:-135.000,100.000,2.194|FS:100,0>
<Home|MPos:-135.000,100.000,1.847|FS:100,0>
<Home|MPos:-135.000,100.000,1.503|FS:100,0>
<Home|MPos:-135.000,100.000,1.163|FS:100,0>
<Home|MPos:-135.000,100.000,0.819|FS:100,0|Ov:100,100,100>
<Home|MPos:-135.000,100.000,0.475|FS:100,0>
<Home|MPos:-135.000,100.000,0.131|FS:0,0>
[MSG:Homed:Z]
<Home|MPos:-135.359,100.359,0.000|FS:707,0>
<Home|MPos:-137.069,102.069,0.000|FS:707,0>
<Home|MPos:-137.962,102.963,0.000|FS:141,0|Pn:XY>
<Home|MPos:-137.619,102.619,0.000|FS:141,0|Pn:Y>
<Home|MPos:-137.531,102.531,0.000|FS:141,0>
<Home|MPos:-137.188,102.188,0.000|FS:141,0>
<Home|MPos:-136.844,101.844,0.000|FS:141,0|WCO:13.766,-70.078,-170.859>
<Home|MPos:-136.503,101.503,0.000|FS:141,0>
<Home|MPos:-136.159,101.159,0.000|FS:141,0>
<Home|MPos:-135.816,100.816,0.000|FS:141,0>
<Home|MPos:-135.472,100.472,0.000|FS:141,0>
<Home|MPos:-135.128,100.128,0.000|FS:0,0>
<Home|MPos:-135.203,100.203,0.000|FS:141,0>
<Home|MPos:-135.544,100.544,0.000|FS:141,0>
<Home|MPos:-135.887,100.887,0.000|FS:141,0>
<Home|MPos:-136.231,101.231,0.000|FS:141,0>
<Home|MPos:-136.575,101.575,0.000|FS:141,0>
<Home|MPos:-136.919,101.919,0.000|FS:141,0|Ov:100,100,100>
<Home|MPos:-137.262,102.262,0.000|FS:141,0>
<Home|MPos:-137.606,102.606,0.000|FS:141,0>
<Home|MPos:-137.947,102.947,0.000|FS:141,0>
<Home|MPos:-138.003,103.003,0.000|FS:141,0|Pn:XY>
<Home|MPos:-138.003,103.003,0.000|FS:141,0|Pn:XY>
<Home|MPos:-138.003,103.003,0.000|FS:141,0|Pn:XY>
<Home|MPos:-138.003,103.003,0.000|FS:141,0|Pn:XY>
<Home|MPos:-138.003,103.003,0.000|FS:141,0|Pn:XY>
<Home|MPos:-138.003,103.003,0.000|FS:141,0|Pn:XY>
<Home|MPos:-138.003,103.003,0.000|FS:141,0|Pn:XY>
<Home|MPos:-138.003,103.003,0.000|FS:141,0|Pn:XY>
<Home|MPos:-138.003,103.003,0.000|FS:141,0|Pn:XY>
<Home|MPos:-138.003,103.003,0.000|FS:141,0|Pn:XY>
<Home|MPos:-138.003,103.003,0.000|FS:141,0|Pn:XY>
<Home|MPos:-138.003,103.003,0.000|FS:141,0|Pn:XY>
<Home|MPos:-138.003,103.003,0.000|FS:141,0|Pn:XY>
<Home|MPos:-138.003,103.003,0.000|FS:141,0|Pn:XY>
<Home|MPos:-138.003,103.003,0.000|FS:141,0|Pn:XY>
<Home|MPos:-138.003,103.003,0.000|FS:141,0|Pn:XY|WCO:13.766,-70.078,-170.859>
<Home|MPos:-138.003,103.003,0.000|FS:141,0|Pn:XY|Ov:100,100,100>
<Home|MPos:-138.003,103.003,0.000|FS:141,0|Pn:XY>
<Home|MPos:-138.003,103.003,0.000|FS:141,0|Pn:XY>
<Home|MPos:-138.003,103.003,0.000|FS:141,0|Pn:XY>
<Home|MPos:-138.003,103.003,0.000|FS:141,0|Pn:XY>
... continues infinitely

And here are logs when it doesn't happen, with $Message/Level=Debug:

$H
[MSG:DBG: Homing Cycle Z]
[MSG:DBG: Homing nextPhase FastApproach]
[MSG:DBG: Starting from -135.000,100.000,0.000]
[MSG:DBG: Planned move to -135.000,100.000,198.000 @ 500.000]
<Home|MPos:-135.000,100.000,0.034|FS:240,0>
<Home|MPos:-135.000,100.000,0.859|FS:500,0>
<Home|MPos:-135.000,100.000,2.513|FS:500,0>
[MSG:DBG:  Z All Limit 1]
[MSG:DBG: Homing limited Z]
[MSG:DBG: Homing nextPhase Pulloff0]
[MSG:DBG: Starting from -135.000,100.000,3.013]
[MSG:DBG: Planned move to -135.000,100.000,0.013 @ 100.000]
<Home|MPos:-135.000,100.000,2.984|FS:100,0|Pn:Z>
<Home|MPos:-135.000,100.000,2.644|FS:100,0|Pn:Z>
[MSG:DBG:  Z All Limit 0]
<Home|MPos:-135.000,100.000,2.472|FS:100,0>
<Home|MPos:-135.000,100.000,2.128|FS:100,0>
<Home|MPos:-135.000,100.000,1.784|FS:100,0>
<Home|MPos:-135.000,100.000,1.441|FS:100,0>
<Home|MPos:-135.000,100.000,1.097|FS:100,0|WCO:13.766,-70.078,-170.859>
<Home|MPos:-135.000,100.000,0.753|FS:100,0|Ov:100,100,100>
<Home|MPos:-135.000,100.000,0.409|FS:100,0>
<Home|MPos:-135.000,100.000,0.069|FS:0,0>
[MSG:DBG: CycleStop Pulloff0]
[MSG:DBG: Homing nextPhase SlowApproach]
[MSG:DBG: Starting from -135.000,100.000,0.013]
[MSG:DBG: Planned move to -135.000,100.000,3.313 @ 100.000]
<Home|MPos:-135.000,100.000,0.194|FS:100,0>
<Home|MPos:-135.000,100.000,0.538|FS:100,0>
<Home|MPos:-135.000,100.000,0.878|FS:100,0>
<Home|MPos:-135.000,100.000,1.222|FS:100,0>
<Home|MPos:-135.000,100.000,1.566|FS:100,0>
<Home|MPos:-135.000,100.000,1.909|FS:100,0>
<Home|MPos:-135.000,100.000,2.253|FS:100,0>
<Home|MPos:-135.000,100.000,2.597|FS:100,0>
<Home|MPos:-135.000,100.000,2.941|FS:100,0>
[MSG:DBG:  Z All Limit 1]
[MSG:DBG: Homing limited Z]
[MSG:DBG: Homing nextPhase Pulloff1]
[MSG:DBG: Starting from -135.000,100.000,3.000]
[MSG:DBG: Planned move to -135.000,100.000,0.000 @ 100.000]
<Home|MPos:-135.000,100.000,2.994|FS:100,0|Pn:Z>
<Home|MPos:-135.000,100.000,2.672|FS:100,0|Pn:Z>
[MSG:DBG:  Z All Limit 0]
<Home|MPos:-135.000,100.000,2.500|FS:100,0>
<Home|MPos:-135.000,100.000,2.153|FS:100,0>
<Home|MPos:-135.000,100.000,1.812|FS:100,0>
<Home|MPos:-135.000,100.000,1.469|FS:100,0>
<Home|MPos:-135.000,100.000,1.125|FS:100,0>
<Home|MPos:-135.000,100.000,0.781|FS:100,0>
<Home|MPos:-135.000,100.000,0.438|FS:100,0|Ov:100,100,100>
<Home|MPos:-135.000,100.000,0.094|FS:0,0>
[MSG:DBG: CycleStop Pulloff1]
[MSG:DBG: Homing nextPhase Pulloff2]
[MSG:Homed:Z]
[MSG:DBG: Homing Cycle XY]
[MSG:DBG: Homing nextPhase FastApproach]
[MSG:DBG: Starting from -135.000,100.000,0.000]
[MSG:DBG: Planned move to -432.000,397.000,0.000 @ 707.107]
<Home|MPos:-135.566,100.566,0.000|FS:707,0>
<Home|MPos:-137.284,102.284,0.000|FS:707,0>
[MSG:DBG:  X All Limit 1]
[MSG:DBG:  Y All Limit 1]
[MSG:DBG: Homing limited X Y]
[MSG:DBG: Homing nextPhase Pulloff0]
[MSG:DBG: Starting from -138.019,103.019,0.000]
[MSG:DBG: Planned move to -135.019,100.019,0.000 @ 141.421]
<Home|MPos:-137.997,102.997,0.000|FS:141,0|Pn:XY>
[MSG:DBG:  X All Limit 0]
<Home|MPos:-137.656,102.656,0.000|FS:141,0|Pn:Y>
[MSG:DBG:  Y All Limit 0]
<Home|MPos:-137.481,102.481,0.000|FS:141,0>
<Home|MPos:-137.137,102.137,0.000|FS:141,0>
<Home|MPos:-136.794,101.794,0.000|FS:141,0>
<Home|MPos:-136.453,101.453,0.000|FS:141,0|WCO:13.766,-70.078,-170.859>
<Home|MPos:-136.109,101.109,0.000|FS:141,0>
<Home|MPos:-135.766,100.766,0.000|FS:141,0>
<Home|MPos:-135.422,100.422,0.000|FS:141,0>
<Home|MPos:-135.078,100.078,0.000|FS:0,0>
[MSG:DBG: CycleStop Pulloff0]
[MSG:DBG: Homing nextPhase SlowApproach]
[MSG:DBG: Starting from -135.019,100.019,0.000]
[MSG:DBG: Planned move to -138.319,103.319,0.000 @ 141.421]
<Home|MPos:-135.272,100.272,0.000|FS:141,0>
<Home|MPos:-135.616,100.616,0.000|FS:141,0>
<Home|MPos:-135.959,100.959,0.000|FS:141,0>
<Home|MPos:-136.303,101.303,0.000|FS:141,0>
<Home|MPos:-136.644,101.644,0.000|FS:141,0>
<Home|MPos:-136.988,101.988,0.000|FS:141,0>
<Home|MPos:-137.331,102.331,0.000|FS:141,0|Ov:100,100,100>
<Home|MPos:-137.675,102.675,0.000|FS:141,0>
[MSG:DBG:  X All Limit 1]
[MSG:DBG: Homing limited X]
[MSG:DBG: Homing replan with Y]
[MSG:DBG: Starting from -138.003,103.003,0.000]
[MSG:DBG: Planned move to -138.003,106.303,0.000 @ 100.000]
[MSG:DBG:  Y All Limit 1]
[MSG:DBG: Homing limited X Y]
[MSG:DBG: Homing nextPhase Pulloff1]
[MSG:DBG: Starting from -138.003,103.006,0.000]
[MSG:DBG: Planned move to -135.003,100.006,0.000 @ 141.421]
<Home|MPos:-137.997,103.000,0.000|FS:141,0|Pn:XY>
[MSG:DBG:  X All Limit 0]
<Home|MPos:-137.903,102.906,0.000|FS:141,0|Pn:Y>
<Home|MPos:-137.559,102.562,0.000|FS:141,0|Pn:Y>
[MSG:DBG:  Y All Limit 0]
<Home|MPos:-137.469,102.472,0.000|FS:141,0>
<Home|MPos:-137.125,102.128,0.000|FS:141,0>
<Home|MPos:-136.781,101.784,0.000|FS:141,0>
<Home|MPos:-136.438,101.441,0.000|FS:141,0>
<Home|MPos:-136.094,101.097,0.000|FS:141,0>
<Home|MPos:-135.753,100.756,0.000|FS:141,0>
<Home|MPos:-135.409,100.412,0.000|FS:141,0>
<Home|MPos:-135.066,100.069,0.000|FS:0,0>
[MSG:DBG: CycleStop Pulloff1]
[MSG:DBG: Homing nextPhase Pulloff2]
[MSG:Homed:XY]
[MSG:DBG: Homing done]
ok

Metadata

Metadata

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions