Skip to content

Commit

Permalink
Add MKS Robin Pro, MKS Robin Lite3 (#16163)
Browse files Browse the repository at this point in the history
  • Loading branch information
MS1987 authored and thinkyhead committed Dec 11, 2019
1 parent 1c48817 commit 31fdaea
Show file tree
Hide file tree
Showing 19 changed files with 5,073 additions and 57 deletions.
27 changes: 15 additions & 12 deletions Marlin/src/core/boards.h
Original file line number Diff line number Diff line change
Expand Up @@ -269,18 +269,21 @@
#define BOARD_MKS_ROBIN_MINI 4007 // MKS Robin Mini (STM32F103VET6)
#define BOARD_MKS_ROBIN_NANO 4008 // MKS Robin Nano (STM32F103VET6)
#define BOARD_MKS_ROBIN_LITE 4009 // MKS Robin Lite/Lite2 (STM32F103RCT6)
#define BOARD_BIGTREE_SKR_MINI_V1_1 4010 // BigTreeTech SKR Mini v1.1 (STM32F103RC)
#define BOARD_BTT_SKR_MINI_E3_V1_0 4011 // BigTreeTech SKR Mini E3 (STM32F103RC)
#define BOARD_BTT_SKR_MINI_E3_V1_2 4012 // BigTreeTech SKR Mini E3 V1.2 (STM32F103RC)
#define BOARD_BIGTREE_SKR_E3_DIP 4013 // BigTreeTech SKR E3 DIP V1.0 (STM32F103RC / STM32F103RE)
#define BOARD_JGAURORA_A5S_A1 4014 // JGAurora A5S A1 (STM32F103ZET6)
#define BOARD_FYSETC_AIO_II 4015 // FYSETC AIO_II
#define BOARD_FYSETC_CHEETAH 4016 // FYSETC Cheetah
#define BOARD_FYSETC_CHEETAH_V12 4017 // FYSETC Cheetah V1.2
#define BOARD_LONGER3D_LK 4018 // Alfawise U20/U20+/U30 (Longer3D LK1/2) / STM32F103VET6
#define BOARD_GTM32_MINI 4019 // STM32F103VET6 controller
#define BOARD_GTM32_MINI_A30 4020 // STM32F103VET6 controller
#define BOARD_GTM32_REV_B 4021 // STM32F103VET6 controller
#define BOARD_MKS_ROBIN_LITE3 4010 // MKS Robin Lite3 (STM32F103RCT6)
#define BOARD_MKS_ROBIN_PRO 4011 // MKS Robin Pro (STM32F103ZET6)
#define BOARD_BIGTREE_SKR_MINI_V1_1 4012 // BigTreeTech SKR Mini v1.1 (STM32F103RC)
#define BOARD_BTT_SKR_MINI_E3_V1_0 4013 // BigTreeTech SKR Mini E3 (STM32F103RC)
#define BOARD_BTT_SKR_MINI_E3_V1_2 4014 // BigTreeTech SKR Mini E3 V1.2 (STM32F103RC)
#define BOARD_BIGTREE_SKR_E3_DIP 4015 // BigTreeTech SKR E3 DIP V1.0 (STM32F103RC / STM32F103RE)
#define BOARD_JGAURORA_A5S_A1 4016 // JGAurora A5S A1 (STM32F103ZET6)
#define BOARD_FYSETC_AIO_II 4017 // FYSETC AIO_II
#define BOARD_FYSETC_CHEETAH 4018 // FYSETC Cheetah
#define BOARD_FYSETC_CHEETAH_V12 4019 // FYSETC Cheetah V1.2
#define BOARD_LONGER3D_LK 4020 // Alfawise U20/U20+/U30 (Longer3D LK1/2) / STM32F103VET6
#define BOARD_GTM32_MINI 4021 // STM32F103VET6 controller
#define BOARD_GTM32_MINI_A30 4022 // STM32F103VET6 controller
#define BOARD_GTM32_REV_B 4023 // STM32F103VET6 controller


//
// ARM Cortex-M4F
Expand Down
3 changes: 3 additions & 0 deletions Marlin/src/inc/Conditionals_post.h
Original file line number Diff line number Diff line change
Expand Up @@ -259,6 +259,9 @@
#elif ENABLED(AZSMZ_12864)
#define _LCD_CONTRAST_MIN 120
#define _LCD_CONTRAST_INIT 190
#elif ENABLED(MKS_LCD12864B)
#define _LCD_CONTRAST_MIN 120
#define _LCD_CONTRAST_INIT 205
#elif ENABLED(MKS_MINI_12864)
#define _LCD_CONTRAST_MIN 120
#define _LCD_CONTRAST_INIT 195
Expand Down
71 changes: 37 additions & 34 deletions Marlin/src/lcd/dogm/ultralcd_DOGM.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -244,48 +244,51 @@ bool MarlinUI::detected() { return true; }

// Initialize or re-initialize the LCD
void MarlinUI::init_lcd() {
#if DISABLED(MKS_LCD12864B)

#if PIN_EXISTS(LCD_BACKLIGHT)
OUT_WRITE(LCD_BACKLIGHT_PIN, (
#if ENABLED(DELAYED_BACKLIGHT_INIT)
LOW // Illuminate after reset
#else
HIGH // Illuminate right away
#if PIN_EXISTS(LCD_BACKLIGHT)
OUT_WRITE(LCD_BACKLIGHT_PIN, (
#if ENABLED(DELAYED_BACKLIGHT_INIT)
LOW // Illuminate after reset
#else
HIGH // Illuminate right away
#endif
));
#endif

#if EITHER(MKS_12864OLED, MKS_12864OLED_SSD1306)
SET_OUTPUT(LCD_PINS_DC);
#ifndef LCD_RESET_PIN
#define LCD_RESET_PIN LCD_PINS_RS
#endif
));
#endif
#endif

#if EITHER(MKS_12864OLED, MKS_12864OLED_SSD1306)
SET_OUTPUT(LCD_PINS_DC);
#ifndef LCD_RESET_PIN
#define LCD_RESET_PIN LCD_PINS_RS
#if PIN_EXISTS(LCD_RESET)
// Perform a clean hardware reset with needed delays
OUT_WRITE(LCD_RESET_PIN, LOW);
_delay_ms(5);
WRITE(LCD_RESET_PIN, HIGH);
_delay_ms(5);
u8g.begin();
#endif
#endif

#if PIN_EXISTS(LCD_RESET)
// Perform a clean hardware reset with needed delays
OUT_WRITE(LCD_RESET_PIN, LOW);
_delay_ms(5);
WRITE(LCD_RESET_PIN, HIGH);
_delay_ms(5);
u8g.begin();
#endif
#if PIN_EXISTS(LCD_BACKLIGHT) && ENABLED(DELAYED_BACKLIGHT_INIT)
WRITE(LCD_BACKLIGHT_PIN, HIGH);
#endif

#if PIN_EXISTS(LCD_BACKLIGHT) && ENABLED(DELAYED_BACKLIGHT_INIT)
WRITE(LCD_BACKLIGHT_PIN, HIGH);
#endif
#if HAS_LCD_CONTRAST
refresh_contrast();
#endif

#if HAS_LCD_CONTRAST
refresh_contrast();
#endif
#if ENABLED(LCD_SCREEN_ROT_90)
u8g.setRot90();
#elif ENABLED(LCD_SCREEN_ROT_180)
u8g.setRot180();
#elif ENABLED(LCD_SCREEN_ROT_270)
u8g.setRot270();
#endif

#if ENABLED(LCD_SCREEN_ROT_90)
u8g.setRot90();
#elif ENABLED(LCD_SCREEN_ROT_180)
u8g.setRot180();
#elif ENABLED(LCD_SCREEN_ROT_270)
u8g.setRot270();
#endif
#endif // !MKS_LCD12864B

uxg_SetUtf8Fonts(g_fontinfo, COUNT(g_fontinfo));
}
Expand Down
5 changes: 4 additions & 1 deletion Marlin/src/pins/pins.h
Original file line number Diff line number Diff line change
Expand Up @@ -493,6 +493,10 @@
#include "stm32/pins_FYSETC_CHEETAH_V12.h" // STM32F1 env:STM32F103RC_fysetc
#elif MB(LONGER3D_LK)
#include "stm32/pins_LONGER3D_LK.h" // STM32F1 env:STM32F103VE_longer
#elif MB(MKS_ROBIN_LITE3)
#include "stm32/pins_MKS_ROBIN_LITE3.h" // STM32F1 env:mks_robin_lite3
#elif MB(MKS_ROBIN_PRO)
#include "stm32/pins_MKS_ROBIN_PRO.h" // STM32F1 env:mks_robin_pro

//
// ARM Cortex-M4F
Expand Down Expand Up @@ -531,7 +535,6 @@
#include "stm32/pins_VAKE403D.h" // STM32F4 env:STM32F4
#elif MB(FYSETC_S6)
#include "stm32/pins_FYSETC_S6.h" // STM32F4 env:FYSETC_S6

//
// ARM Cortex M7
//
Expand Down
2 changes: 1 addition & 1 deletion Marlin/src/pins/ramps/pins_RAMPS.h
Original file line number Diff line number Diff line change
Expand Up @@ -593,7 +593,7 @@
//#define LCD_SCREEN_ROT_270

// not connected to a pin
#define LCD_BACKLIGHT_PIN 65 // backlight LED on A11/D65
#define LCD_BACKLIGHT_PIN -1 // 65 (MKS mini12864 can't adjust backlight by software!)

#define BTN_EN1 31
#define BTN_EN2 33
Expand Down
6 changes: 2 additions & 4 deletions Marlin/src/pins/stm32/pins_MKS_ROBIN_LITE.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,8 @@

#ifndef __STM32F1__
#error "Oops! Select an STM32F1 board in 'Tools > Board.'"
#endif

#if HOTENDS > 1 || E_STEPPERS > 1
#error "MKS Robin Lite supports up to 1 hotends / E-steppers. Comment out this line to continue."
#elif HOTENDS > 1 || E_STEPPERS > 1
#error "MKS Robin Lite supports only 1 hotend / E-stepper. Comment out this line to continue."
#endif

#ifndef BOARD_INFO_NAME
Expand Down
153 changes: 153 additions & 0 deletions Marlin/src/pins/stm32/pins_MKS_ROBIN_LITE3.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
/**
* 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

/**
* MKS Robin Lite 3 (STM32F103RCT6) board pin assignments
*/

#ifndef __STM32F1__
#error "Oops! Select an STM32F1 board in 'Tools > Board.'"
#elif HOTENDS > 2 || E_STEPPERS > 2
#error "MKS Robin Lite3 supports up to 2 hotends / E-steppers. Comment out this line to continue."
#endif

#ifndef BOARD_INFO_NAME
#define BOARD_INFO_NAME "MKS Robin Lite3"
#endif
#define BOARD_WEBSITE_URL "github.com/makerbase-mks"

//#define DISABLE_DEBUG
#define DISABLE_JTAG
#define ENABLE_SPI2

//
// Servos
//
#define SERVO0_PIN PA3

//
// Limit Switches
//
#define X_STOP_PIN PA12
#define Y_STOP_PIN PA11
#define Z_MIN_PIN PC6
#define Z_MAX_PIN PB1

//
// Steppers
//
#define X_STEP_PIN PC0
#define X_DIR_PIN PB2
#define X_ENABLE_PIN PC13

#define Y_STEP_PIN PC2
#define Y_DIR_PIN PB9
#define Y_ENABLE_PIN PB12

#define Z_STEP_PIN PB7
#define Z_DIR_PIN PB6
#define Z_ENABLE_PIN PB8

#define E0_STEP_PIN PB4
#define E0_DIR_PIN PB3
#define E0_ENABLE_PIN PB5

#define E1_STEP_PIN PC12
#define E1_DIR_PIN PC11
#define E1_ENABLE_PIN PD2

//
// Heaters 0,1 / Fans / Bed
//
#define HEATER_0_PIN PC9
#define HEATER_1_PIN PC7
#define FAN_PIN PA8
#define HEATER_BED_PIN PC8

//
// Temperature Sensors
//
#define TEMP_BED_PIN PA1 //TB
#define TEMP_0_PIN PA0 //TH1
#define TEMP_1_PIN PA2 //TH2

#define FIL_RUNOUT_PIN PB10 // MT_DET

//
// LCD Pins
//
#if HAS_SPI_LCD

#define BEEPER_PIN PC1
#define BTN_ENC PC3
#define LCD_PINS_ENABLE PA4
#define LCD_PINS_RS PA5
#define BTN_EN1 PB11
#define BTN_EN2 PB0

// MKS MINI12864 and MKS LCD12864B; If using MKS LCD12864A (Need to remove RPK2 resistor)
#if ENABLED(MKS_MINI_12864)

#define LCD_BACKLIGHT_PIN -1
#define LCD_RESET_PIN -1
#define DOGLCD_A0 PC4
#define DOGLCD_CS PA7
#define DOGLCD_SCK PB13
#define DOGLCD_MOSI PB15

// Required for MKS_MINI_12864 with this board
#define MKS_LCD12864B
#undef SHOW_BOOTSCREEN

#else // !MKS_MINI_12864

#define LCD_PINS_D4 PA6
#if ENABLED(ULTIPANEL)
#define LCD_PINS_D5 PA7
#define LCD_PINS_D6 PC4
#define LCD_PINS_D7 PC5
#endif

#endif // !MKS_MINI_12864

#endif // HAS_SPI_LCD

//
// SD Card
//
#define ENABLE_SPI2
#define SD_DETECT_PIN PC10
#define SCK_PIN PB13
#define MISO_PIN PB14
#define MOSI_PIN PB15
#define SS_PIN PA15

#ifndef ST7920_DELAY_1
#define ST7920_DELAY_1 DELAY_NS(125)
#endif
#ifndef ST7920_DELAY_2
#define ST7920_DELAY_2 DELAY_NS(125)
#endif
#ifndef ST7920_DELAY_3
#define ST7920_DELAY_3 DELAY_NS(125)
#endif
6 changes: 2 additions & 4 deletions Marlin/src/pins/stm32/pins_MKS_ROBIN_MINI.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,8 @@
//
// Limit Switches
//
#define X_MIN_PIN PA15
#define X_MAX_PIN PA15
#define Y_MIN_PIN PA12
#define Y_MAX_PIN PA12
#define X_STOP_PIN PA15
#define Y_STOP_PIN PA12
#define Z_MIN_PIN PA11
#define Z_MAX_PIN PC4

Expand Down
2 changes: 1 addition & 1 deletion Marlin/src/pins/stm32/pins_MKS_ROBIN_NANO.h
Original file line number Diff line number Diff line change
Expand Up @@ -134,4 +134,4 @@
#define TOUCH_MISO_PIN PB14 // SPI2_MISO
#define TOUCH_MOSI_PIN PB15 // SPI2_MOSI
#endif
#endif
#endif
Loading

0 comments on commit 31fdaea

Please sign in to comment.