Commit Graph
596 Commits
Author SHA1 Message Date
stevenrwoodandClaude Opus 4.8 209228086f gcode: fix ROTATION_ENABLE 2nd-axis offset double-applied on rotated G54 XY moves
In the both-rotation-axes branch, bit_false(r_around.mask, bit(idx)) used the stale
outer loop variable idx instead of idx_0. When idx != idx_0, idx_1 (the second
rotation-plane axis) came out wrong, so in the final offset loop that axis was not
recognized as a rotation axis and its WCS offset was applied a second time. Result:
a rotated G54 move with both X and Y present targeted (work + 2x offset) on the second
axis -> false soft-limit (Alarm:2). Reproduced on hardware; only a nonzero WCS rotation
+ a full-plane G54 move triggers it. Fix: clear bit(idx_0).

Upstream grblHAL bug - PR-worthy.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-13 10:58:59 -07:00
Terje Io 09f8ba597a Updated build date for PR#983 2026-07-12 18:16:10 +02:00
Terje Io d382892625 Merge pull request #983 from gcormier/bugfix/y2homing
Re-enable both motors after auto squaring offset pull-off
2026-07-12 18:02:30 +02:00
Greg Cormier 321f69c99e Re-enable both motors after auto squaring offset pull-off
Commit 41abd8c dropped the disable_motors() call that restores
SquaringMode_Both after the dual axis offset pull-off move at the end
of homing.

When an auto squared axis has a non-zero $17n offset, homing masks off
one of the two motors for the compensation move and never unmasks it.
The motor stays step-disabled for all subsequent motion until a soft
reset, so the axis moves on one motor only while jogging or running a
program. A negative offset strands the second motor, a positive one
strands the first.

Restore the call so both motors are re-enabled once the pull-off
completes.
2026-07-12 11:35:50 -04:00
Terje Io 2bdfeb12dc Added support for MPG real time command character stream switching for RX only streams. 2026-07-09 21:05:29 +02:00
Terje Io f6bc9ef0b8 Merge pull request #977 from stevenrwood/fix/g53-ignore-wcs-rotation
G53 moves incorrectly apply the active WCS rotation/offset (when ROTATION_ENABLE=1)
2026-07-02 08:47:49 +02:00
stevenrwood add866cadc gcode: G53 must ignore the active WCS rotation/offset (when ROTATION_ENABLE=1)
Only affects builds with ROTATION_ENABLE defined; the offending code is inside
#ifdef ROTATION_ENABLE, so default builds are unaffected.

The rotation-transform block was entered for any axis-word motion without
excluding NonModal_AbsoluteOverride, so G53 (absolute machine override) moves
had the active WCS offset added to the plane axes (and were rotated). Per
RS274/NGC a G53 target is in machine coordinates and must ignore all offsets
and rotation.

Symptom: with a non-zero WCS rotation active (e.g. set by G10 L2 R / G68), G53
drives to the rotated work origin instead of the machine target, false-
triggering a soft-limit alarm when that lands outside the machine envelope.

