Skip to content

Commit

Permalink
✨ MKS Robin Nano V1.3 (STM32F407VET6) (MarlinFirmware#22749)
Browse files Browse the repository at this point in the history
  • Loading branch information
mks-viva authored and AlexColello committed Jan 14, 2022
1 parent 214bccb commit 00d9488
Show file tree
Hide file tree
Showing 9 changed files with 292 additions and 196 deletions.
1 change: 1 addition & 0 deletions Marlin/src/core/boards.h
Original file line number Diff line number Diff line change
Expand Up @@ -401,6 +401,7 @@
#define BOARD_FYSETC_CHEETAH_V20 4231 // FYSETC Cheetah V2.0
#define BOARD_TH3D_EZBOARD_LITE_V2 4232 // TH3D EZBoard Lite v2.0
#define BOARD_INDEX_REV03 4233 // Index PnP Controller REV03 (STM32F407VET6/VGT6)
#define BOARD_MKS_ROBIN_NANO_V1_3_F4 4234 // MKS Robin Nano V1.3 and MKS Robin Nano-S V1.3 (STM32F407VET6)

//
// ARM Cortex M7
Expand Down
9 changes: 2 additions & 7 deletions Marlin/src/lcd/extui/mks_ui/draw_ui.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -347,13 +347,8 @@ void tft_style_init() {
style_num_key_rel.body.grad_color = LV_COLOR_KEY_BACKGROUND;
style_num_key_rel.text.color = LV_COLOR_TEXT;
style_num_key_rel.text.sel_color = LV_COLOR_TEXT;
#if HAS_SPI_FLASH_FONT
style_num_key_pre.text.font = &gb2312_puhui32;
style_num_key_rel.text.font = &gb2312_puhui32;
#else
style_num_key_pre.text.font = LV_FONT_DEFAULT;
style_num_key_rel.text.font = LV_FONT_DEFAULT;
#endif
style_num_key_pre.text.font = TERN(HAS_SPI_FLASH_FONT, &gb2312_puhui32, LV_FONT_DEFAULT);
style_num_key_rel.text.font = TERN(HAS_SPI_FLASH_FONT, &gb2312_puhui32, LV_FONT_DEFAULT);

style_num_key_pre.line.width = 0;
style_num_key_rel.line.width = 0;
Expand Down
4 changes: 1 addition & 3 deletions Marlin/src/lcd/extui/mks_ui/tft_lvgl_configuration.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -192,9 +192,7 @@ void tft_lvgl_init() {

systick_attach_callback(SysTick_Callback);

#if HAS_SPI_FLASH_FONT
init_gb2312_font();
#endif
TERN_(HAS_SPI_FLASH_FONT, init_gb2312_font());

tft_style_init();
filament_pin_setup();
Expand Down
2 changes: 2 additions & 0 deletions Marlin/src/pins/pins.h
Original file line number Diff line number Diff line change
Expand Up @@ -649,6 +649,8 @@
#include "stm32f4/pins_TH3D_EZBOARD_LITE_V2.h" // STM32F4 env:TH3D_EZBoard_Lite_V2
#elif MB(INDEX_REV03)
#include "stm32f4/pins_INDEX_REV03.h" // STM32F4 env:Index_Mobo_Rev03
#elif MB(MKS_ROBIN_NANO_V1_3_F4)
#include "stm32f4/pins_MKS_ROBIN_NANO_V1_3_F4.h" // STM32F4 env:mks_robin_nano_v1_3_f4

//
// ARM Cortex M7
Expand Down
184 changes: 3 additions & 181 deletions Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,200 +26,22 @@
* https://github.com/makerbase-mks/MKS-Robin-Nano-V1.X/tree/master/hardware
*/

#if NOT_TARGET(STM32F1, STM32F1xx)
#error "Oops! Select an STM32F1 board in 'Tools > Board.'"
#elif HOTENDS > 2 || E_STEPPERS > 2
#error "MKS Robin nano supports up to 2 hotends / E-steppers. Comment out this line to continue."
#endif
#define ALLOW_STM32DUINO
#include "env_validate.h"

#define BOARD_INFO_NAME "MKS Robin Nano"

#define BOARD_NO_NATIVE_USB

// Avoid conflict with TIMER_SERVO when using the STM32 HAL
#define TEMP_TIMER 5

//
// Release PB4 (Y_ENABLE_PIN) from JTAG NRST role
//
#define DISABLE_JTAG

//
// EEPROM
//
#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
#define FLASH_EEPROM_EMULATION
#define EEPROM_PAGE_SIZE (0x800U) // 2KB
#define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL)
#define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE // 2KB
#endif

#define SPI_DEVICE 2

//
// Servos
//
#define SERVO0_PIN PA8 // Enable BLTOUCH

//
// Limit Switches
//
#define X_STOP_PIN PA15
#define Y_STOP_PIN PA12
#define Z_MIN_PIN PA11
#define Z_MAX_PIN PC4

//
// Steppers
//
#define X_ENABLE_PIN PE4
#define X_STEP_PIN PE3
#define X_DIR_PIN PE2

#define Y_ENABLE_PIN PE1
#define Y_STEP_PIN PE0
#define Y_DIR_PIN PB9

#define Z_ENABLE_PIN PB8
#define Z_STEP_PIN PB5
#define Z_DIR_PIN PB4

#define E0_ENABLE_PIN PB3
#define E0_STEP_PIN PD6
#define E0_DIR_PIN PD3

#define E1_ENABLE_PIN PA3
#define E1_STEP_PIN PA6
#define E1_DIR_PIN PA1

//
// Temperature Sensors
//
#define TEMP_0_PIN PC1 // TH1
#define TEMP_1_PIN PC2 // TH2
#define TEMP_BED_PIN PC0 // TB1

//
// Heaters / Fans
//
#ifndef HEATER_0_PIN
#define HEATER_0_PIN PC3
#endif
#if HOTENDS == 1 && DISABLED(HEATERS_PARALLEL)
#ifndef FAN1_PIN
#define FAN1_PIN PB0
#endif
#else
#ifndef HEATER_1_PIN
#define HEATER_1_PIN PB0
#endif
#endif
#ifndef FAN_PIN
#define FAN_PIN PB1 // FAN
#endif
#ifndef HEATER_BED_PIN
#define HEATER_BED_PIN PA0
#endif

//
// Thermocouples
//
//#define TEMP_0_CS_PIN PE5 // TC1 - CS1
//#define TEMP_0_CS_PIN PE6 // TC2 - CS2

//
// Power Supply Control
//
#if ENABLED(MKS_PWC)
#if ENABLED(TFT_LVGL_UI)
#undef PSU_CONTROL
#undef MKS_PWC
#define SUICIDE_PIN PB2
#define SUICIDE_PIN_STATE LOW
#else
#define PS_ON_PIN PB2 // PW_OFF
#endif
#define KILL_PIN PA2
#define KILL_PIN_STATE HIGH
#endif

//
// Misc. Functions
//
#if HAS_TFT_LVGL_UI
#define MT_DET_1_PIN PA4
#define MT_DET_2_PIN PE6
#define MT_DET_PIN_STATE LOW

#define WIFI_IO0_PIN PC13
#define WIFI_IO1_PIN PC7
#define WIFI_RESET_PIN PA5
#else
//#define POWER_LOSS_PIN PA2 // PW_DET
//#define PS_ON_PIN PB2 // PW_OFF
#define FIL_RUNOUT_PIN PA4
#define FIL_RUNOUT2_PIN PE6
#endif

//#define LED_PIN PB2

//
// SD Card
//
#ifndef SDCARD_CONNECTION
#define SDCARD_CONNECTION ONBOARD
#endif

#define SDIO_SUPPORT
#define SDIO_CLOCK 4500000 // 4.5 MHz
#define SD_DETECT_PIN PD12
#define ONBOARD_SD_CS_PIN PC11

//
// LCD / Controller
//
#define BEEPER_PIN PC5

//
// TFT with FSMC interface
//
#if HAS_FSMC_TFT
/**
* Note: MKS Robin TFT screens use various TFT controllers.
* If the screen stays white, disable 'TFT_RESET_PIN'
* to let the bootloader init the screen.
*/
#define TFT_RESET_PIN PC6 // FSMC_RST
#define TFT_BACKLIGHT_PIN PD13

#define DOGLCD_MOSI -1 // Prevent auto-define by Conditionals_post.h
#define DOGLCD_SCK -1

#define TOUCH_CS_PIN PA7 // SPI2_NSS
#define TOUCH_SCK_PIN PB13 // SPI2_SCK
#define TOUCH_MISO_PIN PB14 // SPI2_MISO
#define TOUCH_MOSI_PIN PB15 // SPI2_MOSI

#define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT
#define FSMC_CS_PIN PD7
#define FSMC_RS_PIN PD11
#define FSMC_DMA_DEV DMA2
#define FSMC_DMA_CHANNEL DMA_CH5

#define TFT_CS_PIN FSMC_CS_PIN
#define TFT_RS_PIN FSMC_RS_PIN

#define TOUCH_BUTTONS_HW_SPI
#define TOUCH_BUTTONS_HW_SPI_DEVICE 2

#define TFT_BUFFER_SIZE 14400
#endif

#define HAS_SPI_FLASH 1
#if HAS_SPI_FLASH
#define SPI_FLASH_SIZE 0x1000000 // 16MB
#define SPI_FLASH_CS_PIN PB12
#define SPI_FLASH_MOSI_PIN PB15
#define SPI_FLASH_MISO_PIN PB14
#define SPI_FLASH_SCK_PIN PB13
#endif
#include "pins_MKS_ROBIN_NANO_common.h"
Loading

0 comments on commit 00d9488

Please sign in to comment.