setting your zeros before running a program (referring to milling only)

On a normal cnc you have two zeros: the machine zero and the origin. The machine zero never changes. It’s basically limit switches at the extremes of each axis that act as it’s “home” position. The origin is a point on your print where your program starts from. The origin basically tells the machine where the part is in relation to the machine zero so it knows where to start. How do you set your zeros on this machine with a machine zero? do you set your origin and when you run your program the machine takes its current location as its origin? lastly does estl cam let you choose your origin and if not how do you tell the machine where the stock is that it needs to cut away? Thanks in advance.

typo in the third sentence. it should be “part” instead of “print” because im referring to milling specifically .

So where ever the head is when you power on or reset the ardiuno is your 0,0,0. If you move the head by hand it is still at 0,0,0. If you move it with repetier or the LCD it will go back to 0,0,0 unless you reset or power cycle it (or issue some commands).

Your home and origin can be different. I stay away from that in any of my writings because it can confuse some people, and yes it is set in your CAM software. Large machines have those extreme stops so the machine does not tear itself apart. This machine has been designed not to tear itself apart, except the people that insist on using nema 23’s. The only thing you lose out on is being able to hit a “home” button. It is easy enough to just go back to 0,0,0 instead of hitting a button.

Did that answer your question.

My opinion about the whole thing is end stops add difficulty to the whole entire process (until you get advanced enough to do tool changes).
-With an end stop you need to precisely align your piece that is going to be clamped to the table to switches mounted on your machine, then make sure your origin is correct, usually with an edge finder (then you need to account for the offset of that as well).
-Without the switches, you just clamp down your work piece (make sure it is square, if that matters, usually not). Move the head to where you want it to start and hit go.

so if I’m doing a part that has multiple ops I can use an edge finder and repetier’s hand jog to re find my origin or do I need to move the head by hand? assuming, of course, that the features between to the ops are relative to each other such as cross holes ect.

You can use repetier or your hand. If you use repetier you need to reset the zero (or an lcd). You can just m999 it or if it is a pause in your gcode you need a different command to reset the zero without reseting your cut, I can’t remember it off the top of my head. G92 I think.

Is there a way to add “Set XYZ Zero”, “Set XY 0”, and “Set Z 0” to Marlin menu options?
I’d like to:

  1. Power on, Move the tool into it’s Zero Position, then menu over to set that as the current zero (“Set XYZ Zero”).
  2. Jog Z up, run some code.
  3. Tool change time, Change the tool and move the tool into the right Z height.
  4. Marlin Menu “Set Z 0”
    5 Repeat 2-4 for each tool.
1 Like

I think the custom menu that Ryan makes has these options.

1 Like

Hrm… I think mine is a Ryan Build… 414:Bugfix-2.0.x Got it from github and it says “V1 E CNC Ready.”. File name was “”.

Well, Cool I think I found where to add a Menu Item digging around.



  • User-defined menu items that execute custom GCode
    //#define CUSTOM_USER_MENUS
    #define CUSTOM_USER_MENU_TITLE “Custom Commands”
    #define USER_SCRIPT_DONE “M117 User Script Done”
    //#define USER_SCRIPT_RETURN // Return to status screen after a script

#define USER_DESC_1 “Reset All Coordinates”
#define USER_GCODE_1 “G92 X0 Y0 Z0”

#define USER_DESC_2 “Home Z Axis”
#define USER_GCODE_2 “G28 Z”

#define USER_DESC_3 “Home X&Y”
#define USER_GCODE_3 “G28 X Y”

//#define USER_DESC_4 “Heat Bed/Home/Level”
//#define USER_GCODE_4 “M140 S” STRINGIFY(PREHEAT_2_TEMP_BED) “\nG28\nG29”

//#define USER_DESC_5 “Home & Info”
//#define USER_GCODE_5 “G28\nM503”

Easy enough to add anything I want in there! Learning more every day…

1 Like

In the custom commands menu is home XY.

I use it all the time, then adjust Z to top of workpiece.

Then in custom commands do Zero all axes.

Then start milling from SD card.

1 Like

Thanks All,
It looks like the Marlin files that I downloaded "” had
#define CUSTOM_USER_MENUS Commented out in “Configuration_adv.h”.

Once I un-comment that I get the expected custom Menu’s!

One more idiot mistake in my build and I’ll be machining. Might be a day or so as I am full bore on cutting clear plastic for prusa face shields at the moment.