diff --git a/README.md b/README.md index f59973f..43a41df 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ## grblHAL ## -Latest build date is 20250114, see the [changelog](changelog.md) for details. +Latest build date is 20250116, see the [changelog](changelog.md) for details. > [!NOTE] > A settings reset will be performed on an update of builds prior to 20241208. Backup and restore of settings is recommended. @@ -93,4 +93,4 @@ G/M-codes not supported by [legacy Grbl](https://github.com/gnea/grbl/wiki) are Some [plugins](https://github.com/grblHAL/plugins) implements additional M-codes. --- -20250115 +20250116 diff --git a/changelog.md b/changelog.md index c638528..3ee0ed8 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,28 @@ ## grblHAL changelog +Build 20250116 + +Core: + +* 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. + +Drivers: + +* STM32F4xx: fixed random freezes when WizNet plugin is enabled for ethernet. Ref. issue [#208](https://github.com/grblHAL/STM32F4xx/issues/208). +Added tentative board map for Sienci SuperLongBoard with external drivers \(SLB EXT\) and added support for toolsetter state for both SLB and SLB EXT. + +Plugins: + +* Plasma: added new setting `$674` for option flags, virtual ports and Z position sync. Ref. issue [#15](https://github.com/grblHAL/Plugin_plasma/issues/15]. + +* Motors: added optional support for standstill current reduction on motion end for Trinamic TMC2660 drivers. +Settings `$1` and `$37` controls which drivers are kept on. + +--- + 20250115 Plugins: diff --git a/grbl.h b/grbl.h index 84b0e06..c88fdd7 100644 --- a/grbl.h +++ b/grbl.h @@ -42,7 +42,7 @@ #else #define GRBL_VERSION "1.1f" #endif -#define GRBL_BUILD 20250114 +#define GRBL_BUILD 20250116 #define GRBL_URL "https://github.com/grblHAL" diff --git a/ioports.c b/ioports.c index b099733..b13ca7b 100644 --- a/ioports.c +++ b/ioports.c @@ -186,7 +186,10 @@ bool ioport_claim (io_port_type_t type, io_port_direction_t dir, uint8_t *port, xbar_t *portinfo; - ok = (portinfo = ioport_get_info(type, dir, *port)) && !portinfo->mode.claimed && hal.port.claim(type, dir, port, description); + ok = (portinfo = ioport_get_info(type, dir, *port)) && +// portinfo->cap.claimable && TODO: add? + !portinfo->mode.claimed && + hal.port.claim(type, dir, port, description); } else { diff --git a/ngc_params.c b/ngc_params.c index c9c9264..0a0b1a4 100644 --- a/ngc_params.c +++ b/ngc_params.c @@ -3,7 +3,7 @@ Part of grblHAL - Copyright (c) 2021-2024 Terje Io + Copyright (c) 2021-2025 Terje Io grblHAL is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -151,6 +151,7 @@ static float probe_result (ngc_param_id_t id) { return sys.flags.probe_succeeded ? 1.0f : 0.0f; } + /* static float home_pos (ngc_param_id_t id) { @@ -407,9 +408,10 @@ PROGMEM static const ngc_named_ro_param_t ngc_named_ro_param[] = { { .name = "_selected_tool", .id = NGCParam_selected_tool }, { .name = "_selected_pocket", .id = NGCParam_selected_pocket }, { .name = "_call_level", .id = NGCParam_call_level }, + { .name = "_probe_state", .id = NGCParam_probe_state }, + { .name = "_toolsetter_state", .id = NGCParam_toolsetter_state } }; - // Named parameters float ngc_named_param_get_by_id (ncg_name_param_id_t id) @@ -613,6 +615,16 @@ float ngc_named_param_get_by_id (ncg_name_param_id_t id) value = (float)ngc_call_level(); break; + // grblHAL extensions + + case NGCParam_probe_state: + value = hal.probe.get_state ? (float)hal.probe.get_state().triggered : -1.0f; + break; + + case NGCParam_toolsetter_state: + value = hal.probe.get_state && hal.driver_cap.toolsetter ? (float)hal.probe.get_state().tls_triggered : -1.0f; + break; + default: value = NAN; } diff --git a/ngc_params.h b/ngc_params.h index 9614c38..70df6a7 100644 --- a/ngc_params.h +++ b/ngc_params.h @@ -3,7 +3,7 @@ Part of grblHAL - Copyright (c) 2021-2024 Terje Io + Copyright (c) 2021-2025 Terje Io grblHAL is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -100,6 +100,8 @@ typedef enum { NGCParam_selected_tool, NGCParam_selected_pocket, NGCParam_call_level, + NGCParam_probe_state, + NGCParam_toolsetter_state, NGCParam_Last } ncg_name_param_id_t; diff --git a/probe.h b/probe.h index adcf17a..76ab1cc 100644 --- a/probe.h +++ b/probe.h @@ -3,7 +3,7 @@ Part of grblHAL - Copyright (c) 2020-2024 Terje Io + Copyright (c) 2020-2025 Terje Io grblHAL is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -32,12 +32,13 @@ typedef enum { typedef union { uint8_t value; struct { - uint8_t triggered :1, //