Commit Graph
90 Commits
Author SHA1 Message Date
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 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 16e5df9d93 Marked a large number of non-critical functions with FLASHMEM to save RAM for the iMXRT1062 driver.
Improved alarm handling, if a critical alarm is active when a non-critical alarm is raised the non-critical alarm will be delayed until after reset for the critical alarm.
Improved Modbus exception handling and added high level API call for creating and sending Modbus messages.
Added G65P7 inbuilt macro for interacting with Modbus devices from gcode. See the Wiki for details.
2026-02-15 22:16:03 +01:00
Terje Io 2eb7179b9d Changed spindle at speed check to fix issue with it sometimes skipping the wait cycle.
Added experimental support for ramping PWM output on RPM changes. See the changelog for details.
2026-02-07 09:46:00 +01:00
Terje Io 64c35930c7 Refactored offset handling, for improved readability and in preparation for rotation support.
Added experimental support for G66 (modal macro call) and G67 (end modal macro call).
Made axis letter to axis/motor assignment for axes ABCUVW freely changeable at compile time.
Fix for some G65 arguments being incorrectly validated for normal use (sign, range).
Added repeat support to G65 macro call via the optional L parameter word.
Changed default setting for ABC-axes to rotary.
Changed defaults for jerk settings to 10x acceleration settings.
Disabled jerk for jog, probe and spindle synchronized motion.
Added _active_probe system parameter, returns -1 if no probe inputs available.
Minor bug fix, G5.1 and G33.1 motion commands were not coverted to the correct string equivalent in $G output.
2026-01-25 07:51:44 +01:00
terjeio 6c59a548ae Final fix for handling of $680 stepper enable delay. 2025-12-07 16:47:19 +07:00
Terje Io e272f773b5 Refactored the tool table HAL API a bit to improve functionality.
Added tool name, pocket number and some lathe specific data fields to the $# tool output when available from the tool table.
If name is available it will be output as a push message on M6 if there is no message in the same block.
Added support for directory up, .., to VFS.
Added new option to $650 - File systems options to enable hierarchical listing of files and directories via $F and $F+ commands.
2025-11-11 16:51:08 +01:00
Terje Io 106f5fd573 Refactored assignment of of auxiliary I/O for "standard" inputs and outputs to make it more robust and easier to follow for developers.
Moved probe signal handling from drivers to the core, improved handling of probe disconnected signal.
NOTE: The changes above are quite large, please verify probe operation after installation.
2025-10-16 17:22:32 +02:00
Terje Io a61e5e1089 Added setting options for clearing rapids and feed overrids on soft reset to $676, defaults to on. Ref. issue #803.
Added realtime report of distance-to-go. Ref. PR #802.
2025-09-10 21:34:20 +02:00
Mitchell Grams 65679de995 Revise DTG bit location do avoid need for setting reset 2025-09-08 13:03:43 -06:00
Mitchell Grams 50e10ac768 Add setting for including distance-to-go in realtime report 2025-09-07 18:15:42 -06:00
Terje Io 02b45f86e5 Fix for corrupted tool table entries not beeing reset. This may happen on resizing the tool table.
Added system parameter _tool_table_size, 0 if a tool table is not enabled.
Removed dependency on safety door input for parking settings: $41, $42, $56-$59, $392 and $393.
Removed strict dependency on spindle encoder input for spindle synced motion,
allows the use of the stepper spindle which has an implicit encoder.
2025-07-31 08:19:07 +02:00
Terje Io 74eb456533 Added ioports API call for remapping port numbers.
Added HAL support for setting serial stream format.
Added setting $681 for configuring Modbus RTU stream parity, available when the underlying driver supports format setting.
2025-07-05 14:17:11 +02:00
Terje Io 081f24f663 Added option flag to $22 (Homing cycle) to run startup scripts only on homing completed.
Added API call modbus_isbusy() for checking if Modbus transaction is ongoing.
2025-06-25 08:52:15 +02:00
Terje Io 5614f505fb Refactored tool table API/HAL, now supports tool > tool rack/carousel pocket mapping.
Named system parameters _current_pocket and _selected_pocket updated to return the correct values.
Moved handling of keeping last tool number over reboot from template plugin to the core.
Added named system parameters _homed_state and _homed_axes.
Fix for failure to claim auxiliary ports in some configurations.
2025-06-19 07:09:49 +02:00
Terje Io b10b3317d2 Fix for custom M-code commands claiming all axis words even when not using any.
Added setting $680 for configuring delay from stepper enable to first dir/step pulse.
Adds to fixed ~2ms delay provided by most drivers.
2025-05-18 08:03:51 +02:00
Terje Io b41018543b Moved part of the driver based spindle sync code to the core.
Spindle sync now has to be enabled in grbl/config.h.
2025-04-24 22:38:55 +02:00
Terje Io 837398221b Fixed regression introduced with PR#673.
Added G30 as optional position for tool change.
Moved new tool change mode from PR#673 to $346 - Tool change options.
Moved Modbus RTU code from spindle plugin to the core.
Fixed bug in delayed task handler, might occasionally hang the controller.
2025-04-19 14:08:46 +02:00
Terje Io 77b65c6fdd Fixed long standing "bug" where settings $370 and $372 for auxiliary ports where
applied before the underlying GPIO pins were initialized by the driver.
Improved handling of same settings for external (I2C, ModBus, ...) ports.
2025-04-15 14:57:18 +02:00
Terje Io b737687743 Reduced default step pulse length to 5 microseconds.
Added HAL parameter for minimum step pulse length set by driver, used for validation of $0 setting.
Changed HAL API signature for outputting step pulses, optimized to allow drivers to only change direction outputs when there is an actual direction change.
Improved handling of overrides at end of program when all motion is buffered. Possible fix for issue #714.
Some optimizations to allow higher step rates.
2025-03-28 18:02:56 +01:00
Terje Io 29f10397cb Improved/fixed soft reset handling related to position lost if reset was executed during motion.
Added setting $676 with flags to control soft reset actions. See the changelog for details.
Workaround for Microsoft C adding a non-standard reserved keyword...
2025-02-22 00:18:41 +01:00
Terje Io 472012e137 Changed $65 setting to flags for allowing feed rate overrides during probing and limiting probe motion to be within machine workspace.
Improved handling of stop realtime command (0x19) for faster motion halt without losing position.
Optimized RAM usage. Fixed regression related to losing current coordinate system and tool offset over a stop.
2025-02-20 10:46:04 +01:00
Terje Io ff0903fd87 Added HAL support for stepper driver status signals (warning and fault) and
new HAL entry point for querying/resetting driver status.
Added driver capability flags and settings, $742 - $745, for enabling and inverting motor warning and fault input signals (per axis).
Improved jerk acceleration. Ref. PR #660.
2025-01-18 21:18:30 +01:00
Terje Io 3f37d8c478 Added setting $539 for spindle spin down delay. Ref. issue #651. 2025-01-07 08:57:34 +01:00
Terje Io 6b4bab82ad Added new handling for spindle spin up and coolant start delays. See the changelog for details. 2025-01-03 23:16:08 +01:00
Terje Io e8a0aeea26 Fix for laser incorrectly enabled in laser mode when M3S<n> commanded in G0 and G80 modal states. Ref. issue #644.
Added optional support for 3rd order acceleration (jerk) and G187 gcode. Ref. pull request #593.
2024-12-31 08:48:33 +01:00
Dietz0randGitHub 075d5cec57 Merge branch 'master' into master 2024-12-10 21:28:16 +01:00
Terje Io 0b8bce16c6 Added support for named o-sub/o-call to flow control, for calling gcode subroutines stored on SD card or in littlefs.
Sub name matches filename with extension .macro.
Added core event for handling special gcode comments used by expressions and flow control: DEBUG, PRINT and ABORT.
Added overrideable default $-setting values for second PWM spindle to grbl/config.c.
2024-11-16 22:02:00 +01:00
Terje Io 43d694917c Added basic core support for toolsetter probe, changes $6 (probe input inversion) and $19
(probe input pullup disable) settings from boolean to bitfield when driver support is available.
Added a few default values for settings in config.h, overridable from the compiler command line.
Added core support for per axis pulloff distance, needs plugin for configuring them.
Added HAL flags for disabling settings for MCU input pins pullup disable, may be set by
drivers/boards that has buffered (optocoupled) inputs that is not possible to change.
2024-11-13 17:32:36 +01:00
Dietz0randGitHub e17d78293f Merge branch 'grblHAL:master' into master 2024-09-29 21:03:31 +02:00
Terje Io 323dd84b79 Added (PRINT, <msg>) support and parameter formatting for DEBUG and PRINT commands.
Added named parameters for getting absolute (G53) position: _abs_x, abs_y, ...
Available when expression support is enabled.

