Grbl: G-code parser and CNC motion controller
Real-time motion control firmware for Arduino-based CNCs.
Learn more about grbl
Grbl is a motion control firmware designed for CNC milling machines, implemented in optimized C for the AVR microcontroller architecture. The firmware runs on Arduino boards with Atmega 328 processors and communicates via serial connection to accept g-code instructions. It includes a g-code parser supporting standard motion commands, arc interpolation, acceleration planning with look-ahead trajectory optimization, and real-time status reporting. The controller is typically paired with external stepper drivers and limit switches to form a complete CNC control system.
Arduino-Based Motion Control
Runs on standard Arduino Uno boards using serial communication instead of legacy parallel ports. Eliminates custom hardware requirements and reduces controller costs while maintaining industrial CNC performance.
Look-Ahead Trajectory Planning
Analyzes up to 18 motions ahead to compute optimal velocity profiles and acceleration curves. Prevents jerk at direction changes and maintains smooth tool movement through complex g-code paths.
30kHz Pulse Generation
AVR-optimized interrupt routines achieve stable 30kHz step pulse output with sub-microsecond timing accuracy. Handles concurrent stepper control, limit monitoring, and serial communication without jitter or dropped pulses.
#include <Arduino.h>
void setup() {
Serial.begin(115200);
delay(2000);
// Send G-code command to move to position
Serial.println("G21"); // Set units to mm
Serial.println("G90"); // Absolute positioning
Serial.println("G0 X10 Y10 Z5"); // Rapid move
}Top in Developer Tools
Related Repositories
Discover similar tools and frameworks used by developers
MailHog
Captures development SMTP traffic with web and API interfaces.
googletest
xUnit-based C++ testing framework with integrated mocking.
open-directory
Command-line search engine for indexed open directories.
uptime-kuma
Node.js application monitoring HTTP, TCP, DNS, and ping endpoints.
PyMuPDF
Python bindings for MuPDF document processing library.