23 Commits

Author SHA1 Message Date
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
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
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
cbdfbd619d Updated build date, default VFS mount directory created date. 2025-03-07 21:47:45 +01:00
Terje Io
2d54e34339 Refactored I2C interface definitions, added capabilities flags for run time discovery. 2025-02-28 23:38:55 +01:00
Terje Io
9ed8d488f8 Added vfs_chmod() to VFS (Virtual File System), for setting basic file attributes.
Changed signature of vfs.on_mount() event.
Added grbl.on_cycle_start() event, fired on cycle start signal asserted or on cycle start real time command received.
2025-02-25 20:55:59 +01:00
Terje Io
dfa1b262a4 Added setting definition for macro ATC options.
Now hides core toolchange settings when macro based ATC is active to avoid confusion.
"hardened" parser tool change code a bit.
2025-01-28 09:22:00 +01:00
Terje Io
8dc30ad89c Improved handling of real-time clock (RTC). 2024-12-23 10:37:14 +01:00
Terje Io
2952a3eeb9 Added directory (mounts) listing capabilities to the default root file system when no real root file system (SD card) is mounted. 2024-12-19 11:34:11 +01:00
Terje Io
c3aace735b Fixed symbol issue with Arduino Due blocking compilation of NGC parameter support. 2024-04-02 23:55:46 +02:00
Terje Io
4a7090d70a Fixed regression mainly affecting WebUI enabled builds. Some internal changes. 2024-01-27 20:17:42 +01:00
Terje Io
b200199612 Internal changes that may affect developers, see the changelog for details. 2024-01-26 11:14:39 +01:00
Terje Io
1486280b5e Fix for incorrect handling of mode flags when mounting root filesystem.
Added option to list hidden filesystems.
2023-12-18 09:22:22 +01:00
Terje Io
2c58f0de09 Spindle handling refactoring for improved management and configuration of multiple spindles.
NOTE: this is a relatively large change and may have introduced bugs and/or unintended side-effects. Please report any issues!

Added setting $519 for binding spindle encoder to given spindle in multi spindle configurations.

Added machine readable spindle enumeration report, $SPINDLESH.

Increased default value for setting $398 (number of planner blocs) from 35 to 100 for faster laser engraving.
NOTE: the $398 setting value will not change on an upgrade!
NOTE: STM32F103 builds for the 128K flash variants does not have enough free RAM and will keep 35 as the default value.

Increased allowed number of decimal places from 3 to 5 for $10x stepper step/mm settings. Ref. ioSender issue 346.

Added setting $650 for filing system options. Ref. issue 397.
Currently the following bits are available (depending on the configuration):
0 - Auto mount SD card on startup (1).
1 - Do not add littlefs files when listing the root directory (2).

Added build option for lathe UVW mode.
When enabled UVW words can be used to command relative moves for XYZ without switching to relative mode with G91.
NOTE: This permanently sets lathe mode and disables the $32 mode setting.

There are signature changes to some spindle, ioports enumeration and VFS filing system mount functions.

Added events to allow plugin code to handle tool table data, possibly stored on a SD card.
2023-12-12 09:51:59 +01:00
Terje Io
4e1bba5e74 Fixed regression in VFS file system handling causing hardfault when only one mount is present. 2023-07-18 14:47:28 +02:00
Terje Io
0c6f3f6dd7 Added support for traversing directory structure across file system mounts. Allows access to littlefs mount via ftp.
Fixed inconsistent (random) real-time reporting of cycle start signal by adding a latch to ensure it is reported at least once.
2023-07-16 13:03:22 +02:00
Terje Io
0a8c51ebe9 Added initial support for macro based automatic tool changes (ATC).
Currently macros has to be stored on a SD card or in littlefs and expression support has to be enabled.
2023-06-07 19:16:53 +02:00
Terje Io
2f55555f77 Fixed some typos, incorrect default value for setting $63 - Disable laser during hold flag. Added VFS property. 2023-04-27 10:14:59 +02:00
Terje Io
229db6418b Minor options preprocessor change for littlefs, "hardened" VFS code. Core build date not changed. 2022-09-11 20:37:47 +02:00
Terje Io
180f9fa9fc Added $RTC system command for outputting or setting current real time clock date and time. Uses ISO8601 format.
Driver developers: check the changelog!
2022-09-07 21:08:11 +02:00
Terje Io
e009f47116 Added optional RTC (Real Time Clock) support to the HAL. VFS improvements. 2022-09-04 20:56:33 +02:00
Terje Io
f3363816c2 Tuning, VFS improvements. 2022-09-03 21:51:01 +02:00
Terje Io
66f821d8e0 Addded virtual file system \(VFS\) handler, Linux/Unix style with mount directories.
Now raises alarm if homed state becomes invalid on settings changes when homing on startup is required. Issue #173.
2022-08-30 19:54:48 +02:00