Incorrect Jogging Behvaior with grbl/grblHAL

I am currently modifying a G.Weike 600x900 laser cutter to use a grblHAL controller running on a Teensy 4.1 and I have LightBurn comfortably communicating with the new controller. However, my limit switches are at X+Y+ so the machine works in negative coordinates and LightBurn doesn’t seem to handle a machine working in negative coordinate space well.

If I use the device window to place the machine origin in the upper right corner, Lightburn will assume that my machine’s axis are positive to the left and down (backwards) and command positive jog motion when moving in that direction. grblHAL correctly detects that I am commanding it to wander off the right side of the machine and refuses. If I instead tell the machine to place the machine origin in the bottom left corner, my axis are in the correct direction but LightBurn will not jog negative since it assumes that I am asking it to jog over the edge of my machine.

I can easily use the console to enter the correct commands to jog in the X- or Y- directions, for example $J=G91 F6000 X-10. If I then ask the machine to jog 10mm in a positive direction, it will calculate a large movement to move 10mm into the positive side of the machine.

grbl and its derivatives will correctly keep a homed machine from hitting the endstops, so I’m confused as to why LightBurn tries to keep the machine from hitting the endstops. Also, it is very common for machines like this to work in negative coordinate space. Is there a way to make Lightburn work in negative coordinate space or do I just need to use an external jog controller?

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.