Browse Source

Extended reporting options (#16741)

Gurmeet Athwal 5 years ago
parent
commit
a4c981469e
No account linked to committer's email address

+ 5
- 0
Marlin/Configuration_adv.h View File

2921
  * Include capabilities in M115 output
2921
  * Include capabilities in M115 output
2922
  */
2922
  */
2923
 #define EXTENDED_CAPABILITIES_REPORT
2923
 #define EXTENDED_CAPABILITIES_REPORT
2924
+#if ENABLED(EXTENDED_CAPABILITIES_REPORT)
2925
+  //#define M115_GEOMETRY_REPORT
2926
+#endif
2924
 
2927
 
2925
 /**
2928
 /**
2926
  * Expected Printer Check
2929
  * Expected Printer Check
2979
 
2982
 
2980
 //#define GCODE_CASE_INSENSITIVE  // Accept G-code sent to the firmware in lowercase
2983
 //#define GCODE_CASE_INSENSITIVE  // Accept G-code sent to the firmware in lowercase
2981
 
2984
 
2985
+//#define REPETIER_GCODE_M360     // Add commands originally from Repetier FW
2986
+
2982
 /**
2987
 /**
2983
  * CNC G-code options
2988
  * CNC G-code options
2984
  * Support CNC-style G-code dialects used by laser cutters, drawing machine cams, etc.
2989
  * Support CNC-style G-code dialects used by laser cutters, drawing machine cams, etc.

+ 3
- 0
Marlin/src/HAL/AVR/HAL.h View File

53
 // AVR PROGMEM extension for sprintf_P
53
 // AVR PROGMEM extension for sprintf_P
54
 #define S_FMT "%S"
54
 #define S_FMT "%S"
55
 
55
 
56
+// AVR PROGMEM extension for string define
57
+#define PGMSTR(NAM,STR) const char NAM[] PROGMEM = STR
58
+
56
 #ifndef CRITICAL_SECTION_START
59
 #ifndef CRITICAL_SECTION_START
57
   #define CRITICAL_SECTION_START()  unsigned char _sreg = SREG; cli()
60
   #define CRITICAL_SECTION_START()  unsigned char _sreg = SREG; cli()
58
   #define CRITICAL_SECTION_END()    SREG = _sreg
61
   #define CRITICAL_SECTION_END()    SREG = _sreg

+ 5
- 0
Marlin/src/HAL/HAL.h View File

36
   #define S_FMT "%s"
36
   #define S_FMT "%s"
37
 #endif
37
 #endif
38
 
38
 
39
+// String helper
40
+#ifndef PGMSTR
41
+  #define PGMSTR(NAM,STR) constexpr char NAM[] = STR
42
+#endif
43
+
39
 inline void watchdog_refresh() {
44
 inline void watchdog_refresh() {
40
   TERN_(USE_WATCHDOG, HAL_watchdog_refresh());
45
   TERN_(USE_WATCHDOG, HAL_watchdog_refresh());
41
 }
46
 }

+ 11
- 20
Marlin/src/MarlinCore.cpp View File

183
   #include "libs/L64XX/L64XX_Marlin.h"
183
   #include "libs/L64XX/L64XX_Marlin.h"
184
 #endif
184
 #endif
185
 
185
 
186
-const char NUL_STR[] PROGMEM = "",
187
-           M112_KILL_STR[] PROGMEM = "M112 Shutdown",
188
-           G28_STR[] PROGMEM = "G28",
189
-           M21_STR[] PROGMEM = "M21",
190
-           M23_STR[] PROGMEM = "M23 %s",
191
-           M24_STR[] PROGMEM = "M24",
192
-           SP_P_STR[] PROGMEM = " P",
193
-           SP_T_STR[] PROGMEM = " T",
194
-           SP_X_STR[] PROGMEM = " X",
195
-           SP_Y_STR[] PROGMEM = " Y",
196
-           SP_Z_STR[] PROGMEM = " Z",
197
-           SP_E_STR[] PROGMEM = " E",
198
-              X_LBL[] PROGMEM =  "X:",
199
-              Y_LBL[] PROGMEM =  "Y:",
200
-              Z_LBL[] PROGMEM =  "Z:",
201
-              E_LBL[] PROGMEM =  "E:",
202
-           SP_X_LBL[] PROGMEM = " X:",
203
-           SP_Y_LBL[] PROGMEM = " Y:",
204
-           SP_Z_LBL[] PROGMEM = " Z:",
205
-           SP_E_LBL[] PROGMEM = " E:";
186
+PGMSTR(NUL_STR, "");
187
+PGMSTR(M112_KILL_STR, "M112 Shutdown");
188
+PGMSTR(G28_STR, "G28");
189
+PGMSTR(M21_STR, "M21");
190
+PGMSTR(M23_STR, "M23 %s");
191
+PGMSTR(M24_STR, "M24");
192
+PGMSTR(SP_P_STR, " P");  PGMSTR(SP_T_STR, " T");
193
+PGMSTR(X_STR,     "X");  PGMSTR(Y_STR,     "Y");  PGMSTR(Z_STR,     "Z");  PGMSTR(E_STR,     "E");
194
+PGMSTR(X_LBL,     "X:"); PGMSTR(Y_LBL,     "Y:"); PGMSTR(Z_LBL,     "Z:"); PGMSTR(E_LBL,     "E:");
195
+PGMSTR(SP_X_STR, " X");  PGMSTR(SP_Y_STR, " Y");  PGMSTR(SP_Z_STR, " Z");  PGMSTR(SP_E_STR, " E");
196
+PGMSTR(SP_X_LBL, " X:"); PGMSTR(SP_Y_LBL, " Y:"); PGMSTR(SP_Z_LBL, " Z:"); PGMSTR(SP_E_LBL, " E:");
206
 
197
 
207
 MarlinState marlin_state = MF_INITIALIZING;
198
 MarlinState marlin_state = MF_INITIALIZING;
208
 
199
 

+ 2
- 2
Marlin/src/core/serial.cpp View File

25
 
25
 
26
 uint8_t marlin_debug_flags = MARLIN_DEBUG_NONE;
26
 uint8_t marlin_debug_flags = MARLIN_DEBUG_NONE;
27
 
27
 
28
-static const char errormagic[] PROGMEM = "Error:";
29
-static const char echomagic[]  PROGMEM = "echo:";
28
+static PGMSTR(errormagic, "Error:");
29
+static PGMSTR(echomagic, "echo:");
30
 
30
 
31
 #if NUM_SERIAL > 1
31
 #if NUM_SERIAL > 1
32
   int8_t serial_port_index = 0;
32
   int8_t serial_port_index = 0;

+ 3
- 3
Marlin/src/feature/host_actions.cpp View File

64
 
64
 
65
 #if ENABLED(HOST_PROMPT_SUPPORT)
65
 #if ENABLED(HOST_PROMPT_SUPPORT)
66
 
66
 
67
-  const char CONTINUE_STR[] PROGMEM = "Continue",
68
-             DISMISS_STR[] PROGMEM = "Dismiss";
67
+  PGMSTR(CONTINUE_STR, "Continue");
68
+  PGMSTR(DISMISS_STR, "Dismiss");
69
 
69
 
70
   #if HAS_RESUME_CONTINUE
70
   #if HAS_RESUME_CONTINUE
71
     extern bool wait_for_user;
71
     extern bool wait_for_user;
123
   //
123
   //
124
   void host_response_handler(const uint8_t response) {
124
   void host_response_handler(const uint8_t response) {
125
     #ifdef DEBUG_HOST_ACTIONS
125
     #ifdef DEBUG_HOST_ACTIONS
126
-      static const char m876_prefix[] PROGMEM = "M876 Handle Re";
126
+      static PGMSTR(m876_prefix, "M876 Handle Re");
127
       serialprintPGM(m876_prefix); SERIAL_ECHOLNPAIR("ason: ", host_prompt_reason);
127
       serialprintPGM(m876_prefix); SERIAL_ECHOLNPAIR("ason: ", host_prompt_reason);
128
       serialprintPGM(m876_prefix); SERIAL_ECHOLNPAIR("sponse: ", response);
128
       serialprintPGM(m876_prefix); SERIAL_ECHOLNPAIR("sponse: ", response);
129
     #endif
129
     #endif

+ 2
- 2
Marlin/src/gcode/calibrate/G33.cpp View File

448
   }
448
   }
449
 
449
 
450
   // Report settings
450
   // Report settings
451
-  PGM_P checkingac = PSTR("Checking... AC");
451
+  PGM_P const checkingac = PSTR("Checking... AC");
452
   serialprintPGM(checkingac);
452
   serialprintPGM(checkingac);
453
   if (verbose_level == 0) SERIAL_ECHOPGM(" (DRY-RUN)");
453
   if (verbose_level == 0) SERIAL_ECHOPGM(" (DRY-RUN)");
454
   SERIAL_EOL();
454
   SERIAL_EOL();
624
       }
624
       }
625
     }
625
     }
626
     else { // dry run
626
     else { // dry run
627
-      PGM_P enddryrun = PSTR("End DRY-RUN");
627
+      PGM_P const enddryrun = PSTR("End DRY-RUN");
628
       serialprintPGM(enddryrun);
628
       serialprintPGM(enddryrun);
629
       SERIAL_ECHO_SP(35);
629
       SERIAL_ECHO_SP(35);
630
       SERIAL_ECHOLNPAIR_F("std dev:", zero_std_dev, 3);
630
       SERIAL_ECHOLNPAIR_F("std dev:", zero_std_dev, 3);

+ 10
- 13
Marlin/src/gcode/control/M111.cpp View File

28
 void GcodeSuite::M111() {
28
 void GcodeSuite::M111() {
29
   if (parser.seen('S')) marlin_debug_flags = parser.byteval('S');
29
   if (parser.seen('S')) marlin_debug_flags = parser.byteval('S');
30
 
30
 
31
-  static const char str_debug_1[] PROGMEM = STR_DEBUG_ECHO,
32
-                    str_debug_2[] PROGMEM = STR_DEBUG_INFO,
33
-                    str_debug_4[] PROGMEM = STR_DEBUG_ERRORS,
34
-                    str_debug_8[] PROGMEM = STR_DEBUG_DRYRUN,
35
-                    str_debug_16[] PROGMEM = STR_DEBUG_COMMUNICATION
36
-                    #if ENABLED(DEBUG_LEVELING_FEATURE)
37
-                      , str_debug_lvl[] PROGMEM = STR_DEBUG_LEVELING
38
-                    #endif
39
-                    ;
31
+  static PGMSTR(str_debug_1, STR_DEBUG_ECHO);
32
+  static PGMSTR(str_debug_2, STR_DEBUG_INFO);
33
+  static PGMSTR(str_debug_4, STR_DEBUG_ERRORS);
34
+  static PGMSTR(str_debug_8, STR_DEBUG_DRYRUN);
35
+  static PGMSTR(str_debug_16, STR_DEBUG_COMMUNICATION);
36
+  #if ENABLED(DEBUG_LEVELING_FEATURE)
37
+    static PGMSTR(str_debug_lvl, STR_DEBUG_LEVELING);
38
+  #endif
40
 
39
 
41
   static PGM_P const debug_strings[] PROGMEM = {
40
   static PGM_P const debug_strings[] PROGMEM = {
42
-    str_debug_1, str_debug_2, str_debug_4, str_debug_8, str_debug_16
43
-    #if ENABLED(DEBUG_LEVELING_FEATURE)
44
-      , str_debug_lvl
45
-    #endif
41
+    str_debug_1, str_debug_2, str_debug_4, str_debug_8, str_debug_16,
42
+    TERN_(DEBUG_LEVELING_FEATURE, str_debug_lvl)
46
   };
43
   };
47
 
44
 
48
   SERIAL_ECHO_START();
45
   SERIAL_ECHO_START();

+ 4
- 0
Marlin/src/gcode/gcode.cpp View File

663
         case 305: M305(); break;                                  // M305: Set user thermistor parameters
663
         case 305: M305(); break;                                  // M305: Set user thermistor parameters
664
       #endif
664
       #endif
665
 
665
 
666
+      #if ENABLED(REPETIER_GCODE_M360)
667
+        case 360: M360(); break;                                  // M360: Firmware settings
668
+      #endif
669
+
666
       #if ENABLED(MORGAN_SCARA)
670
       #if ENABLED(MORGAN_SCARA)
667
         case 360: if (M360()) return; break;                      // M360: SCARA Theta pos1
671
         case 360: if (M360()) return; break;                      // M360: SCARA Theta pos1
668
         case 361: if (M361()) return; break;                      // M361: SCARA Theta pos2
672
         case 361: if (M361()) return; break;                      // M361: SCARA Theta pos2

+ 2
- 0
Marlin/src/gcode/gcode.h View File

691
 
691
 
692
   TERN_(HAS_CASE_LIGHT, static void M355());
692
   TERN_(HAS_CASE_LIGHT, static void M355());
693
 
693
 
694
+  TERN_(REPETIER_GCODE_M360, static void M360());
695
+
694
   #if ENABLED(MORGAN_SCARA)
696
   #if ENABLED(MORGAN_SCARA)
695
     static bool M360();
697
     static bool M360();
696
     static bool M361();
698
     static bool M361();

+ 27
- 0
Marlin/src/gcode/host/M115.cpp View File

23
 #include "../gcode.h"
23
 #include "../gcode.h"
24
 #include "../../inc/MarlinConfig.h"
24
 #include "../../inc/MarlinConfig.h"
25
 
25
 
26
+#if ENABLED(M115_GEOMETRY_REPORT)
27
+  #include "../../module/motion.h"
28
+#endif
29
+
26
 #if ENABLED(EXTENDED_CAPABILITIES_REPORT)
30
 #if ENABLED(EXTENDED_CAPABILITIES_REPORT)
27
   static void cap_line(PGM_P const name, bool ena=false) {
31
   static void cap_line(PGM_P const name, bool ena=false) {
28
     SERIAL_ECHOPGM("Cap:");
32
     SERIAL_ECHOPGM("Cap:");
117
     // CHAMBER_TEMPERATURE (M141, M191)
121
     // CHAMBER_TEMPERATURE (M141, M191)
118
     cap_line(PSTR("CHAMBER_TEMPERATURE"), ENABLED(HAS_HEATED_CHAMBER));
122
     cap_line(PSTR("CHAMBER_TEMPERATURE"), ENABLED(HAS_HEATED_CHAMBER));
119
 
123
 
124
+    // Machine Geometry
125
+    #if ENABLED(M115_GEOMETRY_REPORT)
126
+      const xyz_pos_t dmin = { X_MIN_POS, Y_MIN_POS, Z_MIN_POS },
127
+                      dmax = { X_MAX_POS, Y_MAX_POS, Z_MAX_POS };
128
+      xyz_pos_t cmin = dmin, cmax = dmax;
129
+      apply_motion_limits(cmin);
130
+      apply_motion_limits(cmax);
131
+      const xyz_pos_t lmin = dmin.asLogical(), lmax = dmax.asLogical(),
132
+                      wmin = cmin.asLogical(), wmax = cmax.asLogical();
133
+      SERIAL_ECHOLNPAIR(
134
+        "area:{"
135
+          "full:{"
136
+            "min:{x:", lmin.x, ",y:", lmin.y, ",z:", lmin.z, "},"
137
+            "max:{x:", lmax.x, ",y:", lmax.y, ",z:", lmax.z, "},"
138
+          "},"
139
+          "work:{"
140
+            "min:{x:", wmin.x, ",y:", wmin.y, ",z:", wmin.z, "},"
141
+            "max:{x:", wmax.x, ",y:", wmax.y, ",z:", wmax.z, "},"
142
+          "}"
143
+        "}"
144
+      );
145
+    #endif
146
+
120
   #endif // EXTENDED_CAPABILITIES_REPORT
147
   #endif // EXTENDED_CAPABILITIES_REPORT
121
 }
148
 }

+ 189
- 0
Marlin/src/gcode/host/M360.cpp View File

1
+/**
2
+ * Marlin 3D Printer Firmware
3
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
4
+ *
5
+ * Based on Sprinter and grbl.
6
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
7
+ *
8
+ * This program is free software: you can redistribute it and/or modify
9
+ * it under the terms of the GNU General Public License as published by
10
+ * the Free Software Foundation, either version 3 of the License, or
11
+ * (at your option) any later version.
12
+ *
13
+ * This program is distributed in the hope that it will be useful,
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
+ * GNU General Public License for more details.
17
+ *
18
+ * You should have received a copy of the GNU General Public License
19
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
20
+ *
21
+ */
22
+#include "../../inc/MarlinConfig.h"
23
+
24
+#if ENABLED(REPETIER_GCODE_M360)
25
+
26
+#include "../gcode.h"
27
+
28
+#include "../../module/motion.h"
29
+#include "../../module/planner.h"
30
+
31
+static void config_prefix(PGM_P const name, PGM_P const pref=nullptr) {
32
+  SERIAL_ECHOPGM("Config:");
33
+  if (pref) serialprintPGM(pref);
34
+  serialprintPGM(name);
35
+  SERIAL_CHAR(':');
36
+}
37
+static void config_line(PGM_P const name, const float val, PGM_P const pref=nullptr) {
38
+  config_prefix(name, pref);
39
+  SERIAL_ECHOLN(val);
40
+}
41
+
42
+/**
43
+ * M360: Report Firmware configuration
44
+ *       in RepRapFirmware-compatible format
45
+ */
46
+void GcodeSuite::M360() {
47
+  PGMSTR(X_STR,    "X");
48
+  PGMSTR(Y_STR,    "Y");
49
+  PGMSTR(Z_STR,    "Z");
50
+  PGMSTR(JERK_STR, "Jerk");
51
+
52
+  //
53
+  // Basics and Enabled items
54
+  //
55
+  config_line(PSTR("Baudrate"), BAUDRATE);
56
+  config_line(PSTR("InputBuffer"), MAX_CMD_SIZE);
57
+  config_line(PSTR("PrintlineCache"), BUFSIZE);
58
+  config_line(PSTR("MixingExtruder"), ENABLED(MIXING_EXTRUDER));
59
+  config_line(PSTR("SDCard"), ENABLED(SDSUPPORT));
60
+  config_line(PSTR("Fan"), ENABLED(HAS_FAN));
61
+  config_line(PSTR("LCD"), ENABLED(HAS_DISPLAY));
62
+  config_line(PSTR("SoftwarePowerSwitch"), 1);
63
+  config_line(PSTR("SupportLocalFilamentchange"), ENABLED(ADVANCED_PAUSE_FEATURE));
64
+  config_line(PSTR("CaseLights"), ENABLED(CASE_LIGHT_ENABLE));
65
+  config_line(PSTR("ZProbe"), ENABLED(HAS_BED_PROBE));
66
+  config_line(PSTR("Autolevel"), ENABLED(HAS_LEVELING));
67
+  config_line(PSTR("EEPROM"), ENABLED(EEPROM_SETTINGS));
68
+
69
+  //
70
+  // Homing Directions
71
+  //
72
+  PGMSTR(H_DIR_STR, "HomeDir");
73
+  config_line(H_DIR_STR, X_HOME_DIR, X_STR);
74
+  config_line(H_DIR_STR, Y_HOME_DIR, Y_STR);
75
+  config_line(H_DIR_STR, Z_HOME_DIR, Z_STR);
76
+
77
+  //
78
+  // XYZ Axis Jerk
79
+  //
80
+  #if HAS_CLASSIC_JERK
81
+    if (planner.max_jerk.x == planner.max_jerk.y)
82
+      config_line(PSTR("XY"), planner.max_jerk.x, JERK_STR);
83
+    else {
84
+      config_line(X_STR, planner.max_jerk.x, JERK_STR);
85
+      config_line(Y_STR, planner.max_jerk.y, JERK_STR);
86
+    }
87
+    config_line(Z_STR, planner.max_jerk.z, JERK_STR);
88
+  #endif
89
+
90
+  //
91
+  // Firmware Retraction
92
+  //
93
+  config_line(PSTR("SupportG10G11"), ENABLED(FWRETRACT));
94
+  #if ENABLED(FWRETRACT)
95
+    PGMSTR(RET_STR, "Retraction");
96
+    PGMSTR(UNRET_STR, "RetractionUndo"),
97
+    PGMSTR(SPEED_STR, "Speed");
98
+    // M10 Retract with swap (long) moves
99
+    config_line(PSTR("Length"), fwretract.settings.retract_length, RET_STR);
100
+    config_line(SPEED_STR, fwretract.settings.retract_feedrate_mm_s, RET_STR);
101
+    config_line(PSTR("ZLift"), fwretract.settings.retract_zraise, RET_STR);
102
+    config_line(PSTR("LongLength"), fwretract.settings.swap_retract_length, RET_STR);
103
+    // M11 Recover (undo) with swap (long) moves
104
+    config_line(SPEED_STR, fwretract.settings.retract_recover_feedrate_mm_s, UNRET_STR);
105
+    config_line(PSTR("ExtraLength"), fwretract.settings.retract_recover_extra, UNRET_STR);
106
+    config_line(PSTR("ExtraLongLength"), fwretract.settings.swap_retract_recover_extra, UNRET_STR);
107
+    config_line(PSTR("LongSpeed"), fwretract.settings.swap_retract_recover_feedrate_mm_s, UNRET_STR);
108
+  #endif
109
+
110
+  //
111
+  // Workspace boundaries
112
+  //
113
+  const xyz_pos_t dmin = { X_MIN_POS, Y_MIN_POS, Z_MIN_POS },
114
+                  dmax = { X_MAX_POS, Y_MAX_POS, Z_MAX_POS };
115
+  xyz_pos_t cmin = dmin, cmax = dmax;
116
+  apply_motion_limits(cmin);
117
+  apply_motion_limits(cmax);
118
+  const xyz_pos_t lmin = dmin.asLogical(), lmax = dmax.asLogical(),
119
+                  wmin = cmin.asLogical(), wmax = cmax.asLogical();
120
+
121
+  PGMSTR(MIN_STR, "Min");
122
+  PGMSTR(MAX_STR, "Max");
123
+  PGMSTR(SIZE_STR, "Size");
124
+  config_line(MIN_STR, wmin.x, X_STR);
125
+  config_line(MIN_STR, wmin.y, Y_STR);
126
+  config_line(MIN_STR, wmin.z, Z_STR);
127
+  config_line(MAX_STR, wmax.x, X_STR);
128
+  config_line(MAX_STR, wmax.y, Y_STR);
129
+  config_line(MAX_STR, wmax.z, Z_STR);
130
+  config_line(SIZE_STR, wmax.x - wmin.x, X_STR);
131
+  config_line(SIZE_STR, wmax.y - wmin.y, Y_STR);
132
+  config_line(SIZE_STR, wmax.z - wmin.z, Z_STR);
133
+
134
+  //
135
+  // Print and Travel Acceleration
136
+  //
137
+  #define _ACCEL(A,B) _MIN(planner.settings.max_acceleration_mm_per_s2[A##_AXIS], planner.settings.B)
138
+  PGMSTR(P_ACC_STR, "PrintAccel");
139
+  PGMSTR(T_ACC_STR, "TravelAccel");
140
+  config_line(P_ACC_STR, _ACCEL(X, acceleration), X_STR);
141
+  config_line(P_ACC_STR, _ACCEL(Y, acceleration), Y_STR);
142
+  config_line(P_ACC_STR, _ACCEL(Z, acceleration), Z_STR);
143
+  config_line(T_ACC_STR, _ACCEL(X, travel_acceleration), X_STR);
144
+  config_line(T_ACC_STR, _ACCEL(Y, travel_acceleration), Y_STR);
145
+  config_line(T_ACC_STR, _ACCEL(Z, travel_acceleration), Z_STR);
146
+
147
+  config_prefix(PSTR("PrinterType"));
148
+  SERIAL_ECHOLNPGM(
149
+    TERN_(DELTA,        "Delta")
150
+    TERN_(IS_SCARA,     "SCARA")
151
+    TERN_(IS_CORE,      "Core")
152
+    TERN_(IS_CARTESIAN, "Cartesian")
153
+  );
154
+
155
+  //
156
+  // Heated Bed
157
+  //
158
+  config_line(PSTR("HeatedBed"), ENABLED(HAS_HEATED_BED));
159
+  #if HAS_HEATED_BED
160
+    config_line(PSTR("MaxBedTemp"), BED_MAX_TARGET);
161
+  #endif
162
+
163
+  //
164
+  // Per-Extruder settings
165
+  //
166
+  config_line(PSTR("NumExtruder"), EXTRUDERS);
167
+  #if EXTRUDERS
168
+    #define DIAM_VALUE(N) TERN(NO_VOLUMETRICS, DEFAULT_NOMINAL_FILAMENT_DIA, planner.filament_size[N])
169
+    #if HAS_LINEAR_E_JERK
170
+      #define E_JERK_VAL(N) planner.max_e_jerk[E_INDEX_N(N)]
171
+    #elif HAS_CLASSIC_JERK
172
+      #define E_JERK_VAL(N) planner.max_jerk.e
173
+    #else
174
+      #define E_JERK_VAL(N) DEFAULT_EJERK
175
+    #endif
176
+    #define _EXTR_ITEM(N) do{ \
177
+      PGMSTR(EXTR_STR, "Extr." STRINGIFY(INCREMENT(N)) ":"); \
178
+      config_line(JERK_STR, E_JERK_VAL(N), EXTR_STR); \
179
+      config_line(PSTR("MaxSpeed"), planner.settings.max_feedrate_mm_s[E_AXIS_N(N)], EXTR_STR); \
180
+      config_line(PSTR("Acceleration"), planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(N)], EXTR_STR); \
181
+      config_line(PSTR("Diameter"), DIAM_VALUE(N), EXTR_STR); \
182
+      config_line(PSTR("MaxTemp"), (HEATER_##N##_MAXTEMP) - (HOTEND_OVERSHOOT), EXTR_STR); \
183
+    }while(0)
184
+
185
+    REPEAT(EXTRUDERS, _EXTR_ITEM);
186
+  #endif
187
+}
188
+
189
+#endif

+ 1
- 1
Marlin/src/lcd/extui/ui_api.cpp View File

893
   bool isMachineHomed() { return all_axes_homed(); }
893
   bool isMachineHomed() { return all_axes_homed(); }
894
 
894
 
895
   PGM_P getFirmwareName_str() {
895
   PGM_P getFirmwareName_str() {
896
-    static const char firmware_name[] PROGMEM = "Marlin " SHORT_BUILD_VERSION;
896
+    static PGMSTR(firmware_name, "Marlin " SHORT_BUILD_VERSION);
897
     return firmware_name;
897
     return firmware_name;
898
   }
898
   }
899
 
899
 

+ 3
- 3
Marlin/src/lcd/ultralcd.cpp View File

1347
     PGM_P printing = GET_TEXT(MSG_PRINTING);
1347
     PGM_P printing = GET_TEXT(MSG_PRINTING);
1348
     PGM_P welcome  = GET_TEXT(WELCOME_MSG);
1348
     PGM_P welcome  = GET_TEXT(WELCOME_MSG);
1349
     #if SERVICE_INTERVAL_1 > 0
1349
     #if SERVICE_INTERVAL_1 > 0
1350
-      static const char service1[] PROGMEM = { "> " SERVICE_NAME_1 "!" };
1350
+      static PGMSTR(service1, "> " SERVICE_NAME_1 "!");
1351
     #endif
1351
     #endif
1352
     #if SERVICE_INTERVAL_2 > 0
1352
     #if SERVICE_INTERVAL_2 > 0
1353
-      static const char service2[] PROGMEM = { "> " SERVICE_NAME_2 "!" };
1353
+      static PGMSTR(service2, "> " SERVICE_NAME_2 "!");
1354
     #endif
1354
     #endif
1355
     #if SERVICE_INTERVAL_3 > 0
1355
     #if SERVICE_INTERVAL_3 > 0
1356
-      static const char service3[] PROGMEM = { "> " SERVICE_NAME_3 "!" };
1356
+      static PGMSTR(service3, "> " SERVICE_NAME_3 "!");
1357
     #endif
1357
     #endif
1358
     PGM_P msg;
1358
     PGM_P msg;
1359
     if (printingIsPaused())
1359
     if (printingIsPaused())

+ 1
- 1
buildroot/share/tests/esp32-tests View File

11
 #
11
 #
12
 restore_configs
12
 restore_configs
13
 opt_set MOTHERBOARD BOARD_ESPRESSIF_ESP32
13
 opt_set MOTHERBOARD BOARD_ESPRESSIF_ESP32
14
-opt_enable WIFISUPPORT GCODE_MACROS BAUD_RATE_GCODE
14
+opt_enable WIFISUPPORT GCODE_MACROS BAUD_RATE_GCODE M115_GEOMETRY_REPORT REPETIER_GCODE_M360
15
 opt_add WIFI_SSID "\"ssid\""
15
 opt_add WIFI_SSID "\"ssid\""
16
 opt_add WIFI_PWD "\"password\""
16
 opt_add WIFI_PWD "\"password\""
17
 opt_set TX_BUFFER_SIZE 64
17
 opt_set TX_BUFFER_SIZE 64

Loading…
Cancel
Save