Skip to content

Commit 88de522

Browse files
committed
🩹 Use 'M205 D' when 'B' is an axis
1 parent 842489a commit 88de522

File tree

1 file changed

+29
-16
lines changed

1 file changed

+29
-16
lines changed

Marlin/src/gcode/config/M200-M205.cpp

+29-16
Original file line numberDiff line numberDiff line change
@@ -221,9 +221,9 @@ void GcodeSuite::M203_report(const bool forReplay/*=true*/) {
221221
/**
222222
* M204: Set Accelerations in units/sec^2 (M204 P1200 R3000 T3000)
223223
*
224-
* P = Printing moves
225-
* R = Retract only (no X, Y, Z) moves
226-
* T = Travel (non printing) moves
224+
* P<accel> Printing moves
225+
* R<accel> Retract only (no X, Y, Z) moves
226+
* T<accel> Travel (non printing) moves
227227
*/
228228
void GcodeSuite::M204() {
229229
if (!parser.seen("PRST"))
@@ -247,24 +247,37 @@ void GcodeSuite::M204_report(const bool forReplay/*=true*/) {
247247
);
248248
}
249249

250+
#if AXIS_COLLISION('B')
251+
#define M205_MIN_SEG_TIME_PARAM 'D'
252+
#define M205_MIN_SEG_TIME_STR "D"
253+
#warning "Use 'M205 D' for Minimum Segment Time."
254+
#else
255+
#define M205_MIN_SEG_TIME_PARAM 'B'
256+
#define M205_MIN_SEG_TIME_STR "B"
257+
#endif
258+
250259
/**
251260
* M205: Set Advanced Settings
252261
*
253-
* B = Min Segment Time (µs)
254-
* S = Min Feed Rate (units/s)
255-
* T = Min Travel Feed Rate (units/s)
256-
* X = Max X Jerk (units/sec^2)
257-
* Y = Max Y Jerk (units/sec^2)
258-
* Z = Max Z Jerk (units/sec^2)
259-
* E = Max E Jerk (units/sec^2)
260-
* J = Junction Deviation (mm) (If not using CLASSIC_JERK)
262+
* B<µs> : Min Segment Time
263+
* S<units/s> : Min Feed Rate
264+
* T<units/s> : Min Travel Feed Rate
265+
*
266+
* With CLASSIC_JERK:
267+
* X<units/sec^2> : Max X Jerk
268+
* Y<units/sec^2> : Max Y Jerk
269+
* Z<units/sec^2> : Max Z Jerk
270+
* ... : etc
271+
* E<units/sec^2> : Max E Jerk
272+
*
273+
* Without CLASSIC_JERK:
274+
* J(mm) : Junction Deviation
261275
*/
262276
void GcodeSuite::M205() {
263-
if (!parser.seen("BST" TERN_(HAS_JUNCTION_DEVIATION, "J") TERN_(HAS_CLASSIC_JERK, "XYZE")))
264-
return M205_report();
277+
if (!parser.seen_any()) return M205_report();
265278

266279
//planner.synchronize();
267-
if (parser.seenval('B')) planner.settings.min_segment_time_us = parser.value_ulong();
280+
if (parser.seenval(M205_MIN_SEG_TIME_PARAM)) planner.settings.min_segment_time_us = parser.value_ulong();
268281
if (parser.seenval('S')) planner.settings.min_feedrate_mm_s = parser.value_linear_units();
269282
if (parser.seenval('T')) planner.settings.min_travel_feedrate_mm_s = parser.value_linear_units();
270283
#if HAS_JUNCTION_DEVIATION
@@ -304,7 +317,7 @@ void GcodeSuite::M205() {
304317

305318
void GcodeSuite::M205_report(const bool forReplay/*=true*/) {
306319
report_heading_etc(forReplay, F(
307-
"Advanced (B<min_segment_time_us> S<min_feedrate> T<min_travel_feedrate>"
320+
"Advanced (" M205_MIN_SEG_TIME_STR "<min_segment_time_us> S<min_feedrate> T<min_travel_feedrate>"
308321
TERN_(HAS_JUNCTION_DEVIATION, " J<junc_dev>")
309322
#if HAS_CLASSIC_JERK
310323
NUM_AXIS_GANG(
@@ -317,7 +330,7 @@ void GcodeSuite::M205_report(const bool forReplay/*=true*/) {
317330
")"
318331
));
319332
SERIAL_ECHOLNPGM_P(
320-
PSTR(" M205 B"), LINEAR_UNIT(planner.settings.min_segment_time_us)
333+
PSTR(" M205 " M205_MIN_SEG_TIME_STR), LINEAR_UNIT(planner.settings.min_segment_time_us)
321334
, PSTR(" S"), LINEAR_UNIT(planner.settings.min_feedrate_mm_s)
322335
, SP_T_STR, LINEAR_UNIT(planner.settings.min_travel_feedrate_mm_s)
323336
#if HAS_JUNCTION_DEVIATION

0 commit comments

Comments
 (0)