Прошивка MagoKimbra/MK4duo, настройки прошивки для Prusa i3 для бутерброда RAMPS 1.4 и для платы RAMPS 1.4 Plus

Подписаться на 3Dtoday
Mef78
Идет загрузка
Загрузка
18.06.17
1620
15
печатает на Prusa i3
Техничка
18
Уже достаточно давно (примерно пол года) пользуюсь прошивкой Marlin Kimbra (MagoKimbra/MK4duo).
PREVIEW
это переработанная прошивка Marlin итальянским RepRap сообществом. Прошивка интересна тем, что ее можно запустить как на 8 битных мозгах, так и на 32х битных мозгах на плате Arduino DUE в связке с низкобюджетным RAMPS4Due.
Скачать прошивку и ознакомиться со списком ее фич можно по официальному адресу прошивки на гитхабе.
4d46fa827ed64b1b83f18aff2a6c338e.jpg
Так же хочу сказать что по сравнению с классическим Marlin-ом, прошивку конфигурировать гораздо проще. Все благодаря тому что все настройки сгруппированы по разным вкладкам. Не надо рыть огромную портянку конфига. Очень удобно.
Прошивка работает на моем принтере, без проблем. Прошивку периодически обновляю, обычно вместе с выходом очередной версии.
Если есть желание сменить прошивку - попробуйте. Думаю вам понравится.
После смены прошивки с Marlin-а на MagoKimbra, первым делом надо очистить EEPROM по команде
M502 - Revert to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
А потом сохранить по
M500 - Store parameters in EEPROM
На сайте теоретически есть некий конфигуратор прошивки, но, я его ни разу не использовал. Попытался, но какой-то он ракообразный. В итоге проще все сконфигурировать руками.

Кратко расскажу как настроить прошивку на примере своего принтера, мозгов типа бутерброд arduino mega + ramps и кинематики Cartesian (Prusa i3). Активирую минимально-необходимое для работы количество фич.
В настройке прошивки особо сложного ничего нет, все интуитивно понятно.

Так же уделю внимание РОДНЫМ МОЗГАМ Prusa i3 от flsun3d. Изначально принтер идет с единой материнской платой RAMPS 1.4 Plus
7294abf01fccab84adeac326f44ed125.jpg
71be0abb9eb2a11160b667f48131bc0d.jpg
Если пролить в нее прошивку отличную от той что прислал китаец (Marlin 1.0.0), у принтера автоматически перестанет работать дисплей и экструдер с E0 переедет на E1. Я столкнулся с такой проблемой, посидел вечер поковырялся и нашел решение. В конце статьи расскажу как это исправить.

Прошивка без проблем собирается в последней среде Arduino (1.8.1).
Открываем файл MK4duo.ino с помощью среды Arduino и начинаем настраивать.
Начинаем со вкладки Configuration_Basic.h
Тут мы настроим
* - Тип серийных коммуникаций
* - Материнскую плату
* - Тип механики (Cartesian для Prusa I3)
* - Количество экструдеров
С ходу правим
#define BAUDRATE 250000
Если охота в терминале (или Pronterface) видеть кто конфигурил прошивку
#define STRING_CONFIG_H_AUTHOR "(Mef73, custom config)"
А можно и не трогать.
Больше в этой вкладке делать нечего, поскольку по умолчанию уже включено
#define MOTHERBOARD BOARD_RAMPS_13_HFB
#define MECHANISM MECH_CARTESIAN
А так же установлен один экструдер и один драйвер для экструдера.

Переходим ко вкладке Configuration_Cartesian.h
Начну с изменения имени принтера, хотя это и не обязательно
#define CUSTOM_MACHINE_NAME "Prusa I3 flsun"

Далее, ищу ********************************** Stepper direction ************************************
и правлю
#define INVERT_E0_DIR true
Именно мой штатный экструдер принтера Prusa i3 от flsun3d такой, инвертный. Можно перевернуть разъем шагового двигателя (ШД), но не хочу. Чтоб когда буду менять принтеру мозги, не греть голову на счет разворота разъема двигателя.

Далее, правлю ******************************* Axis steps per unit *************************************
Опять же, для мого принтера с drv8825 и микрошагом 32
#define DEFAULT_AXIS_STEPS_PER_UNIT {200, 200, 800, 310, 310, 310, 310} //drv8825
Для моего принтера с a4988 и микрошагом 16
#define DEFAULT_AXIS_STEPS_PER_UNIT {100, 100, 400, 155, 155, 155, 155} //a4988
Надо прописать только ОДНУ строчку. Для одного или для другого драйвера ШД.
Как расчитать шаги рассказывать не буду. Гайдов в сети полно.
Для остального правлю

#define DEFAULT_MAX_FEEDRATE {200, 200, 2, 100, 100, 100, 100}
#define DEFAULT_MAX_ACCELERATION {1500, 1500, 50, 1000, 1000, 1000, 1000}
#define DEFAULT_ACCELERATION 1500
#define DEFAULT_XJERK 30.0
#define DEFAULT_YJERK 30.0
#define DEFAULT_ZJERK 0.4