Changed stepper enable HAL signature to allow current reduction when idle.
Added reference id to spindle registration in order to allow configuring default spindle, and possibly additional spindles, at compile time.
2024-09-29 12:38:49 +07:00
Terje Io c8c77c35e0 Added some new plugin init calls and setting ids.
Added defaults for RGB strip lengths.
2024-09-04 18:27:41 +07:00
Terje Io d2c476deaf Added option bit for enabling realtime reporting while homing to $10, Status report options. Ref. issue #551. 2024-08-01 19:24:00 +02:00
Terje Io 8b9b7859ee Limited tool change probe moves to be within machine limits. Ref. issue #542.
Added setting $358 to enable experimental functionality for fast rotary 'rewind' to stored G28 position.
Return move should complete in half a rotation or less.
For developers: added option to redirect debug via driver provided function when DEBUGOUT is set to -1 in config.h. Ref. issue #545.
2024-07-19 09:49:46 +02:00
Terje Io 9a060d7ea0 Renamed grbl.on_probe_fixture event to grbl.on_probe_toolsetter and added pointer to toolsetter coordinates as an additional parameter.
Increased backlash parameters precision to 5 decimals. Ref issue #452.
Some bug fixes in NGC parameters and flow control handling.
2024-06-19 20:37:30 +02:00
Dietz0randGitHub 0b69f6fb40 Merge branch 'grblHAL:master' into master 2024-05-23 13:41:43 +02:00
Terje Io fed76cf596 Fix for incorrect handling of some flow control statements when nested. Ref. issue #504.
Fixed defaults and added sanity checks for spindle linearization parameters settings.
2024-05-06 12:00:01 +02:00
Terje Io c6aeef14cf Added config to enable NGC parameter reporting, default on. 2024-04-27 23:33:33 +02:00
Dietz0randGitHub 2ec344e750 Merge branch 'grblHAL:master' into master 2024-04-02 16:50:35 +02:00
Terje Io 7cf86877f0 Changed signature of grbl.on_homing complete event to include the cycle flags.
Added definitions for up to four additional digital aux I/O ports.
Added real time report of selected spindle in multi spindle configurations. Reported on changes only.
Removed limits override input invert config, for safety reasons it is always active low.
Added HAL entry points for second RGB channel, renamed first from hal.rgb to hal.rgb0.
Added option to setting $22 to force use of limit switches for homing when homing inputs are available in the driver/board combo.
Improved handling of aux I/O pins when claimed for core functions.
Added flag to $9 for disabling laser mode capability for primary PWM spindle. Allows leaving laser mode enabled when a secondary PWM spindle is available and this is used to control a laser.
Added some generic setting definitions for stepper drivers, currently used by the motors plugin.
2024-03-19 20:32:40 +01:00
Dietz0randGitHub 9fd3ba55a1 Merge branch 'grblHAL:master' into master 2024-01-12 19:27:14 +01:00
Terje Io 6afe6d1a7c Fix for issue #426, decreasing the $30 setting value (max spindle RPM) causes incorrect PWM output.
Implemented handling of single block, block delete and optional stop disable control signal events.
Added help for $S (single block), $B (block delete) and $O (optional stop disable) commands.
Added optional HAL entry point for outputting WRGB values to lights such as neopixels.
Improved $-commands registration to make it easier to add help text.
2024-01-12 13:49:36 +01:00
Dietz0randGitHub bc003a2f64 Included default jerk values in compile option 2024-01-07 21:23:27 +01:00
Dietz0randGitHub e645ddbdd9 Added compile time option for jerk controlled motion 2024-01-07 20:58:26 +01:00
Dietz0randGitHub 4cc7aaf171 Added compiletime check for added acceleration profile code 2024-01-04 00:30:18 +01:00
Dietz0randGitHub 08639598d8 Merge branch 'grblHAL:master' into master 2023-12-29 23:48:59 +01:00
Terje Io 57243a0fc2 Fixed regression that prevented builds with compatibiliy level set > 1.
Added [SIGNALS:xxx] element to the $I output.
2023-12-29 19:33:27 +01:00
Dietz0randGitHub 2361610bda cleaned up config and added settings description 2023-12-19 01:28:41 +01:00