From 9cc1d8e312438e6801f9860f52c76c0ea74c8a6d Mon Sep 17 00:00:00 2001
From: android444 <github@c64.com.pl>
Date: Fri, 27 Oct 2017 10:42:04 +0200
Subject: [PATCH] [2.0.x] Support for SilverGate Board

---
 Marlin/Configuration.h                        |  5 +
 Marlin/src/HAL/HAL_AVR/pinsDebug_plus_70.h    | 10 +-
 Marlin/src/config/default/Configuration.h     |  5 +
 .../AlephObjects/TAZ4/Configuration.h         |  5 +
 .../AliExpress/CL-260/Configuration.h         |  5 +
 .../config/examples/Anet/A6/Configuration.h   |  5 +
 .../config/examples/Anet/A8/Configuration.h   |  5 +
 .../examples/BQ/Hephestos/Configuration.h     |  5 +
 .../examples/BQ/Hephestos_2/Configuration.h   |  5 +
 .../config/examples/BQ/WITBOX/Configuration.h |  5 +
 .../config/examples/Cartesio/Configuration.h  |  5 +
 .../examples/Creality/CR-10/Configuration.h   |  5 +
 .../src/config/examples/Felix/Configuration.h |  5 +
 .../examples/Felix/DUAL/Configuration.h       |  5 +
 .../FolgerTech/i3-2020/Configuration.h        |  5 +
 .../examples/Geeetech/GT2560/Configuration.h  |  5 +
 .../Geeetech/I3_Pro_X-GT2560/Configuration.h  |  5 +
 .../examples/Infitary/i3-M508/Configuration.h |  5 +
 .../examples/Malyan/M150/Configuration.h      |  5 +
 .../Micromake/C1/basic/Configuration.h        |  5 +
 .../Micromake/C1/enhanced/Configuration.h     |  5 +
 .../config/examples/Mks/Sbase/Configuration.h |  5 +
 .../RepRapWorld/Megatronics/Configuration.h   |  5 +
 .../config/examples/RigidBot/Configuration.h  |  5 +
 .../src/config/examples/SCARA/Configuration.h |  5 +
 .../examples/Sanguinololu/Configuration.h     |  5 +
 .../config/examples/TinyBoy2/Configuration.h  |  5 +
 .../examples/Velleman/K8200/Configuration.h   |  5 +
 .../examples/Velleman/K8400/Configuration.h   |  5 +
 .../Velleman/K8400/Dual-head/Configuration.h  |  5 +
 .../examples/adafruit/ST7565/Configuration.h  |  5 +
 .../FLSUN/auto_calibrate/Configuration.h      |  5 +
 .../delta/FLSUN/kossel_mini/Configuration.h   |  5 +
 .../examples/delta/generic/Configuration.h    |  5 +
 .../delta/kossel_mini/Configuration.h         |  5 +
 .../examples/delta/kossel_pro/Configuration.h |  5 +
 .../examples/delta/kossel_xl/Configuration.h  |  5 +
 .../examples/gCreate/gMax1.5+/Configuration.h |  5 +
 .../config/examples/makibox/Configuration.h   |  5 +
 .../examples/stm32f103ret6/Configuration.h    |  5 +
 .../examples/tvrrug/Round2/Configuration.h    |  5 +
 .../src/config/examples/wt150/Configuration.h |  5 +
 Marlin/src/core/boards.h                      |  1 +
 Marlin/src/inc/Conditionals_LCD.h             |  2 +-
 .../lcd/dogm/ultralcd_st7565_u8glib_VIKI.h    |  6 +-
 .../src/lcd/dogm/ultralcd_st7920_u8glib_rrd.h |  6 +-
 Marlin/src/pins/pins.h                        |  2 +
 Marlin/src/pins/pins_SILVER_GATE.h            | 94 +++++++++++++++++++
 48 files changed, 314 insertions(+), 12 deletions(-)
 create mode 100644 Marlin/src/pins/pins_SILVER_GATE.h

diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h
index af8b9266c3..f34cd94746 100644
--- a/Marlin/Configuration.h
+++ b/Marlin/Configuration.h
@@ -1555,6 +1555,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/HAL/HAL_AVR/pinsDebug_plus_70.h b/Marlin/src/HAL/HAL_AVR/pinsDebug_plus_70.h
index 95006ee7ef..5a0f840140 100644
--- a/Marlin/src/HAL/HAL_AVR/pinsDebug_plus_70.h
+++ b/Marlin/src/HAL/HAL_AVR/pinsDebug_plus_70.h
@@ -22,20 +22,20 @@
  */
 
 /**
- *  structurs for 2560 family boards that use morre than 70 pins
+ * Structures for 2560 family boards that use more than 70 pins
  */
 
 #ifndef _PINSDEBUG_PLUS_70_H_
 #define _PINSDEBUG_PLUS_70_H_
 
 #undef NUM_DIGITAL_PINS
-#if MOTHERBOARD == BOARD_BQ_ZUM_MEGA_3D
+#if MB(BQ_ZUM_MEGA_3D)
   #define NUM_DIGITAL_PINS            85
-#elif MOTHERBOARD == BOARD_MIGHTYBOARD_REVE
+#elif MB(MIGHTYBOARD_REVE)
   #define NUM_DIGITAL_PINS            80
-#elif MOTHERBOARD == BOARD_MINIRAMBO
+#elif MB(MINIRAMBO)
   #define NUM_DIGITAL_PINS            85
-#elif MOTHERBOARD == BOARD_SCOOVO_X9H
+#elif MB(SCOOVO_X9H)
   #define NUM_DIGITAL_PINS            85
 #endif
 
