Co ordinates wrong?

Hi, sorry it’s me again.
I’m still having problems with coordinates on the workspace.
The laser is centred bang in the centre of the workspace. I have a sacrificial piece of the board marked with 300x180 square in the middle and some other lines crisscrossing the workpiece. Including dead centre.
I have that set as my origin and final location. However, I using the current location (little green square) on my text shows it’s correct, but I get the following…

What have I forgotten to reset? so that the coordinates are correct?

Advice please,

Does your machine reset the current position as 0,0 every time you power it on? So basically wherever the laser head happens to be becomes 0,0?

If so, try moving the head to front left before powering on.

It’s also possible that your laser assumes the center of the workspace is 0,0. In that case, refer to how to deal with a negative coordinate machine. LightBurn only wants to work in a positive coordinate space:
Negative Coordinate Machine Setup - Getting Started / Common Problems - LightBurn Software Forum

HI berainlb,
Thanks reply. I’ll have a look at that.
The machine had been left in centre of workspace and switched off So I would have thought it would have picked up the location for that as zero’s.
More investication aft evening meal Back Later

Hi, berainlb,
Right, This is what I did:

  • switched off CNC 3018, removed power and USB data lead.
  • Closed down LightBurn and closed down the computer.
  • Went for my evening meal. At least an hour with everything off.
  • Booted computer
  • Replugged CNC3018 USB and power.
  • Started CNC 3018
  • I Started LightBurn gave it 15 seconds in case it was busy in the background.
  • Pressed the Get position button, this is what I got.

There were no movements when the CNC 3018 started up.
The console shows the following.
> Waiting for connection…
> Grbl 1.1f [’$’ for help]
> [MSG:Check Limits]
> [MSG:’$H’|’$X’ to unlock]
> error:9
> G-code locked out during alarm or jog state.
> [MSG:Caution: Unlocked]
> ok
> [VER:1.1f.20170801:]
> [OPT:V,15,128]
> Target buffer size found
> ok

Pressed Get Position.
This is what I got


Is this new controller going wonky now? Argh!

$$ Gives me

I seem to be moving backwards to a week or so ago.
But I can still print stuff at the moment.
I’m just going to read the suggested item again.

I’m sitting in a darkened room ready for the white coat men GRiN

A lot of this is just the way CNC 1018 handles the origin. I think if you were to be able to get your homing setup that would ease things.

I’m reviewing this topic again:
Configuring a 3018 CNC (or other CNC-based laser) for use with LightBurn - FAQ - LightBurn Software Forum

The major relevant portions for you:

Homing and workspace:
The 3018’s usually don’t have homing switches, which means that the zero point of the machine is random, in fact, wherever you have the head when you power the machine will be zero. To set the zero point properly, either power up the machine with the head at the front-left, or jog there and enter this command:

G92 X0 Y0

The above tells the controller “where you are right now is X0 Y0”.

You might also need to enter:


As this tells the controller to report position information relative to the origin set by the user, not the machine zero position. With this set, you can use the machine in ‘Absolute Coords’ mode, which is recommended. That and the other ‘Start From’ modes are described here:

Looks like you already have $10=0 so covered there.

So move the head to front left, then issue the G92 X0 Y0. Check position in LightBurn after that and it should read 0,0.

Hi berainlb,
That’s seems to have worked. I’ll do some reboots and closedowns to see if it all remails.

This seems to have done the job. Thanks

Is there a list somewhere of these G codes etc?


Check out linuxcnc’s g-code reference:
LinuxCNC “G-Code” Quick Reference

HI, berainlb,
I certainly hope Santa brings you a lot of goodies this year.
Just about to go through the publication now.
One interim question… I have installed end-stops, but they don’t seem to work very well.
Do you think I should switch back to soft stop rather than hard stop?


Hi berainlb,
I’m getting more confused again.
Zeroed the CNC 3018, Did a G92 X0 Y0
Then Get Position it gave me X0 Y0
Switched off and disconnected again. Left it for a while.
Powered up PC
Powered up CNC 3018
Started LightBurn
Pressed Get Position and what do I get

Off to bed, perhaps I’ll dream the answer.


I believe you need to do the origin reset every time you startup since the machine will “forget” its current position.

Not sure if there’s a way to startup with that each time you start LightBurn but I’ll check later tonight if I can find something.

As for the stops, I think it would be good if you could add a z stop so that you could do a proper homing sequence. That would allow you to possibly get away from this resetting coordinates business.

It probably did set that location as 0, 0. Setting the 0, 0 position in the middle will give you 1/4 of your available area.

You machine ‘lives’ in one of the four ‘quadrants’ of the coordinate system… Most of these machines use unsigned integers internally, so they can’t go negative. So think, positive integers. It’s possible for some software to indicate negative values, but generally not from the controller.

The ‘home’ position is always where the X and Y axes cross.

If your machine ‘homes’ in the back right, it will operate in quadrant III…

Meaning and increase in X will move the head to the left, an increase in Y, towards the operator.

My machine homes in the back/left, so an increase in X moves the head to the right.


When you ‘want’ 0, 0’ in the middle, you’ve effectively cut your area to 1/4 of it’s available area, since it can effectively go only two directions.

The error message you are getting is from Lightburn advising you of an probable error.

When you set your machine up, you have to tell it the software how big your machine is. This is when you initially run it or via ‘Edit → Device Settings’ This should be where you tell Lightburn how big the ‘work area’ is. In your case 300x180.

Lightburn then displays an area in it’s editor the size of your work area. If you draw something and it’s outside of that area, Lightburn will warn you about.

If you look at Common Grbl Setups, at the end it covers machines with no limit switches and how to deal with them. You should also go over the Coordinate and Job Origin documentation.

It is worth the effort to setup limit switches.

