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<