diff --git a/Marlin/src/config/default/Configuration.h b/Marlin/src/config/default/Configuration.h
index af8b9266c3..f34cd94746 100644
--- a/Marlin/src/config/default/Configuration.h
+++ b/Marlin/src/config/default/Configuration.h
@@ -1555,6 +1555,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/AlephObjects/TAZ4/Configuration.h b/Marlin/src/config/examples/AlephObjects/TAZ4/Configuration.h
index cbe7590d60..27c29a0d7a 100644
--- a/Marlin/src/config/examples/AlephObjects/TAZ4/Configuration.h
+++ b/Marlin/src/config/examples/AlephObjects/TAZ4/Configuration.h
@@ -1575,6 +1575,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/AliExpress/CL-260/Configuration.h b/Marlin/src/config/examples/AliExpress/CL-260/Configuration.h
index f6fef87fcd..4b8e2d65c7 100644
--- a/Marlin/src/config/examples/AliExpress/CL-260/Configuration.h
+++ b/Marlin/src/config/examples/AliExpress/CL-260/Configuration.h
@@ -1555,6 +1555,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/Anet/A6/Configuration.h b/Marlin/src/config/examples/Anet/A6/Configuration.h
index ed4acb2c57..2d4530b0a6 100644
--- a/Marlin/src/config/examples/Anet/A6/Configuration.h
+++ b/Marlin/src/config/examples/Anet/A6/Configuration.h
@@ -1714,6 +1714,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/Anet/A8/Configuration.h b/Marlin/src/config/examples/Anet/A8/Configuration.h
index d15132a2f6..5650176a8f 100644
--- a/Marlin/src/config/examples/Anet/A8/Configuration.h
+++ b/Marlin/src/config/examples/Anet/A8/Configuration.h
@@ -1563,6 +1563,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/BQ/Hephestos/Configuration.h b/Marlin/src/config/examples/BQ/Hephestos/Configuration.h
index 474874bd15..d9db41c64a 100644
--- a/Marlin/src/config/examples/BQ/Hephestos/Configuration.h
+++ b/Marlin/src/config/examples/BQ/Hephestos/Configuration.h
@@ -1546,6 +1546,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/BQ/Hephestos_2/Configuration.h b/Marlin/src/config/examples/BQ/Hephestos_2/Configuration.h
index 0a94d866a0..1166a19995 100644
--- a/Marlin/src/config/examples/BQ/Hephestos_2/Configuration.h
+++ b/Marlin/src/config/examples/BQ/Hephestos_2/Configuration.h
@@ -1556,6 +1556,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/BQ/WITBOX/Configuration.h b/Marlin/src/config/examples/BQ/WITBOX/Configuration.h
index fc478fa65b..2c285d686f 100644
--- a/Marlin/src/config/examples/BQ/WITBOX/Configuration.h
+++ b/Marlin/src/config/examples/BQ/WITBOX/Configuration.h
@@ -1546,6 +1546,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/Cartesio/Configuration.h b/Marlin/src/config/examples/Cartesio/Configuration.h
index 0b5d8d7127..96359bec68 100644
--- a/Marlin/src/config/examples/Cartesio/Configuration.h
+++ b/Marlin/src/config/examples/Cartesio/Configuration.h
@@ -1554,6 +1554,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/Creality/CR-10/Configuration.h b/Marlin/src/config/examples/Creality/CR-10/Configuration.h
index 7eab3cefa8..5f2a86c997 100755
--- a/Marlin/src/config/examples/Creality/CR-10/Configuration.h
+++ b/Marlin/src/config/examples/Creality/CR-10/Configuration.h
@@ -1565,6 +1565,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/Felix/Configuration.h b/Marlin/src/config/examples/Felix/Configuration.h
index e7c4549cf7..a3eca68f13 100644
--- a/Marlin/src/config/examples/Felix/Configuration.h
+++ b/Marlin/src/config/examples/Felix/Configuration.h
@@ -1537,6 +1537,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/Felix/DUAL/Configuration.h b/Marlin/src/config/examples/Felix/DUAL/Configuration.h
index e453ea6bff..64ac9de30d 100644
--- a/Marlin/src/config/examples/Felix/DUAL/Configuration.h
+++ b/Marlin/src/config/examples/Felix/DUAL/Configuration.h
@@ -1537,6 +1537,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/FolgerTech/i3-2020/Configuration.h b/Marlin/src/config/examples/FolgerTech/i3-2020/Configuration.h
index c3392ddf56..519af40fda 100644
--- a/Marlin/src/config/examples/FolgerTech/i3-2020/Configuration.h
+++ b/Marlin/src/config/examples/FolgerTech/i3-2020/Configuration.h
@@ -1552,6 +1552,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/Geeetech/GT2560/Configuration.h b/Marlin/src/config/examples/Geeetech/GT2560/Configuration.h
index 1388d54d8e..10ac9cc6e1 100644
--- a/Marlin/src/config/examples/Geeetech/GT2560/Configuration.h
+++ b/Marlin/src/config/examples/Geeetech/GT2560/Configuration.h
@@ -1570,6 +1570,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/Geeetech/I3_Pro_X-GT2560/Configuration.h b/Marlin/src/config/examples/Geeetech/I3_Pro_X-GT2560/Configuration.h
index 935d283ee1..14c92f59e1 100644
--- a/Marlin/src/config/examples/Geeetech/I3_Pro_X-GT2560/Configuration.h
+++ b/Marlin/src/config/examples/Geeetech/I3_Pro_X-GT2560/Configuration.h
@@ -1555,6 +1555,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/Infitary/i3-M508/Configuration.h b/Marlin/src/config/examples/Infitary/i3-M508/Configuration.h
index 99f3676009..b88c6e0927 100644
--- a/Marlin/src/config/examples/Infitary/i3-M508/Configuration.h
+++ b/Marlin/src/config/examples/Infitary/i3-M508/Configuration.h
@@ -1559,6 +1559,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/Malyan/M150/Configuration.h b/Marlin/src/config/examples/Malyan/M150/Configuration.h
index fab5a61c03..3b4bacc41e 100644
--- a/Marlin/src/config/examples/Malyan/M150/Configuration.h
+++ b/Marlin/src/config/examples/Malyan/M150/Configuration.h
@@ -1583,6 +1583,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/Micromake/C1/basic/Configuration.h b/Marlin/src/config/examples/Micromake/C1/basic/Configuration.h
index d49686431c..c72afec070 100644
--- a/Marlin/src/config/examples/Micromake/C1/basic/Configuration.h
+++ b/Marlin/src/config/examples/Micromake/C1/basic/Configuration.h
@@ -1559,6 +1559,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/Micromake/C1/enhanced/Configuration.h b/Marlin/src/config/examples/Micromake/C1/enhanced/Configuration.h
index e6d1d3bf2d..8b9581fa5b 100644
--- a/Marlin/src/config/examples/Micromake/C1/enhanced/Configuration.h
+++ b/Marlin/src/config/examples/Micromake/C1/enhanced/Configuration.h
@@ -1559,6 +1559,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/Mks/Sbase/Configuration.h b/Marlin/src/config/examples/Mks/Sbase/Configuration.h
index e416ac2f15..8e5a8835a7 100644
--- a/Marlin/src/config/examples/Mks/Sbase/Configuration.h
+++ b/Marlin/src/config/examples/Mks/Sbase/Configuration.h
@@ -1531,6 +1531,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/RepRapWorld/Megatronics/Configuration.h b/Marlin/src/config/examples/RepRapWorld/Megatronics/Configuration.h
index 37261ef4da..7206d9c070 100644
--- a/Marlin/src/config/examples/RepRapWorld/Megatronics/Configuration.h
+++ b/Marlin/src/config/examples/RepRapWorld/Megatronics/Configuration.h
@@ -1555,6 +1555,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/RigidBot/Configuration.h b/Marlin/src/config/examples/RigidBot/Configuration.h
index 6ff4cde86e..783a3d9ba2 100644
--- a/Marlin/src/config/examples/RigidBot/Configuration.h
+++ b/Marlin/src/config/examples/RigidBot/Configuration.h
@@ -1555,6 +1555,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/SCARA/Configuration.h b/Marlin/src/config/examples/SCARA/Configuration.h
index a6bf0534e3..5d1621b2c8 100644
--- a/Marlin/src/config/examples/SCARA/Configuration.h
+++ b/Marlin/src/config/examples/SCARA/Configuration.h
@@ -1567,6 +1567,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/Sanguinololu/Configuration.h b/Marlin/src/config/examples/Sanguinololu/Configuration.h
index 48b0b9e615..eb1122a7b6 100644
--- a/Marlin/src/config/examples/Sanguinololu/Configuration.h
+++ b/Marlin/src/config/examples/Sanguinololu/Configuration.h
@@ -1586,6 +1586,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/TinyBoy2/Configuration.h b/Marlin/src/config/examples/TinyBoy2/Configuration.h
index f395c4ddb3..3f57f70c1f 100644
--- a/Marlin/src/config/examples/TinyBoy2/Configuration.h
+++ b/Marlin/src/config/examples/TinyBoy2/Configuration.h
@@ -1611,6 +1611,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/Velleman/K8200/Configuration.h b/Marlin/src/config/examples/Velleman/K8200/Configuration.h
index fc7d4c5f9a..fd54f271b1 100644
--- a/Marlin/src/config/examples/Velleman/K8200/Configuration.h
+++ b/Marlin/src/config/examples/Velleman/K8200/Configuration.h
@@ -1590,6 +1590,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/Velleman/K8400/Configuration.h b/Marlin/src/config/examples/Velleman/K8400/Configuration.h
index 36ea58509e..826791d754 100644
--- a/Marlin/src/config/examples/Velleman/K8400/Configuration.h
+++ b/Marlin/src/config/examples/Velleman/K8400/Configuration.h
@@ -1555,6 +1555,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/Velleman/K8400/Dual-head/Configuration.h b/Marlin/src/config/examples/Velleman/K8400/Dual-head/Configuration.h
index 104439212a..c2973cced4 100644
--- a/Marlin/src/config/examples/Velleman/K8400/Dual-head/Configuration.h
+++ b/Marlin/src/config/examples/Velleman/K8400/Dual-head/Configuration.h
@@ -1555,6 +1555,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/adafruit/ST7565/Configuration.h b/Marlin/src/config/examples/adafruit/ST7565/Configuration.h
index 1f8b42a766..6b5d9ed2a7 100644
--- a/Marlin/src/config/examples/adafruit/ST7565/Configuration.h
+++ b/Marlin/src/config/examples/adafruit/ST7565/Configuration.h
@@ -1555,6 +1555,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration.h b/Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration.h
index 92fc3cfa9e..8709803665 100644
--- a/Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration.h
+++ b/Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration.h
@@ -1689,6 +1689,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration.h b/Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration.h
index 85795d919e..4bc281ca71 100644
--- a/Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration.h
+++ b/Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration.h
@@ -1682,6 +1682,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/delta/generic/Configuration.h b/Marlin/src/config/examples/delta/generic/Configuration.h
index e0d7553966..589f269133 100644
--- a/Marlin/src/config/examples/delta/generic/Configuration.h
+++ b/Marlin/src/config/examples/delta/generic/Configuration.h
@@ -1677,6 +1677,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/delta/kossel_mini/Configuration.h b/Marlin/src/config/examples/delta/kossel_mini/Configuration.h
index 785105864c..4925e632a8 100644
--- a/Marlin/src/config/examples/delta/kossel_mini/Configuration.h
+++ b/Marlin/src/config/examples/delta/kossel_mini/Configuration.h
@@ -1680,6 +1680,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/delta/kossel_pro/Configuration.h b/Marlin/src/config/examples/delta/kossel_pro/Configuration.h
index 81d707989f..a7d1441880 100644
--- a/Marlin/src/config/examples/delta/kossel_pro/Configuration.h
+++ b/Marlin/src/config/examples/delta/kossel_pro/Configuration.h
@@ -1680,6 +1680,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/delta/kossel_xl/Configuration.h b/Marlin/src/config/examples/delta/kossel_xl/Configuration.h
index 433ae89c83..4ff579dcb7 100644
--- a/Marlin/src/config/examples/delta/kossel_xl/Configuration.h
+++ b/Marlin/src/config/examples/delta/kossel_xl/Configuration.h
@@ -1689,6 +1689,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/gCreate/gMax1.5+/Configuration.h b/Marlin/src/config/examples/gCreate/gMax1.5+/Configuration.h
index 6da815b5ae..1c170fb248 100644
--- a/Marlin/src/config/examples/gCreate/gMax1.5+/Configuration.h
+++ b/Marlin/src/config/examples/gCreate/gMax1.5+/Configuration.h
@@ -1569,6 +1569,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/makibox/Configuration.h b/Marlin/src/config/examples/makibox/Configuration.h
index 767de39bc3..47f169eab3 100644
--- a/Marlin/src/config/examples/makibox/Configuration.h
+++ b/Marlin/src/config/examples/makibox/Configuration.h
@@ -1558,6 +1558,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/stm32f103ret6/Configuration.h b/Marlin/src/config/examples/stm32f103ret6/Configuration.h
index fe41058030..2cf32ca0c9 100644
--- a/Marlin/src/config/examples/stm32f103ret6/Configuration.h
+++ b/Marlin/src/config/examples/stm32f103ret6/Configuration.h
@@ -1558,6 +1558,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/tvrrug/Round2/Configuration.h b/Marlin/src/config/examples/tvrrug/Round2/Configuration.h
index 69fc28a7a2..87411e2c4f 100644
--- a/Marlin/src/config/examples/tvrrug/Round2/Configuration.h
+++ b/Marlin/src/config/examples/tvrrug/Round2/Configuration.h
@@ -1550,6 +1550,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/config/examples/wt150/Configuration.h b/Marlin/src/config/examples/wt150/Configuration.h
index f6ce7d8c8f..409be5e180 100644
--- a/Marlin/src/config/examples/wt150/Configuration.h
+++ b/Marlin/src/config/examples/wt150/Configuration.h
@@ -1560,6 +1560,11 @@
 //
 //#define AZSMZ_12864
 