Guard the transform with `non_modal_command != NonModal_AbsoluteOverride`, and
initialise r_axes.mask = 0 so it stays defined when the block is bypassed.
2026-07-01 03:51:13 -07:00
Terje Io 26d44fe733 Merge pull request #976 from moustakimhamza/fix/autosquare-abs-truncation
fix: use labs() instead of abs() for int32_t delta in auto-squaring check
2026-06-28 23:45:12 +02:00
Hamza Moustakim 20d69bca3e fix: use labs() instead of abs() for int32_t delta in auto-squaring check 2026-06-28 20:27:17 +01:00
Terje Io 4521e88c0f Fix for asymmetric axis kinematics triggering soft limits when enabled. 2026-06-26 07:27:59 +02:00
Terje Io 03a7dd9572 PR#974 applied.
Added preprocessor logic for handling potentially bad spindle definitions.
2026-06-22 23:05:19 +02:00
Terje Io e66e01b8e2 Merge pull request #974 from yevheniisukhominskiy/fix-limit-pins-invert-5
Fix copy-paste bug for Setting_LimitPinsInvertMask ($5)
2026-06-21 07:11:17 +02:00
Yevhenii Sukhominskiy df43e3061a Fix copy-paste bug for Setting_LimitPinsInvertMask ($5) 2026-06-20 20:04:57 +03:00
Terje Io fe7632bb7d Made named O-call LinuxCNC compliant by changing name to lowercase.
Fix for parking motion using `$32` laser mode setting when it should use the current spindle mode.
For developers: changed signature of `hal.stream.on_linestate_changed()` to include stream properties.
2026-06-19 20:56:58 +02:00
Terje Io 41abd8c84d Added kinematics for asymmetric (differing step/mm) ganged or auto squared axis,
claims the highest number axis > Z for the second motor.
2026-06-18 09:17:43 +02:00
Terje Io 4fcdbaee11 Merge pull request #962 from gcormier/interlock
Spindle interlock plugin header
2026-06-08 15:38:57 +02:00
Greg Cormier 719dbc542c add spindle interlock plugin 2026-06-05 09:06:59 -04:00
Terje Io b9d79a34c2 Fix for regression affecting step injection code. 2026-06-02 23:46:03 +02:00
Terje Io 58e1a60807 Merge pull request #956 from gcormier/newplugins
Add two new plugins
2026-06-02 18:53:15 +02:00
Terje Io 266f0db62d Minor change to shut up some compilers incorrectly warning about a potentially uninitialized variable. Ref. issue #959. 2026-05-28 16:26:34 +02:00
Terje Io 2c67781d8f Update for Web Builder 2026-05-26 09:46:23 +02:00
Terje Io 87033967a0 Allow full circle arcs without axis words. Ref. issue #958. 2026-05-25 07:01:48 +02:00
Terje Io 336a26cbdb Fixed typos that may affect STM32 drivers assignment priority of interrupt capable pins. 2026-05-20 16:07:09 +02:00
Greg Cormier 210501af9c Add two new plugins 2026-05-18 09:24:16 -04:00
Terje Io 26633c9107 fixed copy/paste error... 2026-05-18 12:42:27 +02:00
Terje Io 7c8488d4d5 Reworked feed mode handling (G93-G95), now keeps current feed rate over spindle synced motion. Ref. issue #954.
Added P-word option to G38.x probe commands, use to temporarily switch the probe input when multiple probes are available.
Fixed PWM spindle ramping, did not hit the target RPM.
2026-05-18 11:48:04 +02:00
Terje Io 1c03e111a9 Updated changelog. 2026-05-11 10:26:47 +02:00
Terje Io 728b9c91a2 Setting NGC_PARAMETERS_ENABLE to Off results compiling errors, ref. issue #919.
Changes to allow stepper spindle to use per degree settings, ref. issue 926.
Changes for improved line number reporting for subroutines and branching gcode.
2026-05-06 07:37:13 +02:00
Terje Io d77ef1d3a7 Updated changelog. 2026-04-18 11:11:53 +02:00
Terje Io e56fc8006e Formalized SPI API, added init call for 74HC595 I/O expander.
Fix for G30 not cleared on $RST, added code for syncing parser state on offsets clear. Ref. issue #940.
2026-04-16 09:39:47 +02:00
Terje Io 64265fbff3 Merge pull request #939 from engigeer/PR_reboot_fix
Add code guards to prevent hard crash on $REBOOT for unsupported drivers
2026-04-15 08:41:08 +02:00
Mitchell Grams 81ee7de776 Add code guards to prevent hard crash on $REBOOT for unsupported drivers 2026-04-10 22:35:11 -06:00
Terje Io baabd9d727 Merge pull request #934 from bullestock/include-guard-mismatch
Fix include guard mismatch.
2026-04-03 08:46:08 +02:00
Torsten Martinsen fff197a9d8 Fix include guard mismatch. 2026-04-02 16:19:36 +02:00
Terje Io 1445a4221e From PR 928? 2026-03-31 22:18:28 +02:00
Terje Io 3472301259 Merge pull request #928 from bullestock/gcc14-calloc-transposed-args
Fix -Werror=calloc-transposed-args with gcc 14.
2026-03-31 21:03:01 +02:00
Torsten Martinsen 1f748a84e0 Fix -Werror=calloc-transposed-args with gcc 14. 2026-03-31 20:44:58 +02:00
Terje Io 3c15245409 Changed homing to use the configured feed rate for all axes in a given cycle.
Slow locate phase can now be skipped by setting $24 to 0, this can be useful for Trinamic sensorless homing.
Fix for pendant not working if default stream is native USB and no client is connected. Ref. issue #927.
2026-03-31 14:11:02 +02:00
Terje Io eef9949d55 Improved support for using expander inputs for basic functions. "Hardened" code a bit. 2026-03-26 20:52:26 +01:00
Terje Io 5025b28f1f Improved support for using expander inputs for basic functions.
Currently only available for the RP2040 driver.
2026-03-24 20:14:28 +01:00
Terje Io f526ec0395 Small changes to ensure that output during startup do not cause
hangs due to no client connection when native USB is default.
2026-03-21 20:23:50 +01:00
Terje Io a4dd4134c0 Minor bug fix, only relevant when debug output to a dedicated UART is enabled. 2026-03-20 15:56:19 +01:00
Terje Io 8aa81a1c3b Added MCU clock speed, when available, to DRIVER element in $I output. Ref. issue #923.
Improved diagnostics provided by $MODBUSSTATS when communication has been lost.
Fix for regression.
2026-03-18 18:13:42 +01:00
Terje Io 999b309135 Merge pull request #858 from engigeer/master
Add init for RP2040 based flexgpio i2c expander, core support for additional auxiliary I/O
2026-03-18 07:33:35 +01:00
Mitchell Grams cb70830d76 Add init for RP2040 based flexgpio i2c expander 2026-03-17 22:16:23 -06:00
Mitchell Grams 6f029b0d48 Test changes 2026-03-17 22:14:42 -06:00
Terje Io 588e3f831d Added latency (in ms) to $MODBUSSTATS output. 2026-03-14 21:18:52 +01:00
Terje Io 29ea451996 Added platform specific formatting strings for int32_t, "hardened" task handler code. 2026-03-13 10:39:39 +01:00
Terje Io 38cc54d74e Improved handling of current working directory (CWD). 2026-03-11 18:03:29 +01:00
Terje Io ee077d8730 Changes to allow I/O expander pins for motor fault inputs. Ref. PR #920. 2026-03-09 00:03:52 +01:00