研究 | 关于GEN_v1.0(ramps1.3)扩展板扩展9轴的方法
admin 本站

需求背景:

        无论是GEN_V1.0 或 ramps1.3,步进电机默认最多支持5轴,即X、Y、Z、E0、E1。

Marlin2.0固件最多支持6个挤出机(E0E1E2E3E4E5),那如何在不更换主板的情况下让主板也支持6个挤出机呢?

 

实践过程:

        实验对象是MKS_GEN_V1.0主板,先在Marlin-bugfix-2.0.xMarlinsrcpins文件夹内找到 pins_MKS_BASE.h 右键,打开方式,用写字板打开。

        因为,ramps1.3扩展板电路设计是开源的,所有的pin口引脚都可以自行配置,如果想关闭当前功能,pin 值可设为 -1 

右键打开写字板.jpg用写字板打开

#if HOTENDS > 6 || E_STEPPERS > 6  //加热头设为6,E轴驱动器设为6

  #error "MKS BASE 1.0 supports up to 2 hotends / E-steppers. Comment out this line to continue."

#endif

 

#define BOARD_NAME "MKS BASE 1.0"

 

//

// Heaters / Fans

//加热棒 / 风扇

// Power outputs EFBF or EFBE

#define MOSFET_D_PIN              7  //此为,第二加热棒的控制引脚

 

#define CASE_LIGHT_PIN            2  

 

//

// M3/M4/M5 - Spindle/Laser Control

//此为,开启cnc雕刻机主轴的pin口

#define SPINDLE_LASER_PWM_PIN     2   // MUST BE HARDWARE PWM 必须连接MOS控制模块

#define SPINDLE_LASER_ENABLE_PIN 15   // Pin should have a pullup! 雕刻机主轴使能,必须串联一个上拉电阻

#define SPINDLE_DIR_PIN          19  //主轴方向切换控制引脚

 

#include "pins_RAMPS.h"  //除以上几项,其它的控制引脚全部指向pins_RAMPS.h这个文件

 

下一步,打开也是用写字板,打开"pins_RAMPS.h" 文件。

 

#if ENABLED(TARGET_LPC1768)

  #error "Oops! Set MOTHERBOARD to an LPC1768-based board when building for LPC1768."

#elif defined(__STM32F1__)

  #error "Oops! Set MOTHERBOARD to an STM32F1-based board when building for STM32F1."

#endif

 

#if DISABLED(IS_RAMPS_SMART) && DISABLED(IS_RAMPS_DUO) && DISABLED(IS_RAMPS4DUE) && DISABLED(TARGET_LPC1768)

  #if !defined(__AVR_ATmega1280__) && !defined(__AVR_ATmega2560__)

    #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"

  #endif

#endif

 

#ifndef BOARD_NAME

  #define BOARD_NAME "RAMPS 1.4"

#endif

 

//

// Servos

//传感器扩展区,4 5 6 11,属于闲置引脚

gen缩率图.jpgmks gen L V1.045611.jpgD4 D5 D6 D11引脚图

#ifdef IS_RAMPS_13

  #define SERVO0_PIN        7   // RAMPS_13 // Will conflict with BTN_EN2 on LCD_I2C_VIKI

#else

  #define SERVO0_PIN       -1  //E2使能,调用此PIN口

#endif

#define SERVO1_PIN          -1  //E3使能,调用此PIN口

#define SERVO2_PIN          -1  //E4使能,调用此PIN口

#ifndef SERVO3_PIN

  #define SERVO3_PIN        -1  //E5使能,调用此PIN口

#endif

 

//

// Limit Switches

//限位开关控制

#define X_MIN_PIN           3

#ifndef X_MAX_PIN

  #define X_MAX_PIN         2   

#endif

#define Y_MIN_PIN          14

#define Y_MAX_PIN          15  //闲置可调用

#define Z_MIN_PIN          18

#define Z_MAX_PIN          19   //闲置可调用

 

//

