Настройка Marlin под второй экструдер на плате MKS Gen v1.4

Подписаться на 3Dtoday
agent00785
Идет загрузка
Загрузка
3 Марта 2019
568
10
печатает на TEVO Black Widow
Вопросы и Ответы
Принтер у меня Tevo Black Widow. На плате MKS Gen v1.4 четыре силовых выхода (extruder1, extruder2, fan, bed). Поставил два боуден экструдера. В Марлине прописал настройки под два экструдера. тип платы пришлось выбрать MOTHERBOARD BOARD_RAMPS_14_EEB ( было MOTHERBOARD BOARD_RAMPS_14_EFB), т.к. прошивка ругалась на то что в данной MOTHERBOARD BOARD_RAMPS_14_EFB не прописан пин второго нагревателя.
В итоге получилось так , что у меня просто вместо вентилятора сейчас нагреватель второго экструдера.
Можно ли плату оставить EFB, но прописать пин нагревателя второго экструдера и где это сделать?
Вкладка pins_RAMPS_14.h выглядит так:

* Arduino Mega with RAMPS v1.4 (or v1.3) pin assignments
*
* Applies to the following boards:
*
* RAMPS_14_EFB (Extruder, Fan, Bed)
* RAMPS_14_EEB (Extruder, Extruder, Bed)
* RAMPS_14_EFF (Extruder, Fan, Fan)
* RAMPS_14_EEF (Extruder, Extruder, Fan)
* RAMPS_14_SF (Spindle, Controller Fan)
*
* RAMPS_13_EFB (Extruder, Fan, Bed)
* RAMPS_13_EEB (Extruder, Extruder, Bed)
* RAMPS_13_EFF (Extruder, Fan, Fan)
* RAMPS_13_EEF (Extruder, Extruder, Fan)
* RAMPS_13_SF (Spindle, Controller Fan)
*
* Other pins_MYBOARD.h files may override these defaults
*
* Differences between
* RAMPS_13 | RAMPS_14
* 7 | 11
*/

#if !defined(__AVR_ATmega1280__) && !defined(__AVR_ATmega2560__)
#error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
#endif

#define LARGE_FLASH true

#ifdef IS_RAMPS_13
#define SERVO0_PIN 7 // RAMPS_13 // Will conflict with BTN_EN2 on LCD_I2C_VIKI
#else
#define SERVO0_PIN 11
#endif
#define SERVO1_PIN 6
#define SERVO2_PIN 5
#define SERVO3_PIN 4

#define X_STEP_PIN 54
#define X_DIR_PIN 55
#define X_ENABLE_PIN 38
#define X_MIN_PIN 3
#ifndef X_MAX_PIN
#define X_MAX_PIN 2
#endif

#define Y_STEP_PIN 60
#define Y_DIR_PIN 61
#define Y_ENABLE_PIN 56
#define Y_MIN_PIN 14
#define Y_MAX_PIN 15

#define Z_STEP_PIN 46
#define Z_DIR_PIN 48
#define Z_ENABLE_PIN 62
#define Z_MIN_PIN 18
#define Z_MAX_PIN 19

#define E0_STEP_PIN 26
#define E0_DIR_PIN 28
#define E0_ENABLE_PIN 24

#define E1_STEP_PIN 36
#define E1_DIR_PIN 34
#define E1_ENABLE_PIN 30

#define SDPOWER -1
#define SDSS 53
#define LED_PIN 13

// Use the RAMPS 1.4 Analog input 5 on the AUX2 connector
#define FILWIDTH_PIN 5 // ANALOG NUMBERING

#if ENABLED(Z_MIN_PROBE_ENDSTOP)
// Define a pin to use as the signal pin on Arduino for the Z_PROBE endstop.
#define Z_MIN_PROBE_PIN 32
#endif

#if ENABLED(FILAMENT_RUNOUT_SENSOR)
// define digital pin 4 for the filament runout sensor. Use the RAMPS 1.4 digital input 4 on the servos connector
#define FILRUNOUT_PIN 4
#endif

#if MB(RAMPS_14_EFF) || MB(RAMPS_13_EFF) || ENABLED(IS_RAMPS_EFB)
#define FAN_PIN 9 // (Sprinter config)
#if MB(RAMPS_14_EFF) || MB(RAMPS_13_EFF)
#define CONTROLLERFAN_PIN -1 // Pin used for the fan to cool controller
#endif
#elif MB(RAMPS_14_EEF) || MB(RAMPS_14_SF) || MB(RAMPS_13_EEF) || MB(RAMPS_13_SF)
#define FAN_PIN 8
#else
#define FAN_PIN 4 // IO pin. Buffer needed
#endif

#define PS_ON_PIN 12

#if ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER) || ENABLED(G3D_PANEL)
#define KILL_PIN 41
#endif

#if MB(RAMPS_14_EFF) || MB(RAMPS_13_EFF)
#define HEATER_0_PIN 8
#else
#define HEATER_0_PIN 10 // EXTRUDER 1
#endif

