2011-02-11 23:54:13 +01:00
|
|
|
The general structure of Grbl
|
|
|
|
=============================
|
|
|
|
|
|
|
|
The main processing stack:
|
|
|
|
|
2011-02-19 00:32:36 +01:00
|
|
|
'protocol' : Accepts command lines from the serial port and passes them to 'gcode' for execution.
|
2011-12-09 02:47:48 +01:00
|
|
|
Provides status responses for each command. Also manages run-time commands set by
|
|
|
|
the serial interrupt.
|
2011-02-11 23:54:13 +01:00
|
|
|
|
2011-02-18 22:19:01 +01:00
|
|
|
'gcode' : Recieves gcode from 'protocol', parses it according to the current state
|
2011-02-11 23:54:13 +01:00
|
|
|
of the parser and issues commands via '..._control' modules
|
|
|
|
|
|
|
|
'spindle_control' : Commands for controlling the spindle.
|
|
|
|
|
|
|
|
'motion_control' : Accepts motion commands from 'gcode' and passes them to the 'planner'. This module
|
|
|
|
represents the public interface of the planner/stepper duo.
|
|
|
|
|
2011-12-09 02:47:48 +01:00
|
|
|
'planner' : Receives linear motion commands from 'motion_control' and adds them to the plan of
|
|
|
|
prepared motions. It takes care of continuously optimizing the acceleration profile
|
2011-02-11 23:54:13 +01:00
|
|
|
as motions are added.
|
|
|
|
|
|
|
|
'stepper' : Executes the motions by stepping the steppers according to the plan.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Supporting files:
|
|
|
|
|
|
|
|
'config.h' : Compile time user settings
|
|
|
|
|
2011-12-09 02:47:48 +01:00
|
|
|
'settings' : Maintains the run time settings record in eeprom and makes it available
|
2011-02-11 23:54:13 +01:00
|
|
|
to all modules.
|
|
|
|
|
|
|
|
'eeprom' : A library from Atmel that provides methods for reading and writing the eeprom with
|
|
|
|
a small addition from us that read and write binary streams with check sums used
|
|
|
|
to verify validity of the settings record.
|
|
|
|
|
2011-12-09 02:47:48 +01:00
|
|
|
'nuts_bolts.h' : A collection of global variable definitions, useful constants, and macros used everywhere
|
2011-02-11 23:54:13 +01:00
|
|
|
|
2011-12-09 02:47:48 +01:00
|
|
|
'serial' : Low level serial communications and picks off run-time commands real-time for asynchronous
|
|
|
|
control.
|
2011-06-03 15:28:14 +02:00
|
|
|
|
|
|
|
'print' : Functions to print strings of different formats (using serial)
|