// Z Probe (when not Z_MIN_PIN)

//

#ifndef Z_MIN_PROBE_PIN

  #define Z_MIN_PROBE_PIN  32

#endif

 

//

// Steppers

//步进控制

#define X_STEP_PIN         54  // X电机步进脉冲控制引脚

#define X_DIR_PIN          55  // X电机转向控制引脚

#define X_ENABLE_PIN       38  // X电机使能控制引脚

#ifndef X_CS_PIN

  #define X_CS_PIN         -1  //  X电机 SPI总线模式下CS引脚选择,如不开启SPI模式,可设为-1

#endif

 

#define Y_STEP_PIN         60

#define Y_DIR_PIN          61

#define Y_ENABLE_PIN       56

#ifndef Y_CS_PIN

  #define Y_CS_PIN         -1

#endif

 

#define Z_STEP_PIN         46

#define Z_DIR_PIN          48

#define Z_ENABLE_PIN       62

#ifndef Z_CS_PIN

  #define Z_CS_PIN         -1

#endif

 

#define E0_STEP_PIN        26

#define E0_DIR_PIN         28

#define E0_ENABLE_PIN      24

#ifndef E0_CS_PIN

  #define E0_CS_PIN        -1

#endif

 

#define E1_STEP_PIN        36

#define E1_DIR_PIN         34

#define E1_ENABLE_PIN      30

#ifndef E1_CS_PIN

  #define E1_CS_PIN        -1

#endif

TIM截图20200424145659.jpgE2 E3 E4 E5 新增引脚定义

#define E2_STEP_PIN        63

#define E2_DIR_PIN           59

#define E2_ENABLE_PIN     4

#ifndef E2_CS_PIN

  #define E2_CS_PIN        -1

#endif

 

#define E3_STEP_PIN        40

#define E3_DIR_PIN           64

#define E3_ENABLE_PIN     5

#ifndef E3_CS_PIN

  #define E3_CS_PIN        -1

#endif

 

#define E4_STEP_PIN        42

#define E4_DIR_PIN            44

#define E4_ENABLE_PIN      6

#ifndef E4_CS_PIN

  #define E4_CS_PIN        -1

#endif

 

#define E5_STEP_PIN        65

#define E5_DIR_PIN           66

#define E5_ENABLE_PIN   11

#ifndef E5_CS_PIN

  #define E5_CS_PIN        -1

#endif

//至此,9轴的PIN定义已经完成。以下的部分就是纠错环节,把与之发生冲突的全部设定为-1

//4 5 6 11 40 42 44 59 63 65 66

//

// Temperature Sensors

//热敏电阻引脚定义

#define TEMP_0_PIN         13   // Analog Input

#define TEMP_1_PIN         15   // Analog Input

#define TEMP_BED_PIN       14   // Analog Input

 

// SPI for Max6675 or Max31855 Thermocouple

//SPI控制引脚

#if DISABLED(SDSUPPORT)

  #define MAX6675_SS_PIN   -1   // Do not use pin 53 if there is even the remote possibility of using Display/SD card

#else

  #define MAX6675_SS_PIN   -1   // Do not use pin 49 as this is tied to the switch inside the SD card socket to detect if there is an SD card present

#endif

 

//

// Augmentation for auto-assigning RAMPS plugs

//

#if DISABLED(IS_RAMPS_EEB) && DISABLED(IS_RAMPS_EEF) && DISABLED(IS_RAMPS_EFB) && DISABLED(IS_RAMPS_EFF) && DISABLED(IS_RAMPS_SF) && !PIN_EXISTS(MOSFET_D)

  #if HOTENDS > 1

    #if TEMP_SENSOR_BED

      #define IS_RAMPS_EEB

    #else

      #define IS_RAMPS_EEF

    #endif

  #elif TEMP_SENSOR_BED

    #define IS_RAMPS_EFB

  #else

    #define IS_RAMPS_EFF

  #endif

#endif

 

