Somewhat lost about how to set home and start points?? W/ Dual endstops

I know ive made like 10 posts today…im super pumped to get this thing working. This is the one thing im so lost about and im literally working with a 3 Axis Hass today, which is what might be throwing me off the most.

I have a Rambo 1.4 with dual end-stops and a LCD.

My MPCNC isnt totally put together but I got it wired up like 80%(missing z) and fired up the LCD/Rambo board. I dont have the belts connected yet but I should have that done tonight. I got the steppers to move with the LCD and also on Repetier.

Now the fun part, on the Hass I use at work we move the spindle to where we want and set it using G54-55 on the machines screen. Then in the beginning of the Gcode we tell it which one we want to use.

So on the MPCNC with ESTLCAM how would you do that? Or how do you do that on the LCD screen. Do you manually move the axis with the lcd screen or Repetier on to the desired home on the part (X,Y,Z) you want to machine and somehow tell it that is its new G54?


Im told that the dual endstops are the “home” but how does it know that, is that considered x0/y0? When you work with ESTLCAM do you have to modify the code every time for a new home? Granted im sure its not as complicated as im making it out to be but maybe you guys can break it down.


Thanks all!!!

I’m still in the process of building mine, but based on everything I’ve seen, most MPCNC gcode uses a “raw” G92 to set the machine location. I think the workspace coordinates are relatively new to Marlin, and I’m not sure if they’re enabled by default (go ahead and try sending a G54-59.3 and see if it’ll take it).

Even if we gotta use G92 that’s fine how do we tell it hey this spot it’s at will be G92 I wonder??

To clarify, “homing” the MPCNC isn’t truly homing, but more squaring up. Homing is manual jogging followed by G92 (with whichever coordinates you’re working with).

OK, there’s auto-homing for the Z-axis, but that’s so you can home on either the top of the stock or the bottom, but X/Y homing on the workbed is somewhat nonsensical, as you really want to home on the stock, which could be anywhere on the work surface.

But I assume that’s old hat, if you’re playing with a Hass at work… :wink:

As to “how” you get the mill to where you want home? Dealer’s choice. Well, I’d advise strongly against muscling the head over on your own, but otherwise, jogging with the LCD, with Pronterface/Repetier, sending G0’s by hand, whatever rustles your jimmies. Once the mill is in the right place, give it the old G92, and fire off your job.

1 Like

In regards to messing around with the LCD manually moving the AXIS I noticed there is no negative movement when I scroll the knob over, is that normal? On the Repetier it seems to go back and forth fine.


Thanks so much let me see if I got this work flow correct (I will be using ESLTCAM most likely):

  1. Part is already placed down on wasteboard, Manually move the X/Y over desired starting point and touch off on part with Z.
  2. Type in "G92" in Repetier
  3. Open up ESTLCAM and run code from there making sure the first lines of the GCode it outputs are G92 ect ect ect?? So it can reference what you set in Repetier?

If the first line of your gcode is G92, then you don’t have to worry about sending it by hand. Not that it would hurt, just not really needed. Conversely, if you send G92 by hand, there’s no need to include it in your CAM start-up code. Again, won’t hurt, but not technically needed. Heck, might not be a bad idea to do both until you figure out your workflow, and then optimize from there.

For the LCD movement, I’ve found that on my controller, using the Discount LCD (not the full graphical one), I can’t go to negative X/Y values either. But then, I have dual endstops enabled, so in theory, I should be auto-homing (really, auto-squaring) my rig, which sets/confirms the machine origin, and from there, the soft limits are enabled, and I can’t go into negative space (or, I assume, exceed the firmware-configured maximums). The only way (maybe) to go “negative” would be to enable workspace coordinates, issue a G53-59.3 to switch to workspace coordinates, and then you might be able to go into “negative” X/Y space. But I don’t know for sure, and Marlin may not be clever enough (yet) to recognize that you’re in workspace and not machinespace. QED.

1 Like

You really don’t want to use Estlcam to actually move things. The first time you try that it will reflash your board with the Estlcam firmware, which doesn’t actually work on our systems. Use Estlcam to generate the gcode, save the code to a file and use Repetier-Host to send the file to your machine.


Got it, so as long as my machine homes into the correct corner I should be always positive coming out of that corner with the 4 end stops. Thanks its starting to all make sense now lol

Ah okay so you will most likely always be coming back to Repetier to communicate to the Rambo board and have it running in the background??


Estlcam is just that a cam system and that’s it doing zero talking to the actual board?

Correct. Alternatively, save the GCode to an SD card, and run it directly from there. Ryan enables SD support by default, right? Or was that one of the things I had to enable on my build… -[github searching]- Yes, he has SD support enabled by default, so the SD slot on your LCD is supported, and you can run gcode directly from there.

