-
Notifications
You must be signed in to change notification settings - Fork 90
Tool change (M6) support discussion #79
Comments
Sounds interesting, I'll give it a try when it will be released :-) |
New release now available in the test branch. A compatible release of my sender application has also been published. |
The new tool change functions requires the machine to be homed, error 46 relates to that. See the status line in your last image, the message is a bit misleading - should be changed... Perhaps I should issue a warning before the program is started if not homed and there are tool change commands? Note that I am currently working on improving tool changing - it is not working correctly in all circumstances. I am currently busy with other work so it is likely it will be a few days before any updates are ready. |
Sorry i forgot to tell you that the machine will be homed at every startup. The error also occurred after immediate homing. Maybe my approach is wrong too?
Would certainly be very helpful to avoid such errors.
O.k. I am curious about the results. |
Yes the A-axis is activated, but only the linear axes are homed at my machine. |
I have commited a new version to the test branch as well as a new sender beta. Hopefully this will behave better. |
Hi terjeio, btw a bracket in the bracket at the tool change command gives an error, seen in the second tool change command, tool2 |
If the bracket is the problem then your gcode is not compliant with NIST: 3.3.4 Comments and Messages Printable characters and white space inside parentheses is a comment. A left parenthesis always |
no sorry the brackets were only a minor problem, they are very easy to delete. The real problem is to know a tool change sequence, just as you thought. So here is a little tutorial on how the tool change should take place. |
With $341 = 1: Select first tool in the program (tool 1 in your example) by issuing Select the probing screen and clear any tool offset in the Tool Length Offset tab - there will be a button there to clear it if it is set. [edit: "... any reference offset ..." -> "... any tool offset ..."]
IMO the two previous steps should be combined into one, in the Tool Lenght Offset tab?
"on top of your work piece" could be anywhere convenient to establish the reference needed, it does not have to be on top of the workpiece. If this is on a fixed position on the machine then $341 mode 2 or 3 may be a better choice. I hope this helps for now - I am soon ready to dig into the tool change/probing stuff again so any feedback will be appreciated. |
Thank you for this „manual“ :-) I would like to test it tomorrow, so just two short questions for this.
Yes I would think that makes sense, because in the past I didn‘t know that you mentioned it this way. So when I set the Z=0 on top of my Workpiece, then I can set the „Reference“ maybe in the Baseplate in front of my Workpiece (maybe 40mm deeper) and after a toolchange I can also set the second TLO in front of the Workpiece? And I have to Enter „$TPW“ into the field in the bottom left? And this could be linked to an Macro which could be started with the shortcuts? I want to use the $341=1 because sometimes I can‘t use the defined position for the TLS and then it would be easier to make it this way... |
Oh, one more question :-) When I use the 3D-Finder in my machine, I don‘t have a ATC-Spindle, so my Tool length changes every time. |
Well, that's something to work with. |
Yes, this should work - it is important that the touch plate height is set correctly.
Correct. Cycle start will be ignored until this command has been run.
Not sure I understand or if this will work, you want to probe the touch plate with the 3D-Finder to set the reference and then set the actual offset by probing again with the tool? |
Yes i think you are right... i made a little mistake in my thinking... I can’t connect the 3D finder and the TLS At the same time. So i would like to touch off the workpiece directly with the 3d finder . Would this be the right workaround? |
You have to consider the difference between the probe and the tool as well?
I could be, why not just try it to find out? |
I'll try it today :-) Just wanted to reduce my risk of killing the 3d finder, but now we are able to reduce all the speeds so I can push the button in case of any problems. I'll report back, if it works or not. Then it could be really simple to measure the x y and z axis directly and then just generate the offset for the endmill |
First results. I followed your instructions exactly and got the following error. Also I do not get a clear button in the tab tool length offset. But the tool window (Tool 1) turns green. Probe Fixture @G59.3 works as described above except for the feed rate. The procedure is o.k.. In the Probing Tab only one entry is possible for the profiles. That worked once? :) |
Hmm, very strange, Then I changed to the Probing Tab and touched off my workpiece Z=0 Then I changed to the "Tool length offset" tab and make the "Reference measurement" on the Baseplate It shows me in the status bar the message for Tool no. 1000 but the Z-Axis doesn't move up or anything else. Attached is the GCode File, can somebody tell me, whats wrong with it? :EDIT: |
I have tested with a tool table enabled and not resetting the controller before each test - so I have missed some scenarioes. Testing a fix now. I have edited the procedure above as I incorreclty wrote that any tool reference offset should be cleared, the correct one is any tool offset. The button only shows up if there is an offset active. Note that setting the reference offset does not set any tool offset, it just records a reference for calculating the offset applied for subsequent tools. If set the reference offset is reported in a new message in the |
Likely nothing, I'll use it for testing - with the changes I have made it seems to run just fine.
Fixture height is not in use yet and may go away - or could be of use when probing with a tool at fixed touch plate @G59.3, this in to establish an absolute position above the table? I think I should disable fields on the left side depending on which is relevant to the tab selected. |
I've got a question for the Shortcut "Alt - R" for starting the Probing Routine. When I press the Shortcut in the Software on the Keyboard, everything works fine. But when I try to use my Game Controller with the Shortcut set to Alt - R, it doesn't work. Do you have an idea, why this doesn't work? |
What I believe is a fix is now committed to master for testing.
Feedrate is reported back correctly in the sender, but I have not timed it yet. Do you see a incorrect rate reported back?
It did, but a property change on the control has changed its behaviour in an unexpected way. I need work around that.
Does it trigger Cycle Start in the Grbl tab? I cannot think of any reason it shouldn't work for probing if it does. |
So I would like that and I understood that the fixture heigth is for a fixed touch plate @G59.3, which I would like to use.
I can't say whether the advertisement is correct, I didn't pay attention to that. I mean only when the tool moves to the fixed touch plate @G59.3, it makes almost no difference if I enter 200mm or 3000mm feed in $344. I always feel that the cutter moves at 100/300mm. |
Hit, you are right, it is only one macro. All others work. The macro contains a G0 X0 Y0 command.
Hope you can do something with it, I have created a file, if it doesn't work I have taken screenshots.
I didn't pay much attention to it but the status line said "Controller does not answer" or something similar.
No I have not connected an EEPROM to the controller. Sorry no tests today, too little time. |
@S2000Stefan Maybe it's only my thinking, that the Z-Probe should be the first thing to measure. If it's only my opinion about this, maybe it should not be modified?!? |
@einencool |
It is likely due to when in the probing tab distance mode is set to relative, it is restored to whatever it was on leaving the tab. For now use G90G0X0Y0 instead to ensure absolute mode.
I'll take a look tomorrow.
Thanks, then the sender waited for a response from the controller - it was not totally crashed.
The flash in the STM32 has a guarateed life of 10.000 write cycles - not a lot. E.g. setting a offset is one cycle - if you do this often then it adds up... Also writing data to flash is slow as the whole area used for settings has to be erased before each write. EEPROM is a lot better, FRAM even more so.
My opinion is that I do not want to change it for now as this complicates the streamlined program flow I have. I may consider making it an option later when the sender is out of beta. |
Well, then please leave it as it is... |
Ok you have convinced me, the eeprom is ordered and will be integrated immediately when it is there. ;) Today I took a closer look at the tool change mode $341=3. I could not find any abnormalities in the process - everything works fine. But now, as always, when the spindle moves to the home position for tool change, wouldn't it be better to show a message in the status line or even open a pop up window to tell the user what to do? Something like "Please change tool when finished press start button". And by pressing the start button the window could close again. I also noticed in tool change mode $341=2 that I don't get MSG for the tool, which was once thought about?
Completely forgotten, really very helpful. 👍 |
Don't forget pullup resistors for the EEPROM signal lines.
You mean backing off to the Z home position could be too far?
I decided against pushing a message from the controller as this would remove any message from the program, e.g:
you do not want that message to go away. And I think it will not be easy to check if the program has a message related to the tool change or not. A pop up message could interfere with remote control (thinking of @eiencool and his gamepad) so I decided against that too. Pressing cycle start to early will issue a reminder though.
It works for me in my test setup, are you sure about this?
Then I guess you are pressing a cycle start button connected to the controller. It is removed when pressing the Cycle Start button in the sender. I will update the controller to send an empty message so it will be removed in both scenarioes.
This was a part of the discussion over at the pull request for the sender . This should continue, but IMO in a less overwhelming way... Edit: fixed pull request link. |
I hope they are already on the board. I have one more question.
For very large machines I think so. But since we are only in the hobby sector it should not be a problem.
Yes, often use the start button on the machine, you are right.
Then I will have to read everything through, for better or worse. ;) |
Could well be, I do not know which board you have ordered so cannot tell.
Vcc and GND has to be connected as well.
And I am as well. Strange... |
Unfortunately I could only make very short tests with the new versions today. Everything went very well so far. The new features give it a professional touch ;) There is one little thing I noticed. Btw, Unfortunately I still don't get an MSG when changing the tool. |
Can you please change one thing in the Probing tab? |
You do not see any in the Console either? Wait a bit... - it could be that asynchronous message handling is not enabled in the driver you use. I'll have to check that.
Ok, I have to add support for that in the probing tab as well then. Key handling is local to the active tab, that is why it does not work.
My bad, I will add check for check mode in the next grblHAL update. |
New edge version uploaded. Fix for Center finder and start of macros via function keys added to Probing tab. |
@S2000Stefan The missing tool change message is due to the driver not having support for gcode message handling. There is enough memory for adding it so will do so soon. |
Good Morning @terjeio |
Don't worry about it. ;) Take your time. Today, after a successful tool change programme, I noticed, for example, that I had three tool changes, the tool display shows the last tool and I then change the tool manually to tool one and start the existing milling programme again - the first tool change is carried out. Shouldn't the milling program stop at the first tool, because the TLO cannot match? Apart from the fact that the tool may not be the right one. ;) |
Not sure I do... A tool change is triggered by a tool number change followed by a RS274:
LinuxCNC:
For me this implies that a tool change command to the tool currently in the spindle does not initiate a tool change sequence. |
Yes in explaining I am a niete. I try it again. |
The more I think about my proposal, the more I have to admit that it is complete nonsense.
I think you interpret Linux CNC right and I am wrong. |
Complicated stuff? I have changed LinuxCNC on
and
Which is the grblHAL implementation, random or not? If random then no special action can be taken on selecting tool 0. And a tool change sequence should be performed if the current tool is not 0. If nonrandom then a tool length offset for It seems my tool change implementation is wrong regarding coolant, LinuxCNC on
And this warning:
Should grblHAL be changed to adhere to this as well? Maybe not as the tool length reference offset is my idea, no such concept (as I am aware of) is found in either of the RS274 or LinuxCNC specifications. And by default there is no tool table in grblHAL containing tool offsets. It is a different story if one is compiled in and there is an ATC connected... Confusing, you bet... I have to try to make the behaviour consistent across configurations, and it is not alwasys easy to get the details right. |
The G43 Command was in my old Postprocessor after the M6 and I got a warning with the first trials. I also don‘t know what would be the benefit for using the G43... Yesterday I made several tests with a bunch of tool Change test files, and they all work without any failures. |
As I wrote this morning, I thought a lot about it and came to the conclusion that everything is very good as it is and nothing should be changed. As einencool writes:
I stand fully behind this statement. Find the tool change is very convenient and easy to use. |
Today we did some more tests. I noticed that if I zero my axis of rotation (a axis) with $HA manual, the TLO reference is lost but the normal TLO remains. |
It is what I did ;-) Tool reference offset is normally the linear axis (Z) so could change the code to only clear it if that is part of the axis/axes to be homed. Currently only the linear axis is supported for tool reference offset but the code is prepared for multi axis reference offsets, this is at least relevant for lathe mode where both Z and X may be used - so have to keep that in mind. Is it likely to ever be a need for tool offsets for the A, B and C axes? If not then I could make the check for clearing the reference simple.
Good, thanks again for testing! |
@S2000Stefan from build 20201003 the TLO reference will only be cleared when homing the linear axis (Z). |
Today I made a short test with the new grblHal version and can report that the tool change massage is now displayed. Thanks for that. Very good support. 👍 |
@S2000Stefan I have just committed an update adding the odometer option to the STM32 drivers. Note that I have not extensively tested this, it is a preview version. Enable in my_machine.h after copying the odometer plugin code to the project. |
Closing this as I believe the new tool change functionality is now completed. |
I have implemented three new tool change options and would like some input on what I have done and if it makes sense.
See the Wiki page for details.
I have not yet published the build needed - will do so soon to the test branch.
The text was updated successfully, but these errors were encountered: