[FluidNC Issue#1547] Problem: M6 commands do not initiate move to tool change position

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

Issue #1547 | 状态: 进行中 | 作者: Xeroside | 创建时间: 2025-08-18


Wiki Search Terms

Fluidnc, ATCManual, M6, M6 commands do not initiate move to changempos_mm: location

Controller Board

6x CNC Controller for FluidNC (integrated ESP32)

Machine Description

WEN 33013 Milling Machine

Input Circuits


Configuration file

board: 6x CNC Controller
name: 'WEN 33013 CNC '
stepping:
  engine: I2S_STREAM
  idle_ms: 255
  pulse_us: 4
  dirdelayus: 1
  disabledelayus: 0

axes: sharedstepperdisablepin: NOPIN x: stepspermm: 250.55 maxratemmpermin: 800 accelerationmmper_sec2: 40 maxtravelmm: 265 soft_limits: true homing: cycle: 2 positive_direction: false mpos_mm: 0 feedmmper_min: 100 seekmmper_min: 500 settle_ms: 500 seek_scaler: 1.2 feed_scaler: 1.1 motor0: limitnegpin: gpio.33:low limitpospin: NO_PIN limitallpin: NO_PIN hard_limits: false pulloff_mm: 1 standard_stepper: step_pin: I2SO.2 direction_pin: I2SO.1 disable_pin: I2SO.0 y: stepspermm: 255.532 maxratemmpermin: 800 accelerationmmper_sec2: 40 maxtravelmm: 100 soft_limits: true homing: cycle: 2 positive_direction: true mpos_mm: 0 feedmmper_min: 100 seekmmper_min: 500 settle_ms: 500 seek_scaler: 1.1 feed_scaler: 1.1 motor0: limitnegpin: gpio.32:low limitpospin: NO_PIN limitallpin: NO_PIN hard_limits: false pulloff_mm: 1 standard_stepper: step_pin: I2SO.5 direction_pin: I2SO.4 disable_pin: I2SO.7 z: stepspermm: 1005.763 maxratemmpermin: 400 accelerationmmper_sec2: 30 maxtravelmm: 400 soft_limits: true homing: cycle: 1 positive_direction: true mpos_mm: 0 feedmmper_min: 100 seekmmper_min: 800 settle_ms: 500 seek_scaler: 1.2 feed_scaler: 1.1 motor0: limitnegpin: gpio.35:low limitpospin: NO_PIN limitallpin: NO_PIN hard_limits: false pulloff_mm: 3 standard_stepper: step_pin: I2SO.10 direction_pin: I2SO.9 disable_pin: I2SO.8 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 probe: pin: gpio.34:low toolsetter_pin: gpio.36

coolant: flood_pin: gpio.12 mist_pin: gpio.4 delay_ms: 0 start: must_home: false

pwm: pwm_hz: 5000 direction_pin: gpio.15 output_pin: gpio.13 enable_pin: gpio.14 disablewiths0: false s0withdisable: true spinup_ms: 0 spindown_ms: 0 tool_num: 0 speed_map: 0=0.000% 10000=100.000% offonalarm: false atc: atc_manual atc_manual: safezmpos_mm: -1.000000 probeseekratemmper_min: 800.000000 probefeedratemmper_min: 80.000000 changemposmm: "0.000 -47.000 0.000" etsmposmm: "0.000 -47.000 -179.000" etsrapidzmposmm: -1.000000

uart2: txd_pin: gpio.25 rxd_pin: gpio.27 rtspin: NOPIN ctspin: NOPIN baud: 1000000 mode: 8N1

uart_channel1: reportintervalms: 75 uart_num: 2

Startup Messages

[MSG:INFO: FluidNC v3.9.8 https://github.com/bdring/FluidNC]
[MSG:INFO: Compiled with ESP32 SDK:v4.4.7-dirty]
[MSG:INFO: Local filesystem type is littlefs]
[MSG:INFO: Configuration file:config.yaml]
[MSG:INFO: Machine WEN 33013 CNC ]
[MSG:INFO: Board 6x CNC Controller]
[MSG:INFO: UART2 Tx:gpio.25 Rx:gpio.27 RTS:NO_PIN Baud:1000000]
[MSG:INFO: uart_channel2 created at report interval: 75]
[MSG:INFO: I2SO BCK:gpio.22 WS:gpio.17 DATA:gpio.21Min Pulse:2us]
[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: Axis count 3]
[MSG:INFO: Axis X (0.000,265.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     standard_stepper Step:I2SO.2 Dir:I2SO.1 Disable:I2SO.0]
[MSG:INFO:  Neg Limit gpio.33:low]
[MSG:INFO: Axis Y (-100.000,0.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     standard_stepper Step:I2SO.5 Dir:I2SO.4 Disable:I2SO.7]
[MSG:INFO:  Neg Limit gpio.32:low]
[MSG:INFO: Axis Z (-400.000,0.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     standard_stepper Step:I2SO.10 Dir:I2SO.9 Disable:I2SO.8]
[MSG:INFO:  Neg Limit gpio.35:low]
[MSG:INFO: Kinematic system: Cartesian]
[MSG:INFO: Connecting to STA SSID:FlipmyFlap]
[MSG:INFO: Connecting.]
[MSG:INFO: Connecting..]
[MSG:INFO: Connecting...]
[MSG:INFO: Connected - IP is 10.0.0.44]
[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]
[MSG:INFO: ATC:atc_manual]
[MSG:INFO: PWM Spindle Ena:gpio.14 Out:gpio.13 Dir:gpio.15 Freq:5000Hz Period:8191]
[MSG:INFO: Flood coolant gpio.12]
[MSG:INFO: Mist coolant gpio.4]
[MSG:INFO: Probe gpio.34:low]
[MSG:INFO: Toolsetter gpio.36]

User Interface Software

WebUI and M5 FluidDial

What happened?

Sending M6T# or M61Q# gives a response of “ok” but does not initiate move to changemposmm: location specified in my config.yaml. Google AI showed an analysis of the problem:

1.atc: atcmanual is loaded: Your $Startup/Show output confirms that [MSG:INFO: ATC:atcmanual] appears, meaning the configuration block is recognized.
2. pwm Spindle linked: The atc: atc_manual line under pwm: correctly links your spindle to the ATC feature.
3. Commands accepted: M6T0, T0, M61Q1, M6T1 all result in ok, showing they are valid G-code.
Lack of movement: The critical issue is the absence of the expected movement to changemposmm (which is 0.000 -47.000 0.000).

GCode File

No response

Other Information

No response


评论 (5)

#1 – bdring 于 2025-08-18

I’ll test your config file later today


#2 – bdring 于 2025-08-18

It works fine on my machine. Here is the console session I suggested you do.

Grbl 3.9 [FluidNC v3.9.8 (wifi) '$' for help]
$H
[MSG:Homed:Z]
[MSG:Homed:XY]
ok

$10=1
ok

$G 
[GC:G0 G54 G17 G21 G90 G94 M5 M9 T0 F0 S0]
ok
M6T1
[MSG:INFO: Sel:1 Cur:-1]
[MSG:INFO: PWM spindle changed to tool:1 using atc_manual]
ok
[MSG:INFO: MSG,: Install tool #1]

$G
[GC:G0 G54 G17 G21 G90 G94 M5 M9 T1 F0 S0]
ok

This is my config section

pwm:
  pwm_hz: 5000
  directionpin: NOPIN
  output_pin: gpio.14
  enable_pin: gpio.13
  disablewiths0: false
  s0withdisable: true
  spinup_ms: 0
  spindown_ms: 0
  tool_num: 0
  speed_map: 0=0.000% 10000=100.000%
  offonalarm: false
  atc: atc_manual

atc_manual: safezmpos_mm: -2 probeseekratemmper_min: 200 probefeedratemmper_min: 100 changemposmm: 75.0 145.0 -1.0 etsmposmm: 3.0 139.0 -40.0 etsrapidzmposmm: -15.0


#3 – bdring 于 2025-08-18

I think you might have a trailing space on atc: atc_manual . Try it without that space. My start messages show this.

[MSG:INFO: PWM Spindle Ena:gpio.13 Out:gpio.14 Dir:NOPIN Freq:5000Hz Period:8191 with atcmanual]

Yours does not show the with atc_manual

I’ll see if I can have the code catch an error like that.


#4 – Xeroside 于 2025-08-18

Looks like that space was the problem. The spindle now moves as expected when sending M6T#. Thank you


#5 – bdring 于 2025-08-18

I can have the code do this. I put it in single quotes, so you can better see the trailing blank.

[MSG:INFO: PWM Spindle Ena:gpio.13 Out:gpio.14 Dir:NOPIN Freq:5000Hz Period:8191 atc: 'atcmanual ' not found]

It is probably better to have it print within the spindle INFO rather than a separate ERR or WARN, so you know where the problem is.

We might consider trimming all strings in the yaml to prevent this error, but that does not catch the problem of other ways the string differs, like atc: atc-manual (dash vs underscore)


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

喜欢 (0)