Work Offset gcode - G54 G55 G56 G57 G58 G59

While visiting this guy’s YouTube channel (from a recent reference on this forum), his video on work offsets caught my attention since this is something I do manually during a job for part production.

Basically, he keeps several fixed locations on his base and references them when he wants to run a toolpath on a part at that location. His XYZ zeroes are saved per location (with the work offset codes), and his bit length is normalized (by bottoming toolpath’s bit into the collet.)

I can’t find a reference to it now, but I thought that G54 G55 G56 G57 G58 G59 offsets were already being used by the Shapeoko. Is there a way to implement the I. D. C. Woodcraft method while still using the BitSetter integration? (One problem with his method is that he maintains bit length measurements by bottoming the bit into the collet.)

I. D. C. Woodcraft Work Offset gcode {YouTube Ending Summary}

1 Like

My understanding is that in current versions G54 is used by the machine, but the others may be available for use — but it’s not guaranteed that that is the case, and one should test w/ each up-date to verify that we aren’t clobbering one’s coordinates.

1 Like

@CrookedWoodTex Basically, you have your machine coordinate system (G53), and six available work coordinate systems, or WCS, that are a known offset from the machine coordinate system. You can set your origins for each of those WCS easily by jogging to the location you want and sending “G10 L20 P*** X0 Y0”. The *** in this case would be the number for the WCS you are setting the XY origin for. P1 for G54, P2 for G55, and so on, up through G59. All of this requires homing first, so the machine knows where it is.
Let’s say I make a lot of bottle openers and I mill a lot of PCBs. I have a square mounted to my machine to set my 1x6 for the bottle opener and somewhere away from that, I have a small pocket to set in my PCB blank. I could set my G54 origin to my desired work zero for my bottle opener by jogging there and sending “G10 L20 P1 X0 Y0” (you could add a Z0 if you know you won’t need to probe). i can jog to my PCB pocket and send “G10 L20 P2 X0 Y0 Z0” to set my G55 work origin. From now on, after I home and when I’m in the G54 (usually default) WCS, I can send G0 X0 Y0, and my machine will go to the same spot. You could actually just start your carve from wherever your home is and it will still use the correct work origin. Just home your machine and carve. When I’m ready to mill the PCB, I’ll make sure my gCode is is set up for the correct WCS (G55), home, and carve.
Be cautious when using the different coordinate systems. You may have everything set up for your G55 origin, but if your gcode has a G54 in the header (again, default), you’re machine will carve in that WCS. You may think Z3 is 3mm above your workpiece, but if you’re in the wrong WCS it may be closer to the bottom of your workpiece. You can change from working in one WCS to another by sending G55 or G57 or G54 or whatever.

The Shapeoko doesn’t “use” any of them for anything. I saw somewhere, years ago, that Carbide Motion uses one of the “other” WCS, but I always used them without issue. I haven’t used CM in a long time though.

4 Likes

So, to summarize bits of each of your explanations:

  • G54 - G10 L20 P1 X0 Y0” (Z0) possibly reserved by Shapeoko
  • G55 - G10 L20 P2 X0 Y0” (Z0)
  • G56 - G10 L20 P3 X0 Y0” (Z0)
  • G57 - G10 L20 P4 X0 Y0” (Z0)
  • G58 - G10 L20 P5 X0 Y0” (Z0)
  • G59 - G10 L20 P6 X0 Y0” (Z0)
  • Change from working in one WCS to another by sending G55 or G57 or whatever.
  • Be cautious enough to scan gcode for a default WCS included from CAD
  • Check your work offsets for all work coordinate systems by sending $# straight to the controller. It will report back in the log with those offsets (distance from Machine zero / home / limit switches).
  • Rapid Position coordinates will be updated based on the Travel Dimensions specified in Carbide Motion, and where they actually fall on the machine will be determined by the adjustment of the homing switches.

@WillAdams I remember that you have some posts on changing the fixed locations built into CM (C, N, S etc.) and use them yourself. Do those have anything to do with the these G54 G55 G56 G57 G58 G59 WCS? Will those locations disappear with a change to a different WCS?

For current versions, the Rapid Position coordinates will be updated based on the Travel Dimensions specified in Carbide Motion, and where they actually fall on the machine will be determined by the adjustment of the homing switches (I actually adjusted my X-axis homing switch to get the center to physically match the center of the machine on my SO3), and the pull off dimension specified in Grbl.

G54 is the default workspace that everyone uses most of the time. It wouldn’t be “reserved” as you change your work coordinate offsets (work zero) all the time.
You could check the log when you issue a rapid position command, but I’d assume (I know) that those commands issue moves in the G53, machine coordinate system, so that they would not be affected by any work offsets.
You can check your work offsets for all work coordinate systems by sending $# straight to the controller. It will report back in the log with those offsets (distance from Machine zero / home / limit switches).

2 Likes

Thank you. I’ll have the info I need to develop a method to improve my productivity when I get ready to do it.

Don’t know if it will help you but I wrote a program called CMLauncher". It allows me to save multiple “zero” positions. Then I can select the “zero” I want and then launch CM.

CMLauncher

2 Likes

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.