Unzip probe.zip to any folder you like.


Through the following discussion it is assumed that you’ve installed Mach to the C:\Mach3 folder. If not adjust the instructions appropriately.


The zip package consists of the following files: follow these instructions in the order presented.

M90000.m1s – a Mach macro - copy this file to your macro folder – usually C:\Mach3\macros\Mach3Mill\

probe25D.tap – The gcode file that actually does the 2.5D probing - copy this file to the gcode folder – usually C:\Mach3\Gcode\

RazorProbeCtrl.CAB – a cabinet file – this contains the compressed application - don’t do anything with this file, it is used by setup.exe

setup.lst – the control file for setup.exe – you don’t do anything with this file.

setup.exe – the installation routine – run this file and follow on-screen instructions.


At this point the probing application and utilities are installed on your computer.


About the probing utilities.


Select: Start Menu / All Programs / Probe Utilities/ ProbeCtrl -You’ll see this:


Tab 1: Configure 2.5D probing routine



Note 1: “out of the box” all values are for a system set to mm. Either that or a very big very fast system set up in inches J

Note 2: These instructions assume you’ve used default setup to install the software and that Mach is installed in c:\Mach3.


You may want to create a separate folder under Mach3 called “points files” or “triplets” or similar for storing your triplet (.csv – comma separated values) files – up to you.


Set your parameters as you wish and then hit “Configure 2.5D Probing Routine


Note1: You can either enter the filename or double click and you’ll get the standard file dialog.


Note 2: The 2.5D triplet file is currently APPENDED to. This means that subsequent perimeter probes will write to the end of the previous one. You’ll therefore want to move or delete or use fresh names each time.



You’ll get a message like this to say you can now load or run probe25D.tap in Mach.



Before you do this, you MUST tick “Config/General Config/Ignore M calls while loading”. Note: The “Ignore M calls while loading” checkbox is currently about a third of the way down the third column of the “Config/General Config” dialog.


Now you’re ready to rock so… Load c:\mach3\gcode\probe25D.tap into Mach and run.


What will happen?


First of all Mach will generate the toolpath as per normal. It will look like a vertical blue line up the cross hairs with a shorter horizontal blue line jutting out to the right.

Note: this isn’t really the toolpath that Mach will follow. This is in effect a search routine and Mach has no idea where its going to go in advance.


Your probe will lift to “Safe Z”, rapid to “StartX”, “StartY” and drop to “probe at Z”.

It will then travel Y+ve at “Feedrate” towards your object to be probed. When it makes contact it will then traverse round initially moving X+ve. “2.5D Triplet File” will be populated with the contact points in X, Y and Z. (Obviously Z will be “Probe at Z”)



Tab2: Create 3D probing routine



Using a triplet file you’ve previously created as a profile, you can now create a 3D bed o’ nails probing routine that is bounded by the profile. After setting your parameters of choice, hit “Create and Save 3D Probing routine”


You’ll get a message like this:



When loaded into Mach and started “3D Probing routine” will open a dialog to ask for the name of a 3D triplet file. It will then tell you to press “Cycle Start” (As per normal) It will then rapid to “Safe Z”, and to the first point on the edge of the object. It will then probe at “Stepover” increments in X and Y each time doing a G31 down to “Probe to Z”.


Note: There are “issues” with the G31 command when used in “bed o’ nails” type probing routines. One is that sometimes the probe will continue down to the specified Z level even though it’s been tripped. This of course can seriously crunch your probe. I’ve found one way to reduce the chances of this happening is to clear work offsets. I.e. set work offsets to the same as machine cords. Secondly try to probe in integer values. I.e. start on integer x,y,z and set stepover to an integer value. This can often obviously mean you’re better off probing in mm rather than inches. Another dodge reported by a user is to insert a delay G4 P? in milliseconds after each G31 command. I personally haven’t had any success with this dodge but all our setups are different so it’s worth trying.


Tab 3: Probe corrections



Any values you set in here will be subtracted from the probe params (2000 and 2001) in Mach before they’re written to the 2.5D triplet file. Currently there is no Z correction because I’m not sure it’s needed.


When you hit “Save corrections” you’ll get this message.



Tab 4: 2.5D Triplet to G-code


Simply takes a previously created profile from Tab 1 and creates the g-code to follow that profile.



When you hit “Create and Save Gcode” you’ll get this message:



How it all ties together:


1) Probe25D.tap calls macro M90000.m1s with parameter P=0

2) Macro M90000.m1s calls G31init in the DLL (RazorProbe.dll)

3) G31Init gets settings out of the windows registry and returns them to M90000

4) M90000 copies these values into the g-code parameters 1001, 1002 etc.

5) Probe25D.tap continues into the sub/loop “O1”

6) The G31 and G01 parameters are set each iteration by a call to M90000 with P=1 This causes a call to G31Fix in the DLL which does the probe search routine proper.


The applications first tab, “Configure 2.5D probing routine” simply writes values into the registry for the DLL to pick up.

The second tab, “Create 3D probing routine” creates an internal model of the profile and maps out where to probe and where not to probe  thus creates the 3D routine.

The third tab, “Probe corrections” again simply writes values to the registry for the DLL to pick up.

The fourth tab, “2.5D triplet to g-code” simply “pretty prints” the triplet file as a g-code file.


Hints and tips:


2.5D probing can be a bit hit and miss sometimes depending on a variety of factors like the quality/sensitivity of your probe. With a bit of trial and error you’ll get used to the best values for things like backoff and stepover. However the federate and accel settings of your table will also affect success.


Stepover: fairly self explanatory, but note that unlike 3D probing, your recorded points will not necessarily be exactly this far apart – it depends on the profile at any given point. The application will however attempt to record points as near Stepover apart as it can.


Backoff: After a touch. The probe will backoff this percentage of Stepover. Occasionally this might not be enough and you’ll get an “active probe” error from Mach in the status display. Just jog slightly off the profile and hit “cycle start” and the routine will continue. (Do not hit Mach’s RESET or the routine will start again from the beginning).


Feedrate: This in conjunction with the accel settings of your table is important and will determine the quality of the touch you get. For best results you need to find out what is the maximum deflection allowed for your probe and the minimum deflection needed to get an active signal, then set your federate and accel such that when the probe touches it travels about half way between these two limits. Again experiment for best results. Important: Setting accel (or more correctly, deceleration) to low will mean after a touch your probe continues to travel too far and can damage your probe. Setting accel to fast will likely result in jittery touches and will cause the routine to report “lost edge” errors. Experimentation with care with your particular table setup is the key to getting good probing. Again if you get “lost edge” errors just jog slightly towards the edge and hit “cycle start” again.


The triplet file in 2.5D probing: This file is constantly APPENDED to and so after a run you should copy it/rename it/move it/ delete it or whatever as subsequent runs will append to the existing file. This does not happen to the 3D triplet file.


Errors: I haven’t as yet added prolific error handlers. Sometimes you may get an “Internal Error - <G31Fix>” – I’m not sure why at the moment but cancelling the error dialog and ignoring it doesn’t seem to have any adverse effects. When you do this you’ll probably also get the Mach VB script interface popping up with the single line doSpinStop() – apparently a Mach legacy function to stop the spindle - ?. I usually just shut the VB window down and carry on – again it doesn’t seem to have any adverse effect (You may not even notice this window as it pops up behind Mach).

Very occasionally you may get a “Too many nests” when you start the probe25D.tap file – this is referring to the repeated call to subroutine – the line that says “M98 P1 L999” – you can drop this to 998 and it seems to keep Mach happy.




If at any time you want to un-install the probe utilities presented here, just use the add/remove programs option in Start/Control Panel.