diff --git a/changelog.md b/changelog.md index f3507cc..cbc3c84 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,21 @@ ## grblHAL changelog +20251012 + +Core: + +* Added preprocessor code and symbols to allow easy assignment of unused/unclaimed limit inputs as auxiliary inputs. + +Drivers: + +* ESP32: updated board map for PiBot to assign unsed limit inputs as auxiliary inputs. + +Plugins: + +* WebUI: fix for badly formatted ESP400 response from v2 implementation. Added event hook to allow plugin code to trap regular commands originating from HTTP requests. + +--- + Build 20251011 Core: @@ -12,14 +28,14 @@ Drivers: * ESP32: fix for some unreported compilation failures, triggered by certain configuration options - due to unique build system. -* iMXRT1062: addd tentative support for SPI based Trinamic drivers. Ref. issue [#101](https://github.com/grblHAL/iMXRT1062/issues/101). +* iMXRT1062: added tentative support for SPI based Trinamic drivers. Ref. issue [#101](https://github.com/grblHAL/iMXRT1062/issues/101). A known issue is that PWM spindle cannot be enabled whith Trinamic drivers. Testing required. * STM32F4xx: updated board specific code to use new core helper code. Plugins: -*all having configurable auxiliary ports: updated to use new core helper code. +* All having configurable auxiliary ports: updated to use new core helper code. * SD card: fixed/improved error code returned on formatting errors. diff --git a/driver_opts.h b/driver_opts.h index 3718796..9f49d26 100644 --- a/driver_opts.h +++ b/driver_opts.h @@ -86,6 +86,38 @@ #define N_GANGED (X_GANGED + Y_GANGED + Z_GANGED) #define N_AUTO_SQUARED (X_AUTO_SQUARE + Y_AUTO_SQUARE + Z_AUTO_SQUARE) #define N_ABC_MOTORS (N_ABC_AXIS + N_GANGED) +#define GANGED_MAP (((Z_GANGED<<2)|(Y_GANGED<<1)|X_GANGED)< 3 || (AUTO_SQUARED_MAP & 8) +#define M3_LIMIT_ENABLE 1 +#else +#define M3_LIMIT_ENABLE 0 +#endif + +#if N_AXIS > 4 || (AUTO_SQUARED_MAP & 16) +#define M4_LIMIT_ENABLE 1 +#else +#define M4_LIMIT_ENABLE 0 +#endif + +#if N_AXIS > 5 || (AUTO_SQUARED_MAP & 32) +#define M5_LIMIT_ENABLE 1 +#else +#define M5_LIMIT_ENABLE 0 +#endif + +#if N_AXIS > 6 || (AUTO_SQUARED_MAP & 64) +#define M6_LIMIT_ENABLE 1 +#else +#define M6_LIMIT_ENABLE 0 +#endif + +#if N_AXIS > 7 || (AUTO_SQUARED_MAP & 128) +#define M7_LIMIT_ENABLE 1 +#else +#define M7_LIMIT_ENABLE 0 +#endif #ifndef NEOPIXELS_ENABLE #define NEOPIXELS_ENABLE 0 @@ -694,8 +726,12 @@ #define FS_ENABLE 0 #endif +#ifndef SDCARD_SDIO +#define SDCARD_SDIO 0 +#endif + #ifndef SPI_ENABLE -#if SDCARD_ENABLE || TRINAMIC_SPI_ENABLE +#if (SDCARD_ENABLE && !SDCARD_SDIO) || TRINAMIC_SPI_ENABLE #define SPI_ENABLE 1 #else #define SPI_ENABLE 0 diff --git a/gcode.c b/gcode.c index 341f571..7aa4f71 100644 --- a/gcode.c +++ b/gcode.c @@ -1154,7 +1154,7 @@ status_code_t gc_execute_block (char *block) FAIL(Status_GcodeUnsupportedCommand); // [probing not supported by driver or unsupported G38.x command] int_value += (mantissa / 10) + 100; mantissa = 0; // Set to zero to indicate valid non-integer G command. - // No break. Continues to next line. + // No break. Continues to next line. case 0: case 1: case 2: case 3: #if GCODE_ADVANCED @@ -3705,6 +3705,10 @@ status_code_t gc_execute_block (char *block) case NonModal_GoHome_0: #if N_AXIS > 3 +#ifdef __GNUC__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wimplicit-fallthrough" +#endif { axes_signals_t wrap = { (axis_words.mask & settings.steppers.is_rotary.mask) & settings.steppers.rotary_wrap.mask }; if(gc_state.modal.distance_incremental && wrap.mask) { @@ -3714,8 +3718,11 @@ status_code_t gc_execute_block (char *block) } } } - // No break. Continues to next line. + // No break. Continues to next line. +#ifdef __GNUC__ +#pragma GCC diagnostic pop #endif +#endif // N_AXIS > 3 case NonModal_GoHome_1: // Move to intermediate position before going home. Obeys current coordinate system and offsets @@ -3800,7 +3807,7 @@ status_code_t gc_execute_block (char *block) case NonModal_ResetCoordinateOffset: // G92.1 if(!settings.flags.g92_is_volatile) settings_write_coord_data(CoordinateSystem_G92, &null_vector.values); // Save G92 offsets to non-volatile storage - // No break. Continues to next line. + // No break. Continues to next line. case NonModal_ClearCoordinateOffset: // G92.2 add_offset(&null_vector);