Marlin

Материал из wolfram
Перейти к навигации Перейти к поиску

Ну описалочка для настройки прошивки Marlin для 32 плат, и не дельта принтеров. В данном случае SKR 1.3.

platformio.ini

Указываем тип процессора LPC1768

[platformio]
default_envs = LPC1768

Configuration.h

Выберите последовательный порт на плате, который будет использоваться для связи с хостом.

Последовательный порт -1 - это последовательный порт, эмулируемый USB, если он доступен.

#define SERIAL_PORT -1
#define SERIAL_PORT_2 0

Этот параметр определяет скорость передачи данных принтера.

#define BAUDRATE 250000

Выберите имя из boards.h, которое соответствует вашей настройке

#ifndef MOTHERBOARD
  #define MOTHERBOARD BOARD_BTT_SKR_V1_3
#endif

Имя отображается на ЖК-дисплее в сообщении «Готово» и в информационном меню.

#define CUSTOM_MACHINE_NAME "Wolfram_2.1"

Это определяет количество экструдеров.

#define EXTRUDERS 1

Обычно ожидаемый диаметр нити (1,75, 2,85, 3,0, ...). Используется для измерения объема, датчика ширины нити и т. Д.

#define DEFAULT_NOMINAL_FILAMENT_DIA 1.75

Температурные настройки

Тип сенсора, если это обычный 100 киломник то ставим 1

#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_BED 1

Максимальная температура хотэнда и стола

#define HEATER_0_MAXTEMP 300
#define BED_MAXTEMP      150

Настройки PID регуляции

Рекомендуется провести тестирование и получить данные для экструдера

Команда:

M303 E0 S250 C8

Получаем данные и вписываем

#define DEFAULT_Kp 19.05
#define DEFAULT_Ki 1.79
#define DEFAULT_Kd 50.61

PID регуляция для стола

Включаем для стола если скорость нагрева до 110 меньше 8 минут.

#define PIDTEMPBED

Выполняем калибровку

M303 E-1 S110 C8

Вписываем результат

#define DEFAULT_bedKp 26.65
#define DEFAULT_bedKi 5.33
#define DEFAULT_bedKd 88.93

Предотвратите выдавливание, если температура ниже EXTRUDE_MINTEMP.

#define PREVENT_COLD_EXTRUSION
#define EXTRUDE_MINTEMP 170

Раскомментируйте одну из этих опций, чтобы включить кинематику CoreXY, CoreXZ или CoreYZ в обычном порядке или в обратном порядке.

#define COREXY

Настройка концевиков.

Нужно указать где расположены концевые выключатели. В моём случае у меня X и Y находятся в максимумах.

//#define USE_XMIN_PLUG
//#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG
#define USE_XMAX_PLUG
#define USE_YMAX_PLUG
//#define USE_ZMAX_PLUG

Настройка типа концевика, нормально замкнутый (true) или нормально разомкнутый (false)

#define Z_MIN_ENDSTOP_INVERTING true
#define X_MAX_ENDSTOP_INVERTING true
#define Y_MAX_ENDSTOP_INVERTING true

Выбор драйверов шаговых двигателей

Раскоментровав сроки с нужными осями и вписав драйвер который устанавливаем, мы определением прошивкой работу с типом подключения. SPI, UARD, так же у разных драйверов может отличится распиловка. Настройка драйвера осуществляется как прошивкой, так и аппаратно, перемычками и регулятором тока.

Я перепробовал множество драйверов, описание и характеристики по каждому тут.

#define X_DRIVER_TYPE  TMC5160
#define Y_DRIVER_TYPE  TMC5160
#define Z_DRIVER_TYPE  TMC2208_STANDALONE
#define E0_DRIVER_TYPE TMC2130

Шаги по оси на единицу по умолчанию (шаги / мм)

По всем осям стоят шаговые двигатели 200 шагов на оборот, 16 микро-шагов на шаг (это устанавливается перемычками на плате). Двигатель 1.8 градуса.


По осям X и Y стоит приводной ремень GT2 с шагом 2 мм и шкивы с 20 зубьями.

Получается:

(200 * 16) / (2.0 * 20) = 80

Для шкива 16 зубьев

(200 * 16) / (2.0 * 16 ) = 100


Расчет оси Z (ходовой винт)

Шпилька М8 с шагом резьбы 1,25 мм, тогда формула: 200 * 16 / 1.25 = 2560

Трапецеидальный винт диаметром 8 мм с шагом 2 мм  и заходностью 4, тогда формула: 200 * 16 / 2 * 4 = 400

У меня шаговый винт 1204, при 16 микрошаге 800 шагов на 1мм


В зависимости от выставленного микрошага , меняется число шагов на миллиметр

#define DEFAULT_AXIS_STEPS_PER_UNIT   { 400, 400, 800, 415 }

Максимальная скорость подачи по умолчанию (мм / с)

#define DEFAULT_MAX_FEEDRATE          { 300, 300, 15, 50 }

Максимальные скорости воспринимаемые принтером

#define MAX_FEEDRATE_EDIT_VALUES    { 600, 600, 10, 50 }

Изменение максимального ускорения (изменение / с) по умолчанию = мм / с

#define DEFAULT_MAX_ACCELERATION      { 3000, 3000, 100, 3000 }

По умолчанию изменение ускорения (изменение / с) = мм / с

X, Y, Z и E ускорение для печати движений

#define DEFAULT_ACCELERATION          2200

E ускорение при втягивании

#define DEFAULT_RETRACT_ACCELERATION  3000

Ускорение по осям X, Y, Z при перемещении (без печати)

#define DEFAULT_TRAVEL_ACCELERATION   2000


Предел рывка по умолчанию (мм / с)

«Рывок» определяет минимальное изменение скорости, при котором требуется ускорение.

//#define CLASSIC_JERK

Рывки по умолчанию, для прочных принтеров 15 -20, для обычных до 10

#define DEFAULT_EJERK    15.0

Коэффициент отклонения соединения

Высчитывается по формуле :

d = 0.4 15 * 15 / 2200 = 0,0409

#define JUNCTION_DEVIATION_MM 0,0409


Измените направление шага. Замените (или поменяйте местами разъем двигателя), если ось идет в неправильном направлении.

#define INVERT_X_DIR true
#define INVERT_Y_DIR true
#define INVERT_Z_DIR true
#define INVERT_E0_DIR false

Направление упоров при наведении; 1 = МАКС, -1 = МИН

Нужно указать положительное число если у нас концевики в максимумах

#define X_HOME_DIR 1
#define Y_HOME_DIR 1
#define Z_HOME_DIR -1

Размер печатной платформы

Тут очень много путаницы, самый простой способ определить максимальные координаты это указать с запасом, затем отправить принтер домой, и ручной подачей передвинуть сопло до самого края стола по XY. Координаты на экране и будут максимальными размерами области движения. Это удобно тем что, при указании области печати, ничего никуда не съедет. Так как область печати опирается на максимальные точки.

#define X_BED_SIZE 237
#define Y_BED_SIZE 232

Но в реальности стол 220*220