Skip to content

Commit

Permalink
🔧 AVR/DUE Serial Port pin conflict checks (MarlinFirmware#24148)
Browse files Browse the repository at this point in the history
Co-authored-by: Scott Lahteine <github@thinkyhead.com>
  • Loading branch information
2 people authored and LCh-77 committed May 28, 2022
1 parent e3072eb commit 764314b
Show file tree
Hide file tree
Showing 5 changed files with 80 additions and 5 deletions.
24 changes: 24 additions & 0 deletions Marlin/src/HAL/AVR/inc/SanityCheck.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,30 @@
* Test AVR-specific configuration values for errors at compile-time.
*/

/**
* Check for common serial pin conflicts
*/
#define CHECK_SERIAL_PIN(N) ( \
X_STOP_PIN == N || Y_STOP_PIN == N || Z_STOP_PIN == N \
|| X_MIN_PIN == N || Y_MIN_PIN == N || Z_MIN_PIN == N \
|| X_MAX_PIN == N || Y_MAX_PIN == N || Z_MAX_PIN == N \
|| X_STEP_PIN == N || Y_STEP_PIN == N || Z_STEP_PIN == N \
|| X_DIR_PIN == N || Y_DIR_PIN == N || Z_DIR_PIN == N \
|| X_ENA_PIN == N || Y_ENA_PIN == N || Z_ENA_PIN == N \
)
#if CONF_SERIAL_IS(0) // D0-D1. No known conflicts.
#endif
#if CONF_SERIAL_IS(1) && (CHECK_SERIAL_PIN(18) || CHECK_SERIAL_PIN(19))
#error "Serial Port 1 pin D18 and/or D19 conflicts with another pin on the board."
#endif
#if CONF_SERIAL_IS(2) && (CHECK_SERIAL_PIN(16) || CHECK_SERIAL_PIN(17))
#error "Serial Port 2 pin D16 and/or D17 conflicts with another pin on the board."
#endif
#if CONF_SERIAL_IS(3) && (CHECK_SERIAL_PIN(14) || CHECK_SERIAL_PIN(15))
#error "Serial Port 3 pin D14 and/or D15 conflicts with another pin on the board."
#endif
#undef CHECK_SERIAL_PIN

/**
* Checks for FAST PWM
*/
Expand Down
24 changes: 24 additions & 0 deletions Marlin/src/HAL/DUE/inc/SanityCheck.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,30 @@
* Test Arduino Due specific configuration values for errors at compile-time.
*/

/**
* Check for common serial pin conflicts
*/
#define CHECK_SERIAL_PIN(N) ( \
X_STOP_PIN == N || Y_STOP_PIN == N || Z_STOP_PIN == N \
|| X_MIN_PIN == N || Y_MIN_PIN == N || Z_MIN_PIN == N \
|| X_MAX_PIN == N || Y_MAX_PIN == N || Z_MAX_PIN == N \
|| X_STEP_PIN == N || Y_STEP_PIN == N || Z_STEP_PIN == N \
|| X_DIR_PIN == N || Y_DIR_PIN == N || Z_DIR_PIN == N \
|| X_ENA_PIN == N || Y_ENA_PIN == N || Z_ENA_PIN == N \
)
#if CONF_SERIAL_IS(0) // D0-D1. No known conflicts.
#endif
#if CONF_SERIAL_IS(1) && (CHECK_SERIAL_PIN(18) || CHECK_SERIAL_PIN(19))
#error "Serial Port 1 pin D18 and/or D19 conflicts with another pin on the board."
#endif
#if CONF_SERIAL_IS(2) && (CHECK_SERIAL_PIN(16) || CHECK_SERIAL_PIN(17))
#error "Serial Port 2 pin D16 and/or D17 conflicts with another pin on the board."
#endif
#if CONF_SERIAL_IS(3) && (CHECK_SERIAL_PIN(14) || CHECK_SERIAL_PIN(15))
#error "Serial Port 3 pin D14 and/or D15 conflicts with another pin on the board."
#endif
#undef CHECK_SERIAL_PIN