#if MB(RAMPS_14_SF) || MB(RAMPS_13_SF) || ENABLED(IS_RAMPS_EFB)
#define HEATER_1_PIN -1
#else
#define HEATER_1_PIN 9 // EXTRUDER 2 (FAN On Sprinter)
#endif

#define HEATER_2_PIN -1

#define TEMP_0_PIN 13 // ANALOG NUMBERING
#define TEMP_1_PIN 15 // ANALOG NUMBERING
#define TEMP_2_PIN -1 // ANALOG NUMBERING

#if MB(RAMPS_14_EFF) || MB(RAMPS_14_EEF) || MB(RAMPS_14_SF) || MB(RAMPS_13_EFF) || MB(RAMPS_13_EEF) || MB(RAMPS_13_SF)
#define HEATER_BED_PIN -1 // NO BED
#else
#define HEATER_BED_PIN 8 // BED
#endif

#define TEMP_BED_PIN 14 // ANALOG NUMBERING

#if ENABLED(Z_PROBE_SLED)
#define SLED_PIN -1
#endif

#if ENABLED(ULTRA_LCD)

#if ENABLED(NEWPANEL)
#if ENABLED(PANEL_ONE)
#define LCD_PINS_RS 40
#define LCD_PINS_ENABLE 42
#define LCD_PINS_D4 65
#define LCD_PINS_D5 66
#define LCD_PINS_D6 44
#define LCD_PINS_D7 64
#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
#define LCD_PINS_D7 29
#endif

#if ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER)
#define BEEPER_PIN 37

#define BTN_EN1 31
#define BTN_EN2 33
#define BTN_ENC 35

#define SD_DETECT_PIN 49
#elif ENABLED(LCD_I2C_PANELOLU2)
#define BTN_EN1 47 // reverse if the encoder turns the wrong way.
#define BTN_EN2 43
#define BTN_ENC 32
#define LCD_SDSS 53
#define SD_DETECT_PIN -1
#define KILL_PIN 41
#elif ENABLED(LCD_I2C_VIKI)
#define BTN_EN1 22 // reverse if the encoder turns the wrong way.
#define BTN_EN2 7 // http://files.panucatt.com/datasheets/viki_wiring_diagram.pdf
// tells about 40/42.
// 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 53
#define SD_DETECT_PIN 49
#elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
#define BTN_EN1 35 // reverse if the encoder turns the wrong way.
#define BTN_EN2 37
#define BTN_ENC 31
#define SD_DETECT_PIN 49
#define LCD_SDSS 53
#define KILL_PIN 41
#define BEEPER_PIN 23
#define DOGLCD_CS 29
#define DOGLCD_A0 27
#define LCD_PIN_BL 33
#elif ENABLED(MINIPANEL)
#define BEEPER_PIN 42
// Pins for DOGM SPI LCD Support
#define DOGLCD_A0 44
#define DOGLCD_CS 66
#define LCD_PIN_BL 65 // backlight LED on A11/D65
#define SDSS 53

#define KILL_PIN 64
// GLCD features
//#define LCD_CONTRAST 190
// Uncomment screen orientation
//#define LCD_SCREEN_ROT_90
//#define LCD_SCREEN_ROT_180
//#define LCD_SCREEN_ROT_270
//The encoder and click button
#define BTN_EN1 40
#define BTN_EN2 63
#define BTN_ENC 59 //the click switch
//not connected to a pin
#define SD_DETECT_PIN 49

#else

#define BEEPER_PIN 33 // Beeper on AUX-4

// buttons are directly attached using AUX-2
#if ENABLED(REPRAPWORLD_KEYPAD)
#define BTN_EN1 64 // encoder
#define BTN_EN2 59 // encoder
#define BTN_ENC 63 // enter button
#define SHIFT_OUT 40 // shift register
#define SHIFT_CLK 44 // shift register
#define SHIFT_LD 42 // shift register
#elif ENABLED(PANEL_ONE)
#define BTN_EN1 59 // AUX2 PIN 3
#define BTN_EN2 63 // AUX2 PIN 4
#define BTN_ENC 49 // AUX3 PIN 7
#else
#define BTN_EN1 37
#define BTN_EN2 35
#define BTN_ENC 31 // the click
#endif

#if ENABLED(G3D_PANEL)
#define SD_DETECT_PIN 49
#else
// #define SD_DETECT_PIN -1 // Ramps doesn't use this
#endif

#endif
#else // !NEWPANEL (Old-style panel with shift register)

#define BEEPER_PIN 33 // No Beeper added

// Buttons are attached to a shift register
// Not wired yet
//#define SHIFT_CLK 38
//#define SHIFT_LD 42
//#define SHIFT_OUT 40
//#define SHIFT_EN 17

#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
#define LCD_PINS_D7 29

#endif // !NEWPANEL

#endif // ULTRA_LCD

// SPI for Max6675 or Max31855 Thermocouple
#if DISABLED(SDSUPPORT)
#define MAX6675_SS 66 // Do not use pin 53 if there is even the remote possibility of using Display/SD card
#else
#define MAX6675_SS 66 // 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

