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 c9df285604 removed one more extraneous file 2011-01-15 00:30:37 +01:00
script refactored block buffer into separate module motion_plan pending the addition of the actual look ahead planner 2011-01-14 16:45:18 +01:00
.gitignore added code with merge conflict as note to self, accelleration will just have to wait 2010-12-20 14:01:38 +01:00
COPYING renamed file 2009-01-26 10:51:02 +01:00
Makefile pcomplete, fully untested, support for accelleration management with look ahead optimization, finally 2011-01-15 00:27:08 +01:00
config.c pcomplete, fully untested, support for accelleration management with look ahead optimization, finally 2011-01-15 00:27:08 +01:00
config.h pcomplete, fully untested, support for accelleration management with look ahead optimization, finally 2011-01-15 00:27:08 +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 refactored block buffer into separate module motion_plan pending the addition of the actual look ahead planner 2011-01-14 16:45:18 +01:00
gcode.h refactored block buffer into separate module motion_plan pending the addition of the actual look ahead planner 2011-01-14 16:45:18 +01:00
main.c pcomplete, fully untested, support for accelleration management with look ahead optimization, finally 2011-01-15 00:27:08 +01:00
motion_control.c refactored block buffer into separate module motion_plan pending the addition of the actual look ahead planner 2011-01-14 16:45:18 +01:00
motion_control.h refactored block buffer into separate module motion_plan pending the addition of the actual look ahead planner 2011-01-14 16:45:18 +01:00
nuts_bolts.h refactored block buffer into separate module motion_plan pending the addition of the actual look ahead planner 2011-01-14 16:45:18 +01:00
readme.txt pcomplete, fully untested, support for accelleration management with look ahead optimization, finally 2011-01-15 00:27:08 +01:00
serial_protocol.c refactored block buffer into separate module motion_plan pending the addition of the actual look ahead planner 2011-01-14 16:45:18 +01:00
serial_protocol.h refactored block buffer into separate module motion_plan pending the addition of the actual look ahead planner 2011-01-14 16:45:18 +01:00
spindle_control.c refactored block buffer into separate module motion_plan pending the addition of the actual look ahead planner 2011-01-14 16:45:18 +01:00
spindle_control.h refactored block buffer into separate module motion_plan pending the addition of the actual look ahead planner 2011-01-14 16:45:18 +01:00
stepper.c pcomplete, fully untested, support for accelleration management with look ahead optimization, finally 2011-01-15 00:27:08 +01:00
stepper.h eliminated an annoying constant that broke my cleanly layered abstractions 2011-01-14 16:56:44 +01:00
stepper_plan.c pcomplete, fully untested, support for accelleration management with look ahead optimization, finally 2011-01-15 00:27:08 +01:00
stepper_plan.h pcomplete, fully untested, support for accelleration management with look ahead optimization, finally 2011-01-15 00:27:08 +01:00
wiring_private.h
wiring_serial.c Grbl can now take advantage of the extra memory in the 328 2010-03-14 23:45:31 +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
* Backlash compensation

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