Browse Source

Extended reporting options (#16741)

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

+ 5
- 0
Marlin/Configuration_adv.h View File

@@ -2921,6 +2921,9 @@
2921 2921
  * Include capabilities in M115 output
2922 2922
  */
2923 2923
 #define EXTENDED_CAPABILITIES_REPORT
2924
+#if ENABLED(EXTENDED_CAPABILITIES_REPORT)
2925
+  //#define M115_GEOMETRY_REPORT
2926
+#endif
2924 2927
 
2925 2928
 /**
2926 2929
  * Expected Printer Check
@@ -2979,6 +2982,8 @@
2979 2982
 
2980 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 2988
  * CNC G-code options
2984 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,6 +53,9 @@
53 53
 // AVR PROGMEM extension for sprintf_P
54 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 59
 #ifndef CRITICAL_SECTION_START
57 60
   #define CRITICAL_SECTION_START()  unsigned char _sreg = SREG; cli()
58 61
   #define CRITICAL_SECTION_END()    SREG = _sreg

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

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

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

@@ -183,26 +183,17 @@
183 183
   #include "libs/L64XX/L64XX_Marlin.h"
184 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 198
 MarlinState marlin_state = MF_INITIALIZING;
208 199
 

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

@@ -25,8 +25,8 @@
25 25
 
26 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 31
 #if NUM_SERIAL > 1
32 32
   int8_t serial_port_index = 0;

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

@@ -64,8 +64,8 @@ void host_action(const char * const pstr, const bool eol) {
64 64
 
65 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 70
   #if HAS_RESUME_CONTINUE
71 71
     extern bool wait_for_user;
@@ -123,7 +123,7 @@ void host_action(const char * const pstr, const bool eol) {
123 123
   //
124 124
   void host_response_handler(const uint8_t response) {
125 125
     #ifdef DEBUG_HOST_ACTIONS
126
-      static const char m876_prefix[] PROGMEM = "M876 Handle Re";
126
+      static PGMSTR(m876_prefix, "M876 Handle Re");
127 127
       serialprintPGM(m876_prefix); SERIAL_ECHOLNPAIR("ason: ", host_prompt_reason);
128 128
       serialprintPGM(m876_prefix); SERIAL_ECHOLNPAIR("sponse: ", response);
129 129
     #endif

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

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

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

@@ -28,21 +28,18 @@
28 28
 void GcodeSuite::M111() {
29 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 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 45
   SERIAL_ECHO_START();

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

@@ -663,6 +663,10 @@ void GcodeSuite::process_parsed_command(const bool no_ok/*=false*/) {
663 663
         case 305: M305(); break;                                  // M305: Set user thermistor parameters
664 664
       #endif
665 665
 
666
+      #if ENABLED(REPETIER_GCODE_M360)
667
+        case 360: M360(); break;                                  // M360: Firmware settings
668
+      #endif
669
+
666 670
       #if ENABLED(MORGAN_SCARA)
667 671
         case 360: if (M360()) return; break;                      // M360: SCARA Theta pos1
668 672
         case 361: if (M361()) return; break;                      // M361: SCARA Theta pos2

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

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

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

@@ -23,6 +23,10 @@
23 23
 #include "../gcode.h"
24 24
 #include "../../inc/MarlinConfig.h"
25 25
 
26
+#if ENABLED(M115_GEOMETRY_REPORT)
27
+  #include "../../module/motion.h"
28
+#endif
29
+
26 30
 #if ENABLED(EXTENDED_CAPABILITIES_REPORT)
27 31
   static void cap_line(PGM_P const name, bool ena=false) {
28 32
     SERIAL_ECHOPGM("Cap:");
@@ -117,5 +121,28 @@ void GcodeSuite::M115() {
117 121
     // CHAMBER_TEMPERATURE (M141, M191)
118 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 147
   #endif // EXTENDED_CAPABILITIES_REPORT
121 148
 }

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

@@ -0,0 +1,189 @@
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,7 +893,7 @@ namespace ExtUI {
893 893
   bool isMachineHomed() { return all_axes_homed(); }
894 894
 
895 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 897
     return firmware_name;
898 898
   }
899 899
 

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

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

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

@@ -11,7 +11,7 @@ set -e
11 11
 #
12 12
 restore_configs
13 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 15
 opt_add WIFI_SSID "\"ssid\""
16 16
 opt_add WIFI_PWD "\"password\""
17 17
 opt_set TX_BUFFER_SIZE 64

Loading…
Cancel
Save