XCarve moving in the wrong plane!

So the XCarve is moving fine using UGS, X, Y, Z all move in exactly the right directions.

Then I start a run to surface the bed and… the spindle moves up and up crashing the end stop!

My XCarve is non-standard, it is 2300x870. But it moves fine normally. It is like the G-Code has some sort of coordinate transformation in it. But I can’t see it. Running the X-Controller with the X and Y axis output pins flipped so that the long axis is the X and the Y is the gantry. That can’t be the issue as UGS works fine until I load a file.

The GCode is attached.

SurfaceBed.nc (5.2 KB)

How was the G-code generated? There’s a g28 in there that might be your problem.

Later you have

1 Like

Yes, that might be it. I may need to do a G28.1
I thought that was done automatically.
Going to have to write my own GCode sender some time to fix this sort of thing.

And it was the G28.1 point having been lost!

GCode is a hideous mess. There are multiple coordinate systems and it is never quite clear which one we are in. Also none of the machines have endstops, they have calibration sensors at one end or the other which is not really the same thing. The machine doesn’t stop when it should.

OK. So have the basic movement, now have to tighten up some screws and try again.

I would respectfully offer that this isn’t an issue with the X Carve, but may just simply be a user error.

If you are continually having crash issues, I would suggest that maybe you slow down your work method and double check your process before moving the machine.

You can always enable soft limits if wanted, to prevent the machine from going out of bounds and crashing.

Having multiple coordinate systems is actually an advantage for those of us that do multiple materials or have dedicated work surface areas for certain operations.

While Easel doesn’t, UGS DOES report back the current work coordinates used, and the X Carve defaults to G54 anyway, so it isn’t normally an issue unless a user makes it so. The work coordinates are listed at the bottom section of the DRO screen in UGS. UGS Platform is my favorite sender to use because of it’s versatility, power, and ease of use.

G 28 and G30 positions will normally survive through many many power cycles, and if used as intended can be great time savers. These positions normally only have to be set once unless the machine has been reflashed. Remember though, that you MUST HOME the machine every power cycle, every connect/disconnect, or after a power loss.

There are 2 coordinate systems used by GRBL during machine usage. Machine position (where the spindle sits relative to the entire machine bed) and Work position (where the workpiece sits in relation to the machine bed)

Once the machine has been through a homing cycle, it will know exactly where the spindle is relative to the machine bed, but it has no idea where you place the workpiece. The HOME position is normally X0,Y0 at this point.

This is the reason for the G54-G59 work coordinate systems (6 total). The X Carve defaults to G54, and unless you intentionally change it, will continue to use it as the workpiece placement system.

When you set the work zero position, you are telling the X Carve where in the machine coordinates area the workpiece has been placed. This tells the X Carve where the (normally used) lower left corner of the workpiece is on the bed.

1 Like

That is written to the non-volatile EEPROM memory on the controller…unless you change it, it will persist.
If your G28 Z offset was zero then your G28 G91 Z0 command would send the Z to its homing switch.

What about it is a mess? Your Z never goes below zero. How are you setting zero?

I just see a G54 which, as @AlAmantea stated, is the GRBL default work coordinate system.

WHat CAD -> CAM workflow are you using and what post processor did you use?