How do I do a manual tool change?
I will be able to test your config later, but I suspect I have found the problem.
# loadusr -W hal_manualtoolchange
loadusr -W hal_manualtoolchange_jog
net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change
net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
You have renamed the component file to hal_manualtoolchange_jog
Unless you have edited the component code to rename the component to the same name,
it will launch the component which is still called hal_manualtoolchange and wait for ever for a component called hal_manualtoolchange_jog to become ready, which it never will.
Then it would error anyway because iocontrol is still linked to hal_manualtoolchange
Revert to the original name and it should work
I'd spent plenty of time looking at the code, but never would have thought about the filename.
This will make life easier to be able to jog during manual tool changes.
Till now I use the old branded machine. (EMC2 - it's works so I didn't change)
But now I make another one for a friend. And component doesn't work as should.
When M6 is executed the popup window is shown. And I happily change tool and make Z touchoff.
When I press continue tha machine start immediatly with spindle OFF!
So how to add spindle on and to wait spindle-at-speed signal (my spindle make slow ramping to reach speed)
Of course I can start spindle manualy after changing and wait enought to startup before click continue..
...but preffer automatic!.
I just do it in G Code if I want the spindle stopped and re-started
There are so many different types of toolchanger, with a lot not wanting the spindle stopped (almost all lathes), coding it is probably easiest
"When M6 is executed the popup window is shown. And I happily change tool and make Z touchoff."
Machine: Sherline 5400 Mill
% (1) (T1 D=0.1275 CR=0. - ZMIN=-0.02 - FLAT END MILL) (T50 D=0.0591 CR=0. - ZMIN=-0.002 - FLAT END MILL) N10 G90 G94 G17 G91.1 N15 G20 N20 G53 G0 Z1.5 (18 TRACE1 0.02 OFFSET) N25 T1 M6 N30 G0 X-1.0625 Y0.5413 Z0.6 N35 Z0.2 N40 G1 Z-0.02 F10. N45 X-1.375 Y0. F20. N50 X-1.0625 Y-0.5413 N55 X-0.4375 N60 X-0.125 Y0. N65 X-0.4375 Y0.5413 N70 X-1.0625 N75 Z0.2 F10. N80 G0 Z0.6 N90 G53 Z1.5 (1.5MM TRACE 0.002 OFFSET) N95 M1 N100 T50 M6 N105 G0 X0.5485 Y-0.5413 Z0.6 N110 Z0.2 N115 G1 Z-0.002 F3.937 N120 X1.1735 F5.906 N125 X1.486 Y0. N130 X1.1735 Y0.5413 N135 X0.5485 N140 X0.236 Y0. N145 X0.5485 Y-0.5413 N150 Z0.2 F3.937 N155 G0 Z0.6 N165 G53 Z1.5 N170 M30 %
It's been mentioned above - you need to change hal_manualtoolchange file (located at /usr/bin)
it's a Python script LinuxCNC calls when M6 command is issued.
My owm machine uses new hal_manualtoolchange (see attach) - it's a bit buggy with LinuxCNC 2.7 but works.
Your G53 question is pretty simple - you may add any code prior to toolchange in your postprocessor, or manually.
Just an example: raise Z, then move to machine coordinates X10 Y200. Do toolchange. Raise Z again to safe top.
... your actual milling code G0 G53 Z100 G0 G53 X10 Y200 M6 T5 G0 G53 Z100 ... your actual milling code