An open source, embedded, high performance g-code-parser and CNC milling controller written in optimized C that will run on a straight Arduino
 
 
 
Go to file
Simen Svale Skogsrud e409f10047 moved all strings to pgm-memory 2010-03-07 23:10:41 +01:00
gcode minor edits after verifying refactored grbl on real hardware 2010-03-04 21:18:55 +01:00
script moved all strings to pgm-memory 2010-03-07 23:10:41 +01:00
.gitignore minor revision 2010-01-04 16:09:00 +01:00
COPYING renamed file 2009-01-26 10:51:02 +01:00
Makefile Added runtime configurable global settings with eeprom persitence 2010-03-07 20:29:18 +01:00
config.c moved all strings to pgm-memory 2010-03-07 23:10:41 +01:00
config.h moved all strings to pgm-memory 2010-03-07 23:10:41 +01:00
eeprom.c Added runtime configurable global settings with eeprom persitence 2010-03-07 20:29:18 +01:00
eeprom.h Added runtime configurable global settings with eeprom persitence 2010-03-07 20:29:18 +01:00
gcode.c Added runtime configurable global settings with eeprom persitence 2010-03-07 20:29:18 +01:00
gcode.h further refactoring debris extraction 2010-03-03 17:52:56 +01:00
main.c Added runtime configurable global settings with eeprom persitence 2010-03-07 20:29:18 +01:00
motion_control.c Added runtime configurable global settings with eeprom persitence 2010-03-07 20:29:18 +01:00
motion_control.h further refactoring debris extraction 2010-03-03 17:52:56 +01:00
nuts_bolts.h further refactoring debris extraction 2010-03-03 17:52:56 +01:00
readme.txt updated readme 2010-03-07 20:41:16 +01:00
serial_protocol.c moved all strings to pgm-memory 2010-03-07 23:10:41 +01:00
serial_protocol.h general clean up after refactoring 2010-03-03 13:04:51 +01:00
spindle_control.c version 0.1 2009-01-25 00:48:56 +01:00
spindle_control.h version 0.1 2009-01-25 00:48:56 +01:00
stepper.c moved all strings to pgm-memory 2010-03-07 23:10:41 +01:00
stepper.h further refactoring debris extraction 2010-03-03 17:52:56 +01:00
todo.txt purged legacy code, updated todo 2010-03-07 20:44:21 +01:00
wiring_private.h version 0.1 2009-01-25 00:48:56 +01:00
wiring_serial.c moved all strings to pgm-memory 2010-03-07 23:10:41 +01:00
wiring_serial.h moved all strings to pgm-memory 2010-03-07 23:10:41 +01:00

readme.txt

Grbl - An embedded rs274/ngc (g-code) interpreter and motion-controller for the Arduino/AVR328 microcontroller
The goal: A no-compromise, high performance, low cost alternative to parallel-port based motion control for CNC milling

Status:
* Ready for production, but probably rough around the edges still
* Highly optimized C utilizing the hardware-timers of the AVR-chip for all critical timing
* Able to maintain more than 30kHz step rate, generating an ultra clean, jitter free step-signal
* G-code interpreter complete, tested with output from several CAM tools
* Standards-compliant g-code arcs/circles fully supported
* Buffered, non blocking, asynchronous step generation so the rest of the system is free to process
  g-code while the steppers are steppin'
* Configuration parameters stored in EEPROM and set via simple commands
* Tested on very few (two) CNC rigs

Prioritized to-do:
* Accelleration/decelleration
* Spindle control
* Autodetect baud rate
* Arduino IDE compatible (build and flash)
* Documentation and web-site
* Support for a alphanumeric LCD readout, a joystick and a few buttons for program control
* Support "headless" fabrication by buffering all code to SD-card or similar

Limitations by design:
* Limited GCode-support. Focus on the kind of GCode produced by CAM tools. Leave human GCoders frustrated.
* No support for tool offsets (typically handled by CAM-tool)
* No rotation axes, only x, y and z.

The project was initially inspired by the Arduino GCode Interpreter by Mike Ellery