Skip to content

Commit f8b4835

Browse files
DerAndere1thinkyhead
authored andcommitted
♻️ More updates for multi-axis
Based on MarlinFirmware#23112 Co-Authored-By: Scott Lahteine <thinkyhead@users.noreply.github.com>
1 parent 9258475 commit f8b4835

23 files changed

+169
-131
lines changed

Marlin/src/core/macros.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,7 @@
350350

351351
#define _LIST_N(N,V...) LIST_##N(V)
352352
#define LIST_N(N,V...) _LIST_N(N,V)
353-
#define LIST_N_1(N,K) _LIST_N(N,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K)
353+
#define LIST_N_1(N,K) _LIST_N(N,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K)
354354
#define ARRAY_N(N,V...) { _LIST_N(N,V) }
355355
#define ARRAY_N_1(N,K) { LIST_N_1(N,K) }
356356

Marlin/src/core/types.h

+6
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,12 @@ struct IF<true, L, R> { typedef L type; };
6666

6767
#define LOGICAL_AXES_STRING LOGICAL_AXIS_GANG("E", "X", "Y", "Z", STR_I, STR_J, STR_K)
6868

69+
#define XYZ_GANG(V...) GANG_N(PRIMARY_LINEAR_AXES, V)
70+
#define XYZ_CODE(V...) CODE_N(PRIMARY_LINEAR_AXES, V)
71+
72+
#define SECONDARY_AXIS_GANG(V...) GANG_N(SECONDARY_AXES, V)
73+
#define SECONDARY_AXIS_CODE(V...) CODE_N(SECONDARY_AXES, V)
74+
6975
#if HAS_EXTRUDERS
7076
#define LIST_ITEM_E(N) , N
7177
#define CODE_ITEM_E(N) ; N

Marlin/src/core/utility.h

