MKS RUMBA32 is modified in Aus3D RUMBA32 version and a powerful 32-bit 3D printer control board with STM32F446VET6 , The main frequency is 180MHZ. Support Marlin2.0 , support MKS LCD12864B/MINI12864/2004/12864, support MKS TFT24/28/32/35/70 Screens. The motherboard integrates 6 AXIS interface, integrates SPI / UART interface…
Hi.
I've recently bought one MKS-MINI12864-V3 LCD and still can't find where are pins for it in MKS Rumba32.
So far I figured out that the following code will make this LCD to work almost fine:
pins_RUMBA32_common.h:
/**
* Marlin 3D Printer Firmware
* Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
*
*/
#pragma once
/**
* Common pin assignments for all RUMBA32 boards
*/
#include "env_validate.h"
#if HOTENDS > 3 || E_STEPPERS > 3
#error "RUMBA32 boards support up to 3 hotends / E-steppers."
#endif
#define DEFAULT_MACHINE_NAME BOARD_INFO_NAME
// Use soft PWM for fans - PWM is not working properly when paired with STM32 Arduino Core v1.7.0
// This can be removed when Core version is updated and PWM behaviour is fixed.
#define FAN_SOFT_PWM
/**
* ------ ------
* (BEEPER) PE8 | 1 2 | PE7 (BTN_ENC) (MISO) PA6 | 1 2 | PA5 (SD_SCK)
* (LCD_EN) PE9 | 3 4 | PE10 (LCD_RS) (BTN_EN1) PB2 | 3 4 | PA2 (SD_SS)
* (LCD_D4) PE12 | 5 6 PE13 (LCD_D5) (BTN_EN2) PB1 | 5 6 PA7 (SD_MOSI)
* (LCD_D6) PE14 | 7 8 | PE15 (LCD_D7) (SD_DETECT) PB0 | 7 8 | RESET
* GND | 9 10| 5V GND | 9 10| PC5 (NC)
* ------ ------
* EXP1 EXP2
*/
#define EXP1_08_PIN PE15
#define EXP1_07_PIN PE14
#define EXP1_06_PIN PE13
#define EXP1_05_PIN PE12
#define EXP1_04_PIN PE10
#define EXP1_03_PIN PE9
#define EXP1_02_PIN PE7
#define EXP1_01_PIN PE8
#define EXP2_10_PIN PC5 // KILL
#define EXP2_08_PIN NRST // RESET
#define EXP2_07_PIN PB0
#define EXP2_06_PIN PA7
#define EXP2_05_PIN PB1
#define EXP2_04_PIN PA2
#define EXP2_03_PIN PB2
#define EXP2_02_PIN PA5
#define EXP2_01_PIN PA6
//
// Configure Timers
// TIM6 is used for TONE
// TIM7 is used for SERVO
// TIMER_SERIAL defaults to TIM7 and must be overridden in the platformio.h file if SERVO will also be used.
// This will be difficult to solve from the Arduino IDE, without modifying the RUMBA32 variant
// included with the STM32 framework.
#define STEP_TIMER 10
#define TEMP_TIMER 14
//
// Limit Switches
//
#define X_MIN_PIN PB12
#define X_MAX_PIN PB13
#define Y_MIN_PIN PB15
#define Y_MAX_PIN PD8
#define Z_MIN_PIN PD9
#define Z_MAX_PIN PD10
//
// Steppers
//
#define X_STEP_PIN PA0
#define X_DIR_PIN PC15
#define X_ENABLE_PIN PC11
#define X_CS_PIN PC14
#define Y_STEP_PIN PE5
#define Y_DIR_PIN PE6
#define Y_ENABLE_PIN PE3
#define Y_CS_PIN PE4
#define Z_STEP_PIN PE1
#define Z_DIR_PIN PE2
#define Z_ENABLE_PIN PB7
#define Z_CS_PIN PE0
#define E0_STEP_PIN PB5
#define E0_DIR_PIN PB6
#define E0_ENABLE_PIN PC12
#define E0_CS_PIN PC13
#define E1_STEP_PIN PD6
#define E1_DIR_PIN PD7
#define E1_ENABLE_PIN PD4
#define E1_CS_PIN PD5
#define E2_STEP_PIN PD2
#define E2_DIR_PIN PD3
#define E2_ENABLE_PIN PD0
#define E2_CS_PIN PD1
#if ENABLED(TMC_USE_SW_SPI)
#ifndef TMC_SW_MOSI
#define TMC_SW_MOSI EXP2_06_PIN
#endif
#ifndef TMC_SW_MISO
#define TMC_SW_MISO EXP2_01_PIN
#endif
#ifndef TMC_SW_SCK
#define TMC_SW_SCK EXP2_02_PIN
#endif
#endif
//
// Temperature Sensors
//
#define TEMP_0_PIN PC4
#define TEMP_1_PIN PC3
#define TEMP_2_PIN PC2
#define TEMP_3_PIN PC1
#define TEMP_BED_PIN PC0
//
// Heaters / Fans
//
#define HEATER_0_PIN PC6
#define HEATER_1_PIN PC7
#define HEATER_2_PIN PC8
#define HEATER_BED_PIN PA1
#define FAN_PIN PC9
#define FAN1_PIN PA8
//
// SPI
//
#define SD_SCK_PIN EXP2_02_PIN
#define SD_MISO_PIN EXP2_01_PIN
#define SD_MOSI_PIN EXP2_06_PIN
//
// Misc. Functions
//
#define LED_PIN PB14
#define PS_ON_PIN PE11
#define KILL_PIN EXP2_10_PIN
#define SDSS EXP2_04_PIN
#define SD_DETECT_PIN EXP2_07_PIN
#define BEEPER_PIN EXP1_01_PIN
//
// LCD / Controller
//
#if HAS_WIRED_LCD
#define BTN_EN1 EXP2_03_PIN
#define BTN_EN2 EXP2_05_PIN
#define BTN_ENC EXP1_02_PIN
#define LCD_PINS_RS EXP1_04_PIN
#define LCD_PINS_ENABLE EXP1_03_PIN
#define LCD_PINS_D4 EXP1_05_PIN
#if ENABLED(MKS_MINI_12864)
#define DOGLCD_CS EXP1_06_PIN
#define DOGLCD_A0 EXP1_07_PIN
#elif ENABLED(MKS_MINI_12864_V3)
#define DOGLCD_CS EXP1_03_PIN
#define DOGLCD_A0 EXP1_04_PIN
#define LCD_PINS_DC DOGLCD_A0
#define LCD_BACKLIGHT_PIN -1
#define LCD_RESET_PIN EXP1_05_PIN
#define NEOPIXEL_PIN EXP1_06_PIN
#define DOGLCD_MOSI EXP2_06_PIN
#define DOGLCD_SCK EXP2_02_PIN
#define FORCE_SOFT_SPI
#define SOFTWARE_SPI
//#define LCD_SCREEN_ROT_180
#endif
#if IS_ULTIPANEL
#define LCD_PINS_D5 EXP1_06_PIN
#define LCD_PINS_D6 EXP1_07_PIN
#define LCD_PINS_D7 EXP1_08_PIN
#if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
#define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
#endif
#endif
#endif // HAS_WIRED_LCD
// Alter timing for graphical display
#if ENABLED(U8GLIB_ST7920)
#define BOARD_ST7920_DELAY_1 96
#define BOARD_ST7920_DELAY_2 48
#define BOARD_ST7920_DELAY_3 640
#endif
The only thing I can't make to work is the SD support. It detects (not always) card is inserted or removed but when I insert it in most of the times nothing happens and sometimes it says "SD Init failed". In the other hand my old reprap discount 2004 LCD with SD detects it and I can easily print from SD. Both LCDs are connected to the same Rumba32 with the same Marlin version. the only difference is LCD definitions in configuration.h
Hi. I've recently bought one MKS-MINI12864-V3 LCD and still can't find where are pins for it in MKS Rumba32.
So far I figured out that the following code will make this LCD to work almost fine:
pins_RUMBA32_common.h:
The only thing I can't make to work is the SD support. It detects (not always) card is inserted or removed but when I insert it in most of the times nothing happens and sometimes it says "SD Init failed". In the other hand my old reprap discount 2004 LCD with SD detects it and I can easily print from SD. Both LCDs are connected to the same Rumba32 with the same Marlin version. the only difference is LCD definitions in configuration.h