Homing and 3rd party GRBL apps

I like my machine’s home to be front left. I know the standard answer to this problem is, “you shouldn’t care about machine coordinates, all you need to worry about is work coordinates.” Well, I understand that logic but … I care about machine coordinates and was wondering if there was a solution to this…

I use Easel for some stuff but also like to use CNCJS for running g-code generated by Fusion 360. When I home with CNCJS, it sets the machine x,y to -749,-749. I understand this to be normal because the grbl standard for “home” is back right. I also understand that grbl does not have a g-code command to reset machine coords to 0,0. So, my solution is to “disconnect” from the x-carve (after homing) then “reconnect”. Machine coords now at 0,0 and all is well. Then I typically run a macro that zips the spindle out to 30,30 (machine coords) where I usually have set up my workspace origin. Then tweak to set a perfect origin for my workspace.

If I forget the “disconnect/reconnect” step to zero machine coords before I run the macro, well, you know what happens - the spindle crashes into the back right of the machine.

Is there any way to automate setting the machine coords to 0,0 after a homing cycle, or change some grbl settings on the x-carve to eliminate the “disconnect/reconnect” step??

Sure, just change the move to 30,30 to move to -719,-719 … or include the command for relative movement before the 30,30 move. . Eithet of these wpuld suffice…

An even better solution would be to home, jog into rhe desired 30,30 corner jig location and save that (-719,-719) as a g28.1 and then in order to move it to location aftet homing you would just use the command “g28”

Yes.
Enable HOMING_FORCE_SET_ORIGIN in grbl’s config.
Note, parking will no longer work.

That said, use work coordinates. :wink:

Thanks for the replies. I guess I’m the only one who likes to manually position the spindle to a certain location on my x-carve grid using g-code without having to interpolate the relative position to the workspace origin.

I do think the HOMING_SET_ORIGIN will solve my issue. Thanks for pointing that out. So, if I understand this correctly, I’ll need to modify config.h, recompile grbl for an arduino (ATmega328) and use XLoader to flash the X-Controller? What could possibly go wrong? :grin:

I use machine coordinates all the time. I’m ok with the negative coordinates.

You got it. No need for XLoader, though. Just compile and flash from the Arduino IDE.

I’d be crashing the gantry all the time. Maybe if I rotated the wasteboard 180 degrees :thinking:. :smile:

Ahhh, of course. And, I just noticed that Inventables has a grbl branch for the X-Carve on github, so that should give me a good baseline. It took me a while to realize that the X-Controller is basically just an Arduino board running grbl. I thought there was some proprietary hardware/firmware in that black box.

I built a cnc router/planer for planing large live edge boards a while back and recall doing this same thing when I programmed the Arduino Uno that I used for a controller.

Thanks again.

1 Like