//

// Heaters / Fans

//加热棒 / 可控风扇

#ifndef MOSFET_D_PIN

  #define MOSFET_D_PIN     -1

#endif

#ifndef RAMPS_D8_PIN

  #define RAMPS_D8_PIN      8 // 热床PWN控制

#endif

#ifndef RAMPS_D9_PIN

  #define RAMPS_D9_PIN      9 // 模型冷却风扇PWN控制

#endif

#ifndef RAMPS_D10_PIN

  #define RAMPS_D10_PIN    10  // 加热棒1,PWN控制

#endif

 

#define HEATER_0_PIN       RAMPS_D10_PIN

 

#if ENABLED(IS_RAMPS_EFB)                      // Hotend, Fan, Bed

  #define HEATER_BED_PIN   RAMPS_D8_PIN

#elif ENABLED(IS_RAMPS_EEF)                    // Hotend, Hotend, Fan

  #define HEATER_1_PIN     RAMPS_D9_PIN

#elif ENABLED(IS_RAMPS_EEB)                    // Hotend, Hotend, Bed

  #define HEATER_1_PIN     RAMPS_D9_PIN

  #define HEATER_BED_PIN   RAMPS_D8_PIN

#elif ENABLED(IS_RAMPS_EFF)                    // Hotend, Fan, Fan

  #define FAN1_PIN         RAMPS_D8_PIN

#elif DISABLED(IS_RAMPS_SF)                    // Not Spindle, Fan (i.e., "EFBF" or "EFBE")

  #define HEATER_BED_PIN   RAMPS_D8_PIN

  #if HOTENDS == 1

    #define FAN1_PIN       MOSFET_D_PIN

  #else

    #define HEATER_1_PIN   MOSFET_D_PIN

  #endif

#endif

 

#ifndef FAN_PIN

  #if ENABLED(IS_RAMPS_EFB) || ENABLED(IS_RAMPS_EFF)  // Hotend, Fan, Bed or Hotend, Fan, Fan

    #define FAN_PIN        RAMPS_D9_PIN

  #elif ENABLED(IS_RAMPS_EEF) || ENABLED(IS_RAMPS_SF) // Hotend, Hotend, Fan or Spindle, Fan

    #define FAN_PIN        RAMPS_D8_PIN

  #elif ENABLED(IS_RAMPS_EEB)                         // Hotend, Hotend, Bed

    #define FAN_PIN         -1   // IO pin. Buffer needed

  #else                                               // Non-specific are "EFB" (i.e., "EFBF" or "EFBE")

    #define FAN_PIN        RAMPS_D9_PIN

  #endif

#endif

 

//

// Misc. Functions

//

#define SDSS               53

#define LED_PIN            13

 

#ifndef FILWIDTH_PIN

  #define FILWIDTH_PIN      -1   // Analog Input on AUX2

#endif

 

// RAMPS 1.4 DIO 4 on the servos connector

#ifndef FIL_RUNOUT_PIN

  #define FIL_RUNOUT_PIN    -1

#endif

 

#ifndef PS_ON_PIN

  #define PS_ON_PIN        12

#endif

 

#if ENABLED(CASE_LIGHT_ENABLE) && !defined(CASE_LIGHT_PIN) && !defined(SPINDLE_LASER_ENABLE_PIN)

  #if NUM_SERVOS <= 1 // try to use servo connector first

    #define CASE_LIGHT_PIN    -1  // MUST BE HARDWARE PWM

  #elif !(ENABLED(ULTRA_LCD) && ENABLED(NEWPANEL)

      && (ENABLED(PANEL_ONE) || ENABLED(VIKI2) || ENABLED(miniVIKI) || ENABLED(MINIPANEL) || ENABLED(REPRAPWORLD_KEYPAD)))  // try to use AUX 2

    #define CASE_LIGHT_PIN   44   // MUST BE HARDWARE PWM

  #endif

#endif

 

//

// M3/M4/M5 - Spindle/Laser Control