+4-1
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,14 @@ class restorer {
7777
// in the range 0-100 while avoiding rounding artifacts
7878
constexpr uint8_t ui8_to_percent(const uint8_t i) { return (int(i) * 100 + 127) / 255; }
7979

80+
// Axis names for G-code parsing, reports, etc.
8081
const xyze_char_t axis_codes LOGICAL_AXIS_ARRAY('E', 'X', 'Y', 'Z', AXIS4_NAME, AXIS5_NAME, AXIS6_NAME);
81-
const xyze_char_t iaxis_codes LOGICAL_AXIS_ARRAY('E', 'X', 'Y', 'Z', 'I', 'J', 'K');
8282

8383
#if LINEAR_AXES <= XYZ
8484
#define AXIS_CHAR(A) ((char)('X' + A))
85+
#define IAXIS_CHAR AXIS_CHAR
8586
#else
87+
const xyze_char_t iaxis_codes LOGICAL_AXIS_ARRAY('E', 'X', 'Y', 'Z', 'I', 'J', 'K');
8688
#define AXIS_CHAR(A) axis_codes[A]
89+
#define IAXIS_CHAR(A) iaxis_codes[A]
8790
#endif

Marlin/src/gcode/calibrate/G28.cpp

+5-3
Original file line numberDiff line numberDiff line change
@@ -460,9 +460,11 @@ void GcodeSuite::G28() {
460460
}
461461
#endif
462462

463-
TERN_(HAS_I_AXIS, if (doI) homeaxis(I_AXIS));
464-
TERN_(HAS_J_AXIS, if (doJ) homeaxis(J_AXIS));
465-
TERN_(HAS_K_AXIS, if (doK) homeaxis(K_AXIS));
463+
SECONDARY_AXIS_CODE(
464+
if (doI) homeaxis(I_AXIS),
465+
if (doJ) homeaxis(J_AXIS),
466+
if (doK) homeaxis(K_AXIS)
467+
);
466468

467469
sync_plan_position();
468470

Marlin/src/gcode/calibrate/G425.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@
8888

8989
enum side_t : uint8_t {
9090
TOP, RIGHT, FRONT, LEFT, BACK, NUM_SIDES,
91-
LIST_N(DOUBLE(SUB3(LINEAR_AXES)), IMINIMUM, IMAXIMUM, JMINIMUM, JMAXIMUM, KMINIMUM, KMAXIMUM)
91+
LIST_N(DOUBLE(SECONDARY_AXES), IMINIMUM, IMAXIMUM, JMINIMUM, JMAXIMUM, KMINIMUM, KMAXIMUM)
9292
};
9393

9494
static constexpr xyz_pos_t true_center CALIBRATION_OBJECT_CENTER;

Marlin/src/gcode/calibrate/M425.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ void GcodeSuite::M425() {
5757
LOOP_LINEAR_AXES(a) {
5858
if (axis_can_calibrate(a) && parser.seen(AXIS_CHAR(a))) {
5959
planner.synchronize();
60-
backlash.set_distance_mm(AxisEnum(a), parser.has_value() ? parser.value_linear_units() : backlash.get_measurement(AxisEnum(a)));
60+
backlash.set_distance_mm((AxisEnum)a, parser.has_value() ? parser.value_axis_units((AxisEnum)a) : backlash.get_measurement((AxisEnum)a));
6161
noArgs = false;
6262
}
6363
}

Marlin/src/gcode/config/M217.cpp

+6-8
Original file line numberDiff line numberDiff line change
@@ -174,14 +174,12 @@ void GcodeSuite::M217_report(const bool forReplay/*=true*/) {
174174
#if HAS_Y_AXIS
175175
, SP_Y_STR, LINEAR_UNIT(toolchange_settings.change_point.y)
176176
#endif
177-
#if HAS_I_AXIS
178-
, SP_I_STR, LINEAR_UNIT(toolchange_settings.change_point.i)
179-
#endif
180-
#if HAS_J_AXIS
181-
, SP_J_STR, LINEAR_UNIT(toolchange_settings.change_point.j)
182-
#endif
183-
#if HAS_K_AXIS
184-
, SP_K_STR, LINEAR_UNIT(toolchange_settings.change_point.k)
177+
#if SECONDARY_AXES >= 1
178+
, LIST_N(DOUBLE(SECONDARY_AXES),
179+
SP_I_STR, I_AXIS_UNIT(toolchange_settings.change_point.i),
180+
SP_J_STR, J_AXIS_UNIT(toolchange_settings.change_point.j),
181+
SP_K_STR, K_AXIS_UNIT(toolchange_settings.change_point.k)
182+
)
185183
#endif
186184
);
187185
}

Marlin/src/gcode/control/M17_M18_M84.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include "../gcode.h"
2424
#include "../../MarlinCore.h" // for stepper_inactive_time, disable_e_steppers
2525
#include "../../lcd/marlinui.h"
26+
#include "../../module/motion.h" // for e_axis_mask
2627
#include "../../module/stepper.h"
2728

2829
#if ENABLED(AUTO_BED_LEVELING_UBL)
@@ -43,7 +44,7 @@ inline stepper_flags_t selected_axis_bits() {
4344
selected.bits = _BV(INDEX_OF_AXIS(E_AXIS, e));
4445
}
4546
else
46-
selected.bits = selected.e_bits();
47+
selected.bits = e_axis_mask;
4748
}
4849
#endif
4950
selected.bits |= LINEAR_AXIS_GANG(

Marlin/src/gcode/feature/clean/G12.cpp

+3-2
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,10 @@
4545
* X, Y, Z : Specify axes to move during cleaning. Default: ALL.
4646
*/
4747
void GcodeSuite::G12() {
48+
4849
// Don't allow nozzle cleaning without homing first
49-
if (homing_needed_error(linear_bits & ~TERN0(NOZZLE_CLEAN_NO_Z, Z_AXIS) & ~TERN0(NOZZLE_CLEAN_NO_Y, Y_AXIS)))
50-
return;
50+
constexpr main_axes_bits_t clean_axis_mask = main_axes_mask & ~TERN0(NOZZLE_CLEAN_NO_Z, Z_AXIS) & ~TERN0(NOZZLE_CLEAN_NO_Y, Y_AXIS);
51+
if (homing_needed_error(clean_axis_mask)) return;
5152

5253
#ifdef WIPE_SEQUENCE_COMMANDS
5354
if (!parser.seen_any()) {

Marlin/src/gcode/feature/digipot/M907-M910.cpp

+14-11
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
#endif
4040

4141
/**
42-
* M907: Set digital trimpot motor current using axis codes X [Y] [Z] [E]
42+
* M907: Set digital trimpot motor current using axis codes X [Y] [Z] [I] [J] [K] [E]
4343
* B<current> - Special case for 4th (E) axis
4444
* S<current> - Special case to set first 3 axes
4545
*/
@@ -49,15 +49,15 @@ void GcodeSuite::M907() {
4949
if (!parser.seen("BS" LOGICAL_AXES_STRING))
5050
return M907_report();
5151

52-
LOOP_LOGICAL_AXES(i) if (parser.seenval(axis_codes[i])) stepper.set_digipot_current(i, parser.value_int());
52+
LOOP_LOGICAL_AXES(i) if (parser.seenval(IAXIS_CHAR(i))) stepper.set_digipot_current(i, parser.value_int());
5353
if (parser.seenval('B')) stepper.set_digipot_current(4, parser.value_int());
5454
if (parser.seenval('S')) LOOP_LE_N(i, 4) stepper.set_digipot_current(i, parser.value_int());
5555

5656
#elif HAS_MOTOR_CURRENT_PWM
5757

5858
if (!parser.seen(
59-
#if ANY_PIN(MOTOR_CURRENT_PWM_X, MOTOR_CURRENT_PWM_Y, MOTOR_CURRENT_PWM_XY)
60-
"XY"
59+
#if ANY_PIN(MOTOR_CURRENT_PWM_X, MOTOR_CURRENT_PWM_Y, MOTOR_CURRENT_PWM_XY, MOTOR_CURRENT_PWM_I, MOTOR_CURRENT_PWM_J, MOTOR_CURRENT_PWM_K)
60+
"XY" SECONDARY_AXIS_GANG("I", "J", "K")
6161
#endif
6262
#if PIN_EXISTS(MOTOR_CURRENT_PWM_Z)
6363
"Z"
@@ -67,8 +67,11 @@ void GcodeSuite::M907() {
6767
#endif
6868
)) return M907_report();
6969

70-
#if ANY_PIN(MOTOR_CURRENT_PWM_X, MOTOR_CURRENT_PWM_Y, MOTOR_CURRENT_PWM_XY)
71-
if (parser.seenval('X') || parser.seenval('Y')) stepper.set_digipot_current(0, parser.value_int());
70+
#if ANY_PIN(MOTOR_CURRENT_PWM_X, MOTOR_CURRENT_PWM_Y, MOTOR_CURRENT_PWM_XY, MOTOR_CURRENT_PWM_I, MOTOR_CURRENT_PWM_J, MOTOR_CURRENT_PWM_K)
71+
if (NUM_AXIS_GANG(
72+
parser.seenval('X'), || parser.seenval('Y'), || false,
73+
|| parser.seenval('I'), || parser.seenval('J'), || parser.seenval('K')
74+
)) stepper.set_digipot_current(0, parser.value_int());
7275
#endif
7376
#if PIN_EXISTS(MOTOR_CURRENT_PWM_Z)
7477
if (parser.seenval('Z')) stepper.set_digipot_current(1, parser.value_int());
@@ -81,7 +84,7 @@ void GcodeSuite::M907() {
8184

8285
#if HAS_MOTOR_CURRENT_I2C
8386
// this one uses actual amps in floating point
84-
LOOP_LOGICAL_AXES(i) if (parser.seenval(axis_codes[i])) digipot_i2c.set_current(i, parser.value_float());
87+
LOOP_LOGICAL_AXES(i) if (parser.seenval(IAXIS_CHAR(i))) digipot_i2c.set_current(i, parser.value_float());
8588
// Additional extruders use B,C,D for channels 4,5,6.
8689
// TODO: Change these parameters because 'E' is used. B<index>?
8790
#if HAS_EXTRUDERS
@@ -95,7 +98,7 @@ void GcodeSuite::M907() {
9598
const float dac_percent = parser.value_float();
9699
LOOP_LE_N(i, 4) stepper_dac.set_current_percent(i, dac_percent);
97100
}
98-
LOOP_LOGICAL_AXES(i) if (parser.seenval(axis_codes[i])) stepper_dac.set_current_percent(i, parser.value_float());
101+
LOOP_LOGICAL_AXES(i) if (parser.seenval(IAXIS_CHAR(i))) stepper_dac.set_current_percent(i, parser.value_float());
99102
#endif
100103
}
101104

@@ -104,15 +107,15 @@ void GcodeSuite::M907() {
104107
void GcodeSuite::M907_report(const bool forReplay/*=true*/) {
105108
report_heading_etc(forReplay, F(STR_STEPPER_MOTOR_CURRENTS));
106109
#if HAS_MOTOR_CURRENT_PWM
107-
SERIAL_ECHOLNPGM_P( // PWM-based has 3 values:
108-
PSTR(" M907 X"), stepper.motor_current_setting[0] // X and Y
110+
SERIAL_ECHOLNPGM_P( // PWM-based has 3 values:
111+
PSTR(" M907 X"), stepper.motor_current_setting[0] // X, Y, (I, J, K)
109112
, SP_Z_STR, stepper.motor_current_setting[1] // Z
110113
, SP_E_STR, stepper.motor_current_setting[2] // E
111114
);
112115
#elif HAS_MOTOR_CURRENT_SPI
113116
SERIAL_ECHOPGM(" M907"); // SPI-based has 5 values:
114117
LOOP_LOGICAL_AXES(q) { // X Y Z (I J K) E (map to X Y Z (I J K) E0 by default)
115-
SERIAL_CHAR(' ', axis_codes[q]);
118+
SERIAL_CHAR(' ', IAXIS_CHAR(q));
116119
SERIAL_ECHO(stepper.motor_current_setting[q]);
117120
}
118121
SERIAL_CHAR(' ', 'B'); // B (maps to E1 by default)

Marlin/src/gcode/feature/pause/G60.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ void GcodeSuite::G60() {
5151
DEBUG_ECHOPGM(STR_SAVED_POS " S", slot, " :");
5252
const xyze_pos_t &pos = stored_position[slot];
5353
DEBUG_ECHOLNPGM_P(
54-
LIST_N(DOUBLE(LINEAR_AXES), PSTR(" : X"), pos.x, SP_Y_STR, pos.y, SP_Z_STR, pos.z, SP_I_STR, pos.i, SP_J_STR, pos.j, SP_K_STR, pos.k)
54+
LIST_N(DOUBLE(LINEAR_AXES), SP_X_STR, pos.x, SP_Y_STR, pos.y, SP_Z_STR, pos.z, SP_I_STR, pos.i, SP_J_STR, pos.j, SP_K_STR, pos.k)
5555
#if HAS_EXTRUDERS
5656
, SP_E_LBL, pos.e
5757
#endif

Marlin/src/gcode/feature/pause/M125.cpp

+3-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,9 @@ void GcodeSuite::M125() {
7474
);
7575

7676
// Lift Z axis
77-
if (parser.seenval('Z')) park_point.z = parser.linearval('Z');
77+
#if HAS_Z_AXIS
78+
if (parser.seenval('Z')) park_point.z = parser.linearval('Z');
79+
#endif
7880

7981
#if HAS_HOTEND_OFFSET && NONE(DUAL_X_CARRIAGE, DELTA)
8082
park_point += hotend_offset[active_extruder];

Marlin/src/gcode/feature/pause/M600.cpp

+14-15
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,11 @@
5454
*
5555
* E[distance] - Retract the filament this far
5656
* Z[distance] - Move the Z axis by this distance
57-
* X[position] - Move to this X position, with Y
58-
* Y[position] - Move to this Y position, with X
57+
* X[position] - Move to this X position (instead of NOZZLE_PARK_POINT.x)
58+
* Y[position] - Move to this Y position (instead of NOZZLE_PARK_POINT.y)
59+
* I[position] - Move to this I position (instead of NOZZLE_PARK_POINT.i)
60+
* J[position] - Move to this J position (instead of NOZZLE_PARK_POINT.j)
61+
* K[position] - Move to this K position (instead of NOZZLE_PARK_POINT.k)
5962
* U[distance] - Retract distance for removal (manual reload)
6063
* L[distance] - Extrude distance for insertion (manual reload)
6164
* B[count] - Number of times to beep, -1 for indefinite (if equipped with a buzzer)
@@ -118,25 +121,21 @@ void GcodeSuite::M600() {
118121

119122
// Move XY axes to filament change position or given position
120123
LINEAR_AXIS_CODE(
121-
if (parser.seenval('X')) park_point.x = parser.linearval('X'),
122-
if (parser.seenval('Y')) park_point.y = parser.linearval('Y'),
123-
if (parser.seenval('Z')) park_point.z = parser.linearval('Z'), // Lift Z axis
124-
if (parser.seenval(AXIS4_NAME)) park_point.i = parser.linearval(AXIS4_NAME),
125-
if (parser.seenval(AXIS5_NAME)) park_point.j = parser.linearval(AXIS5_NAME),
126-
if (parser.seenval(AXIS6_NAME)) park_point.k = parser.linearval(AXIS6_NAME)
124+
if (parser.seenval('X')) park_point.x = parser.value_linear_units(),
125+
if (parser.seenval('Y')) park_point.y = parser.value_linear_units(),
126+
if (parser.seenval('Z')) park_point.z = parser.value_linear_units(), // Lift Z axis
127+
if (parser.seenval('I')) park_point.i = parser.value_linear_units(),
128+
if (parser.seenval('J')) park_point.j = parser.value_linear_units(),
129+
if (parser.seenval('K')) park_point.k = parser.value_linear_units()
127130
);
128131

129132
#if HAS_HOTEND_OFFSET && NONE(DUAL_X_CARRIAGE, DELTA)
130133
park_point += hotend_offset[active_extruder];
131134
#endif
132135

133-
#if ENABLED(MMU2_MENUS)
134-
// For MMU2, when enabled, reset retract value so it doesn't mess with MMU filament handling
135-
const float unload_length = standardM600 ? -ABS(parser.axisunitsval('U', E_AXIS, fc_settings[active_extruder].unload_length)) : 0.5f;
136-
#else
137-
// Unload filament
138-
const float unload_length = -ABS(parser.axisunitsval('U', E_AXIS, fc_settings[active_extruder].unload_length));
139-
#endif
136+
// Unload filament
137+
// For MMU2, when enabled, reset retract value so it doesn't mess with MMU filament handling
138+
const float unload_length = standardM600 ? -ABS(parser.axisunitsval('U', E_AXIS, fc_settings[active_extruder].unload_length)) : 0.5f;
140139

141140
const int beep_count = parser.intval('B', -1
142141
#ifdef FILAMENT_CHANGE_ALERT_BEEPS

Marlin/src/gcode/feature/trinamic/M911-M914.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@
137137

138138
/**
139139
* M912: Clear TMC stepper driver overtemperature pre-warn flag held by the library
140-
* Specify one or more axes with X, Y, Z, X1, Y1, Z1, X2, Y2, Z2, Z3, Z4 and E[index].
140+
* Specify one or more axes with X, Y, Z, X1, Y1, Z1, X2, Y2, Z2, Z3, Z4, A, B, C, and E[index].
141141
* If no axes are given, clear all.
142142
*
143143
* Examples:

Marlin/src/gcode/motion/G2_G3.cpp

+1-6
Original file line numberDiff line numberDiff line change
@@ -168,12 +168,7 @@ void plan_arc(
168168

169169
// Return if the move is near zero
170170
if (flat_mm < 0.0001f
171-
GANG_N(SUB2(LINEAR_AXES),
172-
&& travel_L < 0.0001f,
173-
&& travel_I < 0.0001f,
174-
&& travel_J < 0.0001f,
175-
&& travel_K < 0.0001f
176-
)
171+
GANG_N(SUB2(LINEAR_AXES), && travel_L < 0.0001f, && travel_I < 0.0001f, && travel_J < 0.0001f, && travel_K < 0.0001f)
177172
) return;
178173

179174
// Feedrate for the move, scaled by the feedrate multiplier

Marlin/src/inc/Conditionals_LCD.h

+41-2
Original file line numberDiff line numberDiff line change
@@ -666,7 +666,7 @@
666666
#endif
667667

668668
/**
669-
* Number of Linear Axes (e.g., XYZ)
669+
* Number of Linear Axes (e.g., XYZIJK)
670670
* All the logical axes except for the tool (E) axis
671671
*/
672672
#ifdef LINEAR_AXES
@@ -821,7 +821,23 @@
821821
#endif
822822

823823
/**
824-
* Number of Logical Axes (e.g., XYZE)
824+
* Number of Primary Linear Axes (e.g., XYZ)
825+
* X, XY, or XYZ axes. Excluding duplicate axes (X2, Y2. Z2. Z3, Z4)
826+
*/
827+
#if HAS_I_AXIS
828+
#define PRIMARY_LINEAR_AXES 3
829+
#else
830+
#define PRIMARY_LINEAR_AXES LINEAR_AXES
831+
#endif
832+
833+
/**
834+
* Number of Secondary Axes (e.g., IJK)
835+
* All linear/rotational axes between XYZ and E.
836+
*/
837+
#define SECONDARY_AXES SUB3(LINEAR_AXES)
838+
839+
/**
840+
* Number of Logical Axes (e.g., XYZIJKE)
825841
* All the logical axes that can be commanded directly by G-code.
826842
* Delta maps stepper-specific values to ABC steppers.
827843
*/
@@ -1268,6 +1284,29 @@
12681284
#define HAS_ETHERNET 1
12691285
#endif
12701286

1287+
// Fallback axis inverting
1288+
#ifndef INVERT_X_DIR
1289+
#define INVERT_X_DIR false
1290+
#endif
1291+
#if HAS_Y_AXIS && !defined(INVERT_Y_DIR)
1292+
#define INVERT_Y_DIR false
1293+
#endif
1294+
#if HAS_Z_AXIS && !defined(INVERT_Z_DIR)
1295+
#define INVERT_Z_DIR false
1296+
#endif
1297+
#if HAS_I_AXIS && !defined(INVERT_I_DIR)
1298+
#define INVERT_I_DIR false
1299+
#endif
1300+
#if HAS_J_AXIS && !defined(INVERT_J_DIR)
1301+
#define INVERT_J_DIR false
1302+
#endif
1303+
#if HAS_K_AXIS && !defined(INVERT_K_DIR)
1304+
#define INVERT_K_DIR false
1305+
#endif
1306+
#if HAS_EXTRUDERS && !defined(INVERT_E_DIR)
1307+
#define INVERT_E_DIR false
1308+
#endif
1309+
12711310
/**
12721311
* This setting is also used by M109 when trying to calculate
12731312
* a ballpark safe margin to prevent wait-forever situation.

Marlin/src/lcd/e3v2/marlinui/ui_status_480x272.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,9 @@ FORCE_INLINE void _draw_axis_value(const AxisEnum axis, const char *value, const
7979
dwin_string.set();
8080
if (blink)
8181
dwin_string.add(value);
82-
else if (!TEST(axis_homed, axis))
82+
else if (!TEST(axes_homed, axis))
8383
while (const char c = *value++) dwin_string.add(c <= '.' ? c : '?');
84-
else if (NONE(HOME_AFTER_DEACTIVATE, DISABLE_REDUCED_ACCURACY_WARNING) && !TEST(axis_trusted, axis))
84+
else if (NONE(HOME_AFTER_DEACTIVATE, DISABLE_REDUCED_ACCURACY_WARNING) && !TEST(axes_trusted, axis))
8585
dwin_string.add(TERN1(DWIN_MARLINUI_PORTRAIT, axis == Z_AXIS) ? PSTR(" ") : PSTR(" "));
8686
else
8787
dwin_string.add(value);
@@ -103,11 +103,11 @@ FORCE_INLINE void _draw_axis_value(const AxisEnum axis, const char *value, const
103103
if (blink)
104104
dwin_string.add(value);
105105
else {
106-
if (!TEST(axis_homed, axis))
106+
if (!TEST(axes_homed, axis))
107107
while (const char c = *value++) dwin_string.add(c <= '.' ? c : '?');
108108
else {
109109
#if NONE(HOME_AFTER_DEACTIVATE, DISABLE_REDUCED_ACCURACY_WARNING)
110-
if (!TEST(axis_trusted, axis))
110+
if (!TEST(axes_trusted, axis))
111111
dwin_string.add(TERN1(DWIN_MARLINUI_PORTRAIT, axis == Z_AXIS) ? PSTR(" ") : PSTR(" "));
112112
else
113113
#endif

0 commit comments

Comments
 (0)