+// Silvergate GLCD controller
+// http://github.com/android444/Silvergate
+//
+//#define SILVER_GATE_GLCD_CONTROLLER
+
 //=============================================================================
 //=============================== Extra Features ==============================
 //=============================================================================
diff --git a/Marlin/src/core/boards.h b/Marlin/src/core/boards.h
index f5b99134ed..82b46c8ab3 100644
--- a/Marlin/src/core/boards.h
+++ b/Marlin/src/core/boards.h
@@ -102,6 +102,7 @@
 #define BOARD_BQ_ZUM_MEGA_3D    503  // bq ZUM Mega 3D
 #define BOARD_ZRIB_V20          504  // zrib V2.0 control board (Chinese knock off RAMPS replica)
 #define BOARD_MAKEBOARD_MINI    431  // MakeBoard Mini v2.1.2 is a control board sold by MicroMake
+#define BOARD_SILVER_GATE       25   // Silvergate v1.0
 //ARM 32
 #define BOARD_DUE3DOM          1411  // DUE3DOM for Arduino DUE
 #define BOARD_DUE3DOM_MINI     1412  // DUE3DOM MINI for Arduino DUE
diff --git a/Marlin/src/inc/Conditionals_LCD.h b/Marlin/src/inc/Conditionals_LCD.h
index 6f6e18d541..0eeabdd99b 100644
--- a/Marlin/src/inc/Conditionals_LCD.h
+++ b/Marlin/src/inc/Conditionals_LCD.h
@@ -159,7 +159,7 @@
 
 #endif
 