Эти значения можете так же поставить свои. На этом с вкладкой Configuration_Cartesian.h заканчиваем.

Переходим к вкладке Configuration_Feature.h
Тут мы настраиваем всяческие фичи прошивки. Расскажу что и где включаю я. Возможно кто-нибудь в комментариях расскажет чем еще пользуется. Я пользуюсь по сути минимумом всяких фич, только тем что мне надо.
В общем поехали...
Убираем // c
#define HOME_Y_BEFORE_X
Первой паркуем ось Y. У меня зеркало на зажимах, если первой парковать ось X при малой высоте Z соплом снесу зажимы.
#define FORCE_HOME_XY_BEFORE_Z
ось Z паркую последней
Теперь спускаемся до
//============================= ADDON FEATURES ==============================
Раскомментируем
#define EEPROM_SETTINGS
#define EEPROM_CHITCHAT
#define SDSUPPORT
#define SD_SETTINGS

активируя EEPROM и поддержку карты SD
Дисплей у меня символьный, 2004, reprap discount smart controller
#define ULTRA_LCD
#define ENCODER_PULSES_PER_STEP 4
#define ENCODER_STEPS_PER_MENU_ITEM 1
#define REVERSE_ENCODER_DIRECTION
#define SPEAKER
#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 40
#define LCD_FEEDBACK_FREQUENCY_HZ 2000

С такими параметрами у меня хорошо работают оба китайских reprap discount smart controller-а.
#define LCD_INFO_MENU
#define REPRAP_DISCOUNT_SMART_CONTROLLER


Если у вас Arduino DUE обратите внимание сюда:
//===========================================================================
//============================= ADVANCED FEATURES ===========================
//===========================================================================

/****************************************************************************************
************************************** Buffer stuff ************************************
****************************************************************************************/
// The number of linear motions that can be in the plan at any give time.
// THE BLOCK BUFFER SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering.
// For Arduino DUE setting BLOCK BUFFER SIZE to 32
#define BLOCK_BUFFER_SIZE 16

// The ASCII buffer for receiving from the serial:
#define MAX_CMD_SIZE 96
// For Arduino DUE setting to 8
#define BUFSIZE 4

В общем то это и все настройки что разнятся у Mega и DUE, других не нашел.

Переходим ко вкладке Configuration_Temperature.h
Ставим
#define TEMP_SENSOR_BED 1
Стол то у нас с подогревом, а по умолчанию в прошивке терморезистор подогрева отключен
Идем в ********************** PID Settings - HOTEND **************************
Правим:

#define DEFAULT_Kp {14.17, 40, 40, 40} // Kp for H0, H1, H2, H3
#define DEFAULT_Ki {01.55, 07, 07, 07} // Ki for H0, H1, H2, H3
#define DEFAULT_Kd {32.29, 60, 60, 60} // Kd for H0, H1, H2, H3

Это настройки когда-то полученные экспериментально для моего принтера.
После перепрошивки я обязательно перекалибрую Kp Ki Kd по команде
M303 H0 C8 S240 U
В Pronterface или даже не заморачиваясь, в терминале Octoprint. Ключ U сразу же применит результат.
После чего надо выполнить команду
M500 - Сохранить параметры в EEPROM

Спускаемся к ************************ PID Settings - BED ***************************
Стол у меня так же регулируется по PID. Bang Bang проще, но не так точен. Поэтому раскомментируем
#define PIDTEMPBED

#define DEFAULT_bedKp 88.21
#define DEFAULT_bedKi 12.77
#define DEFAULT_bedKd 152.28

Это настройки когда-то полученные экспериментально для моего принтера.
После перепрошивки я обязательно перекалибрую Kp Ki Kd стола по команде
M303 H-1 C8 S100 U
В Pronterface или даже не заморачиваясь, в терминале Octoprint. Ключ U сразу же применит результат.
Если нагрев отвалится по таймеру и выдаст ошибку, повторяю команду.
После чего надо выполнить команду
M500 - Сохранить параметры в EEPROM

Для защиты от перегрева хотэнда и стола раскомментирую
#define THERMAL_PROTECTION_HOTENDS
#define THERMAL_PROTECTION_BED


На этом вроде и все.

У меня на плате установлен самодельный Fan Extender, на 1 канал, и живет он на 11 пине. На него я подключил вентилятор обдува термобарьера.
Во вкладке Configuration_Feature.h
Убираем // с
#define HOTEND_AUTO_FAN
#define HOTEND_AUTO_FAN_TEMPERATURE 45

Ставлю температуру срабатывания на 45 градусов
Для того чтоб фича заработала, во вкладке Configuration_Pins.h

#if ENABLED(HOTEND_AUTO_FAN)
#define H0_AUTO_FAN_PIN 11
Указываю что управление вентилятором живет на 11 порту.

Теперь расскажу про замечательную плату RAMPS 1.4 Plus. Плата поставляется в комплекте с принтером Prusa I3 Flsun3d.
Пины на плате не совпадают с оригинальным бутербродным RAMPS 1.4. !!!
Я порылся в прошивке от китайцев и нашел различия в пинах.
Для MK4Duo
Качаем файл 99.h отсюда
Кладем его в папку
MK4duo-master\MK4duo\src\boards
заменяя оригинальный файл 99.h.
И теперь во вкладке Configuration_Basic.h
ставим // перед MOTHERBOARD BOARD_RAMPS_13_HFB

//#define MOTHERBOARD BOARD_RAMPS_13_HFB
#define MOTHERBOARD BOARD_99

Наша плата RAMPS 1.4 Plus теперь BOARD_99
Это зарезервированный в прошивке номер платы, думаю как раз для такого случая.
После этого на RAMPS 1.4 Plus жизнь налаживается. Начинает работать дисплей и все остальное так, как надо.

По аналогии с настройками в файле, можно сконфигурировать плату в классическом Marlin-е. У меня это тоже получилось.
Подписаться на 3Dtoday
18
Комментарии к статье

Комментарии

18 Июн 23:15
0
Радует что спагетти-код начали выправлять.
19 Июн 04:14
0
По сравнению с тем что было пол года назад, сейчас гораздо лучше :)
Работают, что радует.
19 Июн 03:35
0
Я уже на Кимбра год сижу! А не пробовали онлайн конфигуратор? Легче же! А то что прошивка лучше Марлина, да - лучше и гораздо.
19 Июн 04:12
1
Пытался, не понравилось. Руками оказалось проще, нагляднее.
Инструкция в том числе для самого себя. Иначе некоторые вещи при переконфигурации забываю где подкручивал. Приходится искать.
19 Июн 05:42
0
у кимбры два недостатка (с моей кочки зрения) -

1) недоорганизованное меню. долго с него плевался после марлина bq-edition. хотя конечно такое количество пунктов структурировать еще та задача, да и однму удобно так, другому - эдак

2) отсутствие makefile. просто бесит необходимость запускать arduino IDE для того что бы перезалить прошивку после правки пары байт. особой эротики прибавляет то, что ESP3D тоже только через ИДЕ. и приходится каждый раз переключать проекты, платы... гуй бы оторвать тому кто выпилил мейкфайл из проекта

ну и баги мелкие в ассортименте. однако после знакомства с кимброй - снес как страшный сон марлин 1.1.* и бросил попытки допилить bq marlin до своих хотелок
19 Июн 10:20
0
и приходится каждый раз переключать проекты, платы...
Сделайте 2 копии ide и не парьтесь.
19 Июн 10:34
0
хм. вариант. костыль конечно, но попробую. если ИДЕ настройки не в общей папке хранит должно сработать

но мейкфайл все же рулезнее :)
19 Июн 14:09
1
в папке с IDE можно создать папку Portable и тогда IDE станет портативной и все настройки будут внутри
19 Июн 19:51
0
спасибо, работает :)

ЗЫ в линуксе - portable (с маленькой буквы)
19 Июн 06:57
0
Может кто объяснит чем так плох Марлин? Уже 2 года сижу на старой версии, никаких проблем, свою основную задачу по управлению движками полностью выполняет. А менять его на Kimbru или Repetier ради каких-то "плюшечек", на мой взгляд, личное дело каждого. Разве не?
19 Июн 10:21
1
Ни чем. Он по своему хорош. Просто тут фломастер вкуснее и все.
19 Июн 10:31
0
я тоже сидел на bq marlin 1.4.2 и не жужжал. ровно до того момента, пока не потребовалась работа с сервами. вот тут-то всё и заверте.........
19 Июн 12:30
0
А я давно тебе говорил, попробуй... :)
И итого все равно пришел к кимбре.
19 Июн 15:39
0

У меня на плате установлен самодельный Fan Extender
А можете рассказать как сделали? Пожалуйста :)


+ В посте ничего нет про концевики. Их настройки немного отличаются (я уже запутался :D)
UPD. Разобрался, там надо закомментировать строку
#define ENDSTOPPULLUPS
и раскомментировать:
#define ENDSTOPPULLUP_XMIN
#define ENDSTOPPULLUP_YMIN
#define ENDSTOPPULLUP_ZMIN
!Это для тех, у кого обычные концевики. Меня просто смутило то, что в Марлине чуть по-другому
19 Июн 17:20
0
У меня концевики заработали с настройками по умолчанию.
Про fan extender написал, пост уже на модерации. Да и там все просто :)

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

Читайте в блогах

Примус починяем.

Дом Мельникова

3Dtoday за 60 секунд от 20 июля

3D-сканеры SMARTTECH помогли в создании первого польского суперкара

Сказка про паровозик - интермеццо

Компания Wave3D предлагает крупноформатный стереолитографический 3D-принтер