Gestione 3 assi

Si esatto.

Il G Code è un linguaggio "standard" usato da anni nelle macchine a controllo numerico.
Il firmware Grbl non supporta proprio tutti i comandi esistenti, ma solo un sottoinsieme (perché nasce per schede con poche risorse).

Quelli disponibili ti bastano senz'altro per quello che vuoi fare
Home · gnea/grbl Wiki (github.com)

Ad esempio, questo potrebbe essere un ipotetico script:

G21            (Unità di misura in mm)
G90            (coordinate assolute)
G28            (Esgui l'homing degli assi)
G0 Z5          (Alza Z di 5mm)
G0 X100 Y100   (Muove X e Y alla posizione assoluta 100.0mm alla velocità di spostamento predefinita)
G91            (cordinate relative)
G0 X-10        (Sposta X indietro di 10mm rispetto a dove si trova)
G90
G1 X150 Y150 Z0 F1500 (si sposta alle coordinate, ma con velocità 1500 mm/minuti)
M3 S50         (attiva lo spindle, che tu non avresti, al 50%)
G4 P500        (aspetta 500ms)
M5             (spegne lo spindle)
etc etc etc