-#if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) || ENABLED(LCD_FOR_MELZI)
+#if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) || ENABLED(LCD_FOR_MELZI) || ENABLED(SILVER_GATE_GLCD_CONTROLLER)
   #define DOGLCD
   #define U8GLIB_ST7920
   #define REPRAP_DISCOUNT_SMART_CONTROLLER
diff --git a/Marlin/src/lcd/dogm/ultralcd_st7565_u8glib_VIKI.h b/Marlin/src/lcd/dogm/ultralcd_st7565_u8glib_VIKI.h
index 0a2d1a7a33..f36dec8061 100644
--- a/Marlin/src/lcd/dogm/ultralcd_st7565_u8glib_VIKI.h
+++ b/Marlin/src/lcd/dogm/ultralcd_st7565_u8glib_VIKI.h
@@ -56,15 +56,15 @@
   #define CPU_ST7565_DELAY_1 DELAY_0_NOP
   #define CPU_ST7565_DELAY_2 DELAY_0_NOP
   #define CPU_ST7565_DELAY_3 DELAY_1_NOP
-#elif (MOTHERBOARD == BOARD_3DRAG) || (MOTHERBOARD == BOARD_K8200) || (MOTHERBOARD == BOARD_K8400)
+#elif MB(3DRAG) || MB(K8200) || MB(K8400)
   #define CPU_ST7565_DELAY_1 DELAY_0_NOP
   #define CPU_ST7565_DELAY_2 DELAY_3_NOP
   #define CPU_ST7565_DELAY_3 DELAY_0_NOP
