Grbl is open source firmware voor een cnc-machine of 3D-printer. Een voorbeeld van een cnc-machine waarin Grbl gebruikt wordt is de in China gemaakte 3018. Grbl draait op een microcontroller of Arduino. Grbl accepteert opdrachten die via een usb-poort (emulatie seriële poort) worden aangeboden vanuit een pc waarop een programma draait zoals Grblcontrol, Candle of UGS en stuurt de stappenmotoren van de machine aan. De opdrachten, ook wel genoemd G-code, betreffen o.a. het uitvoeren van een beweging in X, Y of Z-richting en het aan- of uitzetten van de spindel-motor. Grbl heeft een kleine buffer voor enkele opdrachten vooruit maar het gehele programma bevindt zich normaliter op de pc. Losse opdrachten kunnen ook door de gebruiker rechtstreeks worden ingevoerd. Grbl meldt voortdurend de actuele toestand (waaronder de actuele positie) terug aan de pc.

Opdrachten die Grbl accepteert zijn:

 G0: Snelle beweging
 G1: Beweging met een gecontroleerde snelheid in een rechte lijn
 G2: Kloksgewijze beweging in een cirkelsegment
 G3: Beweging in een cirkelsegment tegen de klok in
 G4: Pauze
 G10 L2, G10 L20: Instellen werkcoördinaten
 G17: Werken in het x-y vlak
 G18: Werken in het x-z vlak
 G19: Werken in het y-z vlak
 G20: Werken in inch
 G21: Werken in mm
 G28, G30: Ga naar voorgedefinieerde positie
 G28.1, G30.1: Definieer een positie
 G38.2: Voelen waar het werkstuk zich bevindt (Probing)
 G38.3, G38.4, G38.5: Probing
 G40: Uitschakelen compensatie snijstraal
 G43.1, G49: Dynamische gereedschaplengteoffset
 G53: Werk in absolute coordinaten
 G54, G55, G56, G57, G58, G59: Werk-coordinaatsystemen
 G61: Padbesturingsmodus
 G80: Opheffen bewegingsmodus
 G90: Absolute modus
 G91: Incrementele modus
 G91.1: Incrementele modus voor parameters I, J en K
 G92 en G92.1: Instellen van de oorsprong van het coördinatensysteem
 G93, G94: Instellen van de snelheid van beweging
 M0, M2, M30: Programma pauzeren en beëindigen
 M3: Spindelmotor aan, beweging met de wijzers van de klok mee
 M4: Spindelmotor aan, beweging tegen de wijzers van de klok in
 M5: Spindelmotor uit
 M7: Koelnevel aan (opdracht alleen beschikbaar indien indien aangezet in de code)
 M8: Koelmiddel aan
 M9: Koelmiddel en -nevel uit
 M56: Parking Motion Override Control  (indien aangezet in de code)

Grbl is tussen 2009 en 2019 geschreven in C door Simen Svale Skogsrud en Sungeun "Sonny" Jeon Ph.D.

Externe links 
 De actuele versie van Grbl (1.1) is beschikbaar op Github.
 Zie ook de uitgebreide beschrijving van G-codes op: .

Software geschreven in C
Software in het publiek domein