Commit Graph

511 Commits

Author SHA1 Message Date
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
18d6272060 Fix for regression causing MPG mode switch malfunction. Ref. issue #846. 2025-11-08 20:27:11 +01:00
Terje Io
6efbed8fa2 Updated changelog 2025-11-08 08:37:39 +01:00
Terje Io
adba5d031c Refactored M70-M73 modal state handling, should now be fully compatible with LinuxCNC behaviour.
Added ADC/DAC resolution to $pinstate command, changed reported values to integer for ADC/DAC devices and float formatted for PWM devices.
Numeric settings can now be set via G65P1Q<n>S<value>, <n> is the setting number, <value> is the new value.
Changed alarm code for Modbus exceptions (communication errors) from 14 to 19.
Refactored MPG stream code to allow plugins to hook into MPG streams (via event handler).
Added _free memory system parameter, returns value in KBytes or -1 if not available from driver.
Changed basic stream data type from char to uint8_t, added HAL function and core API for releasing/closing UART streams.
2025-11-08 07:52:01 +01:00
Terje Io
caa1cfcd13 Updated changelog. 2025-11-07 22:26:42 +01:00
Terje Io
69cdfb76c8 Added field for programmed timer period to HAL timer struct. 2025-11-05 07:54:32 +01:00
Terje Io
720f6bd552 Workaround for POS (Power on self-test) failure messages(s) not output on "native" USB connect.
Fixed handling of NVS buffer allocation, size was not increased as expected when physical NVS is capable of holding more than 2 Kbytes.
This could lead to POS failure or plugins not initializing when a large tool table is configured.
2025-10-23 10:40:01 +02:00
Terje Io
ba222d16aa Previous commit was incorrect, fixed 2025-10-22 08:31:34 +02:00
Terje Io
f5f31e6780 Fix for regression causing no WCO data in the real time report. 2025-10-22 08:20:54 +02:00
Terje Io
b5b236ca3f Updated some pointer casts to get warning free compilation for 64-bit targets.
A few tweaks to get rid of warnings for some driver/board/configuration combinations.
2025-10-20 08:10:58 +02:00
Terje Io
ed2a392dd7 Added _probe2_state system parameter, returns -1 if probe 2 is not available, 1 if triggered and 0 if not.
Fix for hang when G65 sub call level is > 2.
Fix for crash when selecting a tool (with the T command) outside the tool table range.
2025-10-18 20:28:02 +02: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
0679a0c6d4 Updated changelog 2025-10-15 13:25:10 +02:00
Terje Io
1d0d7b41a4 Added preprocessor code and symbols to allow easy assignment of unused/unclaimed limit inputs as auxiliary inputs. 2025-10-12 20:24:35 +02:00
Terje Io
8c3d44bfca Added helper code for plugins claiming auxiliary ports to make plugin coding easier and behaviour consistent.
Some minor bug fixes such as incorrect error code returned for unknown $-commands and temporary incorrect position reporting on in-flight G92 offset changes.
2025-10-11 18:28:21 +02:00
Terje Io
5d48dd5c43 For developers: added function for getting standardized UART pin descriptions. 2025-10-06 07:44:51 +02:00
Terje Io
132159a6b6 Workaround for some compilers configured to treat warnings as errors causing compilation failure.
Added $PORTS command for listing serial ports, later I will update all drivers to provide the optional information.
Potential fix for polar kinematics not handling axes > 3 correctly, needs testing. Ref. issue #820.
2025-10-04 20:17:22 +02:00
Terje Io
7db744f04a fix typos 2025-10-02 15:41:10 +02:00
Terje Io
e37572fe02 Improved M70-M73 modal state save and restore, should now handle overrides correctly.
Added lightweight JSON serializer outputting directly to file.
Fix for event handler sometimes called too early. Ref. issue #818.
For developers: added optional device filing system that can redirect file read/write to serial streams.
2025-10-02 15:18:28 +02:00
Terje Io
b829928674 Fix for crash when multiple G95 mode motions are commanded. 2025-09-28 07:53:18 +02:00
Terje Io
d96d3c488e Fix for stepper spindle in polling mode causing alarm 14 when used for spindle synced motion (G33, G76). 2025-09-27 06:37:21 +02:00
Terje Io
17a4648a1d Updated motion in units per revolution mode (G95) to handle spindle RPM changes.
Changed initial wait for two index pulses to check RPM > 0 before starting such motion.
2025-09-26 09:57:05 +02:00
Terje Io
e3803a252a Fixed typo in parameter access for G59 coordinate. Ref. issue #814. 2025-09-25 20:40:49 +02:00
Terje Io
65dd33c569 Fix for compilation failure for N_AXIS > 3 (typo) 2025-09-25 19:33:13 +02:00
Terje Io
2f9ba98040 Added G65P6 for disabling spindle on/off delay for the next spindle command (M3, M4 and M5).
For programmers: added grbl.on_control_signals_changed event, fired on some signals: optional stop, single step, block delete and cycle start.
Fix for incorrect handling of arcs when negative scaling is enabled with G51.
2025-09-25 08:29:01 +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
Terje Io
75b1a23839 Merge pull request #802 from engigeer/PR_dist_to_go
Add realtime report of distance-to-go
2025-09-10 20:22:45 +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
Mitchell Grams
d2d7ddc0c0 Add initial support for distance to go in realtime report 2025-09-07 18:02:50 -06:00
Terje Io
24d802e573 Fix for bug preventing disabling of AMASS, changed the ADAPTIVE_MULTI_AXIS_STEP_SMOOTHING symbol so it can be overridden via compiler argument.
For developers: added output function parameter to signature of report_realtime_status() call to allow routing output to a given stream (or streams).
2025-09-04 08:36:48 +02:00
Terje Io
354eef8359 Updated changelog 2025-08-31 14:56:32 +02:00
Terje Io
a3c345173b Updated changelog. 2025-08-30 10:39:34 +02:00
Terje Io
0d4337b75e Fix for laser enable not restored after feedhold. Ref. issue #798.
Fix for incorrect direction of motion via second stepper driver used for step injection (plasma THC) and stepper spindle.
2025-08-29 12:43:48 +02:00
Terje Io
1bd45dfb04 Merge pull request #797 from hangsman/master
Fix feed override bypass when programmed rate exceeds rapid rate
2025-08-26 11:52:12 +02:00
hangsman
030c829925 Fix feed override bypass when programmed rate exceeds rapid rate 2025-08-26 11:16:35 +08:00
Terje Io
f081b9f37e Added function for clearing LED strips. 2025-08-25 22:17:58 +02:00
Terje Io
43fa98d93b Fix for grbl.on_tool_changed event raised too early when tool change code is in tc.macro. 2025-08-08 20:46:34 +02:00
Terje Io
ee1cd5a745 Improved ioport remapping of auxiliary pins (used by plasma plugin).
Changed signature of limit check functions, grbl.travel_limits() et. al.
to include a pointer to the work envelope to use.
Updated spindle off handling to check for "at speed" on deceleration when spindle is "at speed" capable.
2025-08-06 18:32:29 +02:00
Terje Io
255d02b020 Fix for transposed options in $41 - parking cycle enable. 2025-08-02 08:23:08 +02: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
5aff8fe767 Fix for optional control signals not respecting $14 inversion setting. Ref. issue #780.
Added core on_spindle_at_speed event. This must be verified with actual VFD spindles, I only have a simulator available.
Improved handling of "iterated" settings, can now be fully implemented by plugins.
2025-07-24 08:25:25 +02:00
Terje Io
f951c266ac Updated secondary PWM spindle settings handling to propagate laser mode changes dynamically.
Fixed secondary PWM spindle RPM settings mixup.
2025-07-20 07:17:18 +02:00
Terje Io
d380335d97 Added early (on startup) configuration of secondary PWM spindles. 2025-07-18 15:12:19 +02:00
Terje Io
5dae16ad83 "hardened" code related to ioports claiming and PWM2 spindle configuration.
Added API call and expanded one.
2025-07-16 10:58:31 +02:00
Terje Io
7467c07567 Force settings write on serial stream format change. 2025-07-07 07:31:30 +02:00
Terje Io
6c13075ebe Updated serial stream format options. Fix for compiler warning. 2025-07-07 07:19:41 +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
df55d7cb91 Fix for incorrect reporting of spindle capabilities when more than one spindle configured.
Ref. issue #770.
2025-07-02 07:55:03 +02:00
Terje Io
ab830e3bff Updated changelog. 2025-06-27 08:01:28 +02:00