Using G54 through g59

I am able to set g54 through g59, but don’t know exactly how to use them. If I use the MDI and type in g55, then hit run, nothing happens. I would expect the machine to go to that point. What am I doning wrong?

1 Like

Don, your not doing anything wrong. Once you changed to G55, use the same MDI to (go to the work origin) for G55 (assuming you set something diffierent from any other X, Y position), and voila, your at the new work position.

1 Like

Hey Don,

G54 – G59.3 (Select Coordinate System) are commands that make an offset active. As a result of such a command, you get the zero coordinate set to somewhere else than it was before. After the command, you run a g-code that mills something. It will take as the zero coordinate where the offset you activated before told it to. This way you can clamp up to 6 (9 on buildbotics) similar workpieces on different positions on the wasteboard and run the same milling sequence on them one by one, either manually, or automatically with one single program that switches through the G55-G59.3 offsets and calls the milling program as a subroutine.

Yes, that is what I expected. But when I set g55 and then say go to work origin, it doesn’t go to g55.

Are you saying it doesn’t go to the coordinates for G55 in the offsets table?

Can you try…

  1. Home machine - XYZ should be MC zero(0)
  2. Do you see G54 at the top of the screen?
    3.Jog to a random position
    4.In MDI screen type ‘G55’ - hit enter
  3. Did top of screen now show G55
    6.Zero out XYZ on touch screen
  4. Move to a different random position
  5. Hit ‘Go to work origin’
  6. You should be at the G55 ‘zeroed’ location

Hey Don,

could you please enter into the command entry field of the MDI:

(debug, G55 offsets: X=#5241, Y=#5242, Z=#5243)

with all parantheses, and post the results.

G55 ; use coordinate system 2
G0 X0 Y0 Z0

Is this the command you used to move to origin?

1 Like

What you described is what I was expecting. What I get is different.

Home the Machine
I see G54 at the top.
In the MDI, I type in G55
I see g55 at the top.
I hit Go to Work Origin.
I doesn’t move to g55, it moves to my last project zero.

And you zeroed your G55 to the WCS position you were using as a test?

I entered the coordinates for g55 and saved it. Frome there on, I would expect g55 to go back to that point

Hey Don,

could you please enter into the command entry field of the MDI:

(debug, G55 offsets: X=#5241, Y=#5242, Z=#5243)

with all parantheses, and post the results?

Full disclosure I am still learning…but for my use cases I typically…

  1. use my 3D probe to find/set my XYZ zero for my current job, then in MDI enter G56 and enter (which I use in my F360 PP for most of my work) - or if I remember, set G56 before probing


  1. may have one or two dedicated offsets entered in the offset table, in that case I use MDI to call that Gxx, then when I hit ‘Go to work origin’ it moves there

Hey Don,

That is not logical. If you enter coordinates into both the G55 and G56 fields, how would the machine know which one to use? I don’t own and never will own a Masso G3, but I think that by entering values into these fields, you don’t make the G55 coordinate system active at the same time. You need to issue a G55 command first, and then do G0 X0 Y0 Z0, as I suggested above.

With the g-code command

(debug, #5220)

you can check which system is active. A result of “1” means G54, “2” means G55, and so on.

Are you ignoring me by intention?

1 Like

Maybe I wasn’t clear. If I use the MDI to invoke g55, and then click on go to work origin, shouldn’t it go to g55?

I will try your debug script tomorrow.

Hey Don,

I don’t have such a button, but what we are talking about is entering:

G0 X0 Y0 Z0

The last line means “go to work origin”.

The command with the numbers,

(debug, G55 offsets: X=#5241, Y=#5242, Z=#5243)

(with all parantheses) has the purpose to show what your G55 offsets are set to. It would be wise to see if these values are set to what you entered into the G55 X, Y and Z fields.

The command

(debug, #5220)

shows which G54-G59 coordinate system is active. A result of “1” means G54, “2” means G55, and so on.

How exactly are you setting those coordinates?
Are you doing it in one of the two examples I described?
I am on my machine tonight and confirmed again that these both are working as expected.

Thank You alph5u.I used your debug script and found out that my g55 somehow got mapped to my g56, so when I ran g55 and said go to origin, it did exactly that, to the same coordinates as g56. Got it fixed now.


I want to start using G54-G59 commands since I have several working areas now on my machine, one of them the rotary.

Today I set the coordinate system to G59, which the Masso screen confirmed.
My rotary is at the G59 position, and when I press go to work origin it brings the cutter to the correct position.

I can load a file, but the moment I hit cycle start the Masso screen changes from G59 to G54.

How can I avoid that?

Hey Tom,

I don’t have the Masso, but as per definition, G55ff. should be persistent until changed again or until power off and restart of the CNC Controller.

Maybe you can change that by telling your CAM program to not have a G54 command in the g-code initialization sequence. That could be an option in your CAM program.