Grbl Home till hit limit switch

I am finally asking for help as I have almost no hair left. On my Ramps 3d printer running marlin and on my xvico 3d printer with its own custom firmware before it starts a print it will search for all the endstops then begin the print. On my 3018 cnc running grbl i am trying to replicate this.
G28 will just home to your 0 xyz or it s last known 0 xyz. So after a power cycle where ever you machine is, is where it thinks 0 is. Is there a G-code command for seek endstop? and behave like hG28 with a debounce on finding the endstop?

Can you post your $$ config? Do it this way please:

contents of $$ response go here

That will make it easier to read.

Enstops trigger when they hit the switch and all that good stuff. Everything else works just need that go till hit limit switch

$0=10 (Step pulse time)
$1=25 (Step idle delay)
$2=0 (Step pulse invert)
$3=1 (Step direction invert)
$4=0 (Invert step enable pin)
$5=0 (Invert limit pins)
$6=1 (Invert probe pin)
$10=1 (Status report options)
$11=0.010 (Junction deviation)
$12=0.002 (Arc tolerance)
$13=0 (Report in inches)
$20=0 (Soft limits enable)
$21=1 (Hard limits enable)
$22=1 (Homing cycle enable)
$23=1 (Homing direction invert)
$24=25.000 (Homing locate feed rate)
$25=500.000 (Homing search seek rate)
$26=250 (Homing switch debounce delay)
$27=1.000 (Homing switch pull-off distance)
$30=10000 (Maximum spindle speed)
$31=1 (Minimum spindle speed)
$32=1 (Laser-mode enable)
$100=89.890 (X-axis travel resolution)
$101=89.890 (Y-axis travel resolution)
$102=250.000 (Z-axis travel resolution)
$110=250.000 (X-axis maximum rate)
$111=250.000 (Y-axis maximum rate)
$112=250.000 (Z-axis maximum rate)
$120=25.000 (X-axis acceleration)
$121=25.000 (Y-axis acceleration)
$122=10.000 (Z-axis acceleration)
$130=225.000 (X-axis maximum travel)
$131=145.000 (Y-axis maximum travel)
$132=200.000 (Z-axis maximum travel)

I’m not sure I understand exactly. It sounds like you are asking for $23=0 instead of $23=1? I assume you’ve read Set up the Homing Cycle · gnea/grbl Wiki · GitHub — what am I missing about what you are asking?

When you start your machine does it remember its xyz. When i use Laser GRBL and open it my coordinates will always be 0 for xyz. So if I use $23=0 or any combination the machine does not move. If I jog it forward 10 steps then use $23=0 it returns to what it thinks is home. What I am after is there a grbl or g code that will make the machine travel in a direction until it hits and endstop and then set that direction coordinate to 0. If that is what $23=0 is meant to do then my GRBL is buggered.

$23 is configuration not a command.

Whenever I start up, without homing, it assumes it is at machine coordinates (0,0,0) and also is locked until I either home (in my case, I home to lower left, Z up) or $X to unlock. If I’m working in a small space I just position it where I want it before starting it, and $X to unlock and set work coordinates instead of homing; I home when I want it to respect my machine limits because I’m cutting something large. (I have a 780 x 1280 mm cutting area.)

I’m not using the LPC variant but I’m not aware of a difference here; grbl-lpc is intentionally close to the original. I wouldn’t expect it to maintain machine coordinates across a restart.

I think that grbl restarts and looses machine coordinates on connect, which can be a problem if I restart my sender.

Are you saying that G28 doesn’t do a homing cycle for you on grbl?

Correct G28 does nothing. I though it might be laserGRBL so have tried GRBLController and Candle exes. I have also rolled back the GRBL Version from 1.1h to 1.1e and others but still G28 after I start up the machine does nothing. If I jog till I hit an endstop I need to unlock which is what I am currently doing. Then I atleast know where my true 0,0,0 is.

Huh. I got nothing then. I’m hitting the Home buttons in Candle and it’s working for me.

My current $$ for comparison is in $$ time, everybody. What are your GRBL settings? - #9 by mcdanlj in case it’s useful.


Rebuild main board controller I think. But thank you regardless your settings for acceleration have made my machine a tad smoother.


The default GRBL homing command is $H, which only works if homing is configured.

Homing in GRBL terms mean find the machine origin and has nothing to do with setting the work origin or work offset!

1 Like