Металл2024 Реклама
Метобр2024 Реклама

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

Jonn123
Идет загрузка
Загрузка
12.06.2019
14769
65
Техничка

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

6
Статья относится к принтерам:
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.xconfigexamplesCrealityEnder-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.pioenvsLPC1768. После проверяем что все крутится куда нужно, нагревается там где нужно и останавливается там где нужно.

P.S Сильно не пинайте, статья первая.

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

6
Комментарии к статье
Кремень КБ Реклама
Кремень КМ Реклама