#if DISABLED(SDSUPPORT)
// these pins are defined in the SD library if building with SD support
#define SCK_PIN 52
#define MISO_PIN 50
#define MOSI_PIN 51
#endif

#ifndef KILL_PIN
// #define KILL_PIN -1
#endif
Ответы на вопрос

Ответы

03.03.19 в 22:57
1
создаёте pins_MYBOARD.h и в нём прописываете пины, которые должны отличаться от стандартной MOTHERBOARD BOARD_RAMPS_14_EFB.
можно, конечно, и MOTHERBOARD BOARD_RAMPS_14_EFB исправить по своему усмотрению, прописав туда всё, что нужно, но с pins_MYBOARD.h кошернее - такая возможность как раз предусмотрена для случаев нестандартного включения некоторых пинов. с другой стороны - можно и забыть о его существовании и потом долго ломать голову: почему не переназначаются пины. поэтому когда делаю только для себя и ни с кем делиться не собираюсь - правлю основной файл. там всё есть, но закоментировано - обычно значением -1.
03.03.19 в 23:32
печатает на TEVO Black Widow
0
я бы лучше в профиле MOTHERBOARD BOARD_RAMPS_14_EFB поменял (дописал) пины и все.
Нашел распиновку MKS Gen v1.4:
Extruder1 - 7
Extruder0 - 10
fun - 9
head bad - 8.

Где мне это прописать, чтобы при выборе профиля MOTHERBOARD BOARD_RAMPS_14_EFB у меня было 2 нагревателя экструдера, вентилятор и стол?

И почему в прошивке присутствуют HEATER_0_PIN, HEATER_1_PIN, HEATER_2_PIN. Какой за что отвечает?
09124870ee0f11dcca58e145eee5cff2.jpeg
04.03.19 в 00:13
0
перед // Use the RAMPS 1.4 Analog input 5 on the AUX2 connector добавляете:
#define HEATER_1_PIN 7 // EXTRUDER 2
остальное, как понимаю - остаётся так же, как было. термистор тоже уже прописан - на 15й пин
04.03.19 в 08:41
0
Подождите, А разве для MKS GEN V1.4 не
вот этот тип платы ставить?
#define MOTHERBOARD BOARD_MKS_GEN_13

Просто жду сейчас с Китая именно её. И Марлин уже сконфигил.

А та, что у вас указана - для бутерброда используется.

Поправьте, если ошибаюсь. Принтер только собираю, но с теорией,
как мне казалось, познакомился.
04.03.19 в 10:04
печатает на TEVO Black Widow
0
В стоке у меня прописано MOTHERBOARD BOARD_RAMPS_14_EFB
04.03.19 в 10:14
0
если пины прописаны правильно - пофих, как вы назовёте плату. сверяйтесь с даташитом.
04.03.19 в 12:05
0
Согласен, что если понимать где что и как, то, собственно, не только пофиг какую плату расскомментировать,
но и прошивку можно с нуля написать.
А если новичок (как я, например), то мне проще пока что не лезть во внутренности программы,
и прописывать всё с нуля, а взять максимально адаптированный вариант прошивки, и лишь чутка подправить её под свои нужды.

На скрине видно, что "бутербродные" варианты все какие-то ущербные.
Хочешь что-то дополнительно использовать - должен чем-то пожертвовать.
61f5139bab1e3f61f1bd0eeed6b3a222.png
fe959752bcfb7c6eda3d40501e83ccbc.png
04.03.19 в 12:19
0
На скрине видно, что "бутербродные" варианты все какие-то ущербные.
из чего это видно? это просто стандартные распиновки для разных вариантов компоновки. как раз - для новичков/тех, кто не хочет или не может сам настроить полностью. но никто не запрещает для себя любимого дописать/исправить имеющийся файл. при этом у вас широкий выбор:
1. исправить наиболее подходящий
2. выбрать наиболее подходящий, а изменения прописать в pins_MYBOARD.h
3. скопировать наиболее подходящий, обозвать его pins_VASJA_PYPKIN.h, внести в него изменения и выбрать в качестве MATSERBOARD..
04.03.19 в 13:37
0
Это мне ещё только предстоит осваивать. :)
04.03.19 в 17:34
печатает на TEVO Black Widow
0
Короче разобрался. Надо было выбрать MOTHERBOARD BOARD_MKS_13

Вот вкладка "pins_MKS_13.h"

* Arduino Mega with RAMPS v1.4 adjusted pin assignments
*
* MKS v1.3 (Extruder, Fan, Bed)
* MKS v1.3 (Extruder, Extruder, Fan, Bed)
* MKS v1.4 (Extruder, Fan, Bed)
* MKS v1.4 (Extruder, Extruder, Fan, Bed)
*/

#include "pins_RAMPS_14_EFB.h"

#undef HEATER_1_PIN
#define HEATER_1_PIN 7 // EXTRUDER 2 (-1 on RAMPS 1.4)


Тут тупо тоже самое что и в "pins_RAMPS_14_EFB.h", только добавляется тот самый второй экструдер.

Для написания комментариев, пожалуйста, авторизуйтесь.