Commit Graph

127 Commits

Author SHA1 Message Date
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
5f135ed433 Added definition for new plasma THC setting and signals for toolsetter.
Added named parameters _probe_state and _toolsetter_state. Both return -1 if state is not available.
These may return incorrect values initially so use with care.
2025-01-17 09:54:22 +01:00
Terje Io
efe4245a06 "hardened" task deregistration code and changed signature of setting available and ioport_find_free() calls.
Some low-level ioport improvements, added definition for virtual pins/ports.
Deprecated direct access to number of the different ioport ports in hal.port struct, use ioports_unclaimed() instead.
2025-01-14 17:13:56 +01:00
Terje Io
c681661516 Fix for all $RST command variants resetting driver settings to default when only $RST=* and $RST=& should. Ref. issue #659.
Changed behaviour of $RST=# to not reset coordinate systems locked by setting $486.
2025-01-10 21:10:47 +01:00
Terje Io
22a8a08a95 Fixed inconsistent handling of auxiliary port numbers when claiming from plugins.
New API call added related to this.
2025-01-09 12:17:25 +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
5a05201041 Fix for coolant issue when resetting from feed hold state. 2025-01-02 13:31:41 +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
Dietz0r
719017bff9 Adjusted lookup function for array counting (start from 0) and added input checking 2024-12-27 15:25:45 +01:00
Dietz0r
c47e6a356e Debugging and Compiling 2024-12-27 02:45:34 +01:00
Dietz0r
254a3d1212 Update settings.c
Cleaned up out of sync functions. Most likely a remnant from resolving the merge conflict.
2024-12-26 21:23:06 +01:00
Dietz0r
df6aec3e3a Merge branch 'grblHAL:master' into master 2024-12-26 17:03:56 +01:00
Terje Io
50a7507f6f Added preprocessor support for moving coolant outputs to auxiliary pool. Some minor bug fixes and code cleanup.
Those who have custom board maps must update pin assignments accordingly when updating to this or later versions.
2024-12-17 16:10:20 +01:00
Terje Io
c7c5b63447 Added suppression of door open signal when in manual or semi-automatic tool change mode. 2024-12-14 15:08:07 +01:00
Dietz0r
33795245fe file didnt want to push. found a typo 2024-12-10 23:05:45 +01:00
Dietz0r
e504964dae moved acceleration factor to plan_block_t structure, moved lookup function to plan_data_init, renamed lookup fuction and adjusted the acceleration limit functions to new structure 2024-12-10 22:15:25 +01:00
Dietz0r
a6ae08ea97 Resolve merge conflict for new setting structure 2024-12-10 21:10:16 +01:00
Terje Io
a41790dada Revised core setting structures, changed from 8-bit to 16-bit CRC checksums for improved detection of corruption/version mismatches.
Added option to homing enable setting ($22) for per axis homing feedrates.

!! Backup and restore settings over an update is recommended since all settings will be reset to default. Any odometer data will also be lost.
2024-12-09 19:24:20 +01:00
Terje Io
8fee2930f5 Added (or rather repurposed) field for build date to settings structure in preparation for coming changes.
Added code guards in order to free some memory for STM32F103 variants with 128K flash.
Changed Stop (0x19) real-time command behaviour, active tool offset and coordinate system will now be kept. Ref. issue #610.
2024-11-29 18:17:26 +01:00
Terje Io
7e40bf2402 A bit of refactoring related to spindles as a first step for a coming settings structure revision, "hardened" some code. 2024-11-20 19:03:27 +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
Dietz0r
b7d54d75ee added acceleration profiles to gc_state, adjusted g187 and m2/30 handling accordingly 2024-10-31 21:22:09 +01:00
Dietz0r
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
d4c9d21ab2 Some minor changes to better support keypad macro and networking plugins. 2024-06-24 14:29:29 +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
Dietz0r
0b69f6fb40 Merge branch 'grblHAL:master' into master 2024-05-23 13:41:43 +02:00
Terje Io
1de8d7b7f0 Fix for homing setting regression. Ref. issue #512 2024-05-13 14:40:26 +07:00
Terje Io
ec209ecba7 Fixed polar kinematics feed rate handling, some tuning. Ref. issue #475.
Allowed plugins to inject commands when controller is in alarm state.
2024-04-04 16:40:07 +02:00
Terje Io
c3aace735b Fixed symbol issue with Arduino Due blocking compilation of NGC parameter support. 2024-04-02 23:55:46 +02:00
Dietz0r
2ec344e750 Merge branch 'grblHAL:master' into master 2024-04-02 16:50:35 +02:00
Terje Io
5afac36157 Added capability flags to HAL for all coolant outputs.
Hide related settings when no spindle and/or coolant outputs are available. From PR #479.
Fixed typo related to Modbus direction signal. Ref. issue #478.
Fixed typo in handling of aux output port settings. Ref issue #476.
2024-03-30 21:08:48 +01:00
Terje Io
d9ed1bd89c Added missing null spindle handler for ESP32, issue #473.
Fix for unable to set $484 to 0, issue #466.
Added setting $673 for setting coolant on delay after feedhold. Available when safety door handling is not enabled.
Fixed obscure bug carried over from legacy Grbl related to this. Issue #467.
Enabled setting $394 for spindle on delay after feedhold. Available when safety door handling is not enabled.
2024-03-28 14:55:05 +01: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
Terje Io
06f442643a Tentative fix for lathe CSS/feed per rev modes (G96/G95), ref discussion #450.
Fixed incorrect reporting of feed rate modes in $G response.
Added some ioPorts call wrappers, full support for reconfiguring output auxillary pins for PWM output.
2024-02-28 17:36:17 +01:00
Dietz0r
fa6d5089ac Merge branch 'grblHAL:master' into master 2024-02-25 15:05:45 +01:00
Terje Io
a912ce47c7 This build has moved the probe input to the ioPorts pool of inputs and will be allocated from it when configured.
The change is major and potentially dangerous, it may damage your probe, so please verify correct operation after installing.

Fix for STM32F4xx issue 161, Ethernet connection unresponsive if USB port not powered.

Enhanced ioPorts interface: New debounce option for input pins that are interrupt capable, currently only possible to enable via plugin code - later to be made available via a $-setting.
Added some wrapper functions for simpler plugin code++

Added simple task scheduler to the core, allows interrupt routines to dispatch jobs to the foreground process, delayed tasks and repeating tasks attached to the 1 ms system timer.
Some drivers and plugins now uses the scheduler for input pin debouncing, regular polling etc. The core uses it for stepper disabling and sleep monitoring.
2024-02-23 22:54:00 +01:00
Terje Io
068e6d37b1 Fixed compiler warning for compatibility level > 1, added some "just in case" assertions. 2024-02-02 14:03:27 +01:00
Terje Io
2d6bb02a5b Updated readme and changelog. Added code guard to suppress compiler warning. 2024-01-31 14:30:22 +01:00
Dietz0r
aa9a0c4579 Fixed typos and brackets 2024-01-14 14:48:39 +01:00
Dietz0r
b6135c4218 Changed ActiveAccelProfile declaration/definition because of compiler warning 2024-01-14 14:20:10 +01:00
Dietz0r
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
Dietz0r
a537704896 reverted settings_override_acceleration to original 2024-01-10 23:37:52 +01:00
Dietz0r
f6bf39c52c Updated AccelerationProfile implementation to not alter settingsvalues 2024-01-10 23:27:45 +01:00