From 595e684658d82a86993167d3451c6a02fa5692c3 Mon Sep 17 00:00:00 2001
From: Jason Smith <jason.inet@gmail.com>
Date: Thu, 2 Jan 2020 22:04:13 -0600
Subject: [PATCH] Add Leapfrog Xeed 2015 support (#16400)

---
 Marlin/src/core/boards.h                      |   1 +
 Marlin/src/pins/mega/pins_LEAPFROG_XEED2015.h | 115 ++++++++++++++++++
 Marlin/src/pins/pins.h                        |   2 +
 3 files changed, 118 insertions(+)
 create mode 100644 Marlin/src/pins/mega/pins_LEAPFROG_XEED2015.h

diff --git a/Marlin/src/core/boards.h b/Marlin/src/core/boards.h
index 875ab85b2d..4367e5ed46 100644
--- a/Marlin/src/core/boards.h
+++ b/Marlin/src/core/boards.h
@@ -138,6 +138,7 @@
 #define BOARD_GT2560_V3_A20           1318  // Geeetech GT2560 Rev B for A20(M/D)
 #define BOARD_EINSTART_S              1319  // Einstart retrofit
 #define BOARD_WANHAO_ONEPLUS          1320  // Wanhao 0ne+ i3 Mini
+#define BOARD_LEAPFROG_XEED2015       1321  // Leapfrog Xeed 2015
 
 //
 // ATmega1281, ATmega2561
diff --git a/Marlin/src/pins/mega/pins_LEAPFROG_XEED2015.h b/Marlin/src/pins/mega/pins_LEAPFROG_XEED2015.h
new file mode 100644
index 0000000000..dba2241c4a
--- /dev/null
+++ b/Marlin/src/pins/mega/pins_LEAPFROG_XEED2015.h
@@ -0,0 +1,115 @@
+/**
+ * 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/>.
+ *
+ */
+#pragma once
+
+/**
+ * Leapfrog Xeed Driver board pin assignments
+ *
+ * This board is used by other Leapfrog printers in addition to the Xeed,
+ * such as the Creatr HS and Bolt. The pin assignments vary wildly between
+ * printer models. As such this file is currently specific to the Xeed.
+ */
+
+#ifndef __AVR_ATmega2560__
+  #error "Oops! Select 'Mega 2560' in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Leapfrog Xeed 2015"
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN         47   // 'X Min'
+#define Y_STOP_PIN         48   // 'Y Min'
+#define Z_STOP_PIN         49   // 'Z Min'
+
+//
+// Steppers
+// The Xeed utilizes three Z-axis motors, which use the X, Y, and Z stepper connectors
+// on the board. The X and Y steppers use external drivers, attached to signal-level
+// Y-axis and X-axis connectors on the board, which map to distinct CPU pins from
+// the on-board X/Y stepper drivers.
+//
+
+// X-axis signal-level connector
+#define X_STEP_PIN         65
+#define X_DIR_PIN          64
+#define X_ENABLE_PIN       66   // Not actually used on Xeed, could be repurposed
+
+// Y-axis signal-level connector
+#define Y_STEP_PIN         23
+#define Y_DIR_PIN          22
+#define Y_ENABLE_PIN       24   // Not actually used on Xeed, could be repurposed
+
+// ZMOT connector (Front Right Z Motor)
+#define Z_STEP_PIN         31
+#define Z_DIR_PIN          32
+#define Z_ENABLE_PIN       30
+
+// XMOT connector (Rear Z Motor)
+#define Z2_STEP_PIN        28
+#define Z2_DIR_PIN         63
+#define Z2_ENABLE_PIN      29
+
+// YMOT connector (Front Left Z Motor)
+#define Z3_STEP_PIN        14
+#define Z3_DIR_PIN         15
+#define Z3_ENABLE_PIN      39
+
+// EMOT2 connector
+#define E0_STEP_PIN        37
+#define E0_DIR_PIN         40
+#define E0_ENABLE_PIN      36
+
+// EMOT connector
+#define E1_STEP_PIN        34
+#define E1_DIR_PIN         35
+#define E1_ENABLE_PIN      33
+
+//
+// Filament runout
+//
+#define FIL_RUNOUT_PIN     42   // ROT2 Connector
+#define FIL_RUNOUT2_PIN    44   // ROT1 Connector
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN         15   // T3 Connector
+#define TEMP_1_PIN         13   // T1 Connector
+#define TEMP_BED_PIN       14   // BED Connector (Between T1 and T3)
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN        8   // Misc Connector, pins 3 and 4 (Out2)
+#define HEATER_1_PIN        9   // Misc Connector, pins 5 and 6 (Out3)
+#define HEATER_BED_PIN      6   // Misc Connector, pins 9(-) and 10(+) (OutA)
+
+#define FAN_PIN            10   // Misc Connector, pins 7(-) and 8 (+) (Out4)
+
+#define LED_PIN            13
+
+#define SOL1_PIN            7   // Misc Connector, pins 1(-) and 2(+) (Out1)
+
+// Door Closed Sensor
+//#define DOOR_PIN           45 // HM1 Connector
diff --git a/Marlin/src/pins/pins.h b/Marlin/src/pins/pins.h
index 441d869fd2..9dcbce87f6 100644
--- a/Marlin/src/pins/pins.h
+++ b/Marlin/src/pins/pins.h
@@ -247,6 +247,8 @@
   #include "mega/pins_OVERLORD.h"               // ATmega2560                             env:megaatmega2560
 #elif MB(HJC2560C_REV2)
   #include "mega/pins_HJC2560C_REV2.h"          // ATmega2560                             env:megaatmega2560
+#elif MB(LEAPFROG_XEED2015)
+  #include "mega/pins_LEAPFROG_XEED2015.h"      // ATmega2560                             env:megaatmega2560
 
 //
 // ATmega1281, ATmega2561
-- 
GitLab