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