- Minor bug fix for variable spindle PWM output. Values smaller than
the minimum RPM for the spindle would overflow the PWM value. Thanks
Rob!
- Created an optional minimum spindle PWM low-mark value as a
compile-time option. This is for special circumstances when the PWM has
to be at a certain level to be read by the spindle controller.
- Refactored the new probing commands (G38.3, G38.4, G38.5) code to
work better with the rest of Grbl’s systems.
- Refactored mc_probe() and mc_arc() to accept the mode of the command,
i.e. clockwise vs counter, toward vs away, etc. This is to make these
functions independent of gcode state variables.
- Removed the pull off motion in the probing cycle. This is not an
official operation and was added for user simplicity, but wrongly did
so. So bye bye.
- Created a configure probe invert mask function to handle the
different probe pin setting and probing cycle modes with a single mask.
- Minor bug fix with reporting motion modes via $G. G38.2 wasn’t
showing up. It now does, along with the other new probing commands.
- Refactored some of the new pin configurations for the future of Grbl.
-
- The `x` in `$x=val` would overflow when a value larger than 255 was
entered and passed to Grbl. This resulted with unintended parameters
being set by the overflow value. To fix, simply check for values larger
than 255 and error out.
- Sometime I HATE github. This push is just here to be able to describe
the last two pushes today that had a merging conflict and lost all of
the commit comments before.
- Setting $10 would cause $11 to be the same value. Missed a break
statement in the switch-case. Oops! Now fixed.
- CPU pin map for the future versions of Grbl introduced, but not yet
finalized. Still working on it and it’s subject to change.
- Added a new high-speed machining test g-code routine written by Todd
Fleming. Mills a pocket at 15,000mm/min. Do not use when connected to
your machine! You’ve been warned!
- Updated ShapeOko2 defaults based on machine testing of the basic
model provided by Inventables. (or close to it.) Should be pretty
conservative but much faster than before. For example, X and Y axes are
set at (10x) faster at 5000mm/min. It can run much faster than this,
but this seems like a safe speed for everyone.
- Updated README for master release.
- Added some new settings methods for clearing the EEPROM when changing
versions. Needs some more work, but it should ok for master release.
Should work on it more for the next version.
- When updating from v0.8, the settings will wipe the startup lines and
build info locations so that it won’t use whatever is already there in
the EEPROM. Parameters (coord offsets) are retained. They should be ok
during an upgrade.
- A G28/30 bug would cause it to move to machine coordinate [0,0,0] if
no axis words were sent. It was a typo in the new g-code parser. Fixed
and slightly re-written to be more consistent with the program flow.
- Updated the ShapeOko2 defaults based on testing on the real machine.
A little conservative, but it might change again after some more
testing.
- Now blocks ‘$$’ command during a motion, because the printout takes
too long and can starve the segment buffer.
- A very very low feed rate command like `G1 X100 F0.01` would cause
some floating-point round-off error and freeze Grbl into an infinite
loop. To fix it, introduced a MINIMUM_FEED_RATE parameter in config.h
to ensure motions always complete.
- MINIMUM_FEED_RATE is set at 1.0 mm/min by default. It’s recommended
that no rates are below this value, but 0.1mm/min may be ok in some
situations.
- Restored probe position syncing. Had removed a pull-off motion after
a probe cycle completes, but ended up de-synchronizing the g-code
parser and probing cycle positions. Putting the pull-off motion back
fixed the problem.
- Probing cycle would drop into a QUEUED state, if multiple G38.2 are
sent. It would not honor the auto cycle start flags. To fix, the auto
cycle start state is saved at the beginning of the probing cycle and
restored at the end, since the feed hold it uses to stop a triggered
probe will disable the auto start flag. For now it’s a patch, rather
than a permanent fix.
- protocol_buffer_synchronize() also has a failure case. Auto cycle
start does not get executed when the system is waiting in here, so if
it’s in a QUEUED state already, it won’t resume. Patched here, but not
fully resolved.
- Fixed a problem with the “view build info” command. The EEPROM write
would do weird things and corrupt the EEPROM. Not sure exactly what
caused it, but it’s likely a compiler problem with an improperly
defined EEPROM address. It didn’t have enough room to store a full
string. To fix, the build info EEPROM range was increased and the max
number of STARTUP_BLOCKS was reduced to 2 from 3.
- Lastly, when a $I view build info is used for the first time, it
would normally show an EEPROM read error, since it wasn’t cleared or
wasn’t therein the first place. It will now not show that error. A
patch rather than a permanent fix again.