-#elif (MOTHERBOARD == BOARD_MINIRAMBO)
+#elif MB(MINIRAMBO)
   #define CPU_ST7565_DELAY_1 DELAY_0_NOP
   #define CPU_ST7565_DELAY_2 DELAY_4_NOP
   #define CPU_ST7565_DELAY_3 DELAY_0_NOP
-#elif (MOTHERBOARD == BOARD_RAMBO)
+#elif MB(RAMBO)
   #define CPU_ST7565_DELAY_1 DELAY_0_NOP
   #define CPU_ST7565_DELAY_2 DELAY_0_NOP
   #define CPU_ST7565_DELAY_3 DELAY_0_NOP
diff --git a/Marlin/src/lcd/dogm/ultralcd_st7920_u8glib_rrd.h b/Marlin/src/lcd/dogm/ultralcd_st7920_u8glib_rrd.h
index 3ea51e8695..ff0057b543 100644
--- a/Marlin/src/lcd/dogm/ultralcd_st7920_u8glib_rrd.h
+++ b/Marlin/src/lcd/dogm/ultralcd_st7920_u8glib_rrd.h
@@ -52,15 +52,15 @@
   #define CPU_ST7920_DELAY_1 DELAY_0_NOP
   #define CPU_ST7920_DELAY_2 DELAY_0_NOP
   #define CPU_ST7920_DELAY_3 DELAY_1_NOP
-#elif (MOTHERBOARD == BOARD_3DRAG) || (MOTHERBOARD == BOARD_K8200) || (MOTHERBOARD == BOARD_K8400)
+#elif MB(3DRAG) || MB(K8200) || MB(K8400) || MB(SILVER_GATE)
   #define CPU_ST7920_DELAY_1 DELAY_0_NOP
   #define CPU_ST7920_DELAY_2 DELAY_3_NOP
   #define CPU_ST7920_DELAY_3 DELAY_0_NOP
