diff --git a/Marlin/Conditionals.h b/Marlin/Conditionals.h
index e5e072a224..3a9ace9198 100644
--- a/Marlin/Conditionals.h
+++ b/Marlin/Conditionals.h
@@ -118,7 +118,11 @@
     #define REPRAP_DISCOUNT_SMART_CONTROLLER
   #endif
 
-  #if ENABLED(ULTIMAKERCONTROLLER) || ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER) || ENABLED(G3D_PANEL) || ENABLED(RIGIDBOT_PANEL) || ENABLED(REPRAPWORLD_KEYPAD)
+  #if ENABLED(ULTIMAKERCONTROLLER)              \
+   || ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER) \
+   || ENABLED(G3D_PANEL)                        \
+   || ENABLED(RIGIDBOT_PANEL)                   \
+   || ENABLED(REPRAPWORLD_KEYPAD)
     #define ULTIPANEL
     #define NEWPANEL
   #endif
@@ -130,6 +134,13 @@
     #define NEWPANEL
   #endif
 
+  #if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+    #define DOGLCD
+    #define U8GLIB_ST7920
+    #define ULTIPANEL
+    #define NEWPANEL
+  #endif
+
   /**
    * I2C PANELS
    */
diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h
index f810fcd0c1..1ab5eddb14 100644
--- a/Marlin/Configuration.h
+++ b/Marlin/Configuration.h
@@ -1118,6 +1118,12 @@
 //
 //#define MAKRPANEL
 
+//
+// ReprapWorld Graphical LCD
+// https://reprapworld.com/?products_details&products_id/1218
+//
+//#define REPRAPWORLD_GRAPHICAL_LCD
+
 //
 // Activate one of these if you have a Panucatt Devices
 // Viki 2.0 or mini Viki with Graphic LCD
diff --git a/Marlin/pins_MEGATRONICS_3.h b/Marlin/pins_MEGATRONICS_3.h
index 47ec17649f..93599781bf 100644
--- a/Marlin/pins_MEGATRONICS_3.h
+++ b/Marlin/pins_MEGATRONICS_3.h
@@ -106,24 +106,38 @@
 
 #define BEEPER_PIN 61
 
-#define LCD_PINS_RS 32
-#define LCD_PINS_ENABLE 31
-#define LCD_PINS_D4 14
-#define LCD_PINS_D5 30
-#define LCD_PINS_D6 39
-#define LCD_PINS_D7 15
+#if ENABLED(DOGLCD)
 
-#define SHIFT_CLK 43
-#define SHIFT_LD 35
-#define SHIFT_OUT 34
-#define SHIFT_EN 44
+  #if ENABLED(U8GLIB_ST7920)
+    #define LCD_PINS_RS     56 //CS chip select /SS chip slave select
+    #define LCD_PINS_ENABLE 51 //SID (MOSI)
+    #define LCD_PINS_D4     52 //SCK (CLK) clock
+    #define SD_DETECT_PIN 35
+  #endif
+
+#else
+
+  #define LCD_PINS_RS 32
+  #define LCD_PINS_ENABLE 31
+  #define LCD_PINS_D4 14
+  #define LCD_PINS_D5 30
+  #define LCD_PINS_D6 39
+  #define LCD_PINS_D7 15
+  
+  #define SHIFT_CLK 43
+  #define SHIFT_LD 35
+  #define SHIFT_OUT 34
+  #define SHIFT_EN 44
+
+  #define SD_DETECT_PIN 56 // Megatronics v3.1 only
+
+#endif
 
 // Buttons are directly attached using keypad
 #define BTN_EN1 44
 #define BTN_EN2 45
-#define BTN_ENC 33 // the click
+#define BTN_ENC 33
 
 #define BLEN_C 2
 #define BLEN_B 1
 #define BLEN_A 0
-
diff --git a/Marlin/pins_MINITRONICS.h b/Marlin/pins_MINITRONICS.h
index 0c80ceda45..db68c97aec 100644
--- a/Marlin/pins_MINITRONICS.h
+++ b/Marlin/pins_MINITRONICS.h
@@ -76,19 +76,38 @@
 
 #define BEEPER_PIN -1
 