//雕刻机控制

#if ENABLED(SPINDLE_LASER_ENABLE) && !PIN_EXISTS(SPINDLE_LASER_ENABLE)

  #if !defined(NUM_SERVOS) || NUM_SERVOS == 0 // try to use servo connector first

    #define SPINDLE_LASER_ENABLE_PIN  -1   // Pin should have a pullup/pulldown!

    #define SPINDLE_LASER_PWM_PIN     -1   // MUST BE HARDWARE PWM

    #define SPINDLE_DIR_PIN           -1

  #elif !(ENABLED(ULTRA_LCD) && ENABLED(NEWPANEL)

      && (ENABLED(PANEL_ONE) || ENABLED(VIKI2) || ENABLED(miniVIKI) || ENABLED(MINIPANEL) || ENABLED(REPRAPWORLD_KEYPAD)))  // try to use AUX 2

    #define SPINDLE_LASER_ENABLE_PIN -1   // Pin should have a pullup/pulldown!

    #define SPINDLE_LASER_PWM_PIN    -1   // MUST BE HARDWARE PWM

    #define SPINDLE_DIR_PIN          -1

  #endif

#endif

 

//

// TMC software SPI

//TMC 驱动SPI控制

#if ENABLED(TMC_USE_SW_SPI)

  #ifndef TMC_SW_MOSI

    #define TMC_SW_MOSI    -1

  #endif

  #ifndef TMC_SW_MISO

    #define TMC_SW_MISO    -1

  #endif

  #ifndef TMC_SW_SCK

    #define TMC_SW_SCK     -1

  #endif

#endif

 

#if HAS_DRIVER(TMC2208)

  /**

   * TMC2208 stepper drivers

   *

   * Hardware serial communication ports.

   * If undefined software serial is used according to the pins below

   */

  //#define X_HARDWARE_SERIAL  Serial1

  //#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    -1

  #define X_SERIAL_RX_PIN    -1

  #define X2_SERIAL_TX_PIN   -1

  #define X2_SERIAL_RX_PIN   -1

 

  #define Y_SERIAL_TX_PIN    -1

  #define Y_SERIAL_RX_PIN    -1

  #define Y2_SERIAL_TX_PIN   -1

  #define Y2_SERIAL_RX_PIN   -1

 

  #define Z_SERIAL_TX_PIN    -1

  #define Z_SERIAL_RX_PIN    -1

  #define Z2_SERIAL_TX_PIN   -1

  #define Z2_SERIAL_RX_PIN   -1

 

  #define E0_SERIAL_TX_PIN   -1

  #define E0_SERIAL_RX_PIN   -1

  #define E1_SERIAL_TX_PIN   -1

  #define E1_SERIAL_RX_PIN   -1

  #define E2_SERIAL_TX_PIN   -1

  #define E2_SERIAL_RX_PIN   -1

  #define E3_SERIAL_TX_PIN   -1

  #define E3_SERIAL_RX_PIN   -1

  #define E4_SERIAL_TX_PIN   -1

  #define E4_SERIAL_RX_PIN   -1

#endif

 

//

// Pr暖拧a i3 MK2 Multiplexer Support

//prusa i3 MK2多色支持

#ifndef E_MUX0_PIN

  #define E_MUX0_PIN -1   // Z_CS_PIN

#endif

#ifndef E_MUX1_PIN

  #define E_MUX1_PIN -1   // E0_CS_PIN

#endif

#ifndef E_MUX2_PIN

  #define E_MUX2_PIN -1   // E1_CS_PIN

#endif

 

//////////////////////////

// LCDs and Controllers //

//LCD 和 旋钮电位器

//////////////////////////

 

