From 0fbb26c28fb714a6b34fe0b69b07fc14835c957b Mon Sep 17 00:00:00 2001
From: Joseph Bozarth <bozarjp@gmail.com>
Date: Tue, 13 Aug 2019 23:38:45 -0500
Subject: [PATCH] M16 - Expected Printer Check (#14924)

---
 Marlin/Configuration_adv.h                    |  7 ++++
 Marlin/src/gcode/gcode.cpp                    |  4 ++
 Marlin/src/gcode/gcode.h                      |  5 +++
 Marlin/src/gcode/host/M16.cpp                 | 40 +++++++++++++++++++
 Marlin/src/gcode/parser.cpp                   |  3 ++
 Marlin/src/lcd/language/language_bg.h         |  1 +
 Marlin/src/lcd/language/language_ca.h         |  2 +
 Marlin/src/lcd/language/language_cz.h         |  2 +
 Marlin/src/lcd/language/language_da.h         |  2 +
 Marlin/src/lcd/language/language_de.h         |  2 +
 Marlin/src/lcd/language/language_el-gr.h      |  2 +
 Marlin/src/lcd/language/language_el.h         |  2 +
 Marlin/src/lcd/language/language_en.h         |  5 +++
 Marlin/src/lcd/language/language_es.h         |  2 +
 Marlin/src/lcd/language/language_eu.h         |  3 ++
 Marlin/src/lcd/language/language_fi.h         |  2 +
 Marlin/src/lcd/language/language_fr.h         |  2 +
 Marlin/src/lcd/language/language_gl.h         |  2 +
 Marlin/src/lcd/language/language_hr.h         |  2 +
 Marlin/src/lcd/language/language_it.h         |  2 +
 Marlin/src/lcd/language/language_jp-kana.h    |  2 +
 Marlin/src/lcd/language/language_ko_KR.h      |  3 ++
 Marlin/src/lcd/language/language_nl.h         |  2 +
 Marlin/src/lcd/language/language_pl.h         |  2 +
 Marlin/src/lcd/language/language_pt-br.h      |  2 +
 Marlin/src/lcd/language/language_pt.h         |  2 +
 Marlin/src/lcd/language/language_ru.h         |  3 ++
 Marlin/src/lcd/language/language_sk.h         |  2 +
 Marlin/src/lcd/language/language_tr.h         |  3 ++
 Marlin/src/lcd/language/language_uk.h         |  2 +
 Marlin/src/lcd/language/language_zh_CN.h      |  2 +
 Marlin/src/lcd/language/language_zh_TW.h      |  2 +
 config/default/Configuration_adv.h            |  7 ++++
 .../3DFabXYZ/Migbot/Configuration_adv.h       |  7 ++++
 .../AlephObjects/TAZ4/Configuration_adv.h     |  7 ++++
 .../examples/Alfawise/U20/Configuration_adv.h |  7 ++++
 .../AliExpress/UM2pExt/Configuration_adv.h    |  7 ++++
 config/examples/Anet/A2/Configuration_adv.h   |  7 ++++
 .../examples/Anet/A2plus/Configuration_adv.h  |  7 ++++
 config/examples/Anet/A6/Configuration_adv.h   |  7 ++++
 config/examples/Anet/A8/Configuration_adv.h   |  7 ++++
 .../examples/Anet/A8plus/Configuration_adv.h  |  7 ++++
 config/examples/Anet/E16/Configuration_adv.h  |  7 ++++
 .../examples/AnyCubic/i3/Configuration_adv.h  |  7 ++++
 config/examples/ArmEd/Configuration_adv.h     |  7 ++++
 .../BIBO/TouchX/cyclops/Configuration_adv.h   |  7 ++++
 .../BIBO/TouchX/default/Configuration_adv.h   |  7 ++++
 .../examples/BQ/Hephestos/Configuration_adv.h |  7 ++++
 .../BQ/Hephestos_2/Configuration_adv.h        |  7 ++++
 config/examples/BQ/WITBOX/Configuration_adv.h |  7 ++++
 config/examples/Cartesio/Configuration_adv.h  |  7 ++++
 .../Creality/CR-10/Configuration_adv.h        |  7 ++++
 .../Creality/CR-10S/Configuration_adv.h       |  7 ++++
 .../Creality/CR-10_5S/Configuration_adv.h     |  7 ++++
 .../Creality/CR-10mini/Configuration_adv.h    |  7 ++++
 .../Creality/CR-20 Pro/Configuration_adv.h    |  7 ++++
 .../Creality/CR-20/Configuration_adv.h        |  7 ++++
 .../Creality/CR-8/Configuration_adv.h         |  7 ++++
 .../Creality/Ender-2/Configuration_adv.h      |  7 ++++
 .../Creality/Ender-3/Configuration_adv.h      |  7 ++++
 .../Creality/Ender-4/Configuration_adv.h      |  7 ++++
 .../Creality/Ender-5/Configuration_adv.h      |  7 ++++
 .../Dagoma/Disco Ultimate/Configuration_adv.h |  7 ++++
 .../Sidewinder X1/Configuration_adv.h         |  7 ++++
 .../examples/Einstart-S/Configuration_adv.h   |  7 ++++
 .../FYSETC/AIO_II/Configuration_adv.h         |  7 ++++
 .../Cheetah 1.2/BLTouch/Configuration_adv.h   |  7 ++++
 .../Cheetah 1.2/base/Configuration_adv.h      |  7 ++++
 .../Cheetah/BLTouch/Configuration_adv.h       |  7 ++++
 .../FYSETC/Cheetah/base/Configuration_adv.h   |  7 ++++
 .../examples/FYSETC/F6_13/Configuration_adv.h |  7 ++++
 config/examples/Felix/Configuration_adv.h     |  7 ++++
 .../FlashForge/CreatorPro/Configuration_adv.h |  7 ++++
 .../FolgerTech/i3-2020/Configuration_adv.h    |  7 ++++
 .../Formbot/Raptor/Configuration_adv.h        |  7 ++++
 .../Formbot/T_Rex_2+/Configuration_adv.h      |  7 ++++
 .../Formbot/T_Rex_3/Configuration_adv.h       |  7 ++++
 .../examples/Geeetech/A10/Configuration_adv.h |  7 ++++
 .../Geeetech/A10M/Configuration_adv.h         |  7 ++++
 .../Geeetech/A20M/Configuration_adv.h         |  7 ++++
 .../Geeetech/MeCreator2/Configuration_adv.h   |  7 ++++
 .../Prusa i3 Pro C/Configuration_adv.h        |  7 ++++
 .../Prusa i3 Pro W/Configuration_adv.h        |  7 ++++
 .../Infitary/i3-M508/Configuration_adv.h      |  7 ++++
 .../examples/JGAurora/A1/Configuration_adv.h  |  7 ++++
 .../examples/JGAurora/A5/Configuration_adv.h  |  7 ++++
 .../examples/JGAurora/A5S/Configuration_adv.h |  7 ++++
 .../examples/MakerParts/Configuration_adv.h   |  7 ++++
 .../examples/Malyan/M150/Configuration_adv.h  |  7 ++++
 .../examples/Malyan/M200/Configuration_adv.h  |  7 ++++
 .../Micromake/C1/enhanced/Configuration_adv.h |  7 ++++
 config/examples/Mks/Robin/Configuration_adv.h |  7 ++++
 config/examples/Mks/Sbase/Configuration_adv.h |  7 ++++
 .../RapideLite/RL200/Configuration_adv.h      |  7 ++++
 config/examples/RigidBot/Configuration_adv.h  |  7 ++++
 config/examples/SCARA/Configuration_adv.h     |  7 ++++
 .../Black_STM32F407VET6/Configuration_adv.h   |  7 ++++
 .../examples/Sanguinololu/Configuration_adv.h |  7 ++++
 .../Tevo/Michelangelo/Configuration_adv.h     |  7 ++++
 .../Tevo/Tarantula Pro/Configuration_adv.h    |  7 ++++
 .../Tornado/V1 (MKS Base)/Configuration_adv.h |  7 ++++
 .../V2 (MKS GEN-L)/Configuration_adv.h        |  7 ++++
 config/examples/TheBorg/Configuration_adv.h   |  7 ++++
 config/examples/TinyBoy2/Configuration_adv.h  |  7 ++++
 .../examples/Tronxy/X3A/Configuration_adv.h   |  7 ++++
 .../Tronxy/X5S-2E/Configuration_adv.h         |  7 ++++
 .../UltiMachine/Archim1/Configuration_adv.h   |  7 ++++
 .../UltiMachine/Archim2/Configuration_adv.h   |  7 ++++
 .../examples/VORONDesign/Configuration_adv.h  |  7 ++++
 .../Velleman/K8200/Configuration_adv.h        |  7 ++++
 .../Velleman/K8400/Configuration_adv.h        |  7 ++++
 .../WASP/PowerWASP/Configuration_adv.h        |  7 ++++
 .../Wanhao/Duplicator 6/Configuration_adv.h   |  7 ++++
 .../Duplicator i3 Mini/Configuration_adv.h    |  7 ++++
 .../delta/Anycubic/Kossel/Configuration_adv.h |  7 ++++
 .../Dreammaker/Overlord/Configuration_adv.h   |  7 ++++
 .../Overlord_Pro/Configuration_adv.h          |  7 ++++
 .../FLSUN/auto_calibrate/Configuration_adv.h  |  7 ++++
 .../delta/FLSUN/kossel/Configuration_adv.h    |  7 ++++
 .../FLSUN/kossel_mini/Configuration_adv.h     |  7 ++++
 .../Geeetech/Rostock 301/Configuration_adv.h  |  7 ++++
 .../delta/MKS/SBASE/Configuration_adv.h       |  7 ++++
 .../Tevo Little Monster/Configuration_adv.h   |  7 ++++
 .../delta/generic/Configuration_adv.h         |  7 ++++
 .../delta/kossel_mini/Configuration_adv.h     |  7 ++++
 .../delta/kossel_xl/Configuration_adv.h       |  7 ++++
 .../gCreate/gMax1.5+/Configuration_adv.h      |  7 ++++
 config/examples/makibox/Configuration_adv.h   |  7 ++++
 .../tvrrug/Round2/Configuration_adv.h         |  7 ++++
 config/examples/wt150/Configuration_adv.h     |  7 ++++
 130 files changed, 805 insertions(+)
 create mode 100644 Marlin/src/gcode/host/M16.cpp

diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h
index 23ce491218..4f2222ffb7 100644
--- a/Marlin/Configuration_adv.h
+++ b/Marlin/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/Marlin/src/gcode/gcode.cpp b/Marlin/src/gcode/gcode.cpp
index cbad59eac6..91282d0ab5 100644
--- a/Marlin/src/gcode/gcode.cpp
+++ b/Marlin/src/gcode/gcode.cpp
@@ -342,6 +342,10 @@ void GcodeSuite::process_parsed_command(const bool no_ok/*=false*/) {
         case 12: M12(); break;                                    // M12: Synchronize and optionally force a CLC set
       #endif
 
+      #if ENABLED(EXPECTED_PRINTER_CHECK)
+        case 16: M16(); break;                                    // M16: Expected printer check
+      #endif
+
       case 17: M17(); break;                                      // M17: Enable all stepper motors
 
       #if ENABLED(SDSUPPORT)
diff --git a/Marlin/src/gcode/gcode.h b/Marlin/src/gcode/gcode.h
index 9a90c5df4d..c12d5bde84 100644
--- a/Marlin/src/gcode/gcode.h
+++ b/Marlin/src/gcode/gcode.h
@@ -83,6 +83,7 @@
  * M8   - Turn flood coolant ON. (Requires COOLANT_CONTROL)
  * M9   - Turn coolant OFF. (Requires COOLANT_CONTROL)
  * M12  - Set up closed loop control system. (Requires EXTERNAL_CLOSED_LOOP_CONTROLLER)
+ * M16  - Expected printer check. (Requires EXPECTED_PRINTER_CHECK)
  * M17  - Enable/Power all stepper motors
  * M18  - Disable all stepper motors; same as M84
  * M20  - List SD card. (Requires SDSUPPORT)
@@ -472,6 +473,10 @@ private:
     static void M12();
   #endif
 
+  #if ENABLED(EXPECTED_PRINTER_CHECK)
+    static void M16();
+  #endif
+
   static void M17();
 
   static void M18_M84();
diff --git a/Marlin/src/gcode/host/M16.cpp b/Marlin/src/gcode/host/M16.cpp
new file mode 100644
index 0000000000..94ae79b263
--- /dev/null
+++ b/Marlin/src/gcode/host/M16.cpp
@@ -0,0 +1,40 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#include "../../inc/MarlinConfigPre.h"
+
+#if ENABLED(EXPECTED_PRINTER_CHECK)
+
+#include "../gcode.h"
+#include "../../Marlin.h"
+
+/**
+ * M16: Expected Printer Check
+ */
+void GcodeSuite::M16() {
+
+  if (strcmp_P(parser.string_arg, PSTR(MACHINE_NAME)))
+    kill(PSTR(MSG_EXPECTED_PRINTER));
+
+}
+
+#endif
diff --git a/Marlin/src/gcode/parser.cpp b/Marlin/src/gcode/parser.cpp
index de87103ff9..76a63a21af 100644
--- a/Marlin/src/gcode/parser.cpp
+++ b/Marlin/src/gcode/parser.cpp
@@ -225,6 +225,9 @@ void GCodeParser::parse(char *p) {
       case 810: case 811: case 812: case 813: case 814:
       case 815: case 816: case 817: case 818: case 819:
     #endif
+    #if ENABLED(EXPECTED_PRINTER_CHECK)
+      case 16:
+    #endif
     case 23: case 28: case 30: case 117: case 118: case 928: string_arg = p; return;
     default: break;
   }
diff --git a/Marlin/src/lcd/language/language_bg.h b/Marlin/src/lcd/language/language_bg.h
index 90afab43f5..6028e1b1ce 100644
--- a/Marlin/src/lcd/language/language_bg.h
+++ b/Marlin/src/lcd/language/language_bg.h
@@ -144,3 +144,4 @@
 #define MSG_DELTA_CALIBRATE_Y               _UxGT("Калибровка Y")
 #define MSG_DELTA_CALIBRATE_Z               _UxGT("Калибровка Z")
 #define MSG_DELTA_CALIBRATE_CENTER          _UxGT("Калибровка Център")
+#define MSG_EXPECTED_PRINTER                _UxGT("Неправилен принтер")
diff --git a/Marlin/src/lcd/language/language_ca.h b/Marlin/src/lcd/language/language_ca.h
index 808566f583..2fcd27a81a 100644
--- a/Marlin/src/lcd/language/language_ca.h
+++ b/Marlin/src/lcd/language/language_ca.h
@@ -231,6 +231,8 @@
 #define MSG_DAC_EEPROM_WRITE                _UxGT("DAC EEPROM Write")
 #define MSG_FILAMENT_CHANGE_OPTION_RESUME   _UxGT("Repren impressió")
 
+#define MSG_EXPECTED_PRINTER                _UxGT("Impressora incorrecta")
+
 //
 // Filament Change screens show up to 3 lines on a 4-line display
 //                        ...or up to 2 lines on a 3-line display
diff --git a/Marlin/src/lcd/language/language_cz.h b/Marlin/src/lcd/language/language_cz.h
index aead58bacd..4e7a08c874 100644
--- a/Marlin/src/lcd/language/language_cz.h
+++ b/Marlin/src/lcd/language/language_cz.h
@@ -495,6 +495,8 @@
 #define MSG_SNAKE                           _UxGT("Sn4k3")
 #define MSG_MAZE                            _UxGT("Bludiště")
 
+#define MSG_EXPECTED_PRINTER                _UxGT("Nesprávná tiskárna")
+
 #if LCD_HEIGHT >= 4
   // Up to 3 lines allowed
   #define MSG_ADVANCED_PAUSE_WAITING_1      _UxGT("Stikněte tlačítko")
diff --git a/Marlin/src/lcd/language/language_da.h b/Marlin/src/lcd/language/language_da.h
index b65e5621dd..8794f456c5 100644
--- a/Marlin/src/lcd/language/language_da.h
+++ b/Marlin/src/lcd/language/language_da.h
@@ -229,6 +229,8 @@
 
 #define MSG_FILAMENT_CHANGE_OPTION_RESUME   _UxGT("Forsæt print")
 
+#define MSG_EXPECTED_PRINTER                _UxGT("Forkert printer")
+
 #if LCD_HEIGHT >= 4
   #define MSG_FILAMENT_CHANGE_INIT_1          _UxGT("Vent på start")
   #define MSG_FILAMENT_CHANGE_INIT_2          _UxGT("af filament")
diff --git a/Marlin/src/lcd/language/language_de.h b/Marlin/src/lcd/language/language_de.h
index 6122383f52..81f5a087f9 100644
--- a/Marlin/src/lcd/language/language_de.h
+++ b/Marlin/src/lcd/language/language_de.h
@@ -409,6 +409,8 @@
 #define MSG_CASE_LIGHT                      _UxGT("Beleuchtung")
 #define MSG_CASE_LIGHT_BRIGHTNESS           _UxGT("Helligkeit")
 
+#define MSG_EXPECTED_PRINTER                _UxGT("Falscher Drucker")
+
 #if LCD_WIDTH >= 20
   #define MSG_INFO_PRINT_COUNT              _UxGT("Gesamte Drucke")
   #define MSG_INFO_COMPLETED_PRINTS         _UxGT("Komplette Drucke")
diff --git a/Marlin/src/lcd/language/language_el-gr.h b/Marlin/src/lcd/language/language_el-gr.h
index ea66d3ff00..8dc23ba2be 100644
--- a/Marlin/src/lcd/language/language_el-gr.h
+++ b/Marlin/src/lcd/language/language_el-gr.h
@@ -185,3 +185,5 @@
 #define MSG_DELTA_CALIBRATE_Y               _UxGT("Βαθμονόμηση Y")
 #define MSG_DELTA_CALIBRATE_Z               _UxGT("Βαθμονόμηση Z")
 #define MSG_DELTA_CALIBRATE_CENTER          _UxGT("Βαθμονόμηση κέντρου")
+
+#define MSG_EXPECTED_PRINTER                _UxGT("Εσφαλμένος εκτυπωτής")
diff --git a/Marlin/src/lcd/language/language_el.h b/Marlin/src/lcd/language/language_el.h
index 2425309f7a..f814ab953c 100644
--- a/Marlin/src/lcd/language/language_el.h
+++ b/Marlin/src/lcd/language/language_el.h
@@ -186,3 +186,5 @@
 #define MSG_DELTA_CALIBRATE_Y               _UxGT("Βαθμονόμηση Y")
 #define MSG_DELTA_CALIBRATE_Z               _UxGT("Βαθμονόμηση Z")
 #define MSG_DELTA_CALIBRATE_CENTER          _UxGT("Βαθμονόμηση κέντρου")
+
+#define MSG_EXPECTED_PRINTER                _UxGT("Εσφαλμένος εκτυπωτής")
diff --git a/Marlin/src/lcd/language/language_en.h b/Marlin/src/lcd/language/language_en.h
index 0d1cd4f8df..1112882d23 100644
--- a/Marlin/src/lcd/language/language_en.h
+++ b/Marlin/src/lcd/language/language_en.h
@@ -1164,6 +1164,11 @@
 #ifndef MSG_CASE_LIGHT_BRIGHTNESS
   #define MSG_CASE_LIGHT_BRIGHTNESS           _UxGT("Light Brightness")
 #endif
+
+#ifndef MSG_EXPECTED_PRINTER
+  #define MSG_EXPECTED_PRINTER                 _UxGT("INCORRECT PRINTER")
+#endif
+
 #if LCD_WIDTH >= 20
   #ifndef MSG_INFO_PRINT_COUNT
     #define MSG_INFO_PRINT_COUNT              _UxGT("Print Count")
diff --git a/Marlin/src/lcd/language/language_es.h b/Marlin/src/lcd/language/language_es.h
index 2d4f1ac2b4..ff721e16c7 100644
--- a/Marlin/src/lcd/language/language_es.h
+++ b/Marlin/src/lcd/language/language_es.h
@@ -204,6 +204,8 @@
 #define MSG_INFO_PROTOCOL                   _UxGT("Protocolo")
 #define MSG_CASE_LIGHT                      _UxGT("Luz cabina")
 
+#define MSG_EXPECTED_PRINTER                _UxGT("Impresora incorrecta")
+
 #if LCD_WIDTH >= 20
   #define MSG_INFO_PRINT_COUNT              _UxGT("Conteo de impresión")
   #define MSG_INFO_COMPLETED_PRINTS         _UxGT("Completadas")
diff --git a/Marlin/src/lcd/language/language_eu.h b/Marlin/src/lcd/language/language_eu.h
index 3d487450e6..c28731896e 100644
--- a/Marlin/src/lcd/language/language_eu.h
+++ b/Marlin/src/lcd/language/language_eu.h
@@ -354,6 +354,9 @@
 #define MSG_ERR_HOMING_FAILED               _UxGT("Hasi. huts egin du")
 #define MSG_ERR_PROBING_FAILED              _UxGT("Neurketak huts egin du")
 #define MSG_M600_TOO_COLD                   _UxGT("M600: hotzegi")
+
+#define MSG_EXPECTED_PRINTER                _UxGT("Inprimagailu okerra")
+
 //
 // Filament Change screens show up to 3 lines on a 4-line display
 //                        ...or up to 2 lines on a 3-line display
diff --git a/Marlin/src/lcd/language/language_fi.h b/Marlin/src/lcd/language/language_fi.h
index 185cc8ac19..674285af43 100644
--- a/Marlin/src/lcd/language/language_fi.h
+++ b/Marlin/src/lcd/language/language_fi.h
@@ -168,3 +168,5 @@
 #define MSG_DELTA_CALIBRATE_Y               _UxGT("Kalibroi Y")
 #define MSG_DELTA_CALIBRATE_Z               _UxGT("Kalibroi Z")
 #define MSG_DELTA_CALIBRATE_CENTER          _UxGT("Kalibroi Center")
+
+#define MSG_EXPECTED_PRINTER                _UxGT("Väärä tulostin")
diff --git a/Marlin/src/lcd/language/language_fr.h b/Marlin/src/lcd/language/language_fr.h
index 947ea5ac29..9aa70da651 100644
--- a/Marlin/src/lcd/language/language_fr.h
+++ b/Marlin/src/lcd/language/language_fr.h
@@ -409,6 +409,8 @@
 #define MSG_CASE_LIGHT                      _UxGT("Lumière caisson")
 #define MSG_CASE_LIGHT_BRIGHTNESS           _UxGT("Luminosité")
 
+#define MSG_EXPECTED_PRINTER                _UxGT("Imprimante incorrecte")
+
 #if LCD_WIDTH >= 20
   #define MSG_INFO_PRINT_COUNT              _UxGT("Nbre impressions")
   #define MSG_INFO_COMPLETED_PRINTS         _UxGT("Terminées")
diff --git a/Marlin/src/lcd/language/language_gl.h b/Marlin/src/lcd/language/language_gl.h
index 701275a1e2..fc2a54bd6f 100644
--- a/Marlin/src/lcd/language/language_gl.h
+++ b/Marlin/src/lcd/language/language_gl.h
@@ -225,6 +225,8 @@
 
 #define MSG_FILAMENT_CHANGE_OPTION_RESUME   _UxGT("Segue traballo")
 
+#define MSG_EXPECTED_PRINTER                _UxGT("Impresora incorrecta")
+
 #if LCD_HEIGHT >= 4
   // Up to 3 lines allowed
   #define MSG_FILAMENT_CHANGE_INIT_1          _UxGT("Agarde para")
diff --git a/Marlin/src/lcd/language/language_hr.h b/Marlin/src/lcd/language/language_hr.h
index 2662e2a272..a47423ba78 100644
--- a/Marlin/src/lcd/language/language_hr.h
+++ b/Marlin/src/lcd/language/language_hr.h
@@ -204,6 +204,8 @@
 #define MSG_INFO_PROTOCOL                   _UxGT("Protokol")
 #define MSG_CASE_LIGHT                      _UxGT("Osvjetljenje")
 
+#define MSG_EXPECTED_PRINTER                _UxGT("Neispravan pisač")
+
 #if LCD_WIDTH >= 20
   #define MSG_INFO_PRINT_COUNT              _UxGT("Broj printova")
   #define MSG_INFO_COMPLETED_PRINTS         _UxGT("Završeni")
diff --git a/Marlin/src/lcd/language/language_it.h b/Marlin/src/lcd/language/language_it.h
index 4cc8f0d985..b445b20e77 100644
--- a/Marlin/src/lcd/language/language_it.h
+++ b/Marlin/src/lcd/language/language_it.h
@@ -494,6 +494,8 @@
 #define MSG_SNAKE                           _UxGT("Sn4k3")
 #define MSG_MAZE                            _UxGT("Maze")
 
+#define MSG_EXPECTED_PRINTER                _UxGT("Stampante errata")
+
 //
 // Le schermate di Cambio Filamento possono visualizzare fino a 3 linee su un display a 4 righe
 //                                                  ...o fino a 2 linee su un display a 3 righe.
diff --git a/Marlin/src/lcd/language/language_jp-kana.h b/Marlin/src/lcd/language/language_jp-kana.h
index e1a6b20602..fab66dc47f 100644
--- a/Marlin/src/lcd/language/language_jp-kana.h
+++ b/Marlin/src/lcd/language/language_jp-kana.h
@@ -219,3 +219,5 @@
 #define MSG_FILAMENT_CHANGE_LOAD_2          _UxGT("シバラクオマチクダサイ")            // "filament load"
 #define MSG_FILAMENT_CHANGE_RESUME_1        _UxGT("プリントヲサイカイシマス")           // "Wait for print"
 #define MSG_FILAMENT_CHANGE_RESUME_2        _UxGT("シバラクオマチクダサイ")            // "to resume"
+
+#define MSG_EXPECTED_PRINTER                _UxGT("間違ったプリンター")               // "Wrong printer"
diff --git a/Marlin/src/lcd/language/language_ko_KR.h b/Marlin/src/lcd/language/language_ko_KR.h
index bf614ad8bc..06cd9e7cbb 100644
--- a/Marlin/src/lcd/language/language_ko_KR.h
+++ b/Marlin/src/lcd/language/language_ko_KR.h
@@ -346,6 +346,9 @@
 //#define MSG_INFO_PROTOCOL                 _UxGT("Protocol")
 //#define MSG_CASE_LIGHT                    _UxGT("Case light")
 //#define MSG_CASE_LIGHT_BRIGHTNESS         _UxGT("Light Brightness")
+
+#define MSG_EXPECTED_PRINTER                _UxGT("잘못된 프린터")
+
 #if LCD_WIDTH >= 20
   //#define MSG_INFO_PRINT_COUNT            _UxGT("Print Count")
   //#define MSG_INFO_COMPLETED_PRINTS       _UxGT("Completed")
diff --git a/Marlin/src/lcd/language/language_nl.h b/Marlin/src/lcd/language/language_nl.h
index fbf7c78983..52f9958c16 100644
--- a/Marlin/src/lcd/language/language_nl.h
+++ b/Marlin/src/lcd/language/language_nl.h
@@ -216,6 +216,8 @@
 #define MSG_INFO_PROTOCOL                   _UxGT("Protocol")
 #define MSG_CASE_LIGHT                      _UxGT("Case licht")
 
+#define MSG_EXPECTED_PRINTER                _UxGT("Onjuiste printer")
+
 #if LCD_WIDTH >= 20
   #define MSG_INFO_PRINT_COUNT              _UxGT("Printed Aantal")
   #define MSG_INFO_COMPLETED_PRINTS         _UxGT("Totaal Voltooid")
diff --git a/Marlin/src/lcd/language/language_pl.h b/Marlin/src/lcd/language/language_pl.h
index 92ad95908d..07e784aae9 100644
--- a/Marlin/src/lcd/language/language_pl.h
+++ b/Marlin/src/lcd/language/language_pl.h
@@ -204,6 +204,8 @@
 #define MSG_INFO_PROTOCOL                   _UxGT("Protokół")
 #define MSG_CASE_LIGHT                      _UxGT("Oświetlenie")
 
+#define MSG_EXPECTED_PRINTER                _UxGT("Niepoprawna drukarka")
+
 #if LCD_WIDTH >= 20
   #define MSG_INFO_PRINT_COUNT              _UxGT("Wydrukowano")
   #define MSG_INFO_COMPLETED_PRINTS         _UxGT("Ukończono")
diff --git a/Marlin/src/lcd/language/language_pt-br.h b/Marlin/src/lcd/language/language_pt-br.h
index c07fa199d3..5fcfcaa043 100644
--- a/Marlin/src/lcd/language/language_pt-br.h
+++ b/Marlin/src/lcd/language/language_pt-br.h
@@ -366,6 +366,8 @@
 #define MSG_CASE_LIGHT                      _UxGT("Luz da Impressora")
 #define MSG_CASE_LIGHT_BRIGHTNESS           _UxGT("Intensidade Brilho")
 
+#define MSG_EXPECTED_PRINTER                _UxGT("Impressora Incorreta")
+
 #if LCD_WIDTH >= 20
   #define MSG_INFO_PRINT_COUNT              _UxGT("Total de Impressões")
   #define MSG_INFO_COMPLETED_PRINTS         _UxGT("Realizadas")
diff --git a/Marlin/src/lcd/language/language_pt.h b/Marlin/src/lcd/language/language_pt.h
index c6a8367d91..e735dcfa26 100644
--- a/Marlin/src/lcd/language/language_pt.h
+++ b/Marlin/src/lcd/language/language_pt.h
@@ -185,3 +185,5 @@
 #define MSG_DELTA_CALIBRATE_CENTER          _UxGT("Calibrar Centro")
 
 #define MSG_LCD_ENDSTOPS                    _UxGT("Fim de curso")
+
+#define MSG_EXPECTED_PRINTER                _UxGT("Impressora Incorreta")
diff --git a/Marlin/src/lcd/language/language_ru.h b/Marlin/src/lcd/language/language_ru.h
index f8efa4c58b..c420a591c3 100644
--- a/Marlin/src/lcd/language/language_ru.h
+++ b/Marlin/src/lcd/language/language_ru.h
@@ -372,6 +372,9 @@
 #define MSG_INFO_PROTOCOL                   _UxGT("Протокол")
 #define MSG_CASE_LIGHT                      _UxGT("Подсветка корпуса")
 #define MSG_CASE_LIGHT_BRIGHTNESS           _UxGT("Яркость подсветки")
+
+#define MSG_EXPECTED_PRINTER                _UxGT("Неверный принтер")
+
 #if LCD_WIDTH >= 20
   #define MSG_INFO_PRINT_COUNT              _UxGT("Счётчик печати")
   #define MSG_INFO_COMPLETED_PRINTS         _UxGT("Закончено")
diff --git a/Marlin/src/lcd/language/language_sk.h b/Marlin/src/lcd/language/language_sk.h
index 58a89de87b..d955a17839 100644
--- a/Marlin/src/lcd/language/language_sk.h
+++ b/Marlin/src/lcd/language/language_sk.h
@@ -415,6 +415,8 @@
 #define MSG_CASE_LIGHT                      _UxGT("Osvetlenie")
 #define MSG_CASE_LIGHT_BRIGHTNESS           _UxGT("Jas svetla")
 
+#define MSG_EXPECTED_PRINTER                _UxGT("Nesprávna tlačiareň")
+
 #if LCD_WIDTH >= 20
   #define MSG_INFO_PRINT_COUNT              _UxGT("Počet tlačí")
   #define MSG_INFO_COMPLETED_PRINTS         _UxGT("Dokončené")
diff --git a/Marlin/src/lcd/language/language_tr.h b/Marlin/src/lcd/language/language_tr.h
index 551991b99b..3e19c8d9da 100644
--- a/Marlin/src/lcd/language/language_tr.h
+++ b/Marlin/src/lcd/language/language_tr.h
@@ -362,6 +362,9 @@
 #define MSG_INFO_PROTOCOL                   _UxGT("Protokol")
 #define MSG_CASE_LIGHT                      _UxGT("Aydınlatmayı Aç")
 #define MSG_CASE_LIGHT_BRIGHTNESS           _UxGT("Aydınlatma Parlaklğı")
+
+#define MSG_EXPECTED_PRINTER                _UxGT("Yanlış Yazıcı")
+
 #if LCD_WIDTH >= 20
   #define MSG_INFO_PRINT_COUNT              _UxGT("Baskı Sayısı")
   #define MSG_INFO_COMPLETED_PRINTS         _UxGT("Tamamlanan")
diff --git a/Marlin/src/lcd/language/language_uk.h b/Marlin/src/lcd/language/language_uk.h
index 763a2f559b..e309ca8011 100644
--- a/Marlin/src/lcd/language/language_uk.h
+++ b/Marlin/src/lcd/language/language_uk.h
@@ -192,6 +192,8 @@
 #define MSG_INFO_PROTOCOL                   _UxGT("Протокол")
 #define MSG_CASE_LIGHT                      _UxGT("Підсвітка")
 
+#define MSG_EXPECTED_PRINTER                _UxGT("Неправильний принтер")
+
 #if LCD_WIDTH >= 20
   #define MSG_INFO_PRINT_COUNT              _UxGT("К-сть друків")
   #define MSG_INFO_COMPLETED_PRINTS         _UxGT("Завершено")
diff --git a/Marlin/src/lcd/language/language_zh_CN.h b/Marlin/src/lcd/language/language_zh_CN.h
index 19ef300564..1394036eac 100644
--- a/Marlin/src/lcd/language/language_zh_CN.h
+++ b/Marlin/src/lcd/language/language_zh_CN.h
@@ -323,6 +323,8 @@
 #define MSG_CASE_LIGHT                      _UxGT("外壳灯") // "Case light"
 #define MSG_CASE_LIGHT_BRIGHTNESS           _UxGT("灯亮度") // "Light BRIGHTNESS"
 
+#define MSG_EXPECTED_PRINTER                _UxGT("打印机不正确") // "The printer is incorrect"
+
 #if LCD_WIDTH >= 20
   #define MSG_INFO_PRINT_COUNT              _UxGT("打印计数")  //"Print Count"
   #define MSG_INFO_COMPLETED_PRINTS         _UxGT("完成了")  //"Completed"
diff --git a/Marlin/src/lcd/language/language_zh_TW.h b/Marlin/src/lcd/language/language_zh_TW.h
index ed1e40ceed..b02d86be38 100644
--- a/Marlin/src/lcd/language/language_zh_TW.h
+++ b/Marlin/src/lcd/language/language_zh_TW.h
@@ -323,6 +323,8 @@
 #define MSG_CASE_LIGHT                      _UxGT("外殼燈") // "Case light"
 #define MSG_CASE_LIGHT_BRIGHTNESS           _UxGT("燈亮度") // "Light BRIGHTNESS"
 
+#define MSG_EXPECTED_PRINTER                _UxGT("打印機不正確") // "The printer is incorrect"
+
 #if LCD_WIDTH >= 20
   #define MSG_INFO_PRINT_COUNT              _UxGT("列印計數")  //"Print Count"
   #define MSG_INFO_COMPLETED_PRINTS         _UxGT("已完成")  //"Completed"
diff --git a/config/default/Configuration_adv.h b/config/default/Configuration_adv.h
index 23ce491218..4f2222ffb7 100644
--- a/config/default/Configuration_adv.h
+++ b/config/default/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/3DFabXYZ/Migbot/Configuration_adv.h b/config/examples/3DFabXYZ/Migbot/Configuration_adv.h
index 1a7047a285..80b4d30001 100644
--- a/config/examples/3DFabXYZ/Migbot/Configuration_adv.h
+++ b/config/examples/3DFabXYZ/Migbot/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/AlephObjects/TAZ4/Configuration_adv.h b/config/examples/AlephObjects/TAZ4/Configuration_adv.h
index a2d8e42816..fa932eb8b4 100644
--- a/config/examples/AlephObjects/TAZ4/Configuration_adv.h
+++ b/config/examples/AlephObjects/TAZ4/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Alfawise/U20/Configuration_adv.h b/config/examples/Alfawise/U20/Configuration_adv.h
index 7f80aad84a..b004c2bbd2 100644
--- a/config/examples/Alfawise/U20/Configuration_adv.h
+++ b/config/examples/Alfawise/U20/Configuration_adv.h
@@ -2244,6 +2244,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/AliExpress/UM2pExt/Configuration_adv.h b/config/examples/AliExpress/UM2pExt/Configuration_adv.h
index 3426854132..728e71218c 100644
--- a/config/examples/AliExpress/UM2pExt/Configuration_adv.h
+++ b/config/examples/AliExpress/UM2pExt/Configuration_adv.h
@@ -2244,6 +2244,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Anet/A2/Configuration_adv.h b/config/examples/Anet/A2/Configuration_adv.h
index 8015e3e9b9..0c44124c95 100644
--- a/config/examples/Anet/A2/Configuration_adv.h
+++ b/config/examples/Anet/A2/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Anet/A2plus/Configuration_adv.h b/config/examples/Anet/A2plus/Configuration_adv.h
index 8015e3e9b9..0c44124c95 100644
--- a/config/examples/Anet/A2plus/Configuration_adv.h
+++ b/config/examples/Anet/A2plus/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Anet/A6/Configuration_adv.h b/config/examples/Anet/A6/Configuration_adv.h
index a1bb615739..d89e3b8162 100644
--- a/config/examples/Anet/A6/Configuration_adv.h
+++ b/config/examples/Anet/A6/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Anet/A8/Configuration_adv.h b/config/examples/Anet/A8/Configuration_adv.h
index 0a5057f7c5..9d5e160a7b 100644
--- a/config/examples/Anet/A8/Configuration_adv.h
+++ b/config/examples/Anet/A8/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Anet/A8plus/Configuration_adv.h b/config/examples/Anet/A8plus/Configuration_adv.h
index 36d2594bae..6f6993bc89 100644
--- a/config/examples/Anet/A8plus/Configuration_adv.h
+++ b/config/examples/Anet/A8plus/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Anet/E16/Configuration_adv.h b/config/examples/Anet/E16/Configuration_adv.h
index f6cb50b3bd..5f26d67311 100644
--- a/config/examples/Anet/E16/Configuration_adv.h
+++ b/config/examples/Anet/E16/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/AnyCubic/i3/Configuration_adv.h b/config/examples/AnyCubic/i3/Configuration_adv.h
index b54cd4ea4a..7b075cd7e5 100644
--- a/config/examples/AnyCubic/i3/Configuration_adv.h
+++ b/config/examples/AnyCubic/i3/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/ArmEd/Configuration_adv.h b/config/examples/ArmEd/Configuration_adv.h
index 4eb3b4eb00..d70e7a1fea 100644
--- a/config/examples/ArmEd/Configuration_adv.h
+++ b/config/examples/ArmEd/Configuration_adv.h
@@ -2246,6 +2246,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/BIBO/TouchX/cyclops/Configuration_adv.h b/config/examples/BIBO/TouchX/cyclops/Configuration_adv.h
index 92e12f48ef..c624ee7ab5 100644
--- a/config/examples/BIBO/TouchX/cyclops/Configuration_adv.h
+++ b/config/examples/BIBO/TouchX/cyclops/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/BIBO/TouchX/default/Configuration_adv.h b/config/examples/BIBO/TouchX/default/Configuration_adv.h
index 72e36ed365..593aca7414 100644
--- a/config/examples/BIBO/TouchX/default/Configuration_adv.h
+++ b/config/examples/BIBO/TouchX/default/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/BQ/Hephestos/Configuration_adv.h b/config/examples/BQ/Hephestos/Configuration_adv.h
index 58edc2bbcf..4f867ff6a2 100644
--- a/config/examples/BQ/Hephestos/Configuration_adv.h
+++ b/config/examples/BQ/Hephestos/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/BQ/Hephestos_2/Configuration_adv.h b/config/examples/BQ/Hephestos_2/Configuration_adv.h
index 686bdbbebc..82d19a9cc7 100644
--- a/config/examples/BQ/Hephestos_2/Configuration_adv.h
+++ b/config/examples/BQ/Hephestos_2/Configuration_adv.h
@@ -2250,6 +2250,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/BQ/WITBOX/Configuration_adv.h b/config/examples/BQ/WITBOX/Configuration_adv.h
index 58edc2bbcf..4f867ff6a2 100644
--- a/config/examples/BQ/WITBOX/Configuration_adv.h
+++ b/config/examples/BQ/WITBOX/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Cartesio/Configuration_adv.h b/config/examples/Cartesio/Configuration_adv.h
index 4b2a9d40cc..80d76e1833 100644
--- a/config/examples/Cartesio/Configuration_adv.h
+++ b/config/examples/Cartesio/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Creality/CR-10/Configuration_adv.h b/config/examples/Creality/CR-10/Configuration_adv.h
index 0fb6d14116..ced15b855d 100644
--- a/config/examples/Creality/CR-10/Configuration_adv.h
+++ b/config/examples/Creality/CR-10/Configuration_adv.h
@@ -2245,6 +2245,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Creality/CR-10S/Configuration_adv.h b/config/examples/Creality/CR-10S/Configuration_adv.h
index 477e442b99..c5f06a7602 100644
--- a/config/examples/Creality/CR-10S/Configuration_adv.h
+++ b/config/examples/Creality/CR-10S/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Creality/CR-10_5S/Configuration_adv.h b/config/examples/Creality/CR-10_5S/Configuration_adv.h
index 7f7a853899..5c1b5b6a54 100644
--- a/config/examples/Creality/CR-10_5S/Configuration_adv.h
+++ b/config/examples/Creality/CR-10_5S/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Creality/CR-10mini/Configuration_adv.h b/config/examples/Creality/CR-10mini/Configuration_adv.h
index 181ebba9e6..fc30c3a212 100644
--- a/config/examples/Creality/CR-10mini/Configuration_adv.h
+++ b/config/examples/Creality/CR-10mini/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Creality/CR-20 Pro/Configuration_adv.h b/config/examples/Creality/CR-20 Pro/Configuration_adv.h
index 98a7ed32bb..282c116dfe 100644
--- a/config/examples/Creality/CR-20 Pro/Configuration_adv.h	
+++ b/config/examples/Creality/CR-20 Pro/Configuration_adv.h	
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Creality/CR-20/Configuration_adv.h b/config/examples/Creality/CR-20/Configuration_adv.h
index 483d04a247..32cb6765ac 100644
--- a/config/examples/Creality/CR-20/Configuration_adv.h
+++ b/config/examples/Creality/CR-20/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Creality/CR-8/Configuration_adv.h b/config/examples/Creality/CR-8/Configuration_adv.h
index d9d2f7cb67..a08039b80c 100644
--- a/config/examples/Creality/CR-8/Configuration_adv.h
+++ b/config/examples/Creality/CR-8/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Creality/Ender-2/Configuration_adv.h b/config/examples/Creality/Ender-2/Configuration_adv.h
index c234b9af74..efec78ae75 100644
--- a/config/examples/Creality/Ender-2/Configuration_adv.h
+++ b/config/examples/Creality/Ender-2/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Creality/Ender-3/Configuration_adv.h b/config/examples/Creality/Ender-3/Configuration_adv.h
index 5ad49e333e..885ff81cb8 100644
--- a/config/examples/Creality/Ender-3/Configuration_adv.h
+++ b/config/examples/Creality/Ender-3/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Creality/Ender-4/Configuration_adv.h b/config/examples/Creality/Ender-4/Configuration_adv.h
index bdbc640346..fa9ea28214 100644
--- a/config/examples/Creality/Ender-4/Configuration_adv.h
+++ b/config/examples/Creality/Ender-4/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Creality/Ender-5/Configuration_adv.h b/config/examples/Creality/Ender-5/Configuration_adv.h
index 145f402517..6be777f6fb 100644
--- a/config/examples/Creality/Ender-5/Configuration_adv.h
+++ b/config/examples/Creality/Ender-5/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Dagoma/Disco Ultimate/Configuration_adv.h b/config/examples/Dagoma/Disco Ultimate/Configuration_adv.h
index 259681dd58..a2c09ade58 100644
--- a/config/examples/Dagoma/Disco Ultimate/Configuration_adv.h	
+++ b/config/examples/Dagoma/Disco Ultimate/Configuration_adv.h	
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/EVNOVO (Artillery)/Sidewinder X1/Configuration_adv.h b/config/examples/EVNOVO (Artillery)/Sidewinder X1/Configuration_adv.h
index 0261fe8670..317018380b 100755
--- a/config/examples/EVNOVO (Artillery)/Sidewinder X1/Configuration_adv.h	
+++ b/config/examples/EVNOVO (Artillery)/Sidewinder X1/Configuration_adv.h	
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Einstart-S/Configuration_adv.h b/config/examples/Einstart-S/Configuration_adv.h
index e47e839321..e70941cfc6 100644
--- a/config/examples/Einstart-S/Configuration_adv.h
+++ b/config/examples/Einstart-S/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/FYSETC/AIO_II/Configuration_adv.h b/config/examples/FYSETC/AIO_II/Configuration_adv.h
index 2e27154adc..6ed35f6c38 100644
--- a/config/examples/FYSETC/AIO_II/Configuration_adv.h
+++ b/config/examples/FYSETC/AIO_II/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/FYSETC/Cheetah 1.2/BLTouch/Configuration_adv.h b/config/examples/FYSETC/Cheetah 1.2/BLTouch/Configuration_adv.h
index 35d110145b..d98337635d 100644
--- a/config/examples/FYSETC/Cheetah 1.2/BLTouch/Configuration_adv.h	
+++ b/config/examples/FYSETC/Cheetah 1.2/BLTouch/Configuration_adv.h	
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/FYSETC/Cheetah 1.2/base/Configuration_adv.h b/config/examples/FYSETC/Cheetah 1.2/base/Configuration_adv.h
index d6d26f9763..7facfb9d17 100644
--- a/config/examples/FYSETC/Cheetah 1.2/base/Configuration_adv.h	
+++ b/config/examples/FYSETC/Cheetah 1.2/base/Configuration_adv.h	
@@ -2241,6 +2241,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/FYSETC/Cheetah/BLTouch/Configuration_adv.h b/config/examples/FYSETC/Cheetah/BLTouch/Configuration_adv.h
index b840108dcf..ab3f52688c 100644
--- a/config/examples/FYSETC/Cheetah/BLTouch/Configuration_adv.h
+++ b/config/examples/FYSETC/Cheetah/BLTouch/Configuration_adv.h
@@ -2241,6 +2241,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/FYSETC/Cheetah/base/Configuration_adv.h b/config/examples/FYSETC/Cheetah/base/Configuration_adv.h
index b840108dcf..ab3f52688c 100644
--- a/config/examples/FYSETC/Cheetah/base/Configuration_adv.h
+++ b/config/examples/FYSETC/Cheetah/base/Configuration_adv.h
@@ -2241,6 +2241,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/FYSETC/F6_13/Configuration_adv.h b/config/examples/FYSETC/F6_13/Configuration_adv.h
index 7db5db8598..33a9058315 100644
--- a/config/examples/FYSETC/F6_13/Configuration_adv.h
+++ b/config/examples/FYSETC/F6_13/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Felix/Configuration_adv.h b/config/examples/Felix/Configuration_adv.h
index 950fd138fb..0306d59382 100644
--- a/config/examples/Felix/Configuration_adv.h
+++ b/config/examples/Felix/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/FlashForge/CreatorPro/Configuration_adv.h b/config/examples/FlashForge/CreatorPro/Configuration_adv.h
index d1c1ccb0d9..2c448b97c8 100644
--- a/config/examples/FlashForge/CreatorPro/Configuration_adv.h
+++ b/config/examples/FlashForge/CreatorPro/Configuration_adv.h
@@ -2241,6 +2241,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/FolgerTech/i3-2020/Configuration_adv.h b/config/examples/FolgerTech/i3-2020/Configuration_adv.h
index 51e3a1d3e1..faaa0d6571 100644
--- a/config/examples/FolgerTech/i3-2020/Configuration_adv.h
+++ b/config/examples/FolgerTech/i3-2020/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Formbot/Raptor/Configuration_adv.h b/config/examples/Formbot/Raptor/Configuration_adv.h
index 344b023e3d..7fbc2f06c0 100644
--- a/config/examples/Formbot/Raptor/Configuration_adv.h
+++ b/config/examples/Formbot/Raptor/Configuration_adv.h
@@ -2244,6 +2244,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Formbot/T_Rex_2+/Configuration_adv.h b/config/examples/Formbot/T_Rex_2+/Configuration_adv.h
index ac41ec45d8..44c88aff19 100644
--- a/config/examples/Formbot/T_Rex_2+/Configuration_adv.h
+++ b/config/examples/Formbot/T_Rex_2+/Configuration_adv.h
@@ -2246,6 +2246,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Formbot/T_Rex_3/Configuration_adv.h b/config/examples/Formbot/T_Rex_3/Configuration_adv.h
index d7ea6ed9fe..14cb66423b 100644
--- a/config/examples/Formbot/T_Rex_3/Configuration_adv.h
+++ b/config/examples/Formbot/T_Rex_3/Configuration_adv.h
@@ -2246,6 +2246,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Geeetech/A10/Configuration_adv.h b/config/examples/Geeetech/A10/Configuration_adv.h
index 135bece867..b0b4cad966 100644
--- a/config/examples/Geeetech/A10/Configuration_adv.h
+++ b/config/examples/Geeetech/A10/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Geeetech/A10M/Configuration_adv.h b/config/examples/Geeetech/A10M/Configuration_adv.h
index feced7eb17..c2c74d6718 100644
--- a/config/examples/Geeetech/A10M/Configuration_adv.h
+++ b/config/examples/Geeetech/A10M/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Geeetech/A20M/Configuration_adv.h b/config/examples/Geeetech/A20M/Configuration_adv.h
index 93a2c38479..446204a065 100644
--- a/config/examples/Geeetech/A20M/Configuration_adv.h
+++ b/config/examples/Geeetech/A20M/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Geeetech/MeCreator2/Configuration_adv.h b/config/examples/Geeetech/MeCreator2/Configuration_adv.h
index 723b821a56..a29bab3847 100644
--- a/config/examples/Geeetech/MeCreator2/Configuration_adv.h
+++ b/config/examples/Geeetech/MeCreator2/Configuration_adv.h
@@ -2241,6 +2241,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Geeetech/Prusa i3 Pro C/Configuration_adv.h b/config/examples/Geeetech/Prusa i3 Pro C/Configuration_adv.h
index 135bece867..b0b4cad966 100644
--- a/config/examples/Geeetech/Prusa i3 Pro C/Configuration_adv.h	
+++ b/config/examples/Geeetech/Prusa i3 Pro C/Configuration_adv.h	
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Geeetech/Prusa i3 Pro W/Configuration_adv.h b/config/examples/Geeetech/Prusa i3 Pro W/Configuration_adv.h
index 135bece867..b0b4cad966 100644
--- a/config/examples/Geeetech/Prusa i3 Pro W/Configuration_adv.h	
+++ b/config/examples/Geeetech/Prusa i3 Pro W/Configuration_adv.h	
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Infitary/i3-M508/Configuration_adv.h b/config/examples/Infitary/i3-M508/Configuration_adv.h
index 870a7a1c01..5f26ea253b 100644
--- a/config/examples/Infitary/i3-M508/Configuration_adv.h
+++ b/config/examples/Infitary/i3-M508/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 //#define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/JGAurora/A1/Configuration_adv.h b/config/examples/JGAurora/A1/Configuration_adv.h
index 558c7dbc88..49897c3cbb 100644
--- a/config/examples/JGAurora/A1/Configuration_adv.h
+++ b/config/examples/JGAurora/A1/Configuration_adv.h
@@ -2247,6 +2247,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/JGAurora/A5/Configuration_adv.h b/config/examples/JGAurora/A5/Configuration_adv.h
index d1a29c977b..0925a2c32f 100644
--- a/config/examples/JGAurora/A5/Configuration_adv.h
+++ b/config/examples/JGAurora/A5/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/JGAurora/A5S/Configuration_adv.h b/config/examples/JGAurora/A5S/Configuration_adv.h
index 558c7dbc88..49897c3cbb 100644
--- a/config/examples/JGAurora/A5S/Configuration_adv.h
+++ b/config/examples/JGAurora/A5S/Configuration_adv.h
@@ -2247,6 +2247,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/MakerParts/Configuration_adv.h b/config/examples/MakerParts/Configuration_adv.h
index b2a62ba978..f5537b5065 100644
--- a/config/examples/MakerParts/Configuration_adv.h
+++ b/config/examples/MakerParts/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Malyan/M150/Configuration_adv.h b/config/examples/Malyan/M150/Configuration_adv.h
index e88b180435..7ce934b383 100644
--- a/config/examples/Malyan/M150/Configuration_adv.h
+++ b/config/examples/Malyan/M150/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Malyan/M200/Configuration_adv.h b/config/examples/Malyan/M200/Configuration_adv.h
index e2b77c9b2e..f2755f7f1b 100644
--- a/config/examples/Malyan/M200/Configuration_adv.h
+++ b/config/examples/Malyan/M200/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Micromake/C1/enhanced/Configuration_adv.h b/config/examples/Micromake/C1/enhanced/Configuration_adv.h
index addbfce9e2..d1439eaedd 100644
--- a/config/examples/Micromake/C1/enhanced/Configuration_adv.h
+++ b/config/examples/Micromake/C1/enhanced/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Mks/Robin/Configuration_adv.h b/config/examples/Mks/Robin/Configuration_adv.h
index d132396cbd..0a50c1f9d6 100644
--- a/config/examples/Mks/Robin/Configuration_adv.h
+++ b/config/examples/Mks/Robin/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Mks/Sbase/Configuration_adv.h b/config/examples/Mks/Sbase/Configuration_adv.h
index 203eb26e1c..935d5d71f0 100644
--- a/config/examples/Mks/Sbase/Configuration_adv.h
+++ b/config/examples/Mks/Sbase/Configuration_adv.h
@@ -2243,6 +2243,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/RapideLite/RL200/Configuration_adv.h b/config/examples/RapideLite/RL200/Configuration_adv.h
index 6aa146c16f..fbef019136 100644
--- a/config/examples/RapideLite/RL200/Configuration_adv.h
+++ b/config/examples/RapideLite/RL200/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/RigidBot/Configuration_adv.h b/config/examples/RigidBot/Configuration_adv.h
index 641797b46a..442467eb06 100644
--- a/config/examples/RigidBot/Configuration_adv.h
+++ b/config/examples/RigidBot/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/SCARA/Configuration_adv.h b/config/examples/SCARA/Configuration_adv.h
index 2f4b9bdbf1..ef063f2c2b 100644
--- a/config/examples/SCARA/Configuration_adv.h
+++ b/config/examples/SCARA/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/STM32/Black_STM32F407VET6/Configuration_adv.h b/config/examples/STM32/Black_STM32F407VET6/Configuration_adv.h
index 892f9653e1..aa1a1b76ee 100644
--- a/config/examples/STM32/Black_STM32F407VET6/Configuration_adv.h
+++ b/config/examples/STM32/Black_STM32F407VET6/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Sanguinololu/Configuration_adv.h b/config/examples/Sanguinololu/Configuration_adv.h
index 3be52a3d76..22aa92e7ba 100644
--- a/config/examples/Sanguinololu/Configuration_adv.h
+++ b/config/examples/Sanguinololu/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Tevo/Michelangelo/Configuration_adv.h b/config/examples/Tevo/Michelangelo/Configuration_adv.h
index 8088e61709..d004daf425 100644
--- a/config/examples/Tevo/Michelangelo/Configuration_adv.h
+++ b/config/examples/Tevo/Michelangelo/Configuration_adv.h
@@ -2241,6 +2241,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Tevo/Tarantula Pro/Configuration_adv.h b/config/examples/Tevo/Tarantula Pro/Configuration_adv.h
index ba2838391f..ba5e46d4fa 100755
--- a/config/examples/Tevo/Tarantula Pro/Configuration_adv.h	
+++ b/config/examples/Tevo/Tarantula Pro/Configuration_adv.h	
@@ -2238,6 +2238,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Tevo/Tornado/V1 (MKS Base)/Configuration_adv.h b/config/examples/Tevo/Tornado/V1 (MKS Base)/Configuration_adv.h
index 46dce63663..23c9d0f5ed 100755
--- a/config/examples/Tevo/Tornado/V1 (MKS Base)/Configuration_adv.h	
+++ b/config/examples/Tevo/Tornado/V1 (MKS Base)/Configuration_adv.h	
@@ -2241,6 +2241,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Tevo/Tornado/V2 (MKS GEN-L)/Configuration_adv.h b/config/examples/Tevo/Tornado/V2 (MKS GEN-L)/Configuration_adv.h
index 46dce63663..23c9d0f5ed 100755
--- a/config/examples/Tevo/Tornado/V2 (MKS GEN-L)/Configuration_adv.h	
+++ b/config/examples/Tevo/Tornado/V2 (MKS GEN-L)/Configuration_adv.h	
@@ -2241,6 +2241,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/TheBorg/Configuration_adv.h b/config/examples/TheBorg/Configuration_adv.h
index e4c6ffe2c8..bee4c57bd6 100644
--- a/config/examples/TheBorg/Configuration_adv.h
+++ b/config/examples/TheBorg/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/TinyBoy2/Configuration_adv.h b/config/examples/TinyBoy2/Configuration_adv.h
index ccf77020eb..a0ca9612e2 100644
--- a/config/examples/TinyBoy2/Configuration_adv.h
+++ b/config/examples/TinyBoy2/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Tronxy/X3A/Configuration_adv.h b/config/examples/Tronxy/X3A/Configuration_adv.h
index f301ee4728..c624c462fc 100644
--- a/config/examples/Tronxy/X3A/Configuration_adv.h
+++ b/config/examples/Tronxy/X3A/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Tronxy/X5S-2E/Configuration_adv.h b/config/examples/Tronxy/X5S-2E/Configuration_adv.h
index 9317030014..1c11cf298c 100644
--- a/config/examples/Tronxy/X5S-2E/Configuration_adv.h
+++ b/config/examples/Tronxy/X5S-2E/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/UltiMachine/Archim1/Configuration_adv.h b/config/examples/UltiMachine/Archim1/Configuration_adv.h
index 19b8079f53..e120bc388f 100644
--- a/config/examples/UltiMachine/Archim1/Configuration_adv.h
+++ b/config/examples/UltiMachine/Archim1/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/UltiMachine/Archim2/Configuration_adv.h b/config/examples/UltiMachine/Archim2/Configuration_adv.h
index 7c06591c97..b7653614e6 100644
--- a/config/examples/UltiMachine/Archim2/Configuration_adv.h
+++ b/config/examples/UltiMachine/Archim2/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/VORONDesign/Configuration_adv.h b/config/examples/VORONDesign/Configuration_adv.h
index 72e79adc78..e9e8d4c965 100644
--- a/config/examples/VORONDesign/Configuration_adv.h
+++ b/config/examples/VORONDesign/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Velleman/K8200/Configuration_adv.h b/config/examples/Velleman/K8200/Configuration_adv.h
index 1c9ebd39c4..1baa3e3faa 100644
--- a/config/examples/Velleman/K8200/Configuration_adv.h
+++ b/config/examples/Velleman/K8200/Configuration_adv.h
@@ -2255,6 +2255,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Velleman/K8400/Configuration_adv.h b/config/examples/Velleman/K8400/Configuration_adv.h
index 104c6c0bd9..3d5f2c3177 100644
--- a/config/examples/Velleman/K8400/Configuration_adv.h
+++ b/config/examples/Velleman/K8400/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/WASP/PowerWASP/Configuration_adv.h b/config/examples/WASP/PowerWASP/Configuration_adv.h
index 417819c9ea..155af52a8d 100644
--- a/config/examples/WASP/PowerWASP/Configuration_adv.h
+++ b/config/examples/WASP/PowerWASP/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Wanhao/Duplicator 6/Configuration_adv.h b/config/examples/Wanhao/Duplicator 6/Configuration_adv.h
index dadd39b818..e2fd83c6bf 100644
--- a/config/examples/Wanhao/Duplicator 6/Configuration_adv.h	
+++ b/config/examples/Wanhao/Duplicator 6/Configuration_adv.h	
@@ -2244,6 +2244,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/Wanhao/Duplicator i3 Mini/Configuration_adv.h b/config/examples/Wanhao/Duplicator i3 Mini/Configuration_adv.h
index ecd538e7cf..49b6280199 100644
--- a/config/examples/Wanhao/Duplicator i3 Mini/Configuration_adv.h	
+++ b/config/examples/Wanhao/Duplicator i3 Mini/Configuration_adv.h	
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/delta/Anycubic/Kossel/Configuration_adv.h b/config/examples/delta/Anycubic/Kossel/Configuration_adv.h
index 8f98589721..ca1bab438e 100644
--- a/config/examples/delta/Anycubic/Kossel/Configuration_adv.h
+++ b/config/examples/delta/Anycubic/Kossel/Configuration_adv.h
@@ -2244,6 +2244,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/delta/Dreammaker/Overlord/Configuration_adv.h b/config/examples/delta/Dreammaker/Overlord/Configuration_adv.h
index e64b904a84..3338930799 100644
--- a/config/examples/delta/Dreammaker/Overlord/Configuration_adv.h
+++ b/config/examples/delta/Dreammaker/Overlord/Configuration_adv.h
@@ -2234,6 +2234,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/delta/Dreammaker/Overlord_Pro/Configuration_adv.h b/config/examples/delta/Dreammaker/Overlord_Pro/Configuration_adv.h
index e64b904a84..3338930799 100644
--- a/config/examples/delta/Dreammaker/Overlord_Pro/Configuration_adv.h
+++ b/config/examples/delta/Dreammaker/Overlord_Pro/Configuration_adv.h
@@ -2234,6 +2234,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h b/config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h
index e1c7134d05..c9407721f9 100644
--- a/config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h
+++ b/config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h
@@ -2244,6 +2244,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/delta/FLSUN/kossel/Configuration_adv.h b/config/examples/delta/FLSUN/kossel/Configuration_adv.h
index e1c7134d05..c9407721f9 100644
--- a/config/examples/delta/FLSUN/kossel/Configuration_adv.h
+++ b/config/examples/delta/FLSUN/kossel/Configuration_adv.h
@@ -2244,6 +2244,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h b/config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h
index b00f6217fa..08551f0c2f 100644
--- a/config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h
+++ b/config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h
@@ -2244,6 +2244,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/delta/Geeetech/Rostock 301/Configuration_adv.h b/config/examples/delta/Geeetech/Rostock 301/Configuration_adv.h
index e26cee71d0..cb09c62afe 100644
--- a/config/examples/delta/Geeetech/Rostock 301/Configuration_adv.h	
+++ b/config/examples/delta/Geeetech/Rostock 301/Configuration_adv.h	
@@ -2244,6 +2244,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/delta/MKS/SBASE/Configuration_adv.h b/config/examples/delta/MKS/SBASE/Configuration_adv.h
index 99552b8a49..ba381711fe 100644
--- a/config/examples/delta/MKS/SBASE/Configuration_adv.h
+++ b/config/examples/delta/MKS/SBASE/Configuration_adv.h
@@ -2244,6 +2244,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/delta/Tevo Little Monster/Configuration_adv.h b/config/examples/delta/Tevo Little Monster/Configuration_adv.h
index 941c892674..4a6b2fa76d 100644
--- a/config/examples/delta/Tevo Little Monster/Configuration_adv.h	
+++ b/config/examples/delta/Tevo Little Monster/Configuration_adv.h	
@@ -2244,6 +2244,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/delta/generic/Configuration_adv.h b/config/examples/delta/generic/Configuration_adv.h
index b00f6217fa..08551f0c2f 100644
--- a/config/examples/delta/generic/Configuration_adv.h
+++ b/config/examples/delta/generic/Configuration_adv.h
@@ -2244,6 +2244,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/delta/kossel_mini/Configuration_adv.h b/config/examples/delta/kossel_mini/Configuration_adv.h
index b00f6217fa..08551f0c2f 100644
--- a/config/examples/delta/kossel_mini/Configuration_adv.h
+++ b/config/examples/delta/kossel_mini/Configuration_adv.h
@@ -2244,6 +2244,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/delta/kossel_xl/Configuration_adv.h b/config/examples/delta/kossel_xl/Configuration_adv.h
index 2edf395d55..91f0d22bd6 100644
--- a/config/examples/delta/kossel_xl/Configuration_adv.h
+++ b/config/examples/delta/kossel_xl/Configuration_adv.h
@@ -2244,6 +2244,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/gCreate/gMax1.5+/Configuration_adv.h b/config/examples/gCreate/gMax1.5+/Configuration_adv.h
index a6533618b7..d22564a94b 100644
--- a/config/examples/gCreate/gMax1.5+/Configuration_adv.h
+++ b/config/examples/gCreate/gMax1.5+/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/makibox/Configuration_adv.h b/config/examples/makibox/Configuration_adv.h
index 814d507ba1..03ea4f204f 100644
--- a/config/examples/makibox/Configuration_adv.h
+++ b/config/examples/makibox/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/tvrrug/Round2/Configuration_adv.h b/config/examples/tvrrug/Round2/Configuration_adv.h
index dc4ba6943b..e8acf8217b 100644
--- a/config/examples/tvrrug/Round2/Configuration_adv.h
+++ b/config/examples/tvrrug/Round2/Configuration_adv.h
@@ -2242,6 +2242,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */
diff --git a/config/examples/wt150/Configuration_adv.h b/config/examples/wt150/Configuration_adv.h
index 870fac3b27..e6a6e7039b 100644
--- a/config/examples/wt150/Configuration_adv.h
+++ b/config/examples/wt150/Configuration_adv.h
@@ -2243,6 +2243,13 @@
  */
 #define EXTENDED_CAPABILITIES_REPORT
 
+/**
+ * Expected Printer Check
+ * Add the M16 G-code to compare a string to the MACHINE_NAME.
+ * M16 with a non-matching string causes the printer to halt.
+ */
+//#define EXPECTED_PRINTER_CHECK
+
 /**
  * Disable all Volumetric extrusion options
  */