This release includes a critical bug fix (rare) and some other minor bug fixes, updates and new non-critical features.
[fix] A very rare bug would cause Grbl to crash in a very special and very rare set of circumstances. It would occur only when actively lowering feed/rapid overrides and the programmed move and settings aligned perfectly. Re-factored the problem code to eliminate the potential issue.
[new] A nonlinear spindle speed/PWM output option via a piecewise linear fit model. Enabled through config.h and solved by a Python script in /doc/script.
[new] fit_nonlinear_spindle.py. A solver script that can be run on http://repl.it for free. No Python install necessary. All instructions are available in the script file comments.
[new] stream.py has been updated to include status reports feedback at 1 second interval.
[new] The stream.py streaming script now has a check-mode option, where it will place Grbl in $C check mode automatically and then stream the g-code program. It's a very fast way to check if the g-code program has any errors.
[fix] stream.py bug fix with verbose mode disabled.
[fix] When in M3 constant laser power mode, a change from G0 to G1 would not set the laser on, if G1 was passed with a coincident target. Motion controller now checks for a coincident target situation and will force a spindle sync when detected.
[fix] Restrict M3 forced updates when there is a motion block with a coincident target. Force syncing of the spindle state can lead to some pauses during a job that has coincident targets. That’s not particularly desirable. This ensures M4 dynamic mode is not effected by this force-sync.
[fix] The build info options of “two switches on an axis” and “homing init lock” shared the same letter ‘L’. The former is now ’T’.
[fix] When M7 and M8 are both enabled, $G report would show
M78, rather than
M7 M8. This only effects systems that enable M7 mist coolant in config.h. Not the default build.
[fix] When trying to enable laser mode with $32=1 and VARIABLE_SPINDLE is disabled, the error code shown was improperly stating it was a homing failure. Added an new error code specifically for the laser mode being disabled without VARIABLE_SPINDLE.
[fix] The debug variable was not initialized if the debug option was enabled in config.h
[fix] Updated error_codes CSV file to the same format as the others.
[update] Added PocketNC FR4 defaults. Needs some additional work though to be compatible.