Machine position questions

I was creating a chart for myself of various machine positions so that I could potentially lessen my reliance on touching off the stock. I would also like to position the workpiece from known machine position values.

To this end; I selected machine position coordinates from within Carbide Motion’s first page and determined where the rapid position coordinates are on my machine. On initialisation, each of the values for X, Y and Z read - 3.000.

Rapid position movements with their X, Y & Z values are detailed below:

SW: X - 11.000, Y - 145.500 & Z - 3.000
S: X - 210.500, Y - 360.000 & Z - 3,000
SE: X - 410.000, Y - 360.000 & Z - 3.000

W: X - 410.000, Y -145.500 & Z - 3.000
C: X - 210.500, Y - 145.500 & Z - 3.000
E: X - 11.000, Y - 145.500 & Z - 3.000

NW: X - 410.000, Y - 11.000 & Z - 3.000
N: X - 210.500, Y - 11.000 & Z - 3.000
NE: X - 11.000, Y - 11.000 & Z - 3.000

Z High: -1.000
Z Low: - 95.000

I made each of these reading 5 times to assess the accuracy. I am reasonably certain that the machine is working as it should.

I note that the machine position readouts do not convey direction (just position as far as I can see). Would it be useful to have the readouts indicate the direction of travel? Where the minus sign appears next to the readout value when moving across the table from right to left, it makes sense. When the Z carriage is travelling from left to right, could it not show a plus sign next to it to indicate direction of travel? Likewise front to back movements could usefully have a plus sign and back to front directions could show a minus sign. Finally, the Z direction could show the minus from top to bottom and plus when the spindle is moving up the carriage. This may belong better with a feature request but I was not sure.

Jeff, I’m new to all of this but I found this tutorial very informative, maybe it will you?


Hi Ken, Thanks. I was aware of that document and contents. I am pushing for having definable rapid positions and having the machine position show the direction of travel in a conventional manner when the rapid motion is undertaken.

My newly upgraded baseboard benefits from 840 evenly spaced 6mm threaded holes and I was hoping to use a method that permitted me to specify the position so that the machine would go directly to that point and machine the instructions.

The last two images in the opening post at the link may assist you to see where I am hoping to drive the rapid positioning question.

You can enter whatever machine position you want to go to in the MDI.
You could also use G28 and G30.
And, not sure if compatibility with Motion, but you could use different WCS (G55-G59).

1 Like

Hi Neil. Thanks for this information and the relevant code numbers. I had not considered it as an option on account of being GCode blind. Do instructions entered in the MDI have an immediate effect? Are they persistent across jobs like the stock zero position? GCode - just another thing to learn while on this CNC journey. I have to take a look and see what can be achieved. I would like to make a small code block to position the spindle carriage in the same way for each job (aside from the stock thickness and tool length).

A small gentle reminder that the reported positions are all relative to the position the machine was when the limit switches were tripped.

Therefore, depending on how repeatable and precise the switches are, it is possible that the physical position of the machine can differ between initializations whilst the reported values in the UI remain identical.


Thanks Gerry, that is a timely reminder. I had not considered the possibility. I had thought that the position of the proximity switches was set and unlikely to move once the sensor had been fixed into place. I guess the only way to be certain of the zeroed position is run a weekly position check/zeroing routine. You have just saved me from making an elementary mistake. :slightly_smiling_face:

It’s not sure the position will actually move… my nomad is very stable in this respect, a your machine might have very high repeatability too.

It was more a reminder to keep in mind that the machine itself has no idea of physical space and so the software doesn’t either.

Yes, thank you, I do appreciate that point, Gerry. I suppose now might be a great time to see if the skills of @fenrus could write a small routine that I would routinely use to run the machine to its 9 cardinal points and gather the actual z carriage positions. Then the routine would have to insert the X & Y start values into CM machine via MDI, after letting me enter the z height (lip of modular vice) so that it would position the spindle dead centre of the milling area (position ©) at the specified Z height. Something like that anyway.

