diff --git a/changelog.md b/changelog.md
index f534689..a9071de 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,19 @@
## grblHAL changelog
+Build 20240326
+
+Core:
+
+* Fixes for issue #470 and #472, index overflows.
+
+Drivers:
+
+* iMXRT1062: added support for second UART stream and missing code guard for I2C strobe.
+
+* STM32F4xx and STM32F7xx: improved analog I/O, added check for multiple calls to I2C initialization.
+
+---
+
Build 20240318
Core:
diff --git a/grbl.h b/grbl.h
index 6e484e3..e9c634d 100644
--- a/grbl.h
+++ b/grbl.h
@@ -42,7 +42,7 @@
#else
#define GRBL_VERSION "1.1f"
#endif
-#define GRBL_BUILD 20240318
+#define GRBL_BUILD 20240326
#define GRBL_URL "https://github.com/grblHAL"
diff --git a/motion_control.c b/motion_control.c
index 287f873..ba25afb 100644
--- a/motion_control.c
+++ b/motion_control.c
@@ -1020,7 +1020,7 @@ gc_probe_t mc_probe_cycle (float *target, plan_line_data_t *pl_data, gc_parser_f
idx--;
if(fabsf(target[idx] - position.values[idx]) > TOLERANCE_EQUAL)
bit_true(axes.mask, bit(idx));
- } while(idx--);
+ } while(idx);
grbl.on_probe_start(axes, target, pl_data);
}
diff --git a/spindle_control.c b/spindle_control.c
index 0b0ccb6..cd4a50a 100644
--- a/spindle_control.c
+++ b/spindle_control.c
@@ -250,7 +250,7 @@ spindle_cap_t spindle_get_caps (bool active)
spindle_cap_t caps = {0};
uint_fast8_t idx = n_spindle;
- do {
+ if(n_spindle) do {
--idx;
caps.value |= (active ? spindles[idx].hal.cap.value : spindles[idx].cfg->cap.value);
} while(idx);
diff --git a/system.c b/system.c
index 7947800..220126b 100644
--- a/system.c
+++ b/system.c
@@ -901,12 +901,12 @@ PROGMEM static const sys_command_t sys_commands[] = {
{ "N0", set_startup_line0, {}, { .str = "N0= - set startup line 0" } },
{ "N1", set_startup_line1, {}, { .str = "N1= - set startup line 1" } },
{ "EA", enumerate_alarms, { .noargs = On, .allow_blocking = On }, { .str = "enumerate alarms" } },
- { "EAG", enumerate_alarms_grblformatted, { .noargs = On, .allow_blocking = On }, { .str = "enumerate alarms, grblHAL formatted" } },
+ { "EAG", enumerate_alarms_grblformatted, { .noargs = On, .allow_blocking = On }, { .str = "enumerate alarms, Grbl formatted" } },
{ "EE", enumerate_errors, { .noargs = On, .allow_blocking = On }, { .str = "enumerate status codes" } },
- { "EEG", enumerate_errors_grblformatted, { .noargs = On, .allow_blocking = On }, { .str = "enumerate status codes, grblHAL formatted" } },
+ { "EEG", enumerate_errors_grblformatted, { .noargs = On, .allow_blocking = On }, { .str = "enumerate status codes, Grbl formatted" } },
{ "EG", enumerate_groups, { .noargs = On, .allow_blocking = On }, { .str = "enumerate setting groups" } },
{ "ES", enumerate_settings, { .noargs = On, .allow_blocking = On }, { .str = "enumerate settings" } },
- { "ESG", enumerate_settings_grblformatted, { .noargs = On, .allow_blocking = On }, { .str = "enumerate settings, grblHAL formatted" } },
+ { "ESG", enumerate_settings_grblformatted, { .noargs = On, .allow_blocking = On }, { .str = "enumerate settings, Grbl formatted" } },
{ "ESH", enumerate_settings_halformatted, { .noargs = On, .allow_blocking = On }, { .str = "enumerate settings, grblHAL formatted" } },
{ "E*", enumerate_all, { .noargs = On, .allow_blocking = On }, { .str = "enumerate alarms, status codes and settings" } },
{ "PINS", enumerate_pins, { .noargs = On, .allow_blocking = On, .help_fn = On }, { .fn = help_pins } },