Automatic Tool Length Sensor
From PROBOTIX :: wiki
When using multiple tools on a CNC operation, the z-axis is always the goofy axis because, for instance, the lengths of the tools are all different and the distance the tool is inserted into the collet can vary widely - both intentionally and unintentionally. With conventional CNC routing, each tool operation has to be done in a separate g-code file, with each tool needing to be touched off in the z-axis on each tool change.
The new ATLaS automatic tool length sensor for the Comet/Asteroid/Meteor machines radically optimizes this tool change process. With the tool length sensor, you will load the first tool, then the machine will capture the tool length with the sensor before you touch that tool off to the top of the part. This will establish the z-axis origin and you will only have to touch off the top of the part this one time. On each tool change, the machine will shut off the spindle and drive out to the front of the machine to allow for easy tool change access. The machine will then drive over until it is above the tool sensor, will bounce off of that sensor, will then continue with the cutting process using the new compensated tool length offset.
The tool sensor can measure tools up to 5/8" diameter. You can still use larger tools if you need, but you will not be able to use the automatic tool length sensor when you do. The sensor sits just below the surface of the spoil board. You can make use of that area of the table if you need, but again you will not be able to use the automatic tool length sensor when you do.
To use the this Automatic tool length sensor, your CAM post-processor will need to be modified such that the tool change function is no longer g-code M6. The tool change function typically looks like this:
M6 T1
The new tool change function will look like this:
o100 CALL [1]
For metric, the tool change will look like this:
o101 CALL [1]
We will post modified post processors here on the wiki as we compile them. Please contact us if you need help modifying a post processor.
Here is the tool change routine. This file is named 100.ngc and must be kept in the nc_files directory.
o100 SUB (#1 must be passed as tool number) #30 = ROUND[#5220] (stores the current coordinate system) M9 G59.3 (use G59.3 as zero location for touch sensor) G53 G90 G0 Z0 G53 X12.5 Y0 T#1 M6 G0 X0 Y0 G91 G38.2 Z-5 F10 G10 L11 P#1 Z0 R0 G53 G90 G0 Z-.1 G43 G91 Z0.1 G90 (reset to the previous coordinate system) o102 IF [#30 EQ 1] G54 o102 ELSEIF [#30 EQ 2] G55 o102 ELSEIF [#30 EQ 3] G56 o102 ELSEIF [#30 EQ 4] G57 o102 ELSEIF [#30 EQ 5] G58 o102 ELSEIF [#30 EQ 6] G59 o102 ELSEIF [#30 EQ 7] G59.1 o102 ELSEIF [#30 EQ 8] G59.2 o102 ENDIF o100 ENDSUB
The ATLaS automatic tool length sensor will plug into the secondary parallel port connector on the back of the control PC.
Contents
About the Automatic Tool Length Sensor
When purchasing a Comet/Meteor/Asteroid/Nebula machine, you will have an option for PROBOTIX to install, configure and test the sensor before it ships. If you do not choose this at purchase, your second option is to purchase the sensor at a later date to retrofit your machine. When choosing the second option, you will be required to perform the installation of the sensor as well as the configuration of your machine, PC, LinuxCNC, and CAM software. The retrofit section below will provide some guidelines for this.
Retrofitting your Machine with a Tool Sensor
Installing the Sensor
You should receive a tool sensor connected to a parallel port connector. Mount unit to the machine. Mount it anywhere on the machine that the tool can reach. On our machines we place it down in the left hand corner closest to the front of the machine. Machines purchased in 2015 will already have the hole in the spoil board for this mounting location otherwise you will need to drill a 3/4" hole in the spoil board that the plunger will sit in. If you are going to remove your spoil board to do this you can use M5 studs to help get the spoil board back down over the T-nuts. It's easy to make your own studs by cutting the head off a longer M5 screw. (pic placeholder) The DB25 parallel connector goes to the secondary parallel port on the PC.
LinuxCNC
You will want to use a new configuration for LinuxCNC for your machine with a tool sensor. Any PCs bought after 2015 (or have been rewired for bipolar) will already have the config. If yours is older you may need to download the config from here: LinuxCNC_Configuration The new config will be the name of your current config (ie: Meteor, or Meteor_4A, or Meteor_2015) plus a TS like Meteor_TS, Meteor_TS_2015, or Meteor_TS_4A).
Launch the new config by going to Applications->CNC->LinuxCNC, this will give you a menu of all the configurations on your PC. Chooses the appropriate configuration for your machine, and check that box that says make a desktop icon. **NOTE there will be two configuration icons on your desktop. If you ever want to use the old configuration without the Tool Sensor you can just lauch that icon on your desktop.** The TS designates the configuration uses the Tool Sensor.
1) Activate the orange machine power button, then go to Machine->HAL meter (pic placeholder) This will open up two small windows. One window lets you select an item to probe, and the other window shows you the current state of the signal that is being probed. 2) On the pins tab, scroll down to the pin labeled "motion.probe-input" and click on it. This signal should read "FALSE". 3) Depress the plunger on the tool sensor and it should cause that signal to go TRUE. If that is working correctly, your parallel port initialized at the proper address.
Most of the time these cards will initialize to 0xd050, but not always. That is determined by processing done in the BIOS and there doesn't seem to be any rhyme or reason as to what that address becomes. If this is not working, you will need to go and find out what address the second parallel port did initialize to. First CLOSE LinuxCNC completely, then move on to the next section for finding the address
Finding the parallel port address when it is NOT the default 0xd050
To find the address in that case, open up a terminal session (similar to a windows dos prompt) go to Applications, Accessories, Terminal. (pic placeholder) Type the command lspci -v This will list data about everything attached to the PCI bus. Usually the add on card shows up at the bottom of the list but not always. You will be looking for something like NetMos tech PCI 9815 multi-I/O controller. In that section it will list the I/O ports for that device with the address next to it. (pic placeholder) Make note of the first two addresses in the list. It's usually the first one but sometimes it's the second one. 1) Go to Applications->Accessories->g-edit text editor 2) Go to File->Open and browse to probotix/linuxcnc/configs 3) Choose the appropriate folder (ie: Meteor_TS_2015) 4) Choose the HAL file of the same name (ie Meteor_TS_2015.hal)
- If line numbers are not turned on already, go to EDIT->PREFERENCES and put a check under display line numbers****
5) Go to around line 9, you are looking for loadrt hal_parport cfg="0x378 0xd050" 6) leave the 0x, and replace the d050 with the first address you noted 7) File->Save and leave g-edit open in case you need to use the second address 8) Launch the new config icon on the desktop 9) Go back and repeat the probe to see if this address worked: (Activate the orange machine power button, then go to Machine->HAL meter (pic placeholder) This will open up two small windows. One window lets you select an item to probe, and the other window shows you the current state of the signal that is being probed. On the pins tab, scroll down to the pin labeled "motion.probe-input" and click on it. This signal should read "FALSE". Depress the plunger on the tool sensor and it should cause that signal to go TRUE. If that is working correctly, your parallel port initialized at the proper address.) 10) If that worked great, if not, go back to the g-edit window and put the other address in and save, then repeat the test.
If it's still not working, call us.
Test
1) Home the machine Click Home All button The touch off subroutines that we wrote utilize the G59.3 Coordinate system. We chose to set the tool sensor in it's own coordinate system so that you can move the sensor anywhere on the table that you would like, and doing so only requires that you re-touch the G59.3 coordinate system. As a result of this however, you will no longer be able to use the G59.3 coordinate system when using the tool sensor. Also when you measure the length of the first tool, keep your finger on the ESC key to abort the probing operation should you accidentally touched off the G59.3 coordinate system somewhere else - you will know this when it begins the downward plunge in the wrong place. If that happens abort it so you don't break your tool. 2) Load Tool & Jog Load a tool (preferably a pointed tool) and jog the machine directly over the center of the tool sensor. You may want to jog the machine down as well to make it easier to locate, but you do not have to touch the plunger with the tool as we do not need to set the height. 3)Touch Off Now that the tool is directly over the plunger, click the X radio button in LinuxCNC to choose the X axis, then click the Touch Off button. When the dialog box pops up, click on the drop down menu and select the G59.3 coordinate system and put a value of 0 in the input box and click OK. Do the same for the Y axis. LinuxCNC remembers the last coordinate system you touched off in, so now to prevent an accident from happening, choose the Z axis but then pick the G54 coordinate system in the drop down menu. While this last step is not necessary, it can help to prevent accidentally resetting the G59.3 coordinate system. Now jog the machine away from the tool sensor and we will test the tool sensor positioning. 4) Testing Tool Sensor Positioning Select the MDI tab, and in the MDI command box, type G59.3 G0 X0 Y0 Hit go The machine should return to the X/Y center of the tool sensor - if not call us before proceeding. If it did then lets jump out of the G59.3 coordinate system by typing G54 in the MDI command box and hit go. Congratulations you are all set, now you can learn how to use it.
How to use the Tool Sensor
1) Launch LinuxCNC
2) Toggle the eStop switch and make sure the red e-Stop indicator follows the position of the physical eStop switch.
3) Activate the software by pressing the orange machine power button (or F2)
4) Home the machine by clicking Home All
5) Click the 'Load First Tool' button. This will bring the spindle out to the front of the machine and prompt you to load Tool #1 You don't have to actually use Tool#1, you may have another tool you prefer to do your touch offs with, if so then load that tool.
6) It will say insert tool 1 and hit continue when ready - do so.
7) It will drive over to the center of the tool sensor and plunge down. Make sure to have your finger on the escape key in case it's plunging down in the wrong place.**If you change your spindle/spindle mount, the Y position may be different and you may need to re-touch off G59.3 with the new spindle.
Post Processors
File:PROBOTIX LinuxCNC G64 Arc Inch TTS.pp
--- Config File: Asteroid Tool Sensor Config: File:Asteroid TS.zip
Meteor Tool Sensor Config: File:Meteor TS.zip
Meteor Tool Sensor w/4th Axis Metric Config: File:Meteor4thTSMetric.zip