actually the machine will just output its view of the coordinates of where the spindle is on the console (MDI log) so no tool needed really…
the only fun there is absolute (compare to home) versus relative-to-zero… but in the CM UI you can clear the zero point and then those are the same

1 Like

If the machine is idle, yes.

What exactly are you trying to do? Just move to a specific machine location?
Will that location be the same? Will you have multiple locations?

When the machine is idle and the MDI input is made, is there anyway to make that input persistent? I mean in the same way that zero is persistent between jobs or when the machine has been switched off.

What I would like to be able to do is run a routine which determines the actual machine values at the rapid positions and makes them persistent for the duration of the job (or until adjusted by the user) and this would be a regular pre-job calibration routine.

I would also like to be able to plumb in the Z height, which we will know because it will be a combination of the vice lip height plus the stock thickness. The tool length could be derived from the standard BitterSetter routine. The job would then be run on the basis of the values found at the calibration routine. So long as the stock was regualr in size and shape, it could remove the need for the BitZero routine.

I would like to run this single calibration routine that determines the numbers at all of the rapid positions. I would like to define the rapid positions myself and make them persistent.

in part a mozes vs mountain issue. Can you move your vice such that it is at a CM rapid position?

1 Like

Will move to any machine position you want.

Machine position is always relative to the home position, defined by the homing routine and switches.

What are you machining in the vise? Wood? Aluminum?

1 Like

Depending on what level of accuracy you are trying to hit, I would caution against using fixed coordinates for anything on these machines. I have found the homing cycle to be repeatable within +/-0.003" at best. I always re-zero whenever I home the machine.

Yes, of course I can do that, Arjan. I was attempting (maybe wrongly) to see if I could move the machine to any known location with some useful additions. At this time the set known locations are the rapid positions. My thought was this: If I ran a calibration routine that found out what the actual vaues were in terms of the ones displayed as the actual machine position, I could then have the machine move to those positions after including stock dimensions and vice dimensions. Possibly, this could be achieved on the basis of the mathematical relationship between the stepper motor and the Z carriage position.

Does that sound completely off the wall? If the machine knows where the machine position is relative to the home position (which it displays as X - 3.000, Y - 3.000 and Z - 3.000 at the initialisation of CM) is it not trivial to move the machine to any available and known location… while permitting the moving routine to take account of the stock size and thickness and any work holding height dimensions? The BitSetter routine could be initialised to derive the tool length dimension after such a move.

I thought it would be useful to be able to issue a command that moves the machine spindle to any Cartesian location available. In itself it may be not be a madly useful attribute. This could change if it could account for the stock thickness and dimensions as well as any workholding addition, like my modular vices for example. It could be the basis of initialising the machine without the need for BitZero, which manages to derive Z height but not the X & Y values for irregularly shaped workpieces. Each of the 840 holes in my tooling plate is an absolute location in X and Y and could help to define the starting point of any machining routine.

It is trivial…see my previous reply.

Thanks for this Neil. I see that there is a command to move the carriage to any available machine position. I am not in doubt that I can do that when and how I want. To my mind, it would be rational to do it before beginning any cutting routine.

Is the initialisation routine different from the homing routine? By this, I means that I know that the initialisation of CM causes the machine position to display as X -3.000, Y - 3.000 and Z - 3.000. If one starts a process that includes a move to the home position, will the machine position necessarily be the same as it was at the initialisation of CM position? I have noticed that the position of the machine on pressing the rapid button to NE after running a process is different from the position adopted by the machine at first initialisation of CM.

I will be machining both wood and aluminium as well as other metals like brass.

I’m not sure the z-axis position can be reliably known in your scenario. The bitsetter doesn’t measure the tool length even though it appears to. Without the tool length, you can’t really calculate the z position properly.

Thanks Nick. That is helpful to know. I would no doubt discover this when I start my measurements with a dial test indicator. I would say that ±0.003" with wood stock is unlikely to be problematic. It could prove to be difficult if trying to machine metal to a better tolerance than that.