Wiki Search Terms
feed hold deceleration
cycle start acceleration
feed hold hard stop
Controller Board
PiBot 4.9 Plus
Machine Description
Gantry router with external DM556 drivers for x and y (dual). DM542 for Z. Spindle 10V controlled. FluidNC pendant.
Input Circuits
feedholdpin: gpio.36:low
cyclestartpin: gpio.39:low
Configuration file
name: Pibot
board: Pibot 4.9
stepping:
engine: I2S_STREAM
idle_ms: 255
pulse_us: 4
dirdelayus: 1
disabledelayus: 0
junctiondeviationmm: 0.02
axes:
sharedstepperdisablepin: NOPIN
x:
stepspermm: 320
maxratemmpermin: 3600
accelerationmmper_sec2: 50
maxtravelmm: 410
soft_limits: false
homing:
cycle: 2
mpos_mm: -205
positive_direction: false
seekmmper_min: 800
feedmmper_min: 100
seek_scaler: 1.100
feed_scaler: 1.100
settle_ms: 250
motor0:
limitallpin: NO_PIN
limitnegpin: gpio.32:high
limitpospin: NO_PIN
hard_limits: true
pulloff_mm: 1
standard_stepper:
step_pin: i2so.2
direction_pin: i2so.1
disable_pin: i2so.0
y:
stepspermm: 640
maxratemmpermin: 3600
accelerationmmper_sec2: 50
maxtravelmm: 432
homing:
cycle: 2
mpos_mm: 216
positive_direction: true
seekmmper_min: 800
feedmmper_min: 100
seek_scaler: 1.1
feed_scaler: 1.1
settle_ms: 250
motor0:
limitallpin: NO_PIN
limitnegpin: NO_PIN
limitpospin: gpio.35:high
hard_limits: true
pulloff_mm: 1
standard_stepper:
step_pin: i2so.5
direction_pin: i2so.4:low
disable_pin: i2so.7
z:
stepspermm: 1600
maxratemmpermin: 800
accelerationmmper_sec2: 50
maxtravelmm: 100
homing:
cycle: 1
mpos_mm: 100
positive_direction: true
seekmmper_min: 400
feedmmper_min: 100
seek_scaler: 1.1
feed_scaler: 1.1
settle_ms: 250
motor0:
limitallpin: NO_PIN
limitnegpin: NO_PIN
limitpospin: gpio.34:high
hard_limits: true
pulloff_mm: 1
standard_stepper:
step_pin: i2so.10
direction_pin: i2so.9
disable_pin: i2so.8
start:
must_home: false
probe:
pin: gpio.33:low
toolsetterpin: NOPIN
checkmodestart: true
hard_stop: true
control:
safetydoorpin: NO_PIN
resetpin: NOPIN
feedholdpin: gpio.36:low
cyclestartpin: gpio.39:low
macro0pin: NOPIN
macro1pin: NOPIN
macro2pin: NOPIN
macro3pin: NOPIN
faultpin: NOPIN
estoppin: NOPIN
status_outputs:
run_pin: gpio.12
hold_pin: gpio.14
user_outputs:
digital0_pin: gpio.4
10V:
forwardpin: NOPIN
reversepin: NOPIN
pwm_hz: 1000
output_pin: gpio.13
enablepin: NOPIN
directionpin: NOPIN
disablewiths0: false
s0withdisable: true
spinup_ms: 0
spindown_ms: 0
tool_num: 0
speed_map: 0=0.000% 4000=0.000% 25000=100.000%
offonalarm: false
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:
carddetectpin: NO_PIN
cs_pin: gpio.5
uart1:
txd_pin: gpio.25
rxd_pin: gpio.27
rtspin: NOPIN
ctspin: NOPIN
baud: 1000000
mode: 8N1
uart_channel1:
reportintervalms: 75
uart_num: 1
Startup Messages
[MSG:INFO: FluidNC v3.9.3 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-pibot.yaml]
[MSG:INFO: Machine pibot]
[MSG:INFO: Board Pibot 4.9]
[MSG:INFO: UART1 Tx:gpio.25 Rx:gpio.27 RTS:NO_PIN Baud:1000000]
[MSG:INFO: uart_channel1 created at report interval: 75]
[MSG:INFO: I2SO BCK:gpio.22 WS:gpio.17 DATA:gpio.21]
[MSG:INFO: SPI SCK:gpio.18 MOSI:gpio.23 MISO:gpio.19]
[MSG:INFO: SD Card cspin:gpio.5 detect:NOPIN freq:8000000]
[MSG:INFO: Stepping:I2S_STREAM Pulse:4us Dsbl Delay:0us Dir Delay:1us Idle Delay:255ms]
[MSG:INFO: User Digital Output: 0 on Pin:gpio.4]
[MSG:INFO: Axis count 3]
[MSG:INFO: Axis X (-205.000,205.000)]
[MSG:INFO: Motor0]
[MSG:INFO: standard_stepper Step:I2SO.2 Dir:I2SO.1 Disable:I2SO.0]
[MSG:INFO: X Neg Limit gpio.32]
[MSG:INFO: Axis Y (-216.000,216.000)]
[MSG:INFO: Motor0]
[MSG:INFO: standard_stepper Step:I2SO.5 Dir:I2SO.4:low Disable:I2SO.7]
[MSG:INFO: Y Pos Limit gpio.35]
[MSG:INFO: Axis Z (0.000,100.000)]
[MSG:INFO: Motor0]
[MSG:INFO: standard_stepper Step:I2SO.10 Dir:I2SO.9 Disable:I2SO.8]
[MSG:INFO: Z Pos Limit gpio.34]
[MSG:INFO: feedholdpin gpio.36:low]
[MSG:INFO: cyclestartpin gpio.39:low]
[MSG:INFO: Kinematic system: Cartesian]
[MSG:INFO: Connecting to STA SSID:OT]
[MSG:INFO: Connecting.]
[MSG:INFO: Connecting..]
[MSG:INFO: Connected - IP is 192.168.1.224]
[MSG:INFO: WiFi on]
[MSG:INFO: Start mDNS with hostname:http://pibot.local/]
[MSG:INFO: HTTP started on port 80]
[MSG:INFO: Telnet started on port 23]
[MSG:INFO: Status outputs Interval:500 Idle:NOPIN Cycle:gpio.12 Hold:gpio.14 Alarm:NOPIN]
[MSG:INFO: 10V Spindle Ena:NOPIN Out:gpio.13 Dir:NOPIN Fwd:NOPIN Rev:NOPIN Freq:1000Hz Period:65535]
[MSG:INFO: Probe gpio.33:low]
User Interface Software
CNCJs
What happened?
I have wired up external buttons for feed hold and cycle start. When activating feed hold motion sometimes stops with a hard stop (i.e without deceleration). When that happens, the cycle start resumes without acceleration causing missed steps.
The same also happens when activating feed hold from a FluidNC pendant.
This is the terminal output when it happens (after the last Run):
““
GCode File
G90 G94
G17
G21
T7
M3 S18000
G54
G0 X0 Y-72
Z7.5
G1 Z2.5 F2400
Z1 F800
G2 X0 Y72 Z0.75 I0 J72 F2400
X0 Y-72 Z0.5 I0 J-72
X0 Y72 Z0.25 I0 J72
X0 Y-72 Z0 I0 J-72
X0 Y72 Z-0.25 I0 J72
X0 Y-72 Z-0.5 I0 J-72
X0 Y72 I0 J72
X0 Y-72 I0 J-72
X0 Y72 Z-0.75 I0 J72
X0 Y-72 Z-1 I0 J-72
X0 Y72 I0 J72
X0 Y-72 I0 J-72
X0 Y72 Z-1.25 I0 J72
X0 Y-72 Z-1.5 I0 J-72
X0 Y72 I0 J72
X0 Y-72 I0 J-72
X0 Y72 Z-1.75 I0 J72
X0 Y-72 Z-2 I0 J-72
X0 Y72 I0 J72
X0 Y-72 I0 J-72
X0 Y72 Z-2.25 I0 J72
X0 Y-72 Z-2.5 I0 J-72
X0 Y72 I0 J72
X0 Y-72 I0 J-72
X0 Y72 Z-2.75 I0 J72
X0 Y-72 Z-3 I0 J-72
X0 Y72 I0 J72
X0 Y-72 I0 J-72
X0 Y72 Z-3.25 I0 J72
X0 Y-72 Z-3.5 I0 J-72
X0 Y72 I0 J72
X0 Y-72 I0 J-72
X0 Y72 Z-3.75 I0 J72
X0 Y-72 Z-4 I0 J-72
X0 Y72 I0 J72
X0 Y-72 I0 J-72
X0 Y72 Z-4.25 I0 J72
X0 Y-72 Z-4.5 I0 J-72
X0 Y72 I0 J72
X0 Y-72 I0 J-72
X0 Y72 Z-4.75 I0 J72
X0 Y-72 Z-5 I0 J-72
X0 Y72 I0 J72
X0 Y-72 I0 J-72
X0 Y72 Z-5.25 I0 J72
X0 Y-72 I0 J-72
X0 Y72 I0 J72
X0 Y-72 I0 J-72
X0 Y72 I0 J72
G1 Z7.5
M5
M30
Other Information
FluidNC 3.9.3 also happens on 3.9.1
评论 (8)
#2 – ktand 于 2024-12-20
I was able to reproduce this on a standalone ESP32 Dev Kit using RMT stepping, if that matters.
Here is an example of stepper pulse capture when Feed Hold is pressed. The deceleration can clearly be seen.
Here Cycle Start is pressed and then after a short while Feed Hold is pressed. The stepper pulses shows the acceleration but there is no deceleration when Feed Hold is pressed and the stepper pulses abruptly stops:
I used the following configuration:
“
name: DevKitC
board: ESP32-DevKitC
stepping:
engine: RMT
idle_ms: 255
pulse_us: 4
dirdelayus: 1
disabledelayus: 0
junctiondeviationmm: 0.02
axes:
sharedstepperdisablepin: NOPIN
x:
stepspermm: 320
maxratemmpermin: 3600
accelerationmmper_sec2: 50
maxtravelmm: 410
soft_limits: false
homing:
cycle: 2
mpos_mm: -205
positive_direction: false
seekmmper_min: 800
feedmmper_min: 100
seek_scaler: 1.100
feed_scaler: 1.100
settle_ms: 250
motor0:
hard_limits: true
pulloff_mm: 1
standard_stepper:
step_pin: gpio.22
direction_pin: gpio.21
y:
stepspermm: 640
maxratemmpermin: 3600
accelerationmmper_sec2: 50
maxtravelmm: 432
homing:
cycle: 2
mpos_mm: 216
positive_direction: true
seekmmper_min: 800
feedmmper_min: 100
seek_scaler: 1.1
feed_scaler: 1.1
settle_ms: 250
motor0:
hard_limits: true
pulloff_mm: 1
standard_stepper:
step_pin: gpio.16
direction_pin: gpio.17
z:
stepspermm: 1600
maxratemmpermin: 800
accelerationmmper_sec2: 50
maxtravelmm: 100
homing:
cycle: 1
mpos_mm: 100
positive_direction: true
seekmmper_min: 400
feedmmper_min: 100
seek_scaler: 1.1
feed_scaler: 1.1
settle_ms: 250
motor0:
hard_limits: true
pulloff_mm: 1
standard_stepper:
step_pin: gpio.18
direction_pin: gpio.19
start:
must_home: false
control:
safetydoorpin: NO_PIN
resetpin: NOPIN
feedholdpin: gpio.26:low:pu
cyclestartpin: gpio.27:low:pu
macro0pin: NOPIN
macro1pin: NOPIN
macro2pin: NOPIN
macro3pin: NOPIN
faultpin: NOPIN
estoppin: NOPIN
status_outputs:
run_pin: gpio.12
hold_pin: gpio.14
“
#3 – bdring 于 2024-12-21
I will setup a test fixture with control switches for hold and cycle start. It will take a few hours before I can fit that in my schedule.
#4 – breiler 于 2024-12-21
@bdring this sounds similar to to the the PR that I have open for jogging:
https://github.com/bdring/FluidNC/pull/1396
And with a bit of imagination also this issue about jogging: https://github.com/bdring/FluidNC/issues/902
#5 – bdring 于 2024-12-21
I am able to replicate the problem. I concur with @breiler observations. This seems to be due to the tiny segments coming from the arcs. It does not happen with longer segments.
#6 – bdring 于 2024-12-27
@ktand
I think this PR fixes the problem. Do you know how to compile the code from a PR? It would be great if you could test it.
#7 – ktand 于 2024-12-27
@bdring
Yes. I will try it a.s.a.p. Thanks!
#8 – ktand 于 2024-12-27
@bdring
I can confirm that this solves the problem. I have tested feed hold/cycle start hundreds of times without any problems. Thank you very much!
#1 – MitchBradley 于 2024-12-20
I no longer have time to solve problems on unofficial hardware whose developers do not sponsor FluidNC. If you can reproduce the problem on official hardware like some flavor of 6-pack board, I will look into it.