Setting home with LCD

Feel like I must be missing something basic here…

  1. Machine is off. Z is at minimum (resting on the rollers)
  2. I turn it on. info shows I’m at 0,0,0 (alternating with ??, not sure what that means)
  3. I move the Z axis to +50, info screen shows 0,0,50
  4. At this point I want to set this as my ‘home’ position. The docs ( say to “select the “Set Home Position” in the menus”, but don’t say where this option is. Under Configuration -> Advanced I see “Set Home Offset” but I don’t think this is the same thing?
  5. In the V1 custom menu I see a Reset XYZ option, which sounds sorta correct, so I select it. Info shows 0,0,0. Sounds good.
  6. I move the Z axis -20. Info screen shows 0,0,-20
  7. I select ‘Home Z’. The Z axis moves downwards and collides with the base and I have to emergency stop it. I would expect ‘Home Z’ to move up 20mm back to the original position (which was 0,0,50 but is now 0,0,0)

What am I doing wrong here?

Is there any documentation of what all the menu options actually do on the LCD? I saw there was an “Auto home”, and some searching suggests I don’t want this unless I have some extra sensors. I see Home X, Home Y, and Home Z under the Motion menu, but also Home Z and Home XY under the V1 custom menu. I assumed those would move back to the home position, but not sure why they’re in two places, or if they’re actually different…

Anything with a “Home” in it whether it on the LCD, or g-code, or Repetier-Host, etc, is looking to home the machine against hardware switches. In the case of the of “Home Z” it is typically looking for a touch plate for setting an end mill to the top of the stock or the top of the spoil board. If you ever put dual end stops on your LowRider, then you need to do a bit of research on the forum about Home Z and G38.2 probing. Looking at just the V1 custom menu on the LCD screen, you can see (and modify) this menu in the firmware. In configuration.Adv.h, you will find this section:

#define CUSTOM_USER_MENU_TITLE “V1 Custom Menu”
#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”

If you are comfortable flashing new firmware to your board, you can change this section to display any titles you want and to execute any g-code you want. To see what what each menu items is doing, you can look up the g-code being executed in the menu in the Marlin g-code reference.

  1. I turn it on. info shows I’m at 0,0,0 (alternating with ??, not sure what that means)

The questions marks go away if the machine has been physically homed against the end stop switches. If you execute “Reset All Coordinates,” the “??” come back since the machine has lost its sense of the minimum physical limits of the machine when you set a new position as the origin. From a practical stand point, the only difference is that when firmware thinks it is at Home (min X and Y), it will not allow you or any g-code you execute to move to negative X or Y coordinates. If you don’t have end stops, you can ignore the “??”.

Edit: If you don’t want to mess with firmware, you can put individual g-code files on your SD card and execute those files to do anything you want. Or if you are using Repetier-Host, you can define g-code to be send for the custom buttons.

AFAIK homing isn’t related to a coordinate system. It’s a hardware function to move the specified motors until the corresponding limit switches are triggered. The switches only work for homing and not for regular motion.

Do you have end stops? If you don’t then those features in the LCD aren’t going to work for you. I think you’re trying to re-set the work origin. Look around for G92 gcode info and I think you’ll find what you’re looking for.

LCD will work fine without end stop. He just cannot execute any “Home” commands from the LCD. From the V1 menu on the LCD, “Reset All Coordinates” executes a G92.

Homing the machine does not move to the zero position, it moves to the endstops and then sets the zero position.

I wonder where this assumption that home goes back to 0,0,0 is coming from. I haven’t seen this question for several years and then something like 3-5 people have asked this in the last few weeks.

I’m not picking on OP here. Clearly there are gaps in the documentation and communication. I am just wondering if there is a misleading sentence in the docs or a video somewhere.

I don’t have any end stops, just physical blocks on the ends to stop it from going to far.

So, both ‘auto home’ and the ‘home’ options on the LCD are dealing with the same thing? (using end stop switches/etc to auto-position the machine)

And there’s no option anywhere to go back to 0,0,0, I have to do it manually? That seems weird.

I get ya… Everything I’ve encountered has seemed to treat these as the same. So much so that it makes me question you guys saying that Home is always an auto-positioning thing, in fact :confused:

Again, from the docs:
“The “Origin” or “Home” or “Zero” is the single place where the X,Y and Z coordinates are equal to 0.000.”

“to set the origin…select the “Set Home Position” option from the menu”

On setting origin using Using Repetier:

"Similar to the LCD method, use Repetier Host’s controls to jog to the desired origin location, and then send a G92 X0 Y0 Z0 to set the origin. You also need to send a @**isathome**"

From the starting instructions (

“Setting the z-axis origin to the top of the material makes it easy to set the home position, along with that is program start – at origin.”

" Zero>Create arbitrary point** , then select outside of the DXF paths. This is how to set your origin (or Home).

I’m sure I can find more stuff, this is just the two docs pages I happened to have open at the time

I might have written some of that…

In my mind the “home position” is at 0,0,0. The verb of “homing” is finding or setting it. Not going to it.

It may also be true that the name of the set home position has changed in the firmware. That is worth looking more closely.

And thanks for the pointers to the docs. I’ll see if I can make those clearer when I am at a keyboard.

If these questions are primarily coming from the LCD use, then it would be easy to add two more menu items to the V1 custom menu.

  • Goto XY (0,0)
  • Goto Z (0)

That’s a good idea. It would be a good PR if anyone is interested. The custom lcd screen (for the older screen, not the tft) is here:

If you have end stops, then those are the same, aren’t they? (finding it is the same as going to it). If you don’t have end stops, then there’s no concept of finding it, besides from the user positioning the tool manually at the home position. At which point you set the home/origin and that becomes 0. Without end stops there is no 0 until you set the origin. So I feel like it makes sense to refer to them interchangeably, it’s just weird that the LCD has all these disparate options that don’t make any sense (but are still active/available) without having any end stops.

I was under the impression that you need to flash a different firmware if you need to use end stops, is that not correct? If that is the case, then I don’t get why any of these options are available at all.

Also, can someone confirm what “Auto Home” does vs the “Home X/Y/Z”?

I may try to look into this eventually, since I’d like to customize the menu a lot anyway, but a bit out of my league currently :frowning:

Definitely would be interested. I ordered a pi for cnc.js control because the LCD was effectively unusable for most operations.

My workaround in the meantime was this: on my SD card I created a folder for macros of the functions I needed, and had a ‘ZeroXY.gcode’ file in it (among others) that simply had this line:

G92 X0 Y0

So I’d jog the machine to where I wanted zero to be and then run it. I specifically wanted separate XY/Z zeroing commands because I lift the Z before jogging and don’t necessarily want Z zero to be taken from the same place as X and Y.

No. Let me play through an example:

  • you power on the machine. Its out in the middle somewhere. It thinks this is 0,0,0 (it doesn’t know any better).
  • sending it to 0,0,0 won’t move anywhere. ATM, the “home position” or “origin” is set to this random spot.
  • you install a board to cut, install a bit and move the bit to where you want the origin. The 0,0,0 is still that random spot.
  • you send G92 X0 Y0 Z0. This is now the “home position” or origin.
  • you “verb home” the machine, it travels until it feels the endstops and then sets that as the origin. It completely forgot where the work piece.

Let me add this in just in case. The machine has no idea where it is when you turn it on. It quickly forgets where the endstops are when you reset the origin. There no way (without endstops) for it to move to its minimum coordinates. If that’s what you’re looking for, you need endstops.