# gnea/grbl

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/gnea-grbl).**

4,415 stars · 1,683 forks · C · other

## Links

- GitHub: https://github.com/gnea/grbl
- Homepage: https://github.com/gnea/grbl/wiki
- awesome-repositories: https://awesome-repositories.com/repository/gnea-grbl.md

## Description

grbl is a CNC machine control system that translates G-code into precise hardware pulses to drive motors and tools for automated fabrication. It functions as a motion controller that manages the translation of standard commands into physical movement through asynchronous operation.

The system includes a motion planning optimizer that calculates acceleration and deceleration curves using a look-ahead buffer to ensure fluid cornering and jerk-free movement. It features a dedicated laser engraving workflow that dynamically scales laser power based on movement speed to maintain consistent energy delivery.

The project covers a broad range of operational capabilities, including tool calibration via probing and customizable homing cycles, and hardware safety through the enforcement of soft limits and safety park routines. It provides real-time machine status reporting, spindle speed control, and the ability to override feed rates during job execution. System configurations and coordinate offsets are maintained across power cycles using non-volatile memory.

## Tags

### Hardware & IoT

- [CNC Machine Controllers](https://awesome-repositories.com/f/hardware-iot/cnc-machine-controllers.md) — Translates G-code into precise hardware pulses to drive motors and tools for automated fabrication.
- [Homing Cycles](https://awesome-repositories.com/f/hardware-iot/homing-cycles.md) — Runs a configurable homing cycle that searches for limit switches to establish a known machine origin. ([source](https://github.com/gnea/grbl/wiki))
- [Real-Time Feed Rate Overrides](https://awesome-repositories.com/f/hardware-iot/real-time-feed-rate-overrides.md) — Provides real-time feed rate and spindle speed overrides during active job execution with sub-millisecond response.
- [Safety Parking Routines](https://awesome-repositories.com/f/hardware-iot/safety-parking-routines.md) — Runs homing cycles, checks soft limits, parks at safety doors, and stores coordinates for reliable unattended operation. ([source](https://github.com/gnea/grbl/wiki))
- [Tool Probing Calibrations](https://awesome-repositories.com/f/hardware-iot/tool-probing-calibrations.md) — Executes straight-probe G-code commands to measure workpiece position and set tool length offsets. ([source](https://github.com/gnea/grbl/wiki))
- [Feed-Rate-Proportional Laser Power Scaling](https://awesome-repositories.com/f/hardware-iot/dynamic-power-scaling/feed-rate-proportional-laser-power-scaling.md) — Scales laser output proportionally to current feed rate for consistent energy delivery during acceleration and deceleration. ([source](https://github.com/gnea/grbl/wiki/Grbl-v1.1-Laser-Mode))
- [Velocity-Proportional Laser Power Scaling](https://awesome-repositories.com/f/hardware-iot/dynamic-power-scaling/velocity-proportional-laser-power-scaling.md) — Scales laser output with travel speed during continuous moves to prevent burnt corners on low-acceleration machines. ([source](https://github.com/gnea/grbl/wiki))
- [Laser Engraving Workflows](https://awesome-repositories.com/f/hardware-iot/laser-engraving-workflows.md) — Dynamically scales laser power with movement speed to maintain consistent energy delivery during engraving.
- [Continuous Motion Laser Modes](https://awesome-repositories.com/f/hardware-iot/laser-motion-controllers/continuous-motion-laser-modes.md) — Moves continuously through consecutive G1/G2/G3 moves while scaling laser power with travel speed to prevent burnt corners. ([source](https://cdn.jsdelivr.net/gh/gnea/grbl@master/README.md))
- [Cutting-Move Laser Activations](https://awesome-repositories.com/f/hardware-iot/laser-motion-controllers/cutting-move-laser-activations.md) — Activates the laser exclusively during G1, G2, or G3 motions and disables it during rapid moves and probe cycles. ([source](https://github.com/gnea/grbl/wiki/Grbl-v1.1-Laser-Mode))
- [In-Motion Power Updates](https://awesome-repositories.com/f/hardware-iot/laser-motion-controllers/in-motion-power-updates.md) — Updates laser power instantaneously across consecutive G-code moves without stopping the machine for spindle speed changes. ([source](https://github.com/gnea/grbl/wiki/Grbl-v1.1-Laser-Mode))
- [Laser Power Mode Toggles](https://awesome-repositories.com/f/hardware-iot/laser-motion-controllers/laser-power-mode-toggles.md) — Switches between constant and dynamic laser power modes to match cutting or engraving requirements without pausing motion. ([source](https://github.com/gnea/grbl/wiki/Grbl-v1.1-Laser-Mode))
- [Manual Jogging Controls](https://awesome-repositories.com/f/hardware-iot/manual-jogging-controls.md) — Moves axes independently of the G-code parser using low-latency jogging commands for manual control. ([source](https://github.com/gnea/grbl/wiki))
- [Non-Volatile Setting Persistence](https://awesome-repositories.com/f/hardware-iot/non-volatile-setting-persistence.md) — Persists coordinate offsets and system configurations to EEPROM for state retention across power cycles.
- [Structured Status Reporters](https://awesome-repositories.com/f/hardware-iot/real-time-feed-rate-overrides/structured-status-reporters.md) — Reports structured status and error codes for GUI parsing and supports live feed rate overrides.
- [Soft Limit Enforcers](https://awesome-repositories.com/f/hardware-iot/safety-parking-routines/soft-limit-enforcers.md) — Enforces soft limits, safety park routines, and homing cycles for reliable unattended CNC operation.

### Programming Languages & Runtimes

- [G-Code Interpreters](https://awesome-repositories.com/f/programming-languages-runtimes/compiler-interpreter-internals/interpreter-internals/g-code-interpreters.md) — Interprets a subset of the LinuxCNC G-code standard to control three-axis CNC machines with linear and arc motions. ([source](https://cdn.jsdelivr.net/gh/gnea/grbl@master/README.md))
- [Embedded G-Code Firmware](https://awesome-repositories.com/f/programming-languages-runtimes/compiler-interpreter-internals/interpreter-internals/g-code-interpreters/embedded-g-code-firmware.md) — Provides embedded real-time firmware that parses G-code and drives CNC and laser engraving hardware.

### Part of an Awesome List

- [Look-Ahead Trajectory Planning](https://awesome-repositories.com/f/awesome-lists/devtools/motion-planning/gpu-accelerated-planners/look-ahead-trajectory-planning.md) — Examines upcoming moves in a look-ahead buffer to compute smooth acceleration and deceleration curves.
- [Look-Ahead Acceleration Planners](https://awesome-repositories.com/f/awesome-lists/devtools/motion-planning/look-ahead-acceleration-planners.md) — Examines up to 16 future moves to compute smooth velocity profiles for eliminating jerky transitions and delivering jitter-free acceleration. ([source](https://cdn.jsdelivr.net/gh/gnea/grbl@master/README.md))
- [G-Code Syntax Validators](https://awesome-repositories.com/f/awesome-lists/devtools/g-code-software/g-code-syntax-validators.md) — Simulates program execution without moving the machine to validate G-code syntax and detect potential errors. ([source](https://github.com/gnea/grbl/wiki))

### Operating Systems & Systems Programming

- [Motion Planning Interrupts](https://awesome-repositories.com/f/operating-systems-systems-programming/interrupt-driven-signal-handlers/motion-planning-interrupts.md) — Generates precise stepper motor pulses directly from hardware timer interrupts for real-time motion control.

### Scientific & Mathematical Computing

- [Trapezoidal Velocity Profilers](https://awesome-repositories.com/f/scientific-mathematical-computing/tangential-velocity-calculation/trapezoidal-velocity-profilers.md) — Implements trapezoidal velocity profiling for smooth acceleration and deceleration in CNC motion control.

### System Administration & Monitoring

- [Machine Status Reporters](https://awesome-repositories.com/f/system-administration-monitoring/machine-status-reporters.md) — Outputs structured status reports and numeric error codes with unique prefixes for GUIs to parse machine state. ([source](https://cdn.jsdelivr.net/gh/gnea/grbl@master/README.md))

### Game Development

- [EEPROM Coordinate Persistence](https://awesome-repositories.com/f/game-development/simulation-engines/simulation-worlds/coordinate-offsetting/eeprom-coordinate-persistence.md) — Saves work coordinate systems and predefined positions to EEPROM so they survive power cycles. ([source](https://github.com/gnea/grbl/wiki))