#if ENABLED(ULTRA_LCD)

 

  //

  // LCD Display output pins

  //

  #if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)

 

    #define LCD_PINS_RS         49   // CS chip select /SS chip slave select

    #define LCD_PINS_ENABLE     51   // SID (MOSI)

    #define LCD_PINS_D4         52   // SCK (CLK) clock

 

  #elif ENABLED(NEWPANEL) && ENABLED(PANEL_ONE)

 

    #define LCD_PINS_RS         -1

    #define LCD_PINS_ENABLE     -1

    #define LCD_PINS_D4         -1

    #define LCD_PINS_D5         -1

    #define LCD_PINS_D6         -1

    #define LCD_PINS_D7         -1

 

  #else

 

    #if ENABLED(CR10_STOCKDISPLAY)

 

      #define LCD_PINS_RS       27

      #define LCD_PINS_ENABLE   29

      #define LCD_PINS_D4       25

 

      #if DISABLED(NEWPANEL)

        #define BEEPER_PIN      37

      #endif

 

    #elif ENABLED(ZONESTAR_LCD)

 

      #define LCD_PINS_RS       -1

      #define LCD_PINS_ENABLE   -1

      #define LCD_PINS_D4       -1

      #define LCD_PINS_D5       -1

      #define LCD_PINS_D6       -1

      #define LCD_PINS_D7       -1

 

    #else

 

      #if ENABLED(MKS_12864OLED) || ENABLED(MKS_12864OLED_SSD1306)

        #define LCD_PINS_DC     25   // Set as output on init

        #define LCD_PINS_RS     27   // Pull low for 1s to init

        // DOGM SPI LCD Support

        #define DOGLCD_CS       16

        #define DOGLCD_MOSI     17

        #define DOGLCD_SCK      23

        #define DOGLCD_A0       LCD_PINS_DC

      #else

        #define LCD_PINS_RS     16

        #define LCD_PINS_ENABLE 17

        #define LCD_PINS_D4     23

        #define LCD_PINS_D5     25

        #define LCD_PINS_D6     27

      #endif

 

      #define LCD_PINS_D7       29

 

      #if DISABLED(NEWPANEL)

        #define BEEPER_PIN      33

      #endif

 

    #endif

 

    #if DISABLED(NEWPANEL)

      // Buttons are attached to a shift register

      // Not wired yet

      //#define SHIFT_CLK       38

      //#define SHIFT_LD        -1

      //#define SHIFT_OUT       -1

      //#define SHIFT_EN        17

    #endif

 

  #endif

 

  //

  // LCD Display input pins

  //

  #if ENABLED(NEWPANEL)

 

    #if ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER)

 

      #define BEEPER_PIN        37

 

      #if ENABLED(CR10_STOCKDISPLAY)

        #define BTN_EN1         17

        #define BTN_EN2         23

      #else

        #define BTN_EN1         31

        #define BTN_EN2         33

      #endif

 

      #define BTN_ENC           35

      #define SD_DETECT_PIN     49

      #define KILL_PIN          41

 

      #if ENABLED(BQ_LCD_SMART_CONTROLLER)

        #define LCD_BACKLIGHT_PIN 39

      #endif

 

    #elif ENABLED(REPRAPWORLD_GRAPHICAL_LCD)

 

      #define BTN_EN1           -1

      #define BTN_EN2           -1

      #define BTN_ENC           -1

      #define SD_DETECT_PIN     -1

 

    #elif ENABLED(LCD_I2C_PANELOLU2)

 

      #define BTN_EN1           47

      #define BTN_EN2           43

      #define BTN_ENC           32

      #define LCD_SDSS          SDSS

      #define KILL_PIN          41

 

    #elif ENABLED(LCD_I2C_VIKI)

 

      #define BTN_EN1           22   // http://files.panucatt.com/datasheets/viki_wiring_diagram.pdf explains 40/42.

      #define BTN_EN2            7   // 22/7 are unused on RAMPS_14. 22 is unused and 7 the SERVO0_PIN on RAMPS_13.

      #define BTN_ENC           -1

 

      #define LCD_SDSS          SDSS

      #define SD_DETECT_PIN     49

 

    #elif ENABLED(VIKI2) || ENABLED(miniVIKI)

 

      #define DOGLCD_CS         45

      #define DOGLCD_A0         -1

      #define LCD_SCREEN_ROT_180

 

      #define BEEPER_PIN        33

      #define STAT_LED_RED_PIN  32

      #define STAT_LED_BLUE_PIN 35

 

      #define BTN_EN1           22

      #define BTN_EN2            7

      #define BTN_ENC           39

 

      #define SD_DETECT_PIN     -1   // Pin 49 for display sd interface, 72 for easy adapter board

      #define KILL_PIN          31

 

    #elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)

 

      #define DOGLCD_CS         29

      #define DOGLCD_A0         27

 

      #define BEEPER_PIN        23

      #define LCD_BACKLIGHT_PIN 33

 

      #define BTN_EN1           35

      #define BTN_EN2           37

      #define BTN_ENC           31

 

      #define LCD_SDSS          SDSS

      #define SD_DETECT_PIN     49

      #define KILL_PIN          41

 

    #elif ENABLED(MKS_MINI_12864)   // Added in Marlin 1.1.6

 

      #define DOGLCD_A0         27

      #define DOGLCD_CS         25

 

      // GLCD features

      //#define LCD_CONTRAST   190

      // Uncomment screen orientation

      //#define LCD_SCREEN_ROT_90

      //#define LCD_SCREEN_ROT_180

      //#define LCD_SCREEN_ROT_270

 

      #define BEEPER_PIN        37

      // not connected to a pin

      #define LCD_BACKLIGHT_PIN -1   // backlight LED on A11/D65

 

      #define BTN_EN1           31

      #define BTN_EN2           33

      #define BTN_ENC           35

 

      #define SD_DETECT_PIN     49

      #define KILL_PIN          -1

 

    #elif ENABLED(MINIPANEL)

 

      #define BEEPER_PIN        -1

      // not connected to a pin

      #define LCD_BACKLIGHT_PIN 65   // backlight LED on A11/D65

 

      #define DOGLCD_A0         -1

      #define DOGLCD_CS         -1

 

      // GLCD features

      //#define LCD_CONTRAST   190

      // Uncomment screen orientation

      //#define LCD_SCREEN_ROT_90

      //#define LCD_SCREEN_ROT_180

      //#define LCD_SCREEN_ROT_270

 

      #define BTN_EN1           -1

      #define BTN_EN2           -1

      #define BTN_ENC           -1

 

      #define SD_DETECT_PIN     49

      #define KILL_PIN          -1

 

    #elif ENABLED(ZONESTAR_LCD)

 

      #define ADC_KEYPAD_PIN    12

 

    #elif ENABLED(AZSMZ_12864)

 

      // Pins only defined for RAMPS_SMART currently

 

    #else

 

      // Beeper on AUX-4

      #define BEEPER_PIN        33

 

      // Buttons are directly attached using AUX-2

      #if ENABLED(REPRAPWORLD_KEYPAD)

        #define SHIFT_OUT       -1

        #define SHIFT_CLK       -1

        #define SHIFT_LD        -1

        #define BTN_EN1         -1

        #define BTN_EN2         -1

        #define BTN_ENC         -1

      #elif ENABLED(PANEL_ONE)

        #define BTN_EN1         -1   // AUX2 PIN 3

        #define BTN_EN2         -1   // AUX2 PIN 4

        #define BTN_ENC         49   // AUX3 PIN 7

      #else

        #define BTN_EN1         37

        #define BTN_EN2         35

        #define BTN_ENC         31

      #endif

 

      #if ENABLED(G3D_PANEL)

        #define SD_DETECT_PIN   49

        #define KILL_PIN        41

      #endif

 

    #endif

  #endif // NEWPANEL

 

#endif // ULTRA_LCD


获取资料:加群获取最新STJ2203d打印机开源图纸 

 

交流群QQ:460937369 进群验证码:STJ 





返回列表