/**
* HARDWARE VS. SOFTWARE SPI COMPATIBILITY
*
Expand Down
8 changes: 4 additions & 4 deletions Marlin/src/pins/mega/pins_GT2560_V3_MC2.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@

#define BOARD_INFO_NAME "GT2560 V3.0 (MC2)"

#define X_MIN_PIN 22
#define X_MAX_PIN 24
#define Y_MIN_PIN 26
#define Y_MAX_PIN 28
#define X_MIN_PIN 22
#define X_MAX_PIN 24
#define Y_MIN_PIN 26
#define Y_MAX_PIN 28

#include "pins_GT2560_V3.h"
27 changes: 27 additions & 0 deletions Marlin/src/pins/pins_postprocess.h
Original file line number Diff line number Diff line change
Expand Up @@ -1664,6 +1664,9 @@
#undef X_MAX_PIN
#define X_MAX_PIN -1
#endif
#if NONE(USE_XMIN_PLUG, USE_XMAX_PLUG)
#undef X_STOP_PIN
#endif
#if DISABLED(USE_YMIN_PLUG)
#undef Y_MIN_PIN
#define Y_MIN_PIN -1
Expand All @@ -1672,6 +1675,9 @@
#undef Y_MAX_PIN
#define Y_MAX_PIN -1
#endif
#if NONE(USE_YMIN_PLUG, USE_YMAX_PLUG)
#undef Y_STOP_PIN
#endif
#if DISABLED(USE_ZMIN_PLUG)
#undef Z_MIN_PIN
#define Z_MIN_PIN -1
Expand All @@ -1680,6 +1686,9 @@
#undef Z_MAX_PIN
#define Z_MAX_PIN -1
#endif
#if NONE(USE_ZMIN_PLUG, USE_ZMAX_PLUG)
#undef Z_STOP_PIN
#endif
#if DISABLED(USE_IMIN_PLUG)
#undef I_MIN_PIN
#define I_MIN_PIN -1
Expand All @@ -1688,6 +1697,9 @@
#undef I_MAX_PIN
#define I_MAX_PIN -1
#endif
#if NONE(USE_IMIN_PLUG, USE_IMAX_PLUG)
#undef I_STOP_PIN
#endif
#if DISABLED(USE_JMIN_PLUG)
#undef J_MIN_PIN
#define J_MIN_PIN -1
Expand All @@ -1696,6 +1708,9 @@
#undef J_MAX_PIN
#define J_MAX_PIN -1
#endif
#if NONE(USE_JMIN_PLUG, USE_JMAX_PLUG)
#undef J_STOP_PIN
#endif
#if DISABLED(USE_KMIN_PLUG)
#undef K_MIN_PIN
#define K_MIN_PIN -1
Expand All @@ -1704,6 +1719,9 @@
#undef K_MAX_PIN
#define K_MAX_PIN -1
#endif
#if NONE(USE_KMIN_PLUG, USE_KMAX_PLUG)
#undef K_STOP_PIN
#endif
#if DISABLED(USE_UMIN_PLUG)
#undef U_MIN_PIN
#define U_MIN_PIN -1
Expand All @@ -1712,6 +1730,9 @@
#undef U_MAX_PIN
#define U_MAX_PIN -1
#endif
#if NONE(USE_UMIN_PLUG, USE_UMAX_PLUG)
#undef U_STOP_PIN
#endif
#if DISABLED(USE_VMIN_PLUG)
#undef V_MIN_PIN
#define V_MIN_PIN -1
Expand All @@ -1720,6 +1741,9 @@
#undef V_MAX_PIN
#define V_MAX_PIN -1
#endif
#if NONE(USE_VMIN_PLUG, USE_VMAX_PLUG)
#undef V_STOP_PIN
#endif
#if DISABLED(USE_WMIN_PLUG)
#undef W_MIN_PIN
#define W_MIN_PIN -1
Expand All @@ -1728,6 +1752,9 @@
#undef W_MAX_PIN
#define W_MAX_PIN -1
#endif
#if NONE(USE_WMIN_PLUG, USE_WMAX_PLUG)
#undef W_STOP_PIN
#endif

#if DISABLED(X_DUAL_ENDSTOPS) || X_HOME_TO_MAX
#undef X2_MIN_PIN
Expand Down
2 changes: 1 addition & 1 deletion buildroot/tests/FYSETC_F6
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ set -e
# Build with the default configurations
#
restore_configs
opt_set MOTHERBOARD BOARD_FYSETC_F6_13
opt_set MOTHERBOARD BOARD_FYSETC_F6_13 LCD_SERIAL_PORT 1
opt_enable DGUS_LCD_UI_FYSETC
exec_test $1 $2 "FYSETC F6 1.3 with DGUS" "$3"

Expand Down

0 comments on commit 764314b

Please sign in to comment.