Personally, I plan on uninstalling Repetier Server, as it harshes my workflow when I’m trying to flash my controller. I’ll be running from the LCD mostly anyway…

Here’s the process I’ve been using:

In Estlcam, I set the zero position to the initial position where I want the cutting head to be located on start. I usually use the LCD screen so from there I home X and Y to square up the mpcnc. You can also do this by sending G28 X Y from Repetier or other software. I manually home Z. Using the LCD, I then move the cutting head to be the starting point (zero position I set in Estlcam). Some one time additions were made to program start in Estlcam (below). I manually move Z to where it’s just barely touching the surface of the material I’m cutting. From the LCD I select the gcode file I want to cut and turn on the router.

In Estlcam, I added the following lines to Program Start:

G92 X0 Y0 Z0 (Sets current location to 0,0,0)
G00 Z2.0000 (Raises Z 2 mm so the tool doesn’t damage the surface while turning on the router)
G4 S5 (pauses for 5 seconds so I can turn on the router)



So when you say you manually home Z…what home would this be since you will be moving it again to be just over the part? Once you get the Z “homed” do you punch in anything in Repetier at this step?


Is that all you need to get it going asides from the main g code itself?


Thanks again and sorry for the barrage of questions I literally have maybe 1 or 2 hours a night after work to mess with this thing so I like to hit it with any questions I have knocked out ahead of time.

You manually home Z by either using the jog controls to move Z down until the bit just touches your work piece or by homing to a touch plate. If you’re going to use a touch plate then it’s easiest if it’s really thin. Ryan suggests silver tape, I’ve used aluminum foil in the past.

You can also set Kevin’s initial code into a macro button in Repetier-Host (though you don’t need the G4 line) and just hit the button when you have everything in the zero position, then power up the router and start the work code.

1 Like

I don’t home Z until I have the cutting head positioned where I want it to start. I initially just make sure it’s high enough so it doesn’t hit the project surface while homing x and y. I hand move z if the stepper isn’t held, else, I move z using the lcd control or cnc software until just barely touching the work surface. After that I proceed with running the gcode.

You don’t actually even need any of that additional code. You can just run your gcode as it. I use G92 because it allows me to set my home position where I want it to be instead of always having to use the x & y endstop location. I started using the G0 because I’ve nicked the work surface a couple of times in a hurry to get the router turned on. The G4 gives me extra time to get the router turned on before the bit makes first contact with the surface. In the near future, I’m going to hook up a relay to auto turn on and off the spindle eliminating the need for G4.


1 Like

Im in the same mindset as im used to operating my works 3 Axis mill the same way. So the MPCNC will always have its hard corded “home” aka whereever the end stops are.

And you will have to set your G92 with every work piece, which is how im used to working anyways. The main difference is we used a probe with a dial indicator to find dead center which is where we normally start our programs.

With wood not being nearly as critical I can most likely eyeball it. I would like to get a z probe going but for now im sure I can use a feeler gauge or something. That Dwell code is a great little idea and also lifting off the part as well.


Im pretty pumped to try this stuff out when I get home.

Unless you were using it for other things, it never should have been installed in the first place.

It installed as part of the Repetier-Host installation, IIRC. Maybe it was a “strong recommendation” during r-host install, and I accepted. It wasn’t my intention to install it, but I find myself killing it in the task manager to upload firmware every time I rebuild it… :stuck_out_tongue:

So last night I got the X and Y steppers all sorted out moving in the same direction. I checked and verified each end stop registers open and closed on Repetier with a M119 code.

On my LCD screen theres an option to do the following…



Autohome (i think)

I hit each one on the LCD screen and the Axis’s would hit the micro switches back off and come back slowly which I think is what its supposed to do. If I hit Autohome it will do both axis. Am I supposed to hit Autohome like that to get the motors in “sync” before every cut?


If I hit Home on Repetier it will home and them error out saying that the printer needs to be restarted after a few mins. Not sure how critical this is since the LCD works. Also noticed that on Repeteirs manual controller it wont go past I think like 200 on the graphical controller. Is there some settings on Repetier im missing?


I did the pen test last night without the Z hooked up though, and I hit it right after doing a Autohome on the LCD. It went right from that corner it autohomed at starting moving and everything looks as it should!


I home upon turning on the machine. I don’t home again unless I waited too long and the steppers have timed out and have been shut down or I messed up and the steppers skipped. I believe I saw the timeout was 1200 seconds in the code. I only home x and y since I don’t have a z end stop. Auto home homes x, y and z.

When you home in repetier, it homes x, y and z unless you home them individually. If you have the gantry over 200 mm from x and y home, the firmware will error out homing. You’ll need to edit configuration.h and change #define X_BED_SIZE 200 and #define Y_BED_SIZE 200 to the size of your bed. If you don’t have a z endpoint, don’t home z or you’ll get the same error.


1 Like