@rodw , the reverse probe suggestion is a brilliant idea ! I use a limit switch for probing (as opposed to ohmic) and the work material flex with < 10ga. at times drives me nuts, I’m usually dropping weights on the sheetmetal in several places around my table. Your suggestion if I understand it correctly, is to probe as normal until surface is found, then rather than raise Z by the float distance of the torch mount, do another reverse probe until the limit switch is open. Then raise Z by the float distance from that position. Brilliant! It wont take all the flex out of the equation, but it should take some of it out, at least the flex due to spring tension on the limit switch actuator. I have gone so far as to put springs on my floating torch mount to take load off the effects of gravity on the whole mechanism, that helps a little too. I’m going to give your suggestion a trial later today. I’ll report back. Thanks much.
If you have an issue with flex, try using a magnetic proximity switch instead. That’s what I use on my plasma. There are two down sides. Firstly it only works reliably on steel. The sensor I have won’t work very well on stainless and ali. The other issue is that you need to mount the switch on a small pneumatic ram or other actuator so it is out of the way when you are cutting.
One big advantage of this setup is that you can use it to auto-align the axes on your plate. Here’s a video of it in action using LinuxCNC. https://www.youtube.com/watch?v=poWJhBFevcs
Another trick is to implement ohmic sensing with Linuxcnc. You can do it with some relays but a better approach is to implement my hypersensing using a Mesa THCAD-5 (or THCAD-2 in 5 volt mode) and my hypersensing component.
ohmic3.comp and ohmic.hal in my most recent config implement it.
I developed this in conjunction with Peter Wallace from Mesa.
We continually measure the ohmic voltage in the component and decide what is an on or off state for the probe. It is possible to see the ohmic volts ramp up during the touching as contact is made.
This is desgned more for QTplasmac’s automatic probing which also probes away. But it probably could be implemented in a touch off routine.
The sneaky thing that the component does is to take a moving average of the ohmic volts and it saves that average when it touches. So when probing away, we know the moment the actual voltage falls below this saved value, contact has broken and there is no waiting to reach a low threshold or take up the hysterisis in a relay.
If you also have a float switch, You also probe very fast and allow the overtravel to be taken up by the float mechanism.
Some people say stuffing around with relays is better, but watch the video and you be the judge!
Wow, you guys on it. I actually figured out what sheetcamcs2 suggested, but found out that the m66 needs to be on the line below m03.
After I manually edited that in, I ended up with a file I could use for testing.
Unfortunately, I’m having hardware problems with the thc, so I may end tossing it and using some of these idea on a different z axis.
Regardless, I really appreciate the help.
I didn’t know you’d be here rod, you’re a wealth of information.
You guys rock, thanks.
The reverse probe suggestion by @rodw works great! It eliminated -0.3mm of PH and subsequent ITH on 16ga cold roll steel vs. the same XY position torch touch off without it. WOW! That’s impressive. I’m sure the ohmic methods by @Les_Newell and @rodw are good too, but I don’t see the need to build either of those circuits right now. The flex eliminated was nearly 100%, I could easily get a 0.1mm feeler gauge under the torch. I expect to have much less THC induced Z error as a result of this reverse probe improvement to torch touchoff. My THC is a Proma THC SD, so it is autonomous from the CNC controller and causes Z to loose calibration to WCS Z0 during a cutting job, I call this effect THC Induced Z Error (THC-IZE). This can’t be avoided with controller autonomous THCs, so the challenge is to find ways to minimize it or periodically re-home Z during a job (which I do now).
The reverse probe is just one stmt in bold as follows:
;===== Part Index: 0, Op index: 1, Shape number: 1 ======
G0 X2.000 Y9.650 Z25.000
G0 Z3.700
;
; OnPenDown() production
G0 Z0
G38.2 Z-14.000 F700 (probe to find sw) G38.5 Z0 (reverse probe to release material flex)
G92 Z-4.600 (set Z0 relative to current position)
G0 Z3.700 (goto pierce height)
G0 X2.000 Y9.650 (restore XYA precision after probe, avoids arc error33)
M9 (disable Z THC and ADC)
M4 S960 (fire torch w dynamic THC ON)
;PD adjusted for NO post flow air
G04 P0.44 (Plunge travel time: 0.06s, Total PD: 0.5s)
; OnPenDown() finished
;
G1 Z1.500 F2400
M7 (enable Z THC and ADC)
G1 X5.000 F1000
;===========================
The reverse probe causes Z motion up until either the probe limit switch opens or old Z0 is reached.
btw- I discovered that when probing these 5mm or so distances, your controller is in the sweet spot of the effects from acceleration/deceleration; meaning if probing < but near accel/decel ramp distances, you get inconsistent switch overrun depending on the speed and distance. If probing > accel/decel distances, you get consistent results. So calculate the accel ramp up distance at a given terminal speed for your controller config and use a G38.5 Z max motion value at least 2x greater than that ramp up distance (2x accounts for accel and decel in the reverse probe motion). In my case, since I have 9.5mm of float distance in my torch mount, I have plenty of distance left (>> 2x accel ramp distance) to just use the constant stmt G38.5 Z0 (absolute Z0).
The accuracy at any speed is very consistent on my machine in so far as limit switch overrun… as long as I set max travel distance 2x or > than the distance to accelerate to that [terminal] speed. Of course, too fast and it will overrun the switch actuator distance I’ve done that. But to your point, I agree more accuracy is pretty much guaranteed at slower speeds, that’s why we don’t run the delicate XYZ probes at speeds over 40mm/min or so. Because of the slower [terminal] speed, the accel/decel ramp distance is generally negligible. My minimum speed for XY is 32mm/min or so at 57steps/mm, as I stumbled into that rat hole a year ago, derived from MCU clock speed, steps/mm, and to some degree the quality of the gcode interpreter. My Z min speed is 10mm/min, at 200 steps/mm.
So since I posted earlier today, I’ve done some cutting with the reverse torch probe implementation and as expected, my THC-IZE was much less than 0.1mm/cut. I can live with that. I was even able to turn off the Z re-homing code during the job, don’t need it as often now. I may change the logic in the post processor to trigger it if I’m cutting > 80 shapes in a job, I had it set to every 20 or so prior.
After a weekend of cutting several jobs of 16gaHR, I can report that the reverse probe torch touchoff technique works beautifully !
On 16ga, it can eliminate 100% of flex influence on ITH all the time if the work material is crowned, and most of the time if concave provided the square area of the upward flex is large enough (holds enough tension). Regardless, it at least eliminates MOST of the flex effect ALL of the time. The latter is easy to fix with a slight tweak of the work material. Biggest gains are: no need to drop flattening weights around the material, much improved accuracy of ITH and therefore also reduced accumulated THC Z error with the Proma THC SD.
I don’t know Mach, and after reading the Mach gcode manual pages 27-29, I understand why you are asking the question
I’d have to study the concept mention in the manual… “After successful probing, parameters 2000 to 2005 will be set to the coordinates of the location of the controlled point at the time the probe tripped and a triplet giving X, Y and Z at the trip will be written to the triplet file if it has been opened by the M40 macro/OpenDigFile() function (q.v.)”
So perhaps someone else with Mach3 experience can comment on how the reverse probe technique describe above in M66 for arc-ok plasma - #4
can be applied to Mach3.