This is my Z axis hall limit. The same idea (and board) is used on all three axes. Total of 5 boards.

Good luck… Have fun.


I think the easiest thing to do would be to create a macro in the Console window that issues the G92 command. Pick one of the macro buttons there and right-click to edit the contents. Change the label and paste the G92 command into the contents section. You can just push that every time you want to zero out.

Also, one question. Was your laser head in exactly the same spot in the last screenshot as your previous screenshot? Wondering why they’re the same value.

They need to understand how this works. It’s not rocket science.

There maybe easier ways to do things, but they need to understand what’s going on or the issue will keep revisiting them.

Good luck


Hi all,
Thanks for all the comments and suggestions.
OK, I’m fully aware of the positive and negative values as per this chart (JKWilborn). Good to have it reinforced in the grey cells.

So I am assuming that the workbench (table) is close to me and to the left of the table?
Is it far away from me with the and to the left of the table?
I have always assumed that the LightBurn work zone just slides down towards me as a flat surface and is the table nearest me?
Hope that makes sense.
Well anyway.
OK on the Macro (done) (Thanks berainlb).

The next observation is the picture I sent… below
Right, This is what I did:

*** switched off CNC 3018, removed power and USB data lead.**
*** Closed down LightBurn and closed down the computer.**
*** Went for my evening meal. At least an hour with everything off.**
*** Booted computer**
*** Replugged CNC3018 USB and power.**
*** Started CNC 3018**
*** I Started LightBurn gave it 15 seconds in case it was busy in the background.**
*** Pressed the Get position button, this is what I got.**

Everything has been reset, but on power-up and Get position today, those are the exact same readings.
The worktable is full to the front and laser over the rear corner of the worktable.
I can’t remember what the settings came up as on the previous controller, but they were different and never zero.

If I do the G92 X0 Y0 then Get Position it, sure enough, shows Zero.for X & Y But on boot up, it’s wrong again.

While writing this I’ve been doing some tests. All I seem to be doing is getting deeper into trouble.
Like now I have an ALARM 2

Starting stream
Layer C00
G-code motion target exceeds machine travel. Machine position safely retained. Alarm may be unlocked. (Right-click the ‘Devices’ button to reset the connection)
On or near line 2:
Job halted
Stream completed in 0:00
[MSG:Reset to continue]
Grbl 1.1f [’$’ for help]
[MSG:’$H’|’$X’ to unlock]
[MSG:Caution: Unlocked]
Starting stream
Stream completed in 0:00

Is there a command for a total reset out of the box state?
I think I need to do that if there is.

Kevin (the confused)

Is this X0 Y0 ?


It’s hard to tell from the photograph but it looks like you’re attempting to set 0,0 at the front of a spoil board that doesn’t cover the full dimensions of the frame. You’d typically want to set your 0,0 at the very front (close to you) of the available frame space. This would allow you to address the full range of your machine.

The complication that arises if you don’t originate from the full lower left is that both the machine and LightBurn believe you have a 300mm x 180mm workspace starting from the 0,0. If you set 0,0 somewhere other than the full lower left it could potentially crash into the frame. Your limit switches should prevent that at least for the positions that you’ve set those.

Once you’ve set your 0,0, use Absolute Coords. This will be the simplest way of understanding the relationship between the workspace and your machine.

This is to be expected. Your machine has no knowledge of absolute position and cannot guarantee position. This is why homing sequences are done. Either automatically with switches or manually in your case.

Hi, berainlb,
Thanks again.
My spoil board is slightly oversized, so that is actually correct for movement on the system.
I’ve got myself stuck in a corner again with this ALARM 2 popping up when I try to do anything now I get the following.

  • Waiting for connection…
  • Grbl 1.1f [’$’ for help]
  • [MSG:’$H’|’$X’ to unlock]
  • [MSG:Caution: Unlocked]
  • ok
  • [VER:1.1f.20170801:]
  • [OPT:V,15,128]
  • Target buffer size found
  • ok
  • Starting stream
  • Layer Labels
  • Layer Labels
  • ALARM:2
  • G-code motion target exceeds machine travel. Machine position safely retained. Alarm may be unlocked. (Right-click the ‘Devices’ button to reset the connection)
  • On or near line 4:
  • Job halted
  • Stream completed in 0:00
  • [MSG:Reset to continue]
  • ok
  • Grbl 1.1f [’$’ for help]
  • [MSG:’$H’|’$X’ to unlock]
  • [MSG:Caution: Unlocked]
  • ok
    Now nothing is printing again. I’ve tried all the different Start from’s. But no movement even.
    I think I’m going backwards.

Can you post a screen shot of the ‘Job Origin’ and the ‘Start From’ selections in the ‘Laser’ window?

This is mine…

Screenshot from 2021-12-11 10-31-39


Your machine reported the above - that’s a ‘Workspace Coordinate Offset’.

In the console, type G10 L2 P1 X0 Y0 to clear that offset.

Then, jog the machine to the front-left position of the workspace, power cycle it, and now your zero should be where it powered up.

Hi all
OK, Thanks for the responses.
Hi Oz yep that was it on the first test with the Current position being used (more tests to follow)
Where would I pick up an offset from, I don’t even know how to set one haha.
Looks like the important part of that is the power off/on sequence as well.
Hi Jack,
Now the coordinates seem to be working (will do some tests this evening after food)
Original test to get it working was User Origin, but now Absolute seem to work as well.

One other thing that has just become obvious Axis movements

Y seems to be inverted. I press the top Y-axis and it moves towards me.
I again make the assumption that the arrow direction shows the direction of movement of the table. So how do I invert just the Y-axis?

I’ve now got some tests from the O2 site as well. They will be this evening’s tasks.
Thanks all for supporting me, the learning curve was great. But now it’s that bit smaller. THANKS.