- Added acceleration to the homing routine.
- Homing now accounts for different step rates when moving multiple
axes without exceeding acceleration limits.
- Homing now updates all internal positioning variables to machine zero
after completion.
- "Poor-man's" debounce delay added.
- Updated the delay_us() function to perform faster and more accurate
microsecond delays. Previously, the single increments would add
noticeable time drift for larger delays.
- Fix a bug in the stepper.c prescalar calculations that was changed in
the last commit.
- Other minor fixes.
- G54 work coordinate system support. Up to 6 work coordinate systems
(G54-G59) available as a compile-time option.
- G10 command added to set work coordinate offsets from machine
position.
- G92/G92.1 position offsets and cancellation support. Properly follows
NIST standard rules with other systems.
- G53 absolute override now works correctly with new coordinate systems.
- Revamped g-code parser with robust error checking. Providing user
feedback with bad commands. Follows NIST standards.
- Planner module slightly changed to only expected position movements
in terms of machine coordinates only. This was to simplify coordinate
system handling, which is done solely by the g-code parser.
- Upon grbl system abort, machine position and work positions are
retained, while G92 offsets are reset per NIST standards.
- Compiler compatibility update for _delay_us().
- Updated README.
- Program stop support (M0,M1*,M2,M30*). *Optional stop to be done.
*Pallet shuttle not supported.
- Work position is set equal to machine position upon reset, as
according to NIST RS274-NGC guidelines. G92 is disabled.
- Renamed mc_set_current_position() to mc_set_coordinate_offset().
- Fixed bug in plan_synchronize(). Would exit right before last step is
finished and caused issues with program stops. Now fixed.
- Spindle now stops upon a run-time abort command.
- Updated readme and misc upkeeping.
- Fixed a premature step end bug dating back to Simen's 0.7b edge
version is fixed, from which this code is forked from. Caused by Timer2
constantly overflowing calling the Step Reset Interrupt every 128usec.
Now Timer2 is always disabled after a step end and should free up some
cycles for the main program. Could be more than one way to fix this
problem. I'm open to suggestions.
- _delay_ms() refactored to accept only constants to comply with
current compilers. square() removed since not available with some
compilers.
- ALPHA status. - Multitasking ability with run-time command executions
for real-time control and feedback. - Decelerating feed hold and resume
during operation. - System abort/reset, which immediately kills all
movement and re-initializes grbl. - Re-structured grbl to easily allow
for new features: Status reporting, jogging, backlash compensation. (To
be completed in the following releases.) - Resized TX/RX serial buffers
(32/128 bytes) - Increased planner buffer size to 20 blocks. - Updated
documentation.