Skip to content

Commit c3a5378

Browse files
thinkyheadLCh-77
authored andcommitted
🔧 Base NUM_AXES on defined DRIVER_TYPEs (MarlinFirmware#24106)
1 parent 97e2f46 commit c3a5378

File tree

7 files changed

+320
-268
lines changed

7 files changed

+320
-268
lines changed

Marlin/Configuration.h

+42-58
Original file line numberDiff line numberDiff line change
@@ -150,20 +150,45 @@
150150
//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
151151

152152
/**
153-
* Define the number of coordinated axes.
154-
* See https://github.com/DerAndere1/Marlin/wiki
155-
* Each axis gets its own stepper control and endstop:
153+
* Stepper Drivers
154+
*
155+
* These settings allow Marlin to tune stepper driver timing and enable advanced options for
156+
* stepper drivers that support them. You may also override timing options in Configuration_adv.h.
157+
*
158+
* A4988 is assumed for unspecified drivers.
156159
*
157-
* Steppers: *_STEP_PIN, *_ENABLE_PIN, *_DIR_PIN, *_ENABLE_ON
158-
* Endstops: *_STOP_PIN, USE_*MIN_PLUG, USE_*MAX_PLUG
159-
* Axes: *_MIN_POS, *_MAX_POS, INVERT_*_DIR
160-
* Planner: DEFAULT_AXIS_STEPS_PER_UNIT, DEFAULT_MAX_FEEDRATE
161-
* DEFAULT_MAX_ACCELERATION, AXIS_RELATIVE_MODES,
162-
* MICROSTEP_MODES, MANUAL_FEEDRATE
160+
* Use TMC2208/TMC2208_STANDALONE for TMC2225 drivers and TMC2209/TMC2209_STANDALONE for TMC2226 drivers.
163161
*
164-
* :[3, 4, 5, 6, 7, 8, 9]
162+
* Options: A4988, A5984, DRV8825, LV8729, L6470, L6474, POWERSTEP01,
163+
* TB6560, TB6600, TMC2100,
164+
* TMC2130, TMC2130_STANDALONE, TMC2160, TMC2160_STANDALONE,
165+
* TMC2208, TMC2208_STANDALONE, TMC2209, TMC2209_STANDALONE,
166+
* TMC26X, TMC26X_STANDALONE, TMC2660, TMC2660_STANDALONE,
167+
* TMC5130, TMC5130_STANDALONE, TMC5160, TMC5160_STANDALONE
168+
* :['A4988', 'A5984', 'DRV8825', 'LV8729', 'L6470', 'L6474', 'POWERSTEP01', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2160', 'TMC2160_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC2209', 'TMC2209_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE', 'TMC5160', 'TMC5160_STANDALONE']
165169
*/
166-
//#define NUM_AXES 3
170+
#define X_DRIVER_TYPE A4988
171+
#define Y_DRIVER_TYPE A4988
172+
#define Z_DRIVER_TYPE A4988
173+
//#define X2_DRIVER_TYPE A4988
174+
//#define Y2_DRIVER_TYPE A4988
175+
//#define Z2_DRIVER_TYPE A4988
176+
//#define Z3_DRIVER_TYPE A4988
177+
//#define Z4_DRIVER_TYPE A4988
178+
//#define I_DRIVER_TYPE A4988
179+
//#define J_DRIVER_TYPE A4988
180+
//#define K_DRIVER_TYPE A4988
181+
//#define U_DRIVER_TYPE A4988
182+
//#define V_DRIVER_TYPE A4988
183+
//#define W_DRIVER_TYPE A4988
184+
#define E0_DRIVER_TYPE A4988
185+
//#define E1_DRIVER_TYPE A4988
186+
//#define E2_DRIVER_TYPE A4988
187+
//#define E3_DRIVER_TYPE A4988
188+
//#define E4_DRIVER_TYPE A4988
189+
//#define E5_DRIVER_TYPE A4988
190+
//#define E6_DRIVER_TYPE A4988
191+
//#define E7_DRIVER_TYPE A4988
167192

168193
/**
169194
* Additional Axis Settings
@@ -182,27 +207,27 @@
182207
*
183208
* Regardless of these settings the axes are internally named I, J, K, U, V, W.
184209
*/
185-
#if NUM_AXES >= 4
210+
#ifdef I_DRIVER_TYPE
186211
#define AXIS4_NAME 'A' // :['A', 'B', 'C', 'U', 'V', 'W']
187212
#define AXIS4_ROTATES
188213
#endif
189-
#if NUM_AXES >= 5
214+
#ifdef J_DRIVER_TYPE
190215
#define AXIS5_NAME 'B' // :['B', 'C', 'U', 'V', 'W']
191216
#define AXIS5_ROTATES
192217
#endif
193-
#if NUM_AXES >= 6
218+
#ifdef K_DRIVER_TYPE
194219
#define AXIS6_NAME 'C' // :['C', 'U', 'V', 'W']
195220
#define AXIS6_ROTATES
196221
#endif
197-
#if NUM_AXES >= 7
222+
#ifdef U_DRIVER_TYPE
198223
#define AXIS7_NAME 'U' // :['U', 'V', 'W']
199224
//#define AXIS7_ROTATES
200225
#endif
201-
#if NUM_AXES >= 8
226+
#ifdef V_DRIVER_TYPE
202227
#define AXIS8_NAME 'V' // :['V', 'W']
203228
//#define AXIS8_ROTATES
204229
#endif
205-
#if NUM_AXES >= 9
230+
#ifdef W_DRIVER_TYPE
206231
#define AXIS9_NAME 'W' // :['W']
207232
//#define AXIS9_ROTATES
208233
#endif
@@ -941,47 +966,6 @@
941966
#define W_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
942967
#define Z_MIN_PROBE_ENDSTOP_INVERTING false // Set to true to invert the logic of the probe.
943968

944-
/**
945-
* Stepper Drivers
946-
*
947-
* These settings allow Marlin to tune stepper driver timing and enable advanced options for
948-
* stepper drivers that support them. You may also override timing options in Configuration_adv.h.
949-
*
950-
* A4988 is assumed for unspecified drivers.
951-
*
952-
* Use TMC2208/TMC2208_STANDALONE for TMC2225 drivers and TMC2209/TMC2209_STANDALONE for TMC2226 drivers.
953-
*
954-
* Options: A4988, A5984, DRV8825, LV8729, L6470, L6474, POWERSTEP01,
955-
* TB6560, TB6600, TMC2100,
956-
* TMC2130, TMC2130_STANDALONE, TMC2160, TMC2160_STANDALONE,
957-
* TMC2208, TMC2208_STANDALONE, TMC2209, TMC2209_STANDALONE,
958-
* TMC26X, TMC26X_STANDALONE, TMC2660, TMC2660_STANDALONE,
959-
* TMC5130, TMC5130_STANDALONE, TMC5160, TMC5160_STANDALONE
960-
* :['A4988', 'A5984', 'DRV8825', 'LV8729', 'L6470', 'L6474', 'POWERSTEP01', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2160', 'TMC2160_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC2209', 'TMC2209_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE', 'TMC5160', 'TMC5160_STANDALONE']
961-
*/
962-
#define X_DRIVER_TYPE A4988
963-
#define Y_DRIVER_TYPE A4988
964-
#define Z_DRIVER_TYPE A4988
965-
//#define X2_DRIVER_TYPE A4988
966-
//#define Y2_DRIVER_TYPE A4988
967-
//#define Z2_DRIVER_TYPE A4988
968-
//#define Z3_DRIVER_TYPE A4988
969-
//#define Z4_DRIVER_TYPE A4988
970-
//#define I_DRIVER_TYPE A4988
971-
//#define J_DRIVER_TYPE A4988
972-
//#define K_DRIVER_TYPE A4988
973-
//#define U_DRIVER_TYPE A4988
974-
//#define V_DRIVER_TYPE A4988
975-
//#define W_DRIVER_TYPE A4988
976-
#define E0_DRIVER_TYPE A4988
977-
//#define E1_DRIVER_TYPE A4988
978-
//#define E2_DRIVER_TYPE A4988
979-
//#define E3_DRIVER_TYPE A4988
980-
//#define E4_DRIVER_TYPE A4988
981-
//#define E5_DRIVER_TYPE A4988
982-
//#define E6_DRIVER_TYPE A4988
983-
//#define E7_DRIVER_TYPE A4988
984-
985969
// Enable this feature if all enabled endstop pins are interrupt-capable.
986970
// This will remove the need to poll the interrupt pins, saving many CPU cycles.
987971
//#define ENDSTOP_INTERRUPTS_FEATURE

0 commit comments

Comments
 (0)