-#define LCD_PINS_RS -1
-#define LCD_PINS_ENABLE -1
-#define LCD_PINS_D4 -1
-#define LCD_PINS_D5 -1
-#define LCD_PINS_D6 -1
-#define LCD_PINS_D7 -1
+#if ENABLED(DOGLCD)
 
-// Buttons are directly attached using keypad
-#define BTN_EN1 -1
-#define BTN_EN2 -1
-#define BTN_ENC -1 // the click
+  #if ENABLED(U8GLIB_ST7920)
+    #define LCD_PINS_RS     15 //CS chip select /SS chip slave select
+    #define LCD_PINS_ENABLE 11 //SID (MOSI)
+    #define LCD_PINS_D4     10 //SCK (CLK) clock     
 
-#define BLEN_C 2
-#define BLEN_B 1
-#define BLEN_A 0
+    #define BTN_EN1 18
+    #define BTN_EN2 17
+    #define BTN_ENC 25
 
+    #define SD_DETECT_PIN 30
+  #endif
+
+#else
+
+  #define LCD_PINS_RS -1
+  #define LCD_PINS_ENABLE -1
+  #define LCD_PINS_D4 -1
+  #define LCD_PINS_D5 -1
+  #define LCD_PINS_D6 -1
+  #define LCD_PINS_D7 -1
+
+  // Buttons are directly attached using keypad
+  #define BTN_EN1 -1
+  #define BTN_EN2 -1
+  #define BTN_ENC -1
+
+  #define BLEN_C 2
+  #define BLEN_B 1
+  #define BLEN_A 0
+
+  #define SD_DETECT_PIN -1  // Minitronics doesn't use this
+
+#endif
diff --git a/Marlin/pins_RAMPS_14.h b/Marlin/pins_RAMPS_14.h
index c51a8d02a1..ef96f59a60 100644
--- a/Marlin/pins_RAMPS_14.h
+++ b/Marlin/pins_RAMPS_14.h
@@ -141,7 +141,11 @@
 
 #if ENABLED(ULTRA_LCD)
 
-  #if ENABLED(NEWPANEL) && ENABLED(PANEL_ONE)
+  #if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+    #define LCD_PINS_RS     49 //CS chip select /SS chip slave select
+    #define LCD_PINS_ENABLE 51 //SID (MOSI)
+    #define LCD_PINS_D4     52 //SCK (CLK) clock
+  #elif ENABLED(NEWPANEL) && ENABLED(PANEL_ONE)
     #define LCD_PINS_RS 40
     #define LCD_PINS_ENABLE 42
     #define LCD_PINS_D4 65
@@ -182,6 +186,11 @@
         #define LCD_PIN_BL 39
       #endif
 
+    #elif ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+      #define BTN_EN1 64
+      #define BTN_EN2 59
+      #define BTN_ENC 63
+      #define SD_DETECT_PIN 42
     #elif ENABLED(LCD_I2C_PANELOLU2)
       #define BTN_EN1 47  // reverse if the encoder turns the wrong way.
       #define BTN_EN2 43
diff --git a/Marlin/ultralcd_impl_DOGM.h b/Marlin/ultralcd_impl_DOGM.h
index f53f9269c5..218f3217bc 100644
--- a/Marlin/ultralcd_impl_DOGM.h
+++ b/Marlin/ultralcd_impl_DOGM.h
@@ -141,7 +141,9 @@
 #define START_COL              0
 
 // LCD selection
-#if ENABLED(U8GLIB_ST7920)
+#if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+  U8GLIB_ST7920_128X64_4X u8g(LCD_PINS_RS);
+#elif ENABLED(U8GLIB_ST7920)
   //U8GLIB_ST7920_128X64_RRD u8g(0,0,0);
   U8GLIB_ST7920_128X64_RRD u8g(0);
 #elif defined(CARTESIO_UI)