A macro question

Is there a way to add a homing command to a macro.
I am using Estlcam 12, Nano board with Estlcam settings.
What I would like to achieve is a macro that will first home the machine and then move to an offset position where I commonly have a jig setup for a repeatable job, and then zero the machine ready to start.
I can do it all manually with the homing button and then a macro, but I would like to combine the two operations into a single macro.

I found the information, and it appears that what I want to do is not possible from the list of commands available. :sob:
There is a fault in the software, the popup for command line has a link to the Estlcam website that is suppose to link to the Requirements for CNC Programs page, but it goes to the download page instead.
I found another link that does work properly on the popup that is from the load file button, that is where I found the hidden information.

If you’re regularly going to have a fixture in that location, it may be worth investigating G54, G52, and G92 G-Codes [Work Offsets for CNC Fixtures].

I use those codes with my GRBL machines, but Estlcam doesn’t support those codes.
That is the problem. I guess I will have to use the same method I have been using, home first then macro.

Taken from the Estlcam website;

Requirements for CNC Programs

  • Estlcams CNC controller is able to process CNC programs created by other CAM programs…
  • But those CNC programs have to meet Estlcams requirements…
  • As almost no CAM program offers dedicated post processors for Estlcam you’ll usually need to try and customize yourself…
  • Estlcam is able to perform any 3d move - all necessary commands are supported…
  • But the g-code interpreter is very basic without any gimmicks…

Supported G-Codes:

  • G00 rapid linear move…
  • G01 linear move…
  • G02 arc clockwise…
  • G03 arc counterclockwise…
  • All other g-codes will be ignored without error messages or warnings…
  • Repeating g-codes must not be omitted:
    • OK:
      G01 X10 Y20
      G01 X15 Y10
      G01 X20 Y5

    • Not OK:
      G01 X10 Y20
      X15 Y10
      X20 Y5

  • Only 1 g-code each line - following codes will be ignored…
  • No cycles → cycles need to be broken down into discrete G00 - G03 commands…

Supported M-Codes:

  • M00 program pause…
  • M01 program pause…
  • M03 spindle on…
  • M05 spindle off…
  • M06 tool change…
  • M08 output 1 on…
  • M09 output 1 off…
  • M10 output 2 on…
  • M11 output 2 off…
  • All other m-codes will be ignored without error messages or warnings…
  • Additional outputs can be controlled by “A(output number) on” respectively “A(output number) off”.
    e.g. “A4 on” will switch output 4 on…
  • Only 1 m-code each line - following codes will be ignored…

G02 / G03:

  • Only “I/J” format - no “R” format…
  • I / J only relative to X / Y…
  • Repeating J / J coordinates may be omitted…
  • Unit according to the length unit selected in Estlcam…
  • Simultaneuous Z-move / helix allowed…
  • Full circles not allowed…
  • Plane changes not allowed - only X/Y plane…

X Y Z coordinates:

  • Only absolute coordinates…
  • Repeating coordinates may be omitted…
  • Unit according to the length unit selected in Estlcam…
  • Direction of the Z-axis: positive numbers = upwards…
  • Plane changes not allowed…
  • Origin or coordinate system changes not allowed…

F and S:

  • F feed
  • S spindle speed
  • Unit according to the feed unit selected in Estlcam…
  • Speed unit = rpm…

Misc:

  • Number of decimal places as you like…
  • Both “.” or “,” are accepted as decimal separator…
  • No thousands separators…
  • Line numbering possible but not required…
  • “G00” “G0” “g0” etc. are all treated the same…
  • Comments in Brackets ()…
  • Text encoding UTF-8 or ASCII…
  • No cycles → cycles need to be broken down into discrete G00 - G03 commands…
  • No sub program calls…
  • No mathematical expressions or functions…
  • No variables…

Estlcam G-code coordinates are all absolute distances from the project origin (I/J are relative to those), i.e. are workspace coordinates. The only requirement is setting a project origin. There is no need for homing unless you use settings that indirectly use machine coordinates, e.g. parking (converted to workspace coordinates in the G-code), or want to use M axis commands in your macros.

If you need homing you only need to re-home the machine when you think you may have lost steps. Unlike GRBL, Estlcam remembers your coordinates indefinitely. When you restart the machine the actual spindle coordinates will be less than a full step away from where they were when you shut it down. My guess is that the +/- restart accuracy is as good as the +/- re-homing accuracy.

What I would like to see is more options for automatically setting the project origin, canned or via added macro functionality. Currently the only canned/single click option is the left-front 3-point auto probe. I use a circle center project origin and I would love to be able to do it with a single click. Doing it with a macro would require probe functionality, the move/touch/0/retract bit… as would your wish for homing via macro.

That is very interesting Dave, and I do remember thinking to myself on a few occasions, “How does Estlcam know that?” as it seemed to remember where it was although I have not homed.
For instance, once I remember that I had not homed and a tool change happened, and Estlcam went to the normal tool change position. I couldn’t understand how that was possible, now I know.

Estlcam’s stored coordinates is one of its many useful features. As Phillip recently said, there is no going back to GRBL after using Estlcam.

After using both for quite sometime, I would have to agree on that, especially for milling.

…it’s not a single click and I’m not sure if it was worth the effort, but macros (the quick moves) do make same size circle center probing easier.

Which v12 has with it’s auto retract on probe plate contact. In the example I use 10mm distances for the probe moves where the plate is ~7.5mm away. I got my one click macro (.txt @ Proton Drive) and it was a lot easier than expected.