Very good post!!! many of us dont quite understand the concept of operation. This will clear up alot of the explainatoin of many types of probes...
Thanks so much
Bob
I've spent the last couple of days tracking down how to use the digitizing capability of Mach3 to implement a z-depth and centering tool. There were several threads that were very helpful but didn't quite fill in all the blanks- http://www.cnczone.com/forums/showthread.php?t=36099
So in the interest of saving someone in the future the trouble of figuring this out here is a cook book on how to do it. Caveats: This article assumes you are using Mach3.
Here is a video of how this works: "http://www.youtube.com/watch?v=KOXY4O0UkRM"]YouTube - Mach3 CNC Probe Tool
Theory of operation: Mach3 allows you to read an input line through the parallel port that can be used for detecting contact with a metal plate. In conjunction with the G-code probe command (G31) you can drive your gantry under software control until it hits the plate. This facility can be used to very accurately move your bit to the plate. Depending on how the plate is oriented, you can find an X, Y or Z position.
Step 1: Wire up a probe circuit.
Cut a length of 16ga wire about 12' long- long enough to reach from your controller box to the front of your work surface. Open up your controller and attach one end of the wire to an available I/O pin. I used pin 15 on my HobbyCNC Pro board. You may also have to connect a 0.10uf capacitor between the wire and ground.
Step 2: Fabricate probe plates.
Build a touch plate. I made one plate out of a piece of aluminum angle. The other plate I made is a 1" piece of copper tubing inset into a 2.5" x 2.5" x 0.25" plexiglass. The bottom of the plexiglass has a cross hair scribed in it. The top has a 1/16" circular goove 1/16" deep that the copper tubing is press fit into. Cut the groove so that is is a slight interference fit with the tube so it will stay put. Attach your signal wire to the plates.
Step 3: Download and install the MachBlue screens
Download the MachBlue screen set from the ArtSoft web site http://www.machsupport.com/screens.php
Unzip the file and run the MachBlue_setup.exe program to install the screen set and .jpg screens.
Step 4: Download and install MachBlue modifications.
Download the BlueProbeVer3.zip file
http://www.cnczone.com/forums/attach...1&d=1207688579
Unzip the file and move the MachBlue.set file into your Mach3 folder. Then move the MacBlue_ProgramRun.jpg file into the Mach3/Bitmaps/MachTestScreens folder.
NOTE:
It looks like Artsoft did some reorganizing of their web site so the link to the Blue Screenset has changed. You can now download it from here
http://www.machsupport.com/screens/MachBlue_setup.zip
The modifications to the screen set are here http://www.cnczone.com/forums/attach...2&d=1207685850
Step 5: Startup Mach3
Start up Mach3. Go to the "View" menu "Load Screens" and choose MachBlue. Your screen should now look like this:
Step 6: Configure the probe pin
Go to the Config menu and choose "Ports and Pins". In the "Input Signals" list, enable "Probe", specify the Port# and pin number 15 (or the pin you plugged your probe circuit into). Make sure you save your configuration file when you are done.
Step 7: Use the Probe panel software
Always start out by touching the probe plate to the bit. If your circuit is working, the Touch Test LED in the Probe panel will turn green. Normally you only need to run 1 wire to the probe. If your router is plugged in and correctly grounded you shouldn't need to run a separate ground wire from your controller board.
The new Probe panel features several buttons that allow you to probe in the four cardinal directions, find a center or probe in the z direction. For instance, if you click on the x- arrow, after a 1 second pause the gantry will start advancing in the - x direction until it hits your metal plate. It will stop exactly at the plate and the DRO will show you the location in current coordinates. The other 3 arrows work in a similar fashion but advance in the other cardinal directions. The probe routine will run a maximum of 2" before it stops, so you need to jog your tool within 2" of the touch plate before you start.
The round circle with cross hairs button in the middle activates the probe search for the center of a round pipe centering tool. It advances in the 4 cardinal directions looking for the insides of the pipe and then computes where the center of the pipe is and advances your gantry to the exact center. After it finishes moving, the DRO's for x and y are the location of the center in current coordinates.
Finally, the z button will advance the gantry towards the table until it hits your plate. If there is a value set for the plate offset, the Z DRO will be zeroed to the work top and the gantry will retreat 0.25" above the plate. If you put a zero value in the plate offset field, the gantry will stop at the plate and the Z DRO will give you the vertical coordinate of the plate top.
That's it. Enjoy!
Similar Threads:
Last edited by ger21; 08-19-2009 at 08:11 PM.
Very good post!!! many of us dont quite understand the concept of operation. This will clear up alot of the explainatoin of many types of probes...
Thanks so much
Bob
Welcome to the CNCZone.
A really super job of documentation and photos, very well thought out. These are tools almost everyone needs. And you supplied what looks like all the information needed to build and use.
Can't wait until you post the next project. I have subscribed to this thread in antisipation of more neat projects to come. :rainfro:
Thanks for sharing.
How about incorporating a “Z” axis zero position utility into the centering tool. Since you need to look down in the tube, how about putting it beside the tube at the 3:00 position.
It would zero the X and Y then go up and to the 3:00 position and go down and zero Z then up and back to the center of the hole.
Or something like that.
:rainfro:
Mr. Chips-
I started out doing that and quickly discovered that you had to get the cross hairs exactly aligned with the cardinal axii of your machine, plus you have to input the additional offsets. By putting the cross hair center in the center of the pipe, you don't have to worry about alignment of the tool and you don't need to know any offsets and you don't need to know the diameter of your cutting tool. I'll admit it is a little bit of a pain looking down the pipe. Maybe I should add some led's so you can see better...
I'm finding that I don't always want to find or set the depth when I'm finding a center, so I separated the functions.
Here's a video of centering combined with depth finding- "http://www.youtube.com/watch?v=8OZNiOvetYY"]YouTube - Center Finder
Last edited by erniebro; 04-10-2008 at 05:08 AM.
Wow, this is great
I hadnt thought of using the top of the tube as your depth gauge...you are a genius in your own mind.....lol
Great work and easy to construct....
Bob
Hmmmm
Must be doing something wrong, the below screen shot is what I see after loading screen.
There was not a folder named "Mach Test Screens" so I created one and copied MachBlue set into it.
Any ideas?
Mister Chips-
It looks like you missed step 3 of the instructions. Make sure you download a copy of MachBlue from the Artsoft web site, unzip it and run the install program(MachBlue_setup.exe). Here's the site - http://www.machsupport.com/screens.htm or http://www.artsoftcontrols.com/artso.../downloads.htm
You will also have to do step 4 again.
I edited the step 3 directions above to make it more clear.
Sorry about that.
-Ernie
will try thank you
Great post erniebro.
Very informative write up Ernie! Quite impressive and simple solution with most of the hard stuff worked out.
I can see where the cross hair would suit close enough. Cutting a corner step locator into the bottom of the acrylic could work well to locate directly on a corner of the material. As long as at least one egde of the material were indicated in, should serve as a decent double edge finder in a one shot operation? Presuming the tube diameter is good and perpendicular to the base.
My thoughts were a banana connector on each piece to swap out devices as desired. Lots of options there I suppose.
Thanks for posting it.
DC
yea- this is just the starting point. You can make a plexiglass piece with an edge cut in the bottom, another with a corner cut in the bottom and yet another with a hole in the center that you plug various sized rods into for centering over holes.
You can also imbed a pipe in your fixtures for automatically setting up your machine coordinates for the fixture. Or, you can imbed a pipe somewhere in your table and use it instead of homing switches to set up your table reference coordinates.
I'm sure sure there are many other ways it can be used. Feel free to post your ideas and pictures of your plates.
I cut my copper pipe on the lathe so it would be square. If the pipe is tipped over in the plexiglass you will not get accurate centering. You may also need to chuck up a round rod instead of using your bit to get good accuracy. Depending on the design of the flutes on your bit, you may not get an accurate center because of how they touch the inside of the pipe.
-Ernie
I started to think about the possiblities of this probe idea for my K2CNC router and I came up with this idea (see pics.) You can probe in X, Y and Z all at the same time.
A very worthwhile and concise thread.
Keep up the great work, and thanks for taking the time to share the details with us.
Regards Benny
Being outside the square !!!
Ernie,
I'm new to custom screens and Mach 3 as well and have a question about it.
In the link by the Aussie he listed the Gcode that drove the CNC to do the moving to determine the desired point.
Does your modified blue screen already have gcode embedded to do the centering and Z axis finding?
What kind of language is the screen written in? I seem to recall while I was downloading the Blue Screen a screen customizing utility. I didn't want to touch it, it might be too dangerious to me now, until I get more familiar with Mach3.
Hager
Mr. Chips-
I originally put this cook book up on Joe's 4 x 4 forum but I went into the gory details of using the various Mach screen editors and VBScript. I quickly decided it was much better to just post the already modified MachBlue.set file with the buttons and scripts already installed.
I tried using several of the Mach screen editors and they all have various problems. I had the most success using the Mach3Screen version 2.7e with the MachBlue interface, but it crashes fairly often and you have to be very careful of where you click. It's like walking through a mine field. The programming environment is not very friendly. When you make a syntax error in your script it will not run and you get no feed back on what is wrong. You basically have to start out with 1 or 2 lines of known working code and gradually add on a line at a time. If the program stops working you back up to the last line you added and try to figure out what you did wrong. Kind of frustrating and definitely not the place for a beginning programmer to cut his teeth. And then the editor will crash and you have to start all over again.
I had a hard time sorting this stuff out. The Mach community seems to be going off in many directions at once- Flash, html, Visual Basic, etc. and the documentation and tutorial threads are all mixed up. There doesn't seem to be a very clear sense of direction and the basic underpinnings of the user interface technology have obviously been added on to one too many times. It looks like it is a prime candidate for major house cleaning and a rewrite. Still it's pretty amazing what you can do if you have a lot of patience.
If this hasn't scared you off, there is a nice Wiki with info on how to program - http://www.machsupport.com/MachCusto...itle=Main_Page and you can download the various screen editors from the "Screen Designer" section of this page: http://www.artsoftcontrols.com/artso.../downloads.htm
The basic idea is that the Mach user interface is built from one or more background .jpg pictures that are overlayed with buttons, Led's, DRO's, labels and other specialized panels. All the overlay information is kept in a .set file. For instance the default screens you see when you first install Mach3 come from 1024.set. The MachBlue screen comes from MachBlue.set. The screen editors allow you to modify the .set files to add buttons, DRO's, Led's, labels and other specialized panels.
A button can activate a canned Mach function, execute a G-Code program or execute a Visual Basic script. The Visual Basic scripting language has access to most of Mach's internal state variables and can read and modify them. VBScript can also execute G-Code instructions from within the script. Pretty powerful stuff.
You can open up the .set files with the screen editor and then double click on any of the buttons and see how they are set up. The programming code is all there for you to read and modify. Make sure you make back up copies of the .set file before you make any modifications.... Here is the VBScript I put in the centering button:
Rem VBScript to center probe inside a pipe
If GetOemLed (825) <> 0 Then 'Check to see if the probe is already grounded or faulty
Code "(Probe plate is grounded, check connection and try again)"Else
FeedCurrent = GetOemDRO(818) 'Get the current settings
XCurrent = GetDro(0)
YCurrent = GetDro(1)
Code "G4 P1" 'Pause 1 second to give time to position probe plate
Code "F4" 'slow feed rate to 4 ipm
Rem Probe left
XNew = Xcurrent - 3 'probe 3 inches to leftRem Probe right
Code "G31 X" &XNew
While IsMoving() 'wait for the move to finish
Wend
XPos1 = GetVar(2000) 'get the probe touch location
Code "G0 X" &XCurrent 'rapid move back to start point
XNew = XCurrent + 3 'probe 3 inches to rightRem Probe up
Code "G31 X" &XNew
While IsMoving()
Wend
XPos2 = GetVar(2000)
XCenter = (XPos1 + XPos2) / 2 'center is midway between XPos1 and XPos2
Code "G0 X" &XCenter 'rapid move to the x center location
YNew = YCurrent + 3Rem Probe down
Code "G31 Y" &YNew
While IsMoving()
Wend
YPos1 = GetVar(2001)
Code "G0 Y" &YCurrent
YNew = YCurrent - 3Rem move to the center
Code "G31 Y" &YNew
While IsMoving()
Wend
YPos2 = GetVar(2001)
YCenter = (YPos1 + YPos2) / 2
Code "G0 Y" &YCenterEnd If
While IsMoving ()
Wend
Code "F" &FeedCurrent 'restore starting feed rate
Last edited by erniebro; 04-10-2008 at 04:27 AM.
You'r very right, this is not the place for me to start working. At least not now.
I see the code in embedded in the screen itself. That was one of the things that was confusing me about the Aussy thread, I saw the gcode but didn't understand how it fit. I need to go back now and reread his thread.
I think I now see why you didn't specify a pipe dia, 3/4" or 1 1/4" would be just fine as it will move up to 3' looking for the side, find the other then divide by 2 to get the center. And because it is round it doesn't matter if the probe is started off center as the center is always the same.
But then you need to know (in code) the diameter and thickness of the wall of the pipe to rise up and move to the center of the edge and then down to set the Z. Don't think the Z code is in this. That's OK though.
Thanks for taking the time to explain this, I'm sure others will also appreciate and be stimulated to tackle one.
That's why I split out the z depth code from the centering code. I knew people would be using different size pipes and bits. I didn't want to explain how to modify the the button and I didn't want to clutter up the user interface with a bunch of offset fields you had to fill in. This solution is insensitive to fixture and bit dimensions.
By the way, the probe moves only 3 inches, not 3 feet.
-Ernie