556 Commits

Author SHA1 Message Date
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
Terje Io
949fa53c42 Added some reentry locks.
Second step in refactoring encoder HAL/API.
2026-03-03 22:34:30 +01:00
Terje Io
9ad064bebf Improved handling of G43 some more - can now be used in the same block as M6 when the internal workflow for tool change is enabled or M6 is ignored. 2026-02-27 09:33:05 +01:00
Terje Io
aa3a80f47f Fixed incorrect behaviour when a tool change using the built-in workflow is aborted, the selected tool was set as the current tool.
Added support for G66.1 macro call.
Changed behaviour of G50 and G51 (and the G48 and G49 shortcuts) controlling feed rate and spindle RPM overrides.
Added support for G10L0, reload file based tool table.
Fixed buggy handling of G43 - apply tool offset from tool table.
Refactored the encoder HAL/API to make it more flexible and as a first step to support rigid tapping.
See the changelog for further details.
2026-02-26 10:30:46 +01:00
Terje Io
54c58ee177 Merge pull request #914 from Expatria-Technologies/PR_Modbus_handle_single_coils
PR for Modbus fixes around single coils and discrete inputs.
2026-02-22 10:19:10 +01:00
andrew_marles
b4e84879c5 I think I may have found some small issues when working with single coils and the packed bytes that they use. This seems to work against a nanoModbus server in my basic testing. 2026-02-21 22:12:03 -08:00
Terje Io
e0896a9db0 Fix for incorrect handling of limit pins for auto squared axes for two board maps. 2026-02-19 14:57:33 +01:00
Terje Io
82e6e4a0a3 Changed $pinstates command output, now reports pin number instead of pin id.
For developers: added API call that returns Modbus stream handlers.
2026-02-18 10:22:12 +01: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
f0fa009f5e For developers: added new callback for Modbus timeouts, defaults to exception callback for backwards compatibilty. 2026-02-12 21:02:38 +01:00
Terje Io
e3c046b08b Updated changelog. 2026-02-10 19:14:59 +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
9de5c5d0b1 Merge pull request #905 from engigeer/PR_LIMIT_MASK_typo
Fix typo in LIMIT_MASK_BASE_SUM definition
2026-02-06 21:49:12 +01:00
Mitchell Grams
a2410130df Fix typo in LIMIT_MASK_BASE_SUM definition 2026-02-06 12:53:11 -07:00
Terje Io
46369e2623 Fixed bad update causing compiler error if multiple spindles are enabled.
Moved some reporting data definitions/structures that caused Windows simulator builds to fail.
2026-02-05 17:59:37 +01:00
Terje Io
d74d450f2d Reinstated settings definition that somehow was deleted in the 20260202 commit++ 2026-02-04 16:58:19 +01:00
Terje Io
b435b48ec1 Changed real time reporting to allow per connection status for which report elements to output.
Added pragmas to shut up warning from the ESP32 compiler.
2026-02-04 11:28:20 +01:00
Terje Io
0ed9404b9e Fixed incorrect motor assignments for ABC motors. Ref. issue #902. 2026-02-02 23:11:43 +01:00
Terje Io
94ee157387 Updated changelog 2026-02-02 22:45:45 +01:00
Terje Io
c6aa574279 Added experimental support for M98 subroutines, internal subroutines are only supported for programs run from a local file system.
$700 controls whether they are scanned for internally in the main program (1) or always located externally (0).
If scanned for internally the program is run twice, initially in check mode to locate the subroutines before it is rewound and run in normal mode.
If stored externally the file P<macro number>.macro is run, <macro number> is the M98 P value.
2026-02-02 22:25:31 +01:00
Terje Io
08c778530c Updated changelog. 2026-01-31 06:34:16 +01:00
Terje Io
5087dc61b8 Updated changelog. 2026-01-28 23:58:17 +01:00
Terje Io
4340b3d768 fix for out of sync commit 2026-01-25 08:27:32 +01:00
Terje Io
497c7d4eb0 Updated readme. 2026-01-25 08:13:31 +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
Terje Io
f8867e7ea3 Merge pull request #883 from petervanderwalt/sienci_atc_plugin
Added Sienci ATC plugin init and m-code reservation
2026-01-08 11:08:41 +07:00
Peter van der Walt
3414137837 Added Sienci ATC plugin init and m-code reservation 2026-01-07 10:40:41 +02:00
terjeio
779d41b8d8 Fix for regression causing loss of tool offset on soft reset when $676 option is to keep offsets. 2026-01-07 08:49:16 +07:00
Terje Io
fe858f73e9 Merge pull request #873 from gcormier/fix-toolchange-z-restore
Fix Z home movement when XY already at TLS position
2025-12-21 20:27:05 +07:00
Greg Cormier
c5d888fdee Fix Z home movement when XY already at TLS position
When X and Y coordinates are already at the tool length sensor (TLS)
position during tool change restore, Z was incorrectly not moving to
the home position after probing.

The issue was in the restore() function where Z movement was only
executed inside a conditional block that checked if XY needed to move.
This caused Z to remain at the probed position when starting from the
TLS XY location.

Fixed by decoupling Z home movement from XY position comparison,
ensuring Z always returns to home after probing (unless $346
disables full position restore).
2025-12-20 11:39:46 -05:00
terjeio
aaa7b6e73e Updated changelog and build date. 2025-12-08 07:04:00 +07:00
Terje Io
380199e388 Merge pull request #865 from engigeer/PR_reboot
Add support for $REBOOT (hard reset) command
2025-12-08 06:37:17 +07:00
Mitchell Grams
0488a61465 Add support for $REBOOT (hard reset) command 2025-12-07 16:02:00 -07:00
terjeio
6c59a548ae Final fix for handling of $680 stepper enable delay. 2025-12-07 16:47:19 +07:00
terjeio
e350ea501e Fix for copy paste error introduced in build 20251130 causing alarms to be ignored.
Increased $680, stepper enable delay limit to 500ms.
2025-12-02 07:35:07 +07:00
terjeio
13145a4a46 Updated to allow Bluetooth serial streams to be used for MPG/pendants.
Parking mode improvements.
Removed requirement for external encoder for spindle sync if stepper spindle is enabled.
Improved handling of $680 stepper enable delay.
2025-12-01 17:55:53 +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
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