Program Grbl je volně dostupný interpret G-kódů a ovladač krokových motorů pro CNC stroje, určený pro platformu Arduino.
Je určen především těm, kteří chtějí s minimálními náklady ovládat vlastní CNC stroj poháněný krokovými motory, ale také těm, kteří Grbl chtějí použít jako základ pro jiný projekt a tak ocení, že program je napsán modulárně.
Grbl jako interpret G-kódů pracuje s podmnožinou standardu RS274 a autoři tvrdí, že při vývoji byl testován s výstupními soubory mnoha CAM programů, aniž by se vyskytla jediná chyba.
S programem Grbl je možno bez problémů komunikovat USB portem a nevyžaduje od nadřízeného počítače žádné zvláštní vlastnosti ani výkon. Nadřízeným počítačem nemusí být jen PC.
Díky využití všech vlastností mikrokontrolérů AT168/328 program umožňuje přesné časování výstupních signálů i při krokovací frekvenci vyšší než 30 kHz. V programu je zapracován i inteligentní způsob akcelerace a decelerace rychlosti pohybu jednotlivých os, takže je možno u stroje dosáhnout vyšší pracovní rychlosti, aniž by docházelo ke ztrátám pozice při náhlých změnách směru pohybu. Program plně podporuje lineární a kruhovou interpolaci.
Většinu parametrů programu je možno nastavovat i za běhu, konfigurační soubor je uložen v paměti EEPROM a je přenositelný mezi různými verzemi Grbl.
Technická omezení
Grbl umožňuje jen pohyb ve třech osách souřadného systému X, Y, a Z. Práce s rotačními osami není podporována.
Množina zpracovávaných G-kódů je záměrně omezena jen na základní příkazy; rozšířené příkazy G-kódu, u kterých se nedá předpokládat, že budou moci být použity pro jednoduché CNC obráběcí stroje, jsou vypuštěny.
Program Grbl v současnosti pracuje s těmito G a M kódy:
G00 – Rychlé polohování
G01 – Lineární interpolace
G02 – Kruhová interpolace ve směru hodinových ručiček
G03 – Kruhová interpolace proti směru hodinových ručiček
G04 – Pauza (až 6 sekund)
G10 – Programovatelný zápis parametrů
G17 – Volba pracovní roviny X-Y
G18 – Volba pracovní roviny X-Z
G19 – Volba pracovní roviny Y-Z
G20 – Nastavení jednotek souřadného systému na palce (inch)
G21 – Nastavení jednotek souřadného systému na milimetry
G28 – Nájezd do referenční polohy
G28.1 – Nastavení souřadnic referenční polohy
G30 – Nájezd do další referenční polohy
G30.1 – Nastavení souřadnic další referenční polohy
G53 – Nastavení souřadného systému stroje
G54 až G59 – Volba souřadného systému obrobku
G80 – Ukončení cyklu
G90 – Absolutní programování
G91 – Inkrementální (přírůstkové) programování
G92 – Nastavení lokálního počátku souřadného systému (od aktuální pozice nástroje)
G92.1 – Zrušení lokálního počátku souřadného systému
G93 – Posuv v jednotkách času
G94 – Posuv v délkových jednotkách
M0 – stop programu
M2 – konec programu
M3 – spuštění vřetene – otáčky ve směru pohybu hodinových ručiček (CW)
M4 – spuštění vřetene – otáčky proti směru pohybu hodinových ručiček (CCW)
M5 – zastavení vřetene
M8 – spuštění chlazení
M9 – zastavení chlazení
M30 – konec programu (reset)