Using GRBL with my CNC machine

Connecting to the machine

sudo screen /dev/ttyACM0 115200

On startup GRBL will be locked. It must be unlocked by either homing it with $H or unlocking with $X. There is homing set up on all 3 axis, but the Z axis is homed to the top.

Homing

Run $H to run a homing cycle. This will also unlock after it's done.

Coordinate systems

Here is a good writeup.

Home the machine physically:

$H

Set absolute positioning and move to 30,30:

G90 G0 X30 Y30

Store a new work origin in variable G54. P1=G54, P2=G55 etc, up to G59.

G10 L20 P1 X0 Y0 Z0

The L20 means use the current position as the offset. The system will remember that G54 is at 30,30 physically. You can also do:

G10 L2 P1 X30 Y30 Z0

Which will result in the same work origin being stored, as L2 means relative to the physical home.

The G53 command moves to the position in the machine coordinate system, but only for that line (non-modal). So if you are already in another coordinate system, after that line is executed the state will return to using the other coordinate system. Other coordinate systems can be selected using G54, G55, ... G59.

So, if you wanted to cut 4 identical parts you could set up 4 coordinate systems and position them over the work using G10. Then the cutting commands would be the same for each part.

Cutting direction

Looking down on the machine from the top front, the spindle rotates clockwise. If a cut is moving in a positive Y direction (toward the rear of the machine) the movement of the Y axis and the speed of the spindle will be "cutting forward" on the left hand side. The material being cut will be thrown off to the right hand side of the cut. If the spindle is fast it may melt the material (plastic) and leave melted and cooled plastic on the right hand side. This means if you are cutting an outline you want to move the axies around the shape in an anti-clockwise direction. If you are cutting a hole you want to move the axes in a clockwise direction.