Mach 3 axis calibration macro

More
09 Jun 2017 12:16 #94331 by natholego11
Hi,
I have a home brew machine and I machined out a block yesterday that was nominally 2.000" x 2.000" after cutting it out it measured 2.016" x 1.986". I ran some initial calibrations but trying to convert the numbers on my dial indicator to steps is proving challenging. I have metric ball screws and English dial indicators...

My question is, Mach 3 has/had an axis calibration macro it could run that would allow you to move the axis a given amount then ask you how far the machine moved. you simply input the distance and it automatically calculated the steps required to move the proper amount. if you ran this 4-5 times you usually would get a pretty good/accurate machine.

Now that I have moved to Linux CNC which has been a wonderful experience so far. I am finding it challenging to get the proper amount of steps for my machine.

Can anybody help?

Thanks
Nathan

Please Log in or Create an account to join the conversation.

More
09 Jun 2017 12:47 #94334 by Todd Zuercher
Linuxcnc does not have such a feature, but I don't think it would be hard to do something very similar with a couple simple config changes. If you were to set up your config with the stepgen resolution set to a simple number such as 1000steps/inch or 10000steps/inch then commanded a 1 inch move and measure the actual distance moved. You'd then just divide the 1000 (or 10000) by the distance moved. For example it moved 0.750" for 1000 steps your step scale should be set to 1333.333 steps/inch. But all of that will be meaningless if the machine is missing any steps for any reason.

I don't like to rely on measurements myself (too much room for error. I'd rather calculate what the number "should" be. What is your screw lead (metric numbers are ok)? Do you have any belt or gear reduction between the step motor and the screw, what is it? And finally what if any micro-stepping is your drive using (how many steps does it take to turn the motor one rev)?

Please Log in or Create an account to join the conversation.

More
09 Jun 2017 14:04 #94345 by natholego11
Stepper - 200 steps/in
microstepping is set at - 16
stepper pulley - 1.094"
leadscrew pulley - 1.563"
leadscrew is 4mm/rev or - 6.35rev/in (if my math is right)
so steps per IN is - ~29031.22486
and if I use this number and tell the machine to move 1" then it moves ~.986"

the pulleys OD (with flanges) are listed above. The tooth count of each pulley are 14 and 21 respectively.

Please Log in or Create an account to join the conversation.

More
09 Jun 2017 14:47 #94348 by Todd Zuercher
So that would be 200*16=3200 steps/motor rev.
and 3 turns of your stepper will turn the screw twice. (go by teeth not diameters)
9600steps/8mm*25.4mm/inch = 30480steps/inch

When you take your measurement of the axis movement, be certain you try to take any backlash out of the equation by making 2 moves in the same direction, one move to remove backlash then your measured move. So jog in the + direction, zero your measuring device, then move +1inch.

Please Log in or Create an account to join the conversation.

More
09 Jun 2017 14:59 #94350 by Todd Zuercher
PS It isn't that you can't use diameters to do the calculation, its that you have to use the pulleys "pitch diameter" not its actual outside diameter, and that isn't a completely straight forward thing to measure.

Please Log in or Create an account to join the conversation.

More
09 Jun 2017 15:26 #94356 by natholego11
Gotcha, now that you say that / do the calculation that looks like what Linux came up with. but either way the numbers that were in there were not directly translating to 1" and that was the issue. I am eliminating backlash just so we are clear.

Regardless the question remains, how difficult is it to write a simple program to do this? I am quite familiar with C++ and my friend tells me PYTHON isnt much different so I wouldnt mind taking a crack at it, but there is some logic that I am unfamiliar with. like actually sending the correct data through the correct ports on the parallel port etc etc.

Please Log in or Create an account to join the conversation.

More
09 Jun 2017 15:56 #94360 by Todd Zuercher
It might not be too hard to add something like this to Stepconfig's axis test. (Which would seem to be the logical location for it.) But I don't see a simple way of integrating it into a user interface for a running config. I am not a programmer and don't have a clue what the difficulties might be with modifying Stepconfig.

Please Log in or Create an account to join the conversation.

More
09 Jun 2017 16:14 #94362 by Todd Zuercher
On second thought perhaps it would not be too hard to setup a NGCGUI type of program that could be set up with a GladeVCP window to make the appropriate calculations, and moves to let you make your measurements. But it does seem more trouble than it's worth. Since really all you need to do is command a 1" move then divide the "SCALE=" number in your ini by the actual measurement. And the whole idea falls apart for machines that don't use identity kinematics.

Also, if your machine is coming up short, how do you know that it isn't loosing steps?

Please Log in or Create an account to join the conversation.

More
09 Jun 2017 16:30 #94363 by natholego11
in regards to the losing steps questions, it is repeating the exact same measurement over and over, I think if it were losing steps it would not only be different, the measurement would also be less each time.

Please Log in or Create an account to join the conversation.

More
09 Jun 2017 16:54 #94364 by Todd Zuercher
How long of a move can you measure?
If a 1" move is as much as you can accurately measure. Measure that, then starting from the same position (and using the same backlash uptake procedures), measure 2 half inch moves, then 4 1/4" moves. Do those end at the same point as the 1" move.
That should shine a light on if you might be consistently loosing steps on acceleration.

Please Log in or Create an account to join the conversation.

Time to create page: 0.320 seconds
Powered by Kunena Forum