diff --git a/changelog.md b/changelog.md
index 1e43043..f87277d 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,23 @@
## grblHAL changelog
+20230217
+
+Core: added compile time symbols and names for remaining control inputs, rephrased two alarm messages. No functional changes.
+
+Drivers:
+
+* STM32F1xx : added support for MPG mode and option to use UART5 \(untested\) in RC variants.
+Added support for ioports interface \(aux I/O\) and now allows pin naming for RC variants.
+Changed RAM allocation for Cx variants to accomodate above changes, this might also allow a larger planner buffer size.
+Fixed some inconsistencies in BOARD_MACH3_BOB \(_mach3_bob_map.h_\) - untested.
+__NOTE:__ Cx variants are no longer possible to debug due to limited flash, only the release version can be compiled.
+
+Plugins:
+
+* Motors and plasma: updated for spindle handling refactoring.
+
+---
+
Build 20230213
Core:
@@ -10,7 +28,7 @@ __NOTE:__ This change is quite large, bugs may have sneaked in. Please report an
Drivers:
-* All: updated for spindle handling refactoring.
+* All: Updated for spindle handling refactoring.
* iMXRT1062: updated readme for links to updated/patched libraries for SD card \(uSDFS\) and ethernet. User should switch to the updated/patched libraries if used.
diff --git a/crossbar.h b/crossbar.h
index 3db9dd6..00d07cc 100644
--- a/crossbar.h
+++ b/crossbar.h
@@ -3,7 +3,7 @@
Part of grblHAL
- Copyright (c) 2021 Terje Io
+ Copyright (c) 2021-2023 Terje Io
Grbl is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -32,6 +32,10 @@ typedef enum {
Input_SafetyDoor,
Input_LimitsOverride,
Input_EStop,
+ Input_BlockDelete,
+ Input_SingleBlock,
+ Input_StopDisable,
+ Input_ProbeDisconnect,
Input_MPGSelect,
Input_ModeSelect = Input_MPGSelect, // Deprecated
Input_LimitX,
@@ -55,7 +59,7 @@ typedef enum {
Input_LimitV_Max,
Input_MISO,
Input_RX,
- Input_KeypadStrobe, // To be deprecated?
+ Input_KeypadStrobe, // To be deprecated? Use Input_I2CStrobe instead.
Input_I2CStrobe,
Input_QEI_A,
Input_QEI_B,
@@ -164,6 +168,10 @@ PROGMEM static const pin_name_t pin_names[] = {
{ .function = Input_SafetyDoor, .name = "Safety door" },
{ .function = Input_LimitsOverride, .name = "Limits override" },
{ .function = Input_EStop, .name = "Emergency stop" },
+ { .function = Input_BlockDelete, .name = "Block delete" },
+ { .function = Input_SingleBlock, .name = "Single block" },
+ { .function = Input_StopDisable, .name = "Stop disable" },
+ { .function = Input_ProbeDisconnect, .name = "Probe disconnect" },
{ .function = Input_MPGSelect, .name = "MPG mode select" },
{ .function = Input_LimitX, .name = "X limit min" },
{ .function = Input_LimitX_2, .name = "X limit min 2" },
diff --git a/messages.h b/messages.h
index 08d2328..4ce47dd 100644
--- a/messages.h
+++ b/messages.h
@@ -63,11 +63,11 @@ PROGMEM static const message_t messages[] = {
{ .id = Message_RestoreDefaults, .msg = "Restoring defaults" },
{ .id = Message_SpindleRestore, .msg = "Restoring spindle" },
{ .id = Message_SleepMode, .msg = "Sleeping" },
- { .id = Message_EStop, .msg = "Emergency stop" },
+ { .id = Message_EStop, .msg = "Emergency stop - clear, then reset to continue" },
{ .id = Message_HomingCycleRequired, .msg = "Homing cycle required" },
{ .id = Message_CycleStartToRerun, .msg = "Press cycle start to rerun job" },
{ .id = Message_ReferenceTLOEstablished, .msg = "Reference tool length offset established" },
- { .id = Message_MotorFault, .msg = "Motor fault" }
+ { .id = Message_MotorFault, .msg = "Motor fault - clear, then reset to continue" }
};
#endif
diff --git a/motor_pins.h b/motor_pins.h
index 528b0a9..409b1a8 100644
--- a/motor_pins.h
+++ b/motor_pins.h
@@ -762,16 +762,22 @@
#if N_AXIS == 3
#define LIMIT_MASK (X_LIMIT_BIT|Y_LIMIT_BIT|Z_LIMIT_BIT)
+#define LIMIT_MASK_SUM (X_LIMIT_BIT+Y_LIMIT_BIT+Z_LIMIT_BIT)
#elif N_AXIS == 4
#define LIMIT_MASK (X_LIMIT_BIT|Y_LIMIT_BIT|Z_LIMIT_BIT|A_LIMIT_BIT)
+#define LIMIT_MASK_SUM (X_LIMIT_BIT+Y_LIMIT_BIT+Z_LIMIT_BIT+A_LIMIT_BIT)
#elif N_AXIS == 5
#define LIMIT_MASK (X_LIMIT_BIT|Y_LIMIT_BIT|Z_LIMIT_BIT|A_LIMIT_BIT|B_LIMIT_BIT)
+#define LIMIT_MASK_SUM (X_LIMIT_BIT+Y_LIMIT_BIT+Z_LIMIT_BIT+A_LIMIT_BIT+B_LIMIT_BITT)
#elif N_AXIS == 6
#define LIMIT_MASK (X_LIMIT_BIT|Y_LIMIT_BIT|Z_LIMIT_BIT|A_LIMIT_BIT|B_LIMIT_BIT|C_LIMIT_BIT)
+#define LIMIT_MASK_SUM (X_LIMIT_BIT+Y_LIMIT_BIT+Z_LIMIT_BIT+A_LIMIT_BIT+B_LIMIT_BIT+C_LIMIT_BIT)
#elif N_AXIS == 7
#define LIMIT_MASK (X_LIMIT_BIT|Y_LIMIT_BIT|Z_LIMIT_BIT|A_LIMIT_BIT|B_LIMIT_BIT|C_LIMIT_BIT|U_LIMIT_BIT)
+#define LIMIT_MASK_SUM (X_LIMIT_BIT+Y_LIMIT_BIT+Z_LIMIT_BIT+A_LIMIT_BIT+B_LIMIT_BIT+C_LIMIT_BIT+U_LIMIT_BIT)
#else
#define LIMIT_MASK (X_LIMIT_BIT|Y_LIMIT_BIT|Z_LIMIT_BIT|A_LIMIT_BIT|B_LIMIT_BIT|C_LIMIT_BIT|U_LIMIT_BIT|V_LIMIT_BIT)
+#define LIMIT_MASK_SUM (X_LIMIT_BIT+Y_LIMIT_BIT+Z_LIMIT_BIT+A_LIMIT_BIT+B_LIMIT_BIT+C_LIMIT_BIT+U_LIMIT_BIT+V_LIMIT_BIT)
#endif
#endif // LIMIT_MASK
diff --git a/pin_bits_masks.h b/pin_bits_masks.h
index cb6c2c4..d6efe9d 100644
--- a/pin_bits_masks.h
+++ b/pin_bits_masks.h
@@ -5,7 +5,7 @@
Part of grblHAL
- Copyright (c) 2021-2022 Terje Io
+ Copyright (c) 2021-2023 Terje Io
Grbl is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -21,7 +21,11 @@
along with Grbl. If not, see .
*/
+// Control input signals
+
+// Define the CONTROL_PORT symbol as a shorthand in the *_map.h file if all control inputs share the same port.
#ifdef CONTROL_PORT
+
#ifndef RESET_PORT
#define RESET_PORT CONTROL_PORT
#endif
@@ -31,10 +35,35 @@
#ifndef CYCLE_START_PORT
#define CYCLE_START_PORT CONTROL_PORT
#endif
+#ifndef ESTOP_PORT
+#define ESTOP_PORT CONTROL_PORT
+#endif
+#ifndef PROBE_DISCONNECT_PORT
+#define PROBE_DISCONNECT_PORT CONTROL_PORT
+#endif
+#ifndef STOP_DISABLE_PORT
+#define STOP_DISABLE_PORT CONTROL_PORT
+#endif
+#ifndef BLOCK_DELETE_PORT
+#define BLOCK_DELETE_PORT CONTROL_PORT
+#endif
+#ifndef SINGLE_BLOCK_PORT
+#define SINGLE_BLOCK_PORT CONTROL_PORT
+#endif
+#ifndef MOTOR_FAULT_PORT
+#define MOTOR_FAULT_PORT CONTROL_PORT
+#endif
+#ifndef MOTOR_WARNING_PORT
+#define MOTOR_WARNING_PORT CONTROL_PORT
+#endif
+#ifndef LIMITS_OVERRIDE_PORT
+#define LIMITS_OVERRIDE_PORT CONTROL_PORT
+#endif
#if SAFETY_DOOR_ENABLE && !defined(SAFETY_DOOR_PORT)
#define SAFETY_DOOR_PORT CONTROL_PORT
#endif
-#endif
+
+#endif // CONTROL_PORT
#ifndef RESET_BIT
#ifdef RESET_PIN
@@ -68,14 +97,88 @@
#endif
#endif
+#ifndef ESTOP_BIT
+#ifdef ESTOP_PIN
+#define ESTOP_BIT (1<