Skip to content

Commit 2fa5851

Browse files
committed
Clean up, do some Y stuff
1 parent d87cd7a commit 2fa5851

File tree

6 files changed

+116
-73
lines changed

6 files changed

+116
-73
lines changed

Marlin/src/gcode/feature/trinamic/M569.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,9 @@ void GcodeSuite::M569_report(const bool forReplay/*=true*/) {
197197
if (chop_x2 || chop_y2 || chop_z2) {
198198
say_M569(forReplay, F("I1"));
199199
if (chop_x2) SERIAL_ECHOPGM_P(SP_X_STR);
200-
if (chop_y2) SERIAL_ECHOPGM_P(SP_Y_STR);
200+
#if HAS_Y_AXIS
201+
if (chop_y2) SERIAL_ECHOPGM_P(SP_Y_STR);
202+
#endif
201203
#if HAS_Z_AXIS
202204
if (chop_z2) SERIAL_ECHOPGM_P(SP_Z_STR);
203205
#endif

Marlin/src/gcode/host/M115.cpp

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -222,24 +222,41 @@ void GcodeSuite::M115() {
222222

223223
// Machine Geometry
224224
#if ENABLED(M115_GEOMETRY_REPORT)
225-
const xyz_pos_t bmin = { 0, 0, TERN_(HAS_Z_AXIS, 0) },
226-
bmax = { X_BED_SIZE , Y_BED_SIZE, TERN_(HAS_Z_AXIS, Z_MAX_POS) },
227-
dmin = { X_MIN_POS, Y_MIN_POS, TERN_(HAS_Z_AXIS, Z_MIN_POS) },
228-
dmax = { X_MAX_POS, Y_MAX_POS, TERN_(HAS_Z_AXIS, Z_MAX_POS) };
225+
constexpr xyz_pos_t bmin{0},
226+
bmax = ARRAY_N(NUM_AXES, X_BED_SIZE, Y_BED_SIZE, Z_MAX_POS, I_MAX_POS, J_MAX_POS, K_MAX_POS, U_MAX_POS, V_MAX_POS, W_MAX_POS),
227+
dmin = ARRAY_N(NUM_AXES, X_MIN_POS, Y_MIN_POS, Z_MIN_POS, I_MIN_POS, J_MIN_POS, K_MIN_POS, U_MIN_POS, V_MIN_POS, W_MIN_POS),
228+
dmax = ARRAY_N(NUM_AXES, X_MAX_POS, Y_MAX_POS, Z_MAX_POS, I_MAX_POS, J_MAX_POS, K_MAX_POS, U_MAX_POS, V_MAX_POS, W_MAX_POS);
229229
xyz_pos_t cmin = bmin, cmax = bmax;
230230
apply_motion_limits(cmin);
231231
apply_motion_limits(cmax);
232232
const xyz_pos_t lmin = dmin.asLogical(), lmax = dmax.asLogical(),
233233
wmin = cmin.asLogical(), wmax = cmax.asLogical();
234+
234235
SERIAL_ECHOLNPGM(
235236
"area:{"
236237
"full:{"
237-
"min:{x:", lmin.x, ",y:", lmin.y, OPTITEM(HAS_Z_AXIS, ",z:") OPTITEM(HAS_Z_AXIS, lmin.z) "},"
238-
"max:{x:", lmax.x, ",y:", lmax.y, OPTITEM(HAS_Z_AXIS, ",z:") OPTITEM(HAS_Z_AXIS, lmax.z) "}"
238+
LIST_N(DOUBLE(NUM_AXES),
239+
"min:{x:", lmin.x, ",y:", lmin.y, ",z:", lmin.z,
240+
",i:", lmin.i, ",j:", lmin.j, ",k:", lmin.k,
241+
",u:", lmin.u, ",v:", lmin.v, ",w:", lmin.w
242+
),
243+
LIST_N(DOUBLE(NUM_AXES),
244+
"max:{x:", lmax.x, ",y:", lmax.y, ",z:", lmax.z,
245+
",i:", lmax.i, ",j:", lmax.j, ",k:", lmax.k,
246+
",u:", lmax.u, ",v:", lmax.v, ",w:", lmax.w
247+
),
239248
"},"
240249
"work:{"
241-
"min:{x:", wmin.x, ",y:", wmin.y, OPTITEM(HAS_Z_AXIS, ",z:") OPTITEM(HAS_Z_AXIS, wmin.z) "},"
242-
"max:{x:", wmax.x, ",y:", wmax.y, OPTITEM(HAS_Z_AXIS, ",z:") OPTITEM(HAS_Z_AXIS, wmax.z) "}",
250+
LIST_N(DOUBLE(NUM_AXES),
251+
"min:{x:", wmin.x, ",y:", wmin.y, ",z:", wmin.z,
252+
",i:", wmin.i, ",j:", wmin.j, ",k:", wmin.k,
253+
",u:", wmin.u, ",v:", wmin.v, ",w:", wmin.w
254+
),
255+
LIST_N(DOUBLE(NUM_AXES),
256+
"max:{x:", wmax.x, ",y:", wmax.y, ",z:", wmax.z,
257+
",i:", wmax.i, ",j:", wmax.j, ",k:", wmax.k,
258+
",u:", wmax.u, ",v:", wmax.v, ",w:", wmax.w
259+
),
243260
"}"
244261
"}"
245262
);

Marlin/src/inc/Conditionals_LCD.h

Lines changed: 55 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1204,45 +1204,61 @@
12041204
#elif X_HOME_DIR < 0
12051205
#define X_HOME_TO_MIN 1
12061206
#endif
1207-
#if Y_HOME_DIR > 0
1208-
#define Y_HOME_TO_MAX 1
1209-
#elif Y_HOME_DIR < 0
1210-
#define Y_HOME_TO_MIN 1
1211-
#endif
1212-
#if Z_HOME_DIR > 0
1213-
#define Z_HOME_TO_MAX 1
1214-
#elif Z_HOME_DIR < 0
1215-
#define Z_HOME_TO_MIN 1
1216-
#endif
1217-
#if I_HOME_DIR > 0
1218-
#define I_HOME_TO_MAX 1
1219-
#elif I_HOME_DIR < 0
1220-
#define I_HOME_TO_MIN 1
1221-
#endif
1222-
#if J_HOME_DIR > 0
1223-
#define J_HOME_TO_MAX 1
1224-
#elif J_HOME_DIR < 0
1225-
#define J_HOME_TO_MIN 1
1226-
#endif
1227-
#if K_HOME_DIR > 0
1228-
#define K_HOME_TO_MAX 1
1229-
#elif K_HOME_DIR < 0
1230-
#define K_HOME_TO_MIN 1
1231-
#endif
1232-
#if U_HOME_DIR > 0
1233-
#define U_HOME_TO_MAX 1
1234-
#elif U_HOME_DIR < 0
1235-
#define U_HOME_TO_MIN 1
1236-
#endif
1237-
#if V_HOME_DIR > 0
1238-
#define V_HOME_TO_MAX 1
1239-
#elif V_HOME_DIR < 0
1240-
#define V_HOME_TO_MIN 1
1241-
#endif
1242-
#if W_HOME_DIR > 0
1243-
#define W_HOME_TO_MAX 1
1244-
#elif W_HOME_DIR < 0
1245-
#define W_HOME_TO_MIN 1
1207+
#if HAS_Y_AXIS
1208+
#if Y_HOME_DIR > 0
1209+
#define Y_HOME_TO_MAX 1
1210+
#elif Y_HOME_DIR < 0
1211+
#define Y_HOME_TO_MIN 1
1212+
#endif
1213+
#endif
1214+
#if HAS_Z_AXIS
1215+
#if Z_HOME_DIR > 0
1216+
#define Z_HOME_TO_MAX 1
1217+
#elif Z_HOME_DIR < 0
1218+
#define Z_HOME_TO_MIN 1
1219+
#endif
1220+
#endif
1221+
#if HAS_I_AXIS
1222+
#if I_HOME_DIR > 0
1223+
#define I_HOME_TO_MAX 1
1224+
#elif I_HOME_DIR < 0
1225+
#define I_HOME_TO_MIN 1
1226+
#endif
1227+
#endif
1228+
#if HAS_J_AXIS
1229+
#if J_HOME_DIR > 0
1230+
#define J_HOME_TO_MAX 1
1231+
#elif J_HOME_DIR < 0
1232+
#define J_HOME_TO_MIN 1
1233+
#endif
1234+
#endif
1235+
#if HAS_K_AXIS
1236+
#if K_HOME_DIR > 0
1237+
#define K_HOME_TO_MAX 1
1238+
#elif K_HOME_DIR < 0
1239+
#define K_HOME_TO_MIN 1
1240+
#endif
1241+
#endif
1242+
#if HAS_U_AXIS
1243+
#if U_HOME_DIR > 0
1244+
#define U_HOME_TO_MAX 1
1245+
#elif U_HOME_DIR < 0
1246+
#define U_HOME_TO_MIN 1
1247+
#endif
1248+
#endif
1249+
#if HAS_V_AXIS
1250+
#if V_HOME_DIR > 0
1251+
#define V_HOME_TO_MAX 1
1252+
#elif V_HOME_DIR < 0
1253+
#define V_HOME_TO_MIN 1
1254+
#endif
1255+
#endif
1256+
#if HAS_W_AXIS
1257+
#if W_HOME_DIR > 0
1258+
#define W_HOME_TO_MAX 1
1259+
#elif W_HOME_DIR < 0
1260+
#define W_HOME_TO_MIN 1
1261+
#endif
12461262
#endif
12471263

12481264
/**

Marlin/src/inc/SanityCheck.h

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2641,7 +2641,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
26412641
#define _PLUG_UNUSED_TEST(A,P) (DISABLED(USE_##P##MIN_PLUG, USE_##P##MAX_PLUG) \
26422642
&& !(ENABLED(A##_DUAL_ENDSTOPS) && WITHIN(A##2_USE_ENDSTOP, _##P##MAX_, _##P##MIN_)) \
26432643
&& !(ENABLED(A##_MULTI_ENDSTOPS) && WITHIN(A##2_USE_ENDSTOP, _##P##MAX_, _##P##MIN_)) )
2644-
#define _AXIS_PLUG_UNUSED_TEST(A) (1 NUM_AXIS_GANG(&& _PLUG_UNUSED_TEST(A,X), && _PLUG_UNUSED_TEST(A,Y), && _PLUG_UNUSED_TEST(A,Z), \
2644+
#define _AXIS_PLUG_UNUSED_TEST(A) (HAS_##A##_A NUM_AXIS_GANG(&& _PLUG_UNUSED_TEST(A,X), && _PLUG_UNUSED_TEST(A,Y), && _PLUG_UNUSED_TEST(A,Z), \
26452645
&& _PLUG_UNUSED_TEST(A,I), && _PLUG_UNUSED_TEST(A,J), && _PLUG_UNUSED_TEST(A,K), \
26462646
&& _PLUG_UNUSED_TEST(A,U), && _PLUG_UNUSED_TEST(A,V), && _PLUG_UNUSED_TEST(A,W) ) )
26472647

@@ -2656,22 +2656,22 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
26562656
#if _AXIS_PLUG_UNUSED_TEST(Z)
26572657
#error "You must enable USE_ZMIN_PLUG or USE_ZMAX_PLUG."
26582658
#endif
2659-
#if HAS_I_AXIS && _AXIS_PLUG_UNUSED_TEST(I)
2659+
#if _AXIS_PLUG_UNUSED_TEST(I)
26602660
#error "You must enable USE_IMIN_PLUG or USE_IMAX_PLUG."
26612661
#endif
2662-
#if HAS_J_AXIS && _AXIS_PLUG_UNUSED_TEST(J)
2662+
#if _AXIS_PLUG_UNUSED_TEST(J)
26632663
#error "You must enable USE_JMIN_PLUG or USE_JMAX_PLUG."
26642664
#endif
2665-
#if HAS_K_AXIS && _AXIS_PLUG_UNUSED_TEST(K)
2665+
#if _AXIS_PLUG_UNUSED_TEST(K)
26662666
#error "You must enable USE_KMIN_PLUG or USE_KMAX_PLUG."
26672667
#endif
2668-
#if HAS_U_AXIS && _AXIS_PLUG_UNUSED_TEST(U)
2668+
#if _AXIS_PLUG_UNUSED_TEST(U)
26692669
#error "You must enable USE_UMIN_PLUG or USE_UMAX_PLUG."
26702670
#endif
2671-
#if HAS_V_AXIS && _AXIS_PLUG_UNUSED_TEST(V)
2671+
#if _AXIS_PLUG_UNUSED_TEST(V)
26722672
#error "You must enable USE_VMIN_PLUG or USE_VMAX_PLUG."
26732673
#endif
2674-
#if HAS_W_AXIS && _AXIS_PLUG_UNUSED_TEST(W)
2674+
#if _AXIS_PLUG_UNUSED_TEST(W)
26752675
#error "You must enable USE_WMIN_PLUG or USE_WMAX_PLUG."
26762676
#endif
26772677

@@ -2685,35 +2685,35 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
26852685
#error "Enable USE_YMIN_PLUG when homing Y to MIN."
26862686
#elif Y_HOME_TO_MAX && DISABLED(USE_YMAX_PLUG)
26872687
#error "Enable USE_YMAX_PLUG when homing Y to MAX."
2688-
#elif HAS_I_AXIS && I_HOME_TO_MIN && DISABLED(USE_IMIN_PLUG)
2688+
#elif I_HOME_TO_MIN && DISABLED(USE_IMIN_PLUG)
26892689
#error "Enable USE_IMIN_PLUG when homing I to MIN."
2690-
#elif HAS_I_AXIS && I_HOME_TO_MAX && DISABLED(USE_IMAX_PLUG)
2690+
#elif I_HOME_TO_MAX && DISABLED(USE_IMAX_PLUG)
26912691
#error "Enable USE_IMAX_PLUG when homing I to MAX."
2692-
#elif HAS_J_AXIS && J_HOME_TO_MIN && DISABLED(USE_JMIN_PLUG)
2692+
#elif J_HOME_TO_MIN && DISABLED(USE_JMIN_PLUG)
26932693
#error "Enable USE_JMIN_PLUG when homing J to MIN."
2694-
#elif HAS_J_AXIS && J_HOME_TO_MAX && DISABLED(USE_JMAX_PLUG)
2694+
#elif J_HOME_TO_MAX && DISABLED(USE_JMAX_PLUG)
26952695
#error "Enable USE_JMAX_PLUG when homing J to MAX."
2696-
#elif HAS_K_AXIS && K_HOME_TO_MIN && DISABLED(USE_KMIN_PLUG)
2696+
#elif K_HOME_TO_MIN && DISABLED(USE_KMIN_PLUG)
26972697
#error "Enable USE_KMIN_PLUG when homing K to MIN."
2698-
#elif HAS_K_AXIS && K_HOME_TO_MAX && DISABLED(USE_KMAX_PLUG)
2698+
#elif K_HOME_TO_MAX && DISABLED(USE_KMAX_PLUG)
26992699
#error "Enable USE_KMAX_PLUG when homing K to MAX."
2700-
#elif HAS_U_AXIS && U_HOME_TO_MIN && DISABLED(USE_UMIN_PLUG)
2700+
#elif U_HOME_TO_MIN && DISABLED(USE_UMIN_PLUG)
27012701
#error "Enable USE_UMIN_PLUG when homing U to MIN."
2702-
#elif HAS_U_AXIS && U_HOME_TO_MAX && DISABLED(USE_UMAX_PLUG)
2702+
#elif U_HOME_TO_MAX && DISABLED(USE_UMAX_PLUG)
27032703
#error "Enable USE_UMAX_PLUG when homing U to MAX."
2704-
#elif HAS_V_AXIS && V_HOME_TO_MIN && DISABLED(USE_VMIN_PLUG)
2704+
#elif V_HOME_TO_MIN && DISABLED(USE_VMIN_PLUG)
27052705
#error "Enable USE_VMIN_PLUG when homing V to MIN."
2706-
#elif HAS_V_AXIS && V_HOME_TO_MAX && DISABLED(USE_VMAX_PLUG)
2706+
#elif V_HOME_TO_MAX && DISABLED(USE_VMAX_PLUG)
27072707
#error "Enable USE_VMAX_PLUG when homing V to MAX."
2708-
#elif HAS_W_AXIS && W_HOME_TO_MIN && DISABLED(USE_WMIN_PLUG)
2708+
#elif W_HOME_TO_MIN && DISABLED(USE_WMIN_PLUG)
27092709
#error "Enable USE_WMIN_PLUG when homing W to MIN."
2710-
#elif HAS_W_AXIS && W_HOME_TO_MAX && DISABLED(USE_WMAX_PLUG)
2710+
#elif W_HOME_TO_MAX && DISABLED(USE_WMAX_PLUG)
27112711
#error "Enable USE_WMAX_PLUG when homing W to MAX."
27122712
#endif
27132713
#endif
27142714

27152715
// Z homing direction and plug usage flags
2716-
#if HAS_Z_AXIS && Z_HOME_TO_MIN && NONE(USE_ZMIN_PLUG, HOMING_Z_WITH_PROBE)
2716+
#if Z_HOME_TO_MIN && NONE(USE_ZMIN_PLUG, HOMING_Z_WITH_PROBE)
27172717
#error "Enable USE_ZMIN_PLUG when homing Z to MIN."
27182718
#elif Z_HOME_TO_MAX && ENABLED(USE_PROBE_FOR_Z_HOMING)
27192719
#error "Z_HOME_DIR must be -1 when homing Z with the probe."

Marlin/src/lcd/dogm/status_screen_DOGM.cpp

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -500,8 +500,13 @@ FORCE_INLINE void _draw_axis_value(const AxisEnum axis, const char *value, const
500500
*/
501501
void MarlinUI::draw_status_screen() {
502502
constexpr int xystorage = TERN(INCH_MODE_SUPPORT, 8, 5);
503-
static char xstring[TERN(LCD_SHOW_E_TOTAL, 12, xystorage)], ystring[xystorage];
504-
OPTCODE(HAS_Z_AXIS, static char zstring[8])
503+
static char xstring[TERN(LCD_SHOW_E_TOTAL, 12, xystorage)];
504+
#if HAS_Y_AXIS
505+
static char ystring[xystorage];
506+
#endif
507+
#if HAS_Z_AXIS
508+
static char zstring[8];
509+
#endif
505510

506511
#if ENABLED(FILAMENT_LCD_DISPLAY)
507512
static char wstring[5], mstring[4];
@@ -529,6 +534,7 @@ void MarlinUI::draw_status_screen() {
529534
#if HAS_Z_AXIS
530535
strcpy(zstring, is_inch ? ftostr42_52(LINEAR_UNIT(lpos.z)) : ftostr52sp(lpos.z));
531536
#endif
537+
532538
if (show_e_total) {
533539
#if ENABLED(LCD_SHOW_E_TOTAL)
534540
const uint8_t escale = e_move_accumulator >= 100000.0f ? 10 : 1; // After 100m switch to cm
@@ -537,7 +543,7 @@ void MarlinUI::draw_status_screen() {
537543
}
538544
else {
539545
strcpy(xstring, is_inch ? ftostr53_63(LINEAR_UNIT(lpos.x)) : ftostr4sign(lpos.x));
540-
strcpy(ystring, is_inch ? ftostr53_63(LINEAR_UNIT(lpos.y)) : ftostr4sign(lpos.y));
546+
TERN_(HAS_Y_AXIS, strcpy(ystring, is_inch ? ftostr53_63(LINEAR_UNIT(lpos.y)) : ftostr4sign(lpos.y)));
541547
}
542548

543549
#if ENABLED(FILAMENT_LCD_DISPLAY)
@@ -860,7 +866,7 @@ void MarlinUI::draw_status_screen() {
860866
}
861867
else {
862868
_draw_axis_value(X_AXIS, xstring, blink);
863-
_draw_axis_value(Y_AXIS, ystring, blink);
869+
TERN_(HAS_Y_AXIS, _draw_axis_value(Y_AXIS, ystring, blink));
864870
}
865871

866872
#endif

Marlin/src/lcd/menu/menu_advanced.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -477,7 +477,9 @@ void menu_backlash();
477477

478478
// M201 / M204 Accelerations
479479
void menu_advanced_acceleration() {
480-
const float max_accel = _MAX(planner.settings.max_acceleration_mm_per_s2[A_AXIS], planner.settings.max_acceleration_mm_per_s2[B_AXIS] OPTARG(HAS_Z_AXIS, planner.settings.max_acceleration_mm_per_s2[C_AXIS]));
480+
float max_accel = planner.settings.max_acceleration_mm_per_s2[A_AXIS];
481+
TERN_(HAS_Y_AXIS, NOLESS(max_accel, planner.settings.max_acceleration_mm_per_s2[B_AXIS]));
482+
TERN_(HAS_Z_AXIS, NOLESS(max_accel, planner.settings.max_acceleration_mm_per_s2[C_AXIS]));
481483

482484
// M201 settings
483485
constexpr xyze_ulong_t max_accel_edit =

0 commit comments

Comments
 (0)