Skip to content

Commit

Permalink
BigTreeTech SKR v1.4 support (MarlinFirmware#16236)
Browse files Browse the repository at this point in the history
  • Loading branch information
bigtreetech authored and thinkyhead committed Dec 19, 2019
1 parent 1bad8f1 commit bbe0ffb
Show file tree
Hide file tree
Showing 12 changed files with 328 additions and 36 deletions.
2 changes: 1 addition & 1 deletion Marlin/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ else ifeq ($(HARDWARE_MOTHERBOARD),1109)
else ifeq ($(HARDWARE_MOTHERBOARD),1110)
# zrib V2.0 control board (Chinese knock off RAMPS replica)
else ifeq ($(HARDWARE_MOTHERBOARD),1111)
# Bigtreetech or BIQU KFB2.0
# BigTreeTech or BIQU KFB2.0
else ifeq ($(HARDWARE_MOTHERBOARD),1112)
# Felix 2.0+ Electronics Board (RAMPS like)
else ifeq ($(HARDWARE_MOTHERBOARD),1113)
Expand Down
19 changes: 10 additions & 9 deletions Marlin/src/core/boards.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@
#define BOARD_MKS_BASE_HEROIC 1108 // MKS BASE 1.0 with Heroic HR4982 stepper drivers
#define BOARD_MKS_GEN_13 1109 // MKS GEN v1.3 or 1.4
#define BOARD_MKS_GEN_L 1110 // MKS GEN L
#define BOARD_KFB_2 1111 // Bigtreetech or BIQU KFB2.0
#define BOARD_KFB_2 1111 // BigTreeTech or BIQU KFB2.0
#define BOARD_ZRIB_V20 1112 // zrib V2.0 control board (Chinese knock off RAMPS replica)
#define BOARD_FELIX2 1113 // Felix 2.0+ Electronics Board (RAMPS like)
#define BOARD_RIGIDBOARD 1114 // Invent-A-Part RigidBoard
Expand Down Expand Up @@ -208,14 +208,15 @@
#define BOARD_COHESION3D_MINI 2011 // Cohesion3D Mini
#define BOARD_SMOOTHIEBOARD 2012 // Smoothieboard
#define BOARD_AZTEEG_X5_MINI_WIFI 2013 // Azteeg X5 Mini Wifi (Power outputs: Hotend0, Bed, Fan)
#define BOARD_BIGTREE_SKR_V1_1 2014 // BIGTREE SKR_V1.1 (Power outputs: Hotend0,Hotend1, Fan, Bed)
#define BOARD_BIQU_B300_V1_0 2015 // BIQU B300_V1.0 (Power outputs: Hotend0, Fan, Bed, SPI Driver)
#define BOARD_BIGTREE_SKR_V1_3 2016 // BIGTREE SKR_V1.3 (Power outputs: Hotend0, Hotend1, Fan, Bed)
#define BOARD_AZTEEG_X5_MINI 2017 // Azteeg X5 Mini (Power outputs: Hotend0, Bed, Fan)
#define BOARD_MKS_SGEN 2018 // MKS-SGen (Power outputs: Hotend0, Hotend1, Bed, Fan)
#define BOARD_MKS_SGEN_L 2019 // MKS-SGen-L (Power outputs: Hotend0, Hotend1, Bed, Fan)
#define BOARD_TH3D_EZBOARD 2020 // TH3D EZBoard v1.0
#define BOARD_GMARSH_X6_REV1 2021 // GMARSH X6 board, revision 1 prototype
#define BOARD_BIQU_B300_V1_0 2014 // BIQU B300_V1.0 (Power outputs: Hotend0, Fan, Bed, SPI Driver)
#define BOARD_AZTEEG_X5_MINI 2015 // Azteeg X5 Mini (Power outputs: Hotend0, Bed, Fan)
#define BOARD_MKS_SGEN 2016 // MKS-SGen (Power outputs: Hotend0, Hotend1, Bed, Fan)
#define BOARD_MKS_SGEN_L 2017 // MKS-SGen-L (Power outputs: Hotend0, Hotend1, Bed, Fan)
#define BOARD_TH3D_EZBOARD 2018 // TH3D EZBoard v1.0
#define BOARD_GMARSH_X6_REV1 2019 // GMARSH X6 board, revision 1 prototype
#define BOARD_BIGTREE_SKR_V1_1 2020 // BigTreeTech SKR v1.1 (Power outputs: Hotend0, Hotend1, Fan, Bed)
#define BOARD_BIGTREE_SKR_V1_3 2021 // BigTreeTech SKR v1.3 (Power outputs: Hotend0, Hotend1, Fan, Bed)
#define BOARD_BIGTREE_SKR_V1_4 2022 // BigTreeTech SKR v1.4 (Power outputs: Hotend0, Hotend1, Fan, Bed)

//
// SAM3X8E ARM Cortex M3
Expand Down
1 change: 0 additions & 1 deletion Marlin/src/module/scara.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,6 @@ void forward_kinematics_SCARA(const float &a, const float &b) {
void inverse_kinematics(const xyz_pos_t &raw) {

#if ENABLED(MORGAN_SCARA)

/**
* Morgan SCARA Inverse Kinematics. Results in 'delta'.
*
Expand Down
25 changes: 18 additions & 7 deletions Marlin/src/pins/lpc1768/pins_BTT_SKR.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,18 +31,29 @@
//
// Steppers
//

#define E1_STEP_PIN P0_01
#define E1_DIR_PIN P0_00
#define E1_ENABLE_PIN P0_10
#ifndef E1_STEP_PIN
#define E1_STEP_PIN P0_01
#endif
#ifndef E1_DIR_PIN
#define E1_DIR_PIN P0_00
#endif
#ifndef E1_ENABLE_PIN
#define E1_ENABLE_PIN P0_10
#endif

//
// Temperature Sensors
// 3.3V max when defined as an analog input
//
#define TEMP_BED_PIN P0_23_A0 // A0 (T0) - (67) - TEMP_BED_PIN
#define TEMP_0_PIN P0_24_A1 // A1 (T1) - (68) - TEMP_0_PIN
#define TEMP_1_PIN P0_25_A2 // A2 (T2) - (69) - TEMP_1_PIN
#ifndef TEMP_0_PIN
#define TEMP_0_PIN P0_24_A1 // A1 (T1) - (68) - TEMP_0_PIN
#endif
#ifndef TEMP_1_PIN
#define TEMP_1_PIN P0_25_A2 // A2 (T2) - (69) - TEMP_1_PIN
#endif
#ifndef TEMP_BED_PIN
#define TEMP_BED_PIN P0_23_A0 // A0 (T0) - (67) - TEMP_BED_PIN
#endif

//
// Heaters / Fans
Expand Down
280 changes: 280 additions & 0 deletions Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,280 @@
/**
* 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

#define BOARD_INFO_NAME "BIGTREE SKR 1.4"

//
// SD Connection
//
#ifndef SDCARD_CONNECTION
#define SDCARD_CONNECTION LCD
#endif

//
// Servos
//
#define SERVO0_PIN P2_00

//
// Limit Switches
//
#define X_STOP_PIN P1_29
#define Y_STOP_PIN P1_28
#define Z_STOP_PIN P1_27

//
// Z Probe (when not Z_MIN_PIN)
//
#ifndef Z_MIN_PROBE_PIN
#define Z_MIN_PROBE_PIN P0_10
#endif

//
// Filament Runout Sensor
//
#define FIL_RUNOUT_PIN P1_26
#define FIL_RUNOUT2_PIN P1_25

//
// Power Supply Control
//
#ifndef PS_ON_PIN
#define PS_ON_PIN P1_00
#endif

//
// Power Loss Detection
//
#ifndef POWER_LOSS_PIN
#define POWER_LOSS_PIN P1_00
#endif

//
// Steppers
//
#define X_STEP_PIN P2_02
#define X_DIR_PIN P2_06
#define X_ENABLE_PIN P2_01
#ifndef X_CS_PIN
#define X_CS_PIN P1_10
#endif

#define Y_STEP_PIN P0_19
#define Y_DIR_PIN P0_20
#define Y_ENABLE_PIN P2_08
#ifndef Y_CS_PIN
#define Y_CS_PIN P1_09
#endif

#define Z_STEP_PIN P0_22
#define Z_DIR_PIN P2_11
#define Z_ENABLE_PIN P0_21
#ifndef Z_CS_PIN
#define Z_CS_PIN P1_08
#endif

#define E0_STEP_PIN P2_13
#define E0_DIR_PIN P0_11
#define E0_ENABLE_PIN P2_12
#ifndef E0_CS_PIN
#define E0_CS_PIN P1_04
#endif

#define E1_STEP_PIN P1_15
#define E1_DIR_PIN P1_14
#define E1_ENABLE_PIN P1_16
#ifndef E1_CS_PIN
#define E1_CS_PIN P1_01
#endif

#define TEMP_1_PIN P0_23_A0 // A2 (T2) - (69) - TEMP_1_PIN
#define TEMP_BED_PIN P0_25_A2 // A0 (T0) - (67) - TEMP_BED_PIN

//
// Include common SKR pins
//
#include "pins_BTT_SKR.h"

//
// Software SPI pins for TMC2130 stepper drivers
//
#if ENABLED(TMC_USE_SW_SPI)
#ifndef TMC_SW_MOSI
#define TMC_SW_MOSI P1_17
#endif
#ifndef TMC_SW_MISO
#define TMC_SW_MISO P0_05
#endif
#ifndef TMC_SW_SCK
#define TMC_SW_SCK P0_04
#endif
#endif

#if HAS_TMC220x
/**
* TMC2208/TMC2209 stepper drivers
*
* Hardware serial communication ports.
* If undefined software serial is used according to the pins below
*/
//#define X_HARDWARE_SERIAL Serial
//#define X2_HARDWARE_SERIAL Serial1
//#define Y_HARDWARE_SERIAL Serial1
//#define Y2_HARDWARE_SERIAL Serial1
//#define Z_HARDWARE_SERIAL Serial1
//#define Z2_HARDWARE_SERIAL Serial1
//#define E0_HARDWARE_SERIAL Serial1
//#define E1_HARDWARE_SERIAL Serial1
//#define E2_HARDWARE_SERIAL Serial1
//#define E3_HARDWARE_SERIAL Serial1
//#define E4_HARDWARE_SERIAL Serial1

//
// Software serial
//
#define X_SERIAL_TX_PIN P1_10
#define X_SERIAL_RX_PIN P1_10

#define Y_SERIAL_TX_PIN P1_09
#define Y_SERIAL_RX_PIN P1_09

#define Z_SERIAL_TX_PIN P1_08
#define Z_SERIAL_RX_PIN P1_08

#define E0_SERIAL_TX_PIN P1_04
#define E0_SERIAL_RX_PIN P1_04

#define E1_SERIAL_TX_PIN P1_01
#define E1_SERIAL_RX_PIN P1_01

#define Z2_SERIAL_TX_PIN P1_01
#define Z2_SERIAL_RX_PIN P1_01

// Reduce baud rate to improve software serial reliability
#define TMC_BAUD_RATE 19200
#endif

//
// SD Connection
//
#if SD_CONNECTION_IS(LCD)
#define SS_PIN P0_16
#endif

/**
* _____ _____
* NC | · · | GND 5V | · · | GND
* RESET | · · | 1.31(SD_DETECT) (LCD_D7) 1.23 | · · | 1.22 (LCD_D6)
* (MOSI)0.18 | · · | 3.25(BTN_EN2) (LCD_D5) 1.21 | · · | 1.20 (LCD_D4)
* (SD_SS)0.16 | · · | 3.26(BTN_EN1) (LCD_RS) 1.19 | · · | 1.18 (LCD_EN)
* (SCK)0.15 | · · | 0.17(MISO) (BTN_ENC) 0.28 | · · | 1.30 (BEEPER)
* ----- -----
* EXP2 EXP1
*/
#if HAS_SPI_LCD
#define BTN_ENC P0_28 // (58) open-drain

#if ENABLED(CR10_STOCKDISPLAY)
#define LCD_PINS_RS P1_22

#define BTN_EN1 P1_18
#define BTN_EN2 P1_20

#define LCD_PINS_ENABLE P1_23
#define LCD_PINS_D4 P1_21

#else
#define LCD_PINS_RS P1_19

#define BTN_EN1 P3_26 // (31) J3-2 & AUX-4
#define BTN_EN2 P3_25 // (33) J3-4 & AUX-4

#define LCD_PINS_ENABLE P1_18
#define LCD_PINS_D4 P1_20

#define LCD_SDSS P0_16 // (16) J3-7 & AUX-4
#define SD_DETECT_PIN P1_31 // (49) (NOT 5V tolerant)

#if ENABLED(FYSETC_MINI_12864)
#define DOGLCD_CS P1_18
#define DOGLCD_A0 P1_19
#define DOGLCD_SCK P0_15
#define DOGLCD_MOSI P0_18

#define LCD_BACKLIGHT_PIN -1

#define FORCE_SOFT_SPI // Use this if default of hardware SPI causes display problems
// results in LCD soft SPI mode 3, SD soft SPI mode 0

#define LCD_RESET_PIN P1_20 // Must be high or open for LCD to operate normally.

#if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
#ifndef RGB_LED_R_PIN
#define RGB_LED_R_PIN P1_21
#endif
#ifndef RGB_LED_G_PIN
#define RGB_LED_G_PIN P1_22
#endif
#ifndef RGB_LED_B_PIN
#define RGB_LED_B_PIN P1_23
#endif
#elif ENABLED(FYSETC_MINI_12864_2_1)
#define NEOPIXEL_PIN P1_21
#endif

#else // !FYSETC_MINI_12864

#if ENABLED(MKS_MINI_12864)
#define DOGLCD_CS P1_21
#define DOGLCD_A0 P1_22
#define DOGLCD_SCK P0_15
#define DOGLCD_MOSI P0_18
#define FORCE_SOFT_SPI
#endif

#if ENABLED(ULTIPANEL)
#define LCD_PINS_D5 P1_21
#define LCD_PINS_D6 P1_22
#define LCD_PINS_D7 P1_23
#endif

#endif // !FYSETC_MINI_12864

#endif

#endif // HAS_SPI_LCD

//
// Neopixel LED
//
#ifndef NEOPIXEL_PIN
#define NEOPIXEL_PIN P1_24
#endif

/**
* Special pins
* P1_30 (37) (NOT 5V tolerant)
* P1_31 (49) (NOT 5V tolerant)
* P0_27 (57) (Open collector)
* P0_28 (58) (Open collector)
*/
10 changes: 6 additions & 4 deletions Marlin/src/pins/pins.h
Original file line number Diff line number Diff line change
Expand Up @@ -354,14 +354,16 @@
#include "lpc1768/pins_BIQU_BQ111_A4.h" // LPC1768 env:LPC1768
#elif MB(SELENA_COMPACT)
#include "lpc1768/pins_SELENA_COMPACT.h" // LPC1768 env:LPC1768
#elif MB(BIGTREE_SKR_V1_1)
#include "lpc1768/pins_BTT_SKR_V1_1.h" // LPC1768 env:LPC1768
#elif MB(BIQU_B300_V1_0)
#include "lpc1768/pins_BIQU_B300_V1.0.h" // LPC1768 env:LPC1768
#elif MB(BIGTREE_SKR_V1_3)
#include "lpc1768/pins_BTT_SKR_V1_3.h" // LPC1768 env:LPC1768
#elif MB(GMARSH_X6_REV1)
#include "lpc1768/pins_GMARSH_X6_REV1.h" // LPC1768 env:LPC1768
#elif MB(BIGTREE_SKR_V1_1)
#include "lpc1768/pins_BTT_SKR_V1_1.h" // LPC1768 env:LPC1768
#elif MB(BIGTREE_SKR_V1_3)
#include "lpc1768/pins_BTT_SKR_V1_3.h" // LPC1768 env:LPC1768
#elif MB(BIGTREE_SKR_V1_4)
#include "lpc1768/pins_BTT_SKR_V1_4.h" // LPC1768 env:LPC1768

//
// LPC1769 ARM Cortex M3
Expand Down
Loading

0 comments on commit bbe0ffb

Please sign in to comment.