-#elif (MOTHERBOARD == BOARD_MINIRAMBO)
+#elif MB(MINIRAMBO)
   #define CPU_ST7920_DELAY_1 DELAY_0_NOP
   #define CPU_ST7920_DELAY_2 DELAY_4_NOP
   #define CPU_ST7920_DELAY_3 DELAY_0_NOP
-#elif (MOTHERBOARD == BOARD_RAMBO)
+#elif MB(RAMBO)
   #define CPU_ST7920_DELAY_1 DELAY_0_NOP
   #define CPU_ST7920_DELAY_2 DELAY_0_NOP
   #define CPU_ST7920_DELAY_3 DELAY_0_NOP
diff --git a/Marlin/src/pins/pins.h b/Marlin/src/pins/pins.h
index aae7caa3b1..7bee2cdaa2 100644
--- a/Marlin/src/pins/pins.h
+++ b/Marlin/src/pins/pins.h
@@ -167,6 +167,8 @@
 
 #elif MB(MINITRONICS)
   #include "pins_MINITRONICS.h"       // ATmega1281
+#elif MB(SILVER_GATE)
+  #include "pins_SILVER_GATE.h"       // ATmega2561
 
 //
 // Sanguinololu and Derivatives - ATmega644P, ATmega1284P
diff --git a/Marlin/src/pins/pins_SILVER_GATE.h b/Marlin/src/pins/pins_SILVER_GATE.h
new file mode 100644
index 0000000000..eaacc4fb09
--- /dev/null
+++ b/Marlin/src/pins/pins_SILVER_GATE.h
@@ -0,0 +1,94 @@
+/*
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 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/>.
+ *
+ */
+
+#if !defined(__AVR_ATmega1281__) && !defined(__AVR_ATmega2561__) 
+  #error Oops!  Make sure you have 'Silvergate' selected from the 'Tools -> Boards' menu.
+#endif
+
+#ifndef BOARD_NAME
+  #define BOARD_NAME "Silver Gate"
+#endif
+
+#define LARGE_FLASH true
+
+#define X_STEP_PIN         43
+#define X_DIR_PIN          44
+#define X_ENABLE_PIN       42
+#define X_MIN_PIN          31
+#define X_MAX_PIN          34
+
+#define Y_STEP_PIN         40
+#define Y_DIR_PIN          41
+#define Y_ENABLE_PIN       39
+#define Y_MIN_PIN          32
+#define Y_MAX_PIN          35
+
+#define Z_STEP_PIN         13
+#define Z_DIR_PIN          38
+#define Z_ENABLE_PIN       14
+#define Z_MIN_PIN          33
+#define Z_MAX_PIN          36
+
+#define E0_STEP_PIN        27
+#define E0_DIR_PIN         37
+#define E0_ENABLE_PIN      45
+
+#define SDSS               16
+
+#ifndef FIL_RUNOUT_PIN
+  #define FIL_RUNOUT_PIN   34   // X_MAX unless overridden
+#endif
+
+#define FAN_PIN             5
+
+#define HEATER_0_PIN        7
+
+#define E0_AUTO_FAN_PIN     3
+#define CONTROLLER_FAN_PIN  2
+
+#define TEMP_0_PIN          7   // Analog Input
+
+#define HEATER_BED_PIN      8
+#define TEMP_BED_PIN        6
+
+#if ENABLED(DOGLCD)
+  #if ENABLED(U8GLIB_ST7920)    // SPI GLCD 12864 ST7920 
+    #define LCD_PINS_RS    30
+    #define LCD_PINS_ENABLE 20
+    #define LCD_PINS_D4    25
+    #define BEEPER_PIN     29
+    #define BTN_EN1        19
+    #define BTN_EN2        22
+    #define BTN_ENC        24
+    #define LCD_BACKLIGHT_PIN  6
+    #if ENABLED(SILVER_GATE_GLCD_CONTROLLER) 
+      #define KILL_PIN     21
+      #define HOME_PIN     28
+    #endif
+  #endif
+#endif
+
+#define SD_DETECT_PIN      15
+ 
+#define STAT_LED_RED_PIN   23
+#define STAT_LED_BLUE_PIN  26
+#define CASE_LIGHT_PIN     51
-- 
GitLab