github.com/gnea/grbl

An open source, embedded, high performance g-code-parser and CNC milling controller written in optimized C that will run on a straight Arduino

Open this visualization on its own page →

Contributors

35

Lines of Code

3,297

From

2009-01-24

To

2019-08-30

About gnea/grbl

Grbl is a high-performance CNC motion control firmware written in optimized C that runs on Arduino microcontrollers with ATmega328p processors, such as the Arduino Uno or Nano. It provides a cost-effective alternative to traditional parallel-port-based CNC control systems by parsing standard g-code and executing precise, jitter-free stepper motor control pulses at up to 30kHz. The firmware supports arc, circle, and helical motion commands alongside other primary g-code operations, and includes sophisticated acceleration management with 16-motion lookahead for smooth cornering and jerk-free acceleration.

Version 1.1 introduced significant features including real-time feed and spindle speed overrides that respond within tens of milliseconds, a jogging mode for manual machine control via joystick or dial, and a specialized laser mode that maintains continuous motion through spindle speed changes while dynamically scaling laser power based on travel speed. Additional improvements include sleep mode for powering down the machine, enhanced status reporting with more data in smaller messages, and error feedback using numeric codes rather than text descriptions to aid GUI developers and users in diagnostics.

The project is released under the GPLv3 license and was originally built on the 2011 Grbl v0.6 firmware by Simen Svale Skogsrud, with current development led by Sungeun "Sonny" Jeon. Pre-compiled firmware files are available for download, and the project maintains extensive wiki documentation. An official Grbl-Mega variant exists for users requiring the Arduino Mega2560 platform.

Share this video