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.
Y limit switches:
X limit switches:
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
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.
Y limit switches:
X limit switches:
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
Startup Messages
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:
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)And here are logs when it doesn't happen, with
$Message/Level=Debug: