Конфигурирование платы SKR 1.3 с драйверами TMC 2130 в SPI и BLtouch, для Ender 3.

Подписаться на 3Dtoday
Jonn123
Идет загрузка
Загрузка
12.06.19
1029
22
печатает на Ender 3
Техничка
4
Статья относится к принтерам:
Ender 3 Ender 3 Pro
Всем доброго времени суток! Так как плата и принтер довольно популярны, решил написать как же их все таки подружить. Тем более что данных инструкций не так уж и много. Материалы для данной статьи собирал на данном сайте и на посторах интернета. Про подключение самой платы к принтеру и установке ПО для конфигурирования рассказывать не буду, если кто не знает, можно посмотреть вот в этой статье: https://3dtoday.ru/blogs/bookmark/ender-3-the-transition-to-skr-v13-tmc2130-with-the-stock-display/.
И так, будем считать что плату мы благополучно подключили, ПО установили, Marlin 2.0 с оф. сайта скачали. Рекомендую взять именно с оф. сайта, так как там актуальная версия, и очень много багов допиливается, в часности стоковый дисплей Endera. Для конфигурирования я брал готовый конфиг под ender 3, он лежит сдесь:C:\Marlin-bugfix-2.0.x\config\examples\Creality\Ender-3. Для компиляции пошивки без ошибок путь не должен содержать кириллических символов.
Приступим:

1. Открываем файл platformio.ini и в нем правим:

env_default = LPC1768. 

Сохраняем, больше этот файл нам не понадобится.

2. Открываем файл configuration.h и в нем правим:

#define SERIAL_PORT -1
#define SERIAL_PORT_2 0 // порты для связи с пк.

#define MOTHERBOARD BOARD_BIGTREE_SKR_V1_3 // указываем тип нашей платы

#define THERMAL_PROTECTION_HOTENDS // включаем защиту от перегрева
#define THERMAL_PROTECTION_BED
#define THERMAL_PROTECTION_CHAMBER

#define X_DRIVER_TYPE TMC2130
#define Y_DRIVER_TYPE TMC2130
#define Z_DRIVER_TYPE TMC2130
#define E0_DRIVER_TYPE TMC2130 // указываем тип драйверов

#define S_CURVE_ACCELERATION // при желании указываем более плавные ускорения.

#define INVERT_E0_DIR true // направление мотора экструдера (если редукторный то пишем false)

#define LEVEL_BED_CORNERS // включаем выравнивание углов. (памяти в плате достаточно, пользуемся этим)
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 35 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 5 // (mm) Move nozzle up before moving between corners
#define LEVEL_CORNERS_HEIGHT 0.1 // (mm) Z height of nozzle at leveling points
#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif

#define HOMING_FEEDRATE_XY (30*60) // более адекватные скорости HOMING
#define HOMING_FEEDRATE_Z (4*60)

#define LCD_LANGUAGE ru // язык меню
#define DISPLAY_CHARSET_HD44780 CYRILLIC // отображение кириллицы на экране

#define SDSUPPORT // поддержка карты памяти

#define SPEAKER // включаем спикер
#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 0
#define LCD_FEEDBACK_FREQUENCY_HZ 0 // отключаем звук в меню (что б не пищал лишний раз)

#define CR10_STOCKDISPLAY // включаем стоковый дисплей

#define FAN_SOFT_PWM
#define SOFT_PWM_SCALE 0 // убираем свист от куллеров

Для BLtouch:

#define BLTOUCH // включаем BLtouch

#define Z_MIN_PROBE_ENDSTOP_INVERTING true // инвертируем сигал (можно оставить и false, но это влияет на точность)

#define ENDSTOPPULLUP_ZMIN_PROBE // устраняем возможный дребезг

#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN // включаем если подключали вместо концевика Z

#define X_PROBE_OFFSET_FROM_EXTRUDER -40 // расстояние от датчика по X
#define Y_PROBE_OFFSET_FROM_EXTRUDER -13 // расстояние от датчика по Y
#define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // расстояние от датчика по Z(здесь оставляем 0 )

#define MIN_PROBE_EDGE 25 // расстояние от края, чтоб не уперлось в прищепки (у вас может быть другое значение)

#define MULTIPLE_PROBING 2 // количество проб (2 достаточно)

#define Z_MIN_PROBE_REPEATABILITY_TEST // тестирование BLtouch (может пригодиться)

#define AUTO_BED_LEVELING_BILINEAR // способ выравнивания (можно и другой выбрать, но этот работает отлично)

#define GRID_MAX_POINTS_X 4 // количество точек измерения
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X

#define LEFT_PROBE_BED_POSITION MIN_PROBE_EDGE // указываем позиции крайних замеров (у вас могут быть другие значения в зависимости от крепления датчика)
#define RIGHT_PROBE_BED_POSITION 170
#define FRONT_PROBE_BED_POSITION MIN_PROBE_EDGE
#define BACK_PROBE_BED_POSITION 170

#define Z_SAFE_HOMING // включаем для хоуминга Z в середине стола

Сохраняем, здесь у нас всё. Переходим к следующему файлу.

3. Открываем configuration_adv.h.

#define FAN_KICKSTART_TIME 200 // если плохо стартует вентилятор обдува модели помогаем ему

#define E0_AUTO_FAN_PIN FAN1_PIN // Если подключили вентилятор обдува радиатора печатной головы вместо нагревателя второго хотенда
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50 // температура включения и выключения
#define EXTRUDER_AUTO_FAN_SPEED 255 // максимальная скорость

#

define HOMING_BUMP_DIVISOR { 4, 4, 4 } // более нежные делители скорости для хоуминга (Бережом концевики )

#define DEFAULT_STEPPER_DEACTIVE_TIME 300 // время удержания ШД

#define MANUAL_FEEDRATE {100*60, 100*60, 10*60, 50*60} // более адекватные скорости для движения осей из меню принтера

#define DEFAULT_MINSEGMENTTIME 50000 // Улучшаем печать по USB
#if ENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 32
#else
#define BLOCK_BUFFER_SIZE 16
#endif
#define MAX_CMD_SIZE 96
#define BUFSIZE 32
#define TX_BUFFER_SIZE 32

#

define STATUS_MESSAGE_SCROLLING // Включаем прокрутку длинных статусных сообщений на экране

#define LCD_TIMEOUT_TO_STATUS 60000 // Увеличиваем задержку (в миллисекундах) перед автоматическим выходом из меню на главный экран

#define LCD_SET_PROGRESS_MANUALLY // «Чиним» прогресс-бар при печати через USB

#define SD_MENU_CONFIRM_START // включаем подтверждение при выборе файла с флешки для печати (если нужно)

#define SCROLL_LONG_FILENAMES // Включаем прокрутку длинных имен файлов на флешке в меню

#ifdef TARGET_LPC1768 // настраиваем SD карту
//#define LPC_SD_LCD // Use the SD drive in the external LCD controller.
#define LPC_SD_ONBOARD // Use the SD drive on the control board. (No SD_DETECT_PIN. M21 to init.)
//#define LPC_SD_CUSTOM_CABLE // Use a custom cable to access the SD (as defined in a pins file).
//#define USB_SD_DISABLED // Disable SD Card access over USB (for security).
#if ENABLED(LPC_SD_ONBOARD)
//#define USB_SD_ONBOARD // Данную опцию можно включить, чтоб видеть флешку с хоста, как через кард-ридер, но я не проверял
#endif
#endif

#define BABYSTEPPING // возможность вручную задавать точно оффсет оси Z во время печати из меню принтера
#if ENABLED(BABYSTEPPING)
//#define BABYSTEP_WITHOUT_HOMING
//#define BABYSTEP_XY // Also enable X/Y Babystepping. Not supported on DELTA!
#define BABYSTEP_INVERT_Z false // Change if Z babysteps should go the other way
#define BABYSTEP_MULTIPLICATOR 2 // Babysteps are very small. Increase for faster motion.

#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
#if ENABLED(DOUBLECLICK_FOR_Z_BABYSTEPPING)
#define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
// Note: Extra time may be added to mitigate controller latency.
//#define BABYSTEP_ALWAYS_AVAILABLE // Allow babystepping at all times (not just during movement).
#define MOVE_Z_WHEN_IDLE // Jump to the move Z menu on doubleclick when printer is idle.
#if ENABLED(MOVE_Z_WHEN_IDLE)
#define MOVE_Z_IDLE_MULTIPLICATOR 1 // Multiply 1mm by this factor for the move step size.
#endif
#endif

#define MIN_STEPS_PER_SEGMENT 1 // Уменьшаем размер минимальной отрабатываемой группы шагов

Настраиваем драйвера:
#if HAS_TRINAMIC

#define HOLD_MULTIPLIER 0.5 // ток в режиме удержания
#define INTERPOLATE true // интерполяция до 256 микрошагов

#if AXIS_IS_TMC(X)
#define X_CURRENT 760 // ток двигателя
#define X_MICROSTEPS 16 // микрошаги
#define X_RSENSE 0.11
#endif

#if AXIS_IS_TMC(X)
#define Y_CURRENT 760 // ток двигателя
#define Y_MICROSTEPS 16 // микрошаги
#define Y_RSENSE 0.11
#endif

#if AXIS_IS_TMC(X)
#define Z_CURRENT 760 // ток двигателя
#define Z_MICROSTEPS 16 // микрошаги
#define Z_RSENSE 0.11
#endif

#if AXIS_IS_TMC(X)
#define E0_CURRENT 900 // ток двигателя
#define E0_MICROSTEPS 16 // микрошаги
#define E0_RSENSE 0.11
#endif

При сильном нагреве ток можно уменьшить, а при пропуске шагов увеличить из меню принтера.

#define TMC_USE_SW_SPI // включаем SPI режим

#define STEALTHCHOP_XY // Включаем тихий режим StealthChop
#define STEALTHCHOP_Z
#define STEALTHCHOP_E

#define CHOPPER_TIMING CHOPPER_DEFAULT_24V // Задаем режим работы чоппера SpreadCycle

#define MONITOR_DRIVER_STATUS // Включаем защиту драйверов от перегрева
#if ENABLED(MONITOR_DRIVER_STATUS)
#define CURRENT_STEP_DOWN 50 // [mA]
#define REPORT_CURRENT_CHANGE
#define STOP_ON_ERROR
#endif

define HYBRID_THRESHOLD // Включаем гибридный режим -при превышении указанной здесь скорости алгоритм будет переключаться со StealthChop на SpreadCycle (можно будет изменить из меню принтера)
#define X_HYBRID_THRESHOLD 120 // [mm/s]
#define Y_HYBRID_THRESHOLD 120
#define Z_HYBRID_THRESHOLD 10
#define E0_HYBRID_THRESHOLD 15

#define TMC_DEBUG // Включаем отладочный режим

#define TMC_ADV() { \ // тут ни чего не трогаем (это разширенные настройки для каждого драйвера)
stepperE0.intpol(0); \
stepperZ.intpol(0); \
}

#define AUTO_REPORT_TEMPERATURES // отправка температуры по usb

#define NO_VOLUMETRICS // Выключаем экструзию по объему

#define EXTENDED_CAPABILITIES_REPORT // Включаем расширенный отчет о возможностях прошивки для USB хоста

На это всё. Сохраняем, нажимаем кнопку компиляции прошивки. По окончании компиляции готовый файл firmware.bin нужно закинуть на флешку, флешку вставить в принтер. Файл firmware.bin лежит в по пути C:\Marlin-bugfix-2.0.x\.pioenvs\LPC1768. После проверяем что все крутится куда нужно, нагревается там где нужно и останавливается там где нужно.

P.S Сильно не пинайте, статья первая.
Подписаться на 3Dtoday
4
Комментарии к статье

Комментарии

12.06.19 в 12:45
1
Сильно не пинайте, статья первая
А чего пинать?

Пробовать - надо.

Главное - Вы написали вполне вовремя.

Я вот тоже немного написал, почти на ту же тему, и тоже для владельцев Эндора:

https://3dtoday.ru/blogs/ski/cactus-preparations-skr-13-from-sorting-to-the-department

Перекрёстную ссылку на Вашу статью - поставил.

Благодарю!
С Уважением,
Ski.



P.S.
Было-бы хорошо, если бы Вы смогли привести видео ДО Вашей модификации
и - после, чтобы можно было-бы оценить визуально и шум, и качество печати.
12.06.19 в 12:52
1
К сожалению обратно не думаю переезжать, шум очень сильно снизился, слышно только куллеры и экструдер немного. А качество печати не сильно меняется в лучшую сторону, так как оно у этого принтера и так хорошее.
Кстати еще можно реализовать парковку без концевиков, но мне не понравилось как работает.
12.06.19 в 15:06
0
Если поставите русский язык будут проблемы с выравниванием стола UBL. Не запоминает сетку. Ну и еще на заметку если включите Lin_Advance то если на экструдере стоит TMC2130 двигатель не будет крутиться, тогда необходимо поставить #define MINIMUM_STEPPER_PULSE 30
12.06.19 в 15:14
1
Про Lin_Advance вы правы, пока коэффициент не поставить отличный от 0 крутиться не будет. Но я и не упоминал про Lin_Advance. С русским языком не согласен, с автокальбровкой работает отлично. Да и сетку запоминать не нужно, так как калибровка проходит перед каждой печатью.
12.06.19 в 17:31
0
Я просто хотел дополнить своим опытом использования Lin_Advance и UBL. Я использую UBL запоминаю сетку и не нужно каждый раз перед печатью проходить калибровку стола. Так мне кажется удобнее.
12.06.19 в 17:38
0
Я понял вас. Спасибо за дополнение.
12.06.19 в 18:13
0
Чуть не забыл, для того чтоб ось Z опускалась ниже 0, при настройке BLtouch нужно закоментировать строку #define MIN_SOFTWARE_ENDSTOP_Z.
13.06.19 в 11:03
0
Не заработало -
#define LCD_LANGUAGE ru // язык меню
#define DISPLAY_CHARSET_HD44780 CYRILLIC // отображение кириллицы на экране
на экране половина меню не читаема - кракозябры.
Экран 2004LCD.
Пришлось ставить ENG и WESTERN.
13.06.19 в 11:11
0
Бывает, это от экрана дядюшки Лаю зависит.
Попробуйте раскоментировать строку #define REPRAP_DISCOUNT_SMART_CONTROLLER
может помочь.
13.06.19 в 11:25
1
Экран 2004LCD.
Так и должно быть, у него масочное ПЗУ со знакогенератором, и u8lib не ставится.

2004LCD в принципе бывают руссифицированными, но их надо искать...
13.06.19 в 13:00
1
Скорей всего так и есть.
13.06.19 в 13:16
0
Спасибо за разъяснение!
Я уж думал, что что то не так делаю в Марлине.
15.06.19 в 23:14
0
Статься с нашего вики?))) Почти слово в слово)
15.06.19 в 23:16
0
И оттуда тоже, многое взято, хорошо написано не стал менять!))) Только с SPI немного повозился!
15.06.19 в 23:23
0
А автор дал разрешение?
15.06.19 в 23:25
0
А там есть ссылка на автора?
15.06.19 в 23:25
0
Там есть ссылка на ресурс.)
15.06.19 в 23:28
0
В начале статьи я указал что это сборный материал и ни коим образом не присваиваю себе авторство.
15.06.19 в 23:57
0
Если сборный материал, указывайте ссылку на первоисточники (на все). В данной статье навскидку не менее 75% - копипаста из моей статьи на ender3.club, включая мои настройки и комментарии (некотырые из которых переписаны с ошибками). Будьте добры ссылку на мою (и другие процитированные) статьи все же дать, хотя бы потому, что там дана более развернутая версия, например что почитать про расширенные настройки драйверов через TMC_ADV.
15.06.19 в 23:58
0
К сожалению статью нельзя отредактировать, просто нет такой кнопки.
16.06.19 в 00:07
0
Очень жаль. Я, как ученый, ревностно отношусь к указанию источников при цитировании какого-либо материала (не важно, чьего авторства). Однако, как ученый же, считаю, что знания должны быть общедоступны и распространены по-возможности широко. Поэтому просто надеюсь, что данный материал здесь будет полезен людям. Но на будущее совеетую относиться к таким вещам внимательнее - достаточно просто дать ссылку на первоисточник, чтобы проявить уважение к чужому труду.
16.06.19 в 00:11
0
Спасибо. Я учту.

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

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

ExOne демонстрирует новый 3D-принтер для печати литейных форм

BigRep на ТВ: 3D-печать телевизионных декораций

Выставка РосМолд 2019. Новый материал PETG Porcelain с керамическим эффектом.

Римские легионеры в масштабе 1:35

ВИАМ демонстрирует наработки в области аддитивных технологий на форуме «Армия-2019»

Из 2D-изображения в 3D-модель