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, //