- Commit history added to repo, as an easier way for people to see view
the changes over time.
- Grbl logo copyright license added. All rights reserved with regards
to the Grbl logo.
- G2/3 full circles would sometime not execute. The problem was due to
numerical round-off of a trig calculation. Added a machine epsilon
define to help detect and correct for this problem. Tested and should
not effect general operation of arcs.
- Apparently inverse time motion were not working for quite some time.
Goes to show how many people actually use it. The calculation was bad
and is now fixed in this update. It should now work correctly.
- `;` comment type is now supported. This is standard on LinuxCNC and
common on 3d printers. It was previously not supported due to not
existing in the NIST standard, which is out-dated.
- New compile-option to ECHO the line received. This should help users
experiencing very weird problems and help diagnose if there is
something amiss in the communication to Grbl.
- New compile-option to use the spindle direction pin D13 as a spindle
enable pin with PWM spindle speed on D11. This feature has been
requested often from the laser cutter community. Since spindle
direction isn’t really of much use, it seemed like good good trade.
Note that M4 spindle enable counter-clock-wise support is removed for
obvious reasons, while M3 and M5 still work.
- Cleaned up the limit pin state reporting option to display only the
state per axis, rather than the whole port. It’s organized by an XYZ
order, 0(low)-1(high), and generally looks like `Lim:001`.
- Separated the control pin state reporting from limit state reporting
as a new compile option. This stayed the same in terms of showing the
entire port in binary, since it’s not anticipated that this will be
used much, if at all.
- Updated some of the gcode source comments regarding supported g-codes.
- The homing cycle should be working again. Reverted it back to how it
was about a month ago before I started to fiddle with it. Turns out
that my past self knew what he was doing.
- Added an include in the right spot, if a user tries to compile and
upload Grbl through the Arduino IDE with the old way.
- Fixed a minor bug with homing max travel calculations. It was causing
simultaneous axes homing to move slow than it did before.
- G91.1 support added. This g-code sets the arc IJK distance mode to
incremental, which is the default already. This simply helps reduce
parsing errors with certain CAM programs that output this command.
- Max step rate checks weren’t being compiled in if the option was
enabled. Fixed now.
- Alarm codes were not displaying correctly when GUI reporting mode was
enabled. Due to unsigned int problem. Changed codes to positive values
since they aren’t shared with other codes.
- New configuration option at compile-time:
- Force alarm upon power-up or hard reset. When homing is enabled,
this is already the default behavior. This simply forces this all of
the time.
- GUI reporting mode. Removes most human-readable strings that GUIs
don’t need. This saves nearly 2KB in flash space that can be used for
other features.
- Hard limit force state check: In the hard limit pin change ISR, Grbl
by default sets the hard limit alarm upon any pin change to guarantee
the alarm is set. If this option is set, it’ll check the state within
the ISR, but can’t guarantee the pin will be read correctly if the
switch is bouncing. This option makes hard limit behavior a little less
annoying if you have a good buffered switch circuit that removes
bouncing and electronic noise.
- Software debounce bug fix. It was reading the pin incorrectly for the
setting.
- Re-factored some of the ‘$’ settings code.
- Instead of a single overall max travel for a search distance for the
homing limit switches. The homing cycle now applies the max travel of
each axis to the search target. Generally makes more sense this way and
saved more than a 100bytes of flash too.
- Homing cycle failure reports alarm feedback when the homing cycle is
exited via a reset, interrupted by a safety door switch, or does not
find the limit switch.
- Homing cycle bug fix when not finding the limit switch. It would just
idle before, but now will exit with an alarm.
- Licensing update. Corrected licensing according to lawyer
recommendations. Removed references to other Grbl versions.
- Overhauled the state machine and cleaned up its overall operation.
This involved creating a new ‘suspend’ state for what all external
commands, except real-time commands, are ignored. All hold type states
enter this suspend state.
- Removed ‘auto cycle start’ setting from Grbl. This was not used by
users in its intended way and is somewhat redundant, as GUI manage the
cycle start by streaming. It also muddled up how Grbl should interpret
how and when to execute a g-code block. Removing it made everything
much much simpler.
- Fixed a program pause bug when used with other buffer_sync commands.
- New safety door feature for OEMs. Immediately forces a feed hold and
then de-energizes the machine. Resuming is blocked until the door is
closed. When it is, it re-energizes the system and then resumes on the
normal toolpath.
- Safety door input pin is optional and uses the feed hold pin on A1.
Enabled by config.h define.
- Spindle and coolant re-energizing upon a safety door resume has a
programmable delay time to allow for complete spin up to rpm and
turning on the coolant before resuming motion.
- Safety door-style feed holds can be used instead of regular feed hold
(doesn’t de-energize the machine) with a ‘@‘ character. If the safety
door input pin is not enabled, the system can be resumed at any time.
- Re-organized source code files into a ‘grbl’ directory to lessen one
step in compiling Grbl through the Arduino IDE.
- Added an ‘examples’ directory with an upload .INO sketch to further
simplify compiling and uploading Grbl via the Arduino IDE.
- Updated the Makefile with regard to the source code no longer being
in the root directory. All files generated by compiling is placed in a
separate ‘build’ directory to keep things tidy. The makefile should
operate in the same way as it did before.