Настройка прошивки Marlin для 3D принтера

Большинство 3D принтеров работают под управлением популярной прошивки Marlin. Для некоторых 3D принтеров существуют уже стандартно сконфигурированные прошивки:

Рассмотрим основные настройки релиз версии

2015-10-19_114528

Крайняя версия пошивки лежит по этому адресу. Выбрать другую версию и скачать архив можно по этой ссылке. Рекомендую использовать версию помеченную как Latest release.

download

Теперь скачиваем Arduino IDE для исправления и загрузки прошивки в 3D принтер. Ссылка. (Беспроблемная версия 1.6.0 для Marlin 1.0.2-1) Давим на Windows Installer. Скачиваем установщик. Запускаем его и устанавливаем среду Arduino IDE.
2015-10-19_115456

Переходим в папку с прошивкой и запускаем файл Marlin.ino.
Marlin 2015-02-13 19.30.51

Открывается среда Arduino IDE с прошивкой. Нам нужна вкладка Configuration.h.
2015-10-19_121426

В начале мы видим ссылки на калибровку 3D принтера. Пролистываем дальше и читаем: “Это конфигурационный файл с основными настройками. Выберите тип контроллера, тип температурного датчика, откалибруйте перемещения по осям и сконфигурируйте концевые выключатели.”

Начнём с выбора контроллера (MOTHERBOARD). Список контроллеров находится во вкладке boards.h. Давим на треугольник в правом верхнем углу и выбираем boards.h.
2015-10-19_122746

Теперь посмотрим на установленную электронику. Вот самые распространённые типы плат:

Melzi
RepRapMelzi
Sanguinololu
sanguino

RAMPS 1.4
RAMPS_1.4
У меня стоит RAMPS 1.4.
Marlin _ Arduino 1.0.6 2015-02-13 19.58.50

Указываем в configuration.h свой контроллер.

#ifndef MOTHERBOARD
#define MOTHERBOARD BOARD_RAMPS_13_EFB
#endif

Следующим выбираем датчик температуры – термистор, для хотэнда и стола. Видим большой список “//// Temperature sensor settings:”. У меня стоит хотэнд E3D-v5 и китайский термистор на столе. Для E3D-v5 я выбираю “// 5 is 100K thermistor – ATC Semitec 104GT-2”, для стола “// 1 is 100k thermistor – best choice for EPCOS 100k”. Если тип термистора неизвестен можно выбрать 1, а если температура не понравится можно выбирать любой и тестировать. Меняю.

100K thermistor – ATC Semitec 104GT-2
E3D

Обычный китайский термистор 100К
100K

Marlin _ Arduino 1.0.6 2015-02-13 20.30.27

У Ultimaker Original в хотэнде стоит термопара. При подключении термопары важно соблюдать полярность. Тип сенсора “-1”.
thermocouple

Если в хотэнде используются фторопластовые части, то температуру следует ограничивать, во избежания повреждения хотэнда. Максимальная рабочая температура фторопласта 260 градусов. Если хотэнд цельнометаллический, то можно ставить 320 градусов (если нужно).

Ограничение максимальной температуры хотэнда “#define HEATER_0_MAXTEMP 275”.

Минимальная температура ограничивается для механической защиты хотэнда от выдавливания холодного пластика.

Ограничение минимальной температуры хотэнда “#define EXTRUDE_MINTEMP 170”.

Настройка концевых выключателей

Если сработал концевик, то мотор не должен дальше двигать каретку. Концевики нужны для ограничения перемещения кареток и инициализации начальной точки HOME. При сработанном концевике каретка может двигаться только от него.

Нам нужно узнать где они расположены. Как это узнать? Начало координат находится в ближнем левом углу на поверхности стола, если сопло вывести в эту точку, то сработали бы концевики MIN, если в правую дальнюю верхнюю – сработают MAX. У меня в положении HOME находятся три концевых выключателя MAX, поэтому мои установки

// Sets direction of endstops when homing; 1=MAX, -1=MIN
#define X_HOME_DIR 1
#define Y_HOME_DIR 1
#define Z_HOME_DIR 1

. Команда M119 (например в Pronterface) показывает состояние концевых выключателей. У меня концевые выключатели стоят только в позиции HOME на MAX.

End_stops

Так должно быть:

В положении HOME
Pronterface 2015-02-14 14.46.05

В положении отличном от HOME по всем осям
Pronterface 2015-02-14 14.46.43

Если у Вас не получилось как у меня, то состояние концевых выключателей по выбранной координате нужно инвертировать, это можно сделать в прошивке или перепаять провода. Значения false или true. Мне ничего менять не потребовалось.

const bool X_MIN_ENDSTOP_INVERTING = true;
const bool Y_MIN_ENDSTOP_INVERTING = true;
const bool Z_MIN_ENDSTOP_INVERTING = true;
const bool X_MAX_ENDSTOP_INVERTING = true;
const bool Y_MAX_ENDSTOP_INVERTING = true;
const bool Z_MAX_ENDSTOP_INVERTING = true;

Изменение направления вращения шаговых двигателей, значения false или true. Правильные перемещения сопла относительно стола:

  • По оси X – влево “-“, вправо “+”.
  • По Y – вперёд “+”, назад “-“.
  • По оси Z – сближение “-“, удаление “+”.
  • Экструдер. Extrude – выдавливание нити, Reverse (retract) – откат, втягивание нити.

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

Установка габаритов перемещения, после инициализации в положении HOME. Здесь мы задаём габариты максимальных перемещений по осям X и Y, а также настройку сопла относительно стола.
Если при касании стола соплом срабатывает концевой выключатель (MIN), как у Ultimaker Original, то поднастройка сопла относительно стола выполняется перемещением концевого выключателя, а в “#define Z_MAX_POS” записываем значение координаты при максимальном удалении сопла от стола. Координату можно узнать по команде М114 или посмотрев на экран дисплея.
Если концевой выключатель по Z срабатывает при максимальном удалении сопла от стола (MAX), то нужно найти габарит по Z самостоятельно. Устанавливаем значение “#define Z_MAX_POS” изначально больше нормы, например 250 при габарите 200 мм. Опускаем сопло до касания стола и на дисплее (или по команде M114) видим координату больше нуля, теперь вычтем из установленного большого значения полученную координату и получим габарит по Z, который теперь запишем в “#define Z_MAX_POS”. По итогам печати первого слоя можно будет подкорректировать это значение.

// Travel limits after homing
#define X_MAX_POS 215
#define X_MIN_POS 0
#define Y_MAX_POS 215
#define Y_MIN_POS 0
#define Z_MAX_POS 200
#define Z_MIN_POS 0

Можно подкорректировать скорость перемещения в положение HOME. Обычно занижают скорость по оси Z, если стоят кривые шпильки.

#define HOMING_FEEDRATE {50*60, 50*60, 4*60, 0}  // set the homing speeds (mm/min)

Переходим к самому важному. Настройка шагов перемещения по осям. Экструдер тоже ось. Мои настройки:

#define DEFAULT_AXIS_STEPS_PER_UNIT   {(200*16)/(2.0*20),(200*16)/(2.0*20),200*16/1.25,(3200 * 39.0)/(11.0 * 6.75 * 3.45)}

Marlin _ Arduino 1.6.0 2015-03-18 14.59.23

Теперь посмотрим, как я их получил. По всем осям стоят шаговые двигатели 200 шагов на оборот, 16 микрошагов на шаг (устанавливается перемычками на плате), приводной ремень GT2 с шагом 2 мм, 20-ти зубые шкивы, итого получаем формулу (200*16)/(2.0*20). По оси Z стоят шпильки М8 с шагом резьбы 1,25 мм, итого формула 200*16/1.25.

Находим спецификации (даташит) на установленные шаговые двигатели. Видим, что за один шаг вал поворачивается на 1,8 градуса, а это значит 360/1,8=200 шагов на полный оборот. Этот параметр одинаковый у большинства шаговых двигателей устанавливаемых в домашние 3D принтеры.
42BYGHW609-Stepper-Motor-Datasheet1.pdf - Google Chrome 2015-02-14 10.56.27

Профили ремней, обычно используемых на 3D принтерах и их шаг. Оригинал здесь, страница 61.
TimingBeltDatasheet_GT2

Шкив
Puley

Как померить шаг винта? Замеряем участок винта и считаем на нём витки, затем длину участка в миллиметрах делим на количество витков 20/16=1.25 мм. Для более точного результата замеряем максимальный участок винта.
IMG_6091

Настройка экструдера зависит от коэффициента редукции и диаметра подающей шестерни. Подберём экспериментально, после первой заливки прошивки в 3D принтер. Откручиваем сопло и уменьшаем ограничения минимальной температуры сопла до 5 градусов “#define EXTRUDE_MINTEMP 5“. Теперь экструдер будет работать при холодном сопле, что нам и нужно. Пока не меняем настройки экструдера. Для настройки я использую программу Pronterface. Для начала ставим 50 мм и скорость 100 мм/сек. 50 мм – это длина прутка, проходящего через экструдер. Измеряем длину прутка прошедшего через экструдер линейкой или штангенциркулем.
Pronterface 2015-02-13 21.49.54

Подбирая настройку экструдера добиваемся точной цифры на разумной длине прутка, например 300 мм. После настройки вернём ограничения минимальной температуры “#define EXTRUDE_MINTEMP 170.

Следующие цифры – это ограничение максимальной скорости перемещения по осям. На X и Y я ставлю 200 мм.

#define DEFAULT_MAX_FEEDRATE          {200, 200, 5, 25}

Настройка ускорения перемещений по осям. При больших ускорениях возможны пропуски шагов. Можно подбирать, гоняя в программе Pronterface по осям на заданной скорости. Вот мои настройки.

#define DEFAULT_MAX_ACCELERATION      {1000,1000,100,10000}
#define DEFAULT_ACCELERATION          1500

Осталось активировать LCD дисплей с SD картой.

 

2004 LCD

Свой дисплей я нашёл на RepRap.org и идентифицировал как RepRapDiscount Smart Controller.
LCD2004

Раскомментируем следующие строки. То есть убрать двойные слэши. Строка за “//” не используется и является только комментарием. Когда убираем слэши строка принимает участие в компиляции прошивки и задействует её функции.

#define ULTRA_LCD
#define SDSUPPORT
#define ULTIPANEL
#define REPRAP_DISCOUNT_SMART_CONTROLLER

Для подключения LCD к Ultimaker нужно раскомментировать только одну строку

#define ULTIMAKERCONTROLLER

 

RepRapDiscount Full Graphic Smart Controller

FullGPX

Большой графический дисплей. Поддерживает кириллицу.

Для начала нужно в Arduino IDE установить библиотеку U8glib и не обновлять (проверенная версия 1.18.1).

2016-03-19_213328

2016-03-19_214237

Теперь раскомментируем строки:

#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

 

Есть ещё один твик для повышения точности срабатывания некоторых концевых выключателей. При настройке нуля по Z столкнулся с тем, что после каждой инициализации HOME положение сопла над столом немного менялось. Порывшись в прошивке нашёл параметр отвечающий за длину отката при инициализации концевых выключателей. Переходим во вкладку Configuration_adv.h и ищем строку “#define Z_HOME_RETRACT_MM 2” или “#define Z_HOME_BUMP_MM 2“, меняем значение 2 на 5 и больше не вспоминаем про этот параметр. Это можно исплоьзовать и для других осей.

 

Пора заливать прошивку в контроллер. Для этого нужно в Arduino IDE правильно выставить тип платы и номер COM порта. Внизу окна отобразится тип платы и номер порта. Не забываем сохранять изменения (Ctrl+S).

RAMPS 1.4
2015-10-19_125150

2015-10-19_125240
2015-10-19_125357

MELZI, Sanguinololu

 

Электроника Melzi удачно прошивается только старыми версиями Arduino IDE, поэтому качаем версию 1.0.1. Устанавливаем. Скачиваем файлы для поддержки электроники Sanguino-0101r1. Распаковываем в папку с Arduino IDE. Теперь в меню появятся нужные платы. Выбираем и прошиваем. Тема на форуме по проблемам прошивки Melzi.

 

Что делать если порт не выбирается? Нужно установить дополнительный драйвер CH341SER (дубль)

Для заливки прошивки нажимаем на круг со стрелкой.
Marlin _ Arduino 1.0.6 2015-02-13 23.04.56

Прогресс заливки прошивки отображается индикатором
Marlin _ Arduino 1.0.6 2015-02-13 23.09.22

 

После того, как всё заработает нужно откалибровать PID нагрева хотэнда и стола. Для этого я использую Pronterface. Вводим команду “M303 E0 C8 S260“. Где M303 – команда калибровки, E0 – хотэнд, C8 – количество циклов нагрева-охлаждения, S260 – типичная температура работы сопла.
Pronterface 2015-02-14 10.10.18

Последние результаты записываем в прошивку.

#define  DEFAULT_Kp 12.22
#define  DEFAULT_Ki 0.58
#define  DEFAULT_Kd 64.08

По такой же схеме калибруем PID стола. Отвечает строка #define PIDTEMPBED. Команда “M303 E-1 C8 S110“. Где E-1 – стол, S110 – типичная температура нагрева стола. Последние результаты записываем в прошивку. У меня стол нагревается очень медленно и поэтому приходится перезапускать команду из-за ошибки Timeout.
Pronterface 2015-02-14 11.09.53

#define  DEFAULT_bedKp 105.94
#define  DEFAULT_bedKi 4.97
#define  DEFAULT_bedKd 564.11

В последних прошивках не настраивается автоПИД на реле. Реле переключается очень быстро. Это сильно разогревает твердотельное реле и обычное реле видимо долго не проживёт. Предлагаю использовать пока мою старую настройку
#ifdef PIDTEMPBED
#define  DEFAULT_bedKp 234.18
#define  DEFAULT_bedKi 31.62
#define  DEFAULT_bedKd 433.56
#endif // PIDTEMPBED
или эту
#ifdef PIDTEMPBED
#define  DEFAULT_bedKp 105.94
#define  DEFAULT_bedKi 4.97
#define  DEFAULT_bedKd 564.11
#endif // PIDTEMPBED
Вместо PID регулировки температуры стола рекомендую включить режим гистерезиса bang-bang. Функцию PID тогда нужно закомментировать. Чем так хорош этот режим – он не терзает реле (если стоит) частыми переключениями и снижает нагрев SSR реле.
Configuration.h
//#define PIDTEMPBED

Как защитить 3D принтер от пожара и поломок

Находим в Configuration.h строку Thermal Runaway Protection. Здесь можно подробнее прочитать про работу этой функции, а чтобы её включить нужно раскомментировать строки:
для хотэнда
#define THERMAL_RUNAWAY_PROTECTION_PERIOD 40 //in seconds
#define THERMAL_RUNAWAY_PROTECTION_HYSTERESIS 4 // in degree Celsius
для стола
#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds
#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius
Чтобы защита работала правильно нужно чтобы колебания температуры не выходили за рамки HYSTERESIS или увеличить этот параметр до разумных пределов.

Как узнать уже установленные в прошивке параметры

M501 читает параметры прошивки и их можно сохранить в текстовом файле
0_f3b38_c0554033_orig

Параметры установленные в прошивке можно узнать в программе Repetier-Host через меню Конфигурация\Конфигурация EEPROM. Предварительно нужно указать COM порт в настройках и нажать кнопку “Подсоединить”.
Настройки Marlin EEPROM 2015-02-14 13.09.35

При подключении 3D принтера к программе Pronterface в правой части окна загружается список параметров
Pronterface 2015-02-14 13.16.10

Также параметры можно увидеть на LCD дисплее. Через меню Control\Motion.

 

Очистка EEPROM

EEPROM clear

 

Вопрос – ответ

настроил ПИД, температуру держит на ура, но при нагреве с 20 до 240 улетает за 270. какой из коэфициентов руками подкрутить?
решил проблему снижением тока в прошивке и руками уменьшил Кр относительно автопид на несколько едииниц
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
Теперь температура + – 3градуса

Возможные ошибки

На экране надпись (Сработала термозащита):
Err MINTEMP – Неподключен термистор (термопара) или обрыв провода к нему.
Err MAXTEMP – Короткое замыкание контактов термистора (термопары).

Описание G-кодов

 

Ссылка на осуждение прошивки на форуме

45

Метки: , ,    2015-10-22      Раздел: Настройка, Прошивка  
Автор: Просмотров: 85 209   46 комментариев



46 комментариев на «Настройка прошивки Marlin для 3D принтера»

  1. подскажите, пожалуйста. не получается с прошивкой, не может проверить ардуино. пишет ошибку
    This report would have more information with
    «Show verbose output during compilation»
    enabled in File > Preferences.
    Arduino: 1.0.6 (Windows 7), Board: «Arduino Mega 2560 or Mega ADK»
    Marlin_main.cpp:242: error: too many initializers for ‘float [3]’
    Marlin_main.cpp:874: error: too many initializers for ‘const float [3]’
    Marlin_main.cpp:875: error: too many initializers for ‘const float [3]’

    выделяет желтым такую строчку float max_pos[3] = { X_MAX_POS, Y_MAX_POS, Z_MAX_POS };
    если ее закомментировать, то дальше начинает выделять строчки и пишет другие ошибки.
    на другом компьютере эта прошивка нормально проверяется. на версии 1.6.7 все тоже самое.

    0
    1. Раз на одном проходит, а на другом нет, значит это ошибки компилятора C++ связанные с железом компьютера. Скорее всего связаны с памятью. Я так думаю.
      Можно скомпилировать прошивку на рабочем компьютере и сохранить в HEX файл (Меню > Скетч > Экспорт бинарного файла). Файл с расширением HEX появится в папке с прошивкой (у меня их почему-то два). Его можно переносить и заливать в принтер с помощью программы XLoader http://russemotto.com/xloader/

      0
      1. ок, спасибо. попробуем )

        0
  2. хотелось бы “услышать” ваше мнение о последней версии прошивки 1.1.0-RC3.
    После больших танцев с бубном *WALL* , *HELP* и постоянных переговоров с разработчиками (thinkyhead) , которые не очень хотят исправлять по настоящему прошивку , и постоянно что то тулят в неё ,я так и не добился стабильной работы – печать отверстий идёт рывками , индикатор постоянно мельтишит , при ручном вмешательстве (изменение скорости )происходят не понятные ” звуки ” в двигателях ,не исправлены ошибки при движении от энкодера – особенно по оси Z – может привести с к сбросу , пришлось отключить тепловую защиту – произвольная остановка при печати , ХОТЯ ЕСТЬ И ХОРОШЕЕ *HI* – более информативное и улучшенное меню , втулили русский язык (коряво – как выяснилось у них никто не знает языка), алгоритмы движения немного поменялись , парковки , выравнивание стола изменилось (правда не так как хотелось – я их просил чтобы сперва подымалось сопла ну хотя бы на 1 мм а потом парковка – нет прикидываются что не могут перевести письмо , но самое интересное (сами признались ) у них нет ни одного принтера для испытаний) =-O
    Ваше мнения ? может можно и самим всё скорректировать ?

    0
    1. Моё мнение. Если принтер нормально печатает на Latest release, то и не нужно искать приключения в RC сборках. У меня только один принтер вынужденно работает на RC из-за другого алгоритма PID, но в этой сборке нет возможности из меню изменить температуру или обороты вентилятора =-O В вашей сборке совсем другие симптомы. Попробуйте эту сборку 1.1.0-RC3. Меня радует, что сейчас развитие Marlin идёт очень активно, но огорчает, как и всех, сырые сборки RC. Вы можете вступить в ряды разработчиков и вносить свою долю хаоса в сборки *PARDON* или просто подобрать себе рабочую сборку и печатать *YES*

      0
      1. да сырость RC не радует , я брал “RCBugFix”
        в 1.1.0-RC3. температура прекрасно меняется , насчёт фена – не использую , но там есть ручное перемещение высоты Z при парковке – вернее можно устанавливать разные значения высоты от стола после касания , а мне приходиться постоянно менять стекло после печати (время ) и каждый раз калибровать :( , хотел установить автоуровень на индукционном датчике , так датчик реагирует только на метал и только 4 мм (у меня стекло 4 мм), ставил выдвижной концевик – мешает при работе, и не всегда , сервомотор выставляется в точное место (угол по вертикали ) , оптика сбивается при засветах и грязи на столе ,
        и ещё в прошивке стабил https://github.com/ErikZalm/Marlin работа парковки немного не такая , если бы можно перенести или переписать на похожую в RC3 можно и забыть про них ,
        далее заметил такое :
        в https://github.com/ErikZalm/Marlin все движения равноускоренные при окружностях
        в RC3 почему-то окружности вычерчиваются рывками или точками – достало окружности получаются с волнистыми краями и время печати больше хотя использую один и тот же G файл

        0
  3. Вот нашел видео показано как настроить подачу экструдера https://youtu.be/yLH4K1vNoXo

    0
  4. подскажи как поменять прошивку для corexy?

    0
    1. Вот такая строчка есть в Configuration.h
      Её нужно просто раскомментировать.

      0
  5. Алексей, вопрос по прошивкам Marlin:
    попытался залить прошивку Latest release с подключением RepRapDiscount Full Graphic Smart Controller, в итоге матюки компилятора и невозможность прошивки в Мегу 2560…
    то, что пишет:
    sketch\Marlin_main.cpp:2667:36: warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix]
    LCD_MESSAGEPGM(MACHINE_NAME” “MSG_OFF”.”);
    ^
    In file included from sketch\dogm_lcd_implementation.h:38:0,
    from sketch\ultralcd.cpp:39:
    sketch\dogm_font_data_marlin.h:12:25: fatal error: utility/u8g.h: No such file or directory
    #include
    ^
    compilation terminated.
    exit status 1
    Ошибка компиляции для платы Arduino/Genuino Mega or Mega 2560.

    взял версию RC3 — все компилируется и льется без проблем…
    в чем может быть моя косорукость?
    библиотеку U8glib — прикрутил, только версию библиотеки предлагало 1.18.0 или 1.19.1, а не 1.18.1, в итоге поставил 1.18.0

    0
    1. А какая версия ArduinoIDE? Попробуйте 1.6.0, с ней меньше ошибок.

      0
  6. Версия 1.6.8, сейчас тогда попробую качнуть и зплить под 1.6.0 и отпишусь о результате…

    0
  7. Это просто какой-то пушистый зверек….
    поставил версию 1.6.0, теперь выдало:
    In file included from dogm_lcd_implementation.h:38:0,
    from ultralcd.cpp:39:
    dogm_font_data_marlin.h:12:25: fatal error: utility/u8g.h: No such file or directory

    и еще, а где подключаются(изменяются) языки?
    #include
    ^
    compilation terminated.
    Ошибка компиляции.

    0
    1. Посмотрите пример прошивки с графическим дисплеем https://3deshnik.ru/forum/viewtopic.php?f=5&t=63&start=45#p825

      0
  8. Подскажите где косяк? уже три дня долбусь, а толку ноль…
    проблема вот в чем: подключил на ось Z два шаговика NEMA17, соединил -последовательно, как предлагают все умные люди (при параллельном включении якобы происходит рассогласование по оборотам из-за неодинакового сопротивления обмоток )
    в общем. подключил последоватально, НО! то оба движка запускаются и гоняются одинаково без проблем, то начинается чехорда, каждый живет своей жизнью и крутится куда ему хочется….
    в чем может быть проблема???? уже желание спустить этот принтер с пятого этажа…
    прошивка – Marlin-1.1.0-RC3

    0
    1. Крутят в разные стороны или просто рассинхрон?

      0
  9. начинаем с парковки:
    раз запустил систему, сделал парковку – все нормально и по оси вращаются сколько хош без проблем…
    другой раз запустил систему, сделал парковку – и тут началось… то при парковке могут крутиться в разные стороны, то один может стоять, а другой вращаться… то вращаться в разные стороны …. причем сколько ее не делай – фанарь полный…

    0
    1. Я двигатели Z подключал всеми возможными способами. Разницы не увидел. Не могу представить виновника в вашем случае. Попробуйте подключить двигатели на раздельные драйверы.

      0
    2. как видимо полхой контакт на драйверах
      1 просмотреть и пропаять все контакты на плате — чехорда — значит хаотичность — плата процессора и драйверов (я не знаю что у Вас стоит ) имеют плохой контакт — вернее цепи управления драйвером — надо всё просмотреть пропоять — если китай — однозначно поверить питание 5 вольт , доставить электролиты по питанию драйвера если два двигателя включены последовательно – высокое напряжение на выходе драйвера , при индуктивности обмоток (увеличели в два раза – помеха тоже увеличется, не все драйвера имеют гасящие цепи помех (диод в обратном включении )
      2 работа концевиков — прмерить все провода даже на изгиб , проверить сами выключатели — может поставили с большим дребезгом ( прошивка хотя и устроняет дребезг ,но время реакции не даёт возможности применять выключатели с разным временем дребезга !!!), может идти наводка по проводам , сбивая работу прошивки , если запаралеленные датчики — резисторы на питание проверить и отключить не нужные — была такая чехорда при датчике на самой каретке с савтоуровнем
      последовательное подключение двигателей на оси Z уменьшает рассогласование ? бред если один мотор пропустил шаг , беда в механике — есть дополнительная нагрузка и ещё какая схема кинематики ?

      0
  10. Всем спасибо. с Z-ом разобрался! СПАСИБА “братьям” китайцам…. три якобы одинаковых двигателя, с разъемами, но вот коммутация обмоток на выводах почему-то разная…. ]:-> в общем всё по китайскому ГОСТу >:o
    теперь вопрос по концевикам… либо я их не туда поставил, либо лыжи пора снимать…
    по конструкции: привод по оси Х стоит слева, соответственно и концевик туда же прилепил, и всю электронику расположил там же…,
    концевик по оси У – стоит на задней стенке, т.е. нажимается, когда стол иходит от меня…
    и третий концевик оси Z – стоит над правым шаговиком… да, кстати конструкция – классическая фанерная ПРЮША
    в итоге, при посылке “ДОМОЙ” – скорость кареток довольно высокая и система соответственно долго догоняет, что концевик уже нажался, хотя после нажатия каретки возвращаются назад до отпускания концевика…
    ВОПРОС 1: можно ли где-то в прошивке уменьшить скорость, а то надоело уже назад возвращать снесенные концевики…
    ВОПРОС 2: все концевики стоят на МИН, но что самое интересное, то почему-то движение в Репитере и Prointerface отличаются…
    при команде “домой” головка с хотендом убегает в противоположную сторону от концевика, а при попытке печати – сразу едет к концивику и налетает на него…. о же самое и с другими осями….
    получается, что если двигатели подключить так, что бы они все стали на концевиках, то при печати они едут на концевики… а если на оборот – то при попытке печати все ОК…
    как решить сей вопрос, но без перестановки концевиков?

    0
  11. Скорость перемещения в HOME

    #define HOMING_FEEDRATE {50*60, 50*60, 8*60, 0} // set the homing speeds (mm/min)

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

    // ENDSTOP SETTINGS:
    // Sets direction of endstops when homing; 1=MAX, -1=MIN
    #define X_HOME_DIR -1
    #define Y_HOME_DIR -1
    #define Z_HOME_DIR -1

    0
  12. Хорошая статья. Но на сегодня было бы не плохо добавить инф. по кинематике х-бот :-[

    0
  13. Алексей, не совсем понятно откуда берутся значения для экструдера в настройке перемещения по осям – (3200 * 39.0)/(11.0 * 6.75 * 3.45). Можете немного пояснить что к чему?

    0
    1. Эти цифры от Mendel90 с расчётами шестерней экструдера. Обычно эту цифру подбирают опытным путём. Например выдавливаем 100 мм прутка командой G1 F500 E100 и замеряем сколько реально заглотил экструдер. Меняя калибровку в прошивке, постепенно добиваемся точного совпадения длины прутка, втягиваемого экструдером. Есть конечно формулы расчёта редукторов, но их мало кто использует и всё равно проверяют на практике.

      0
  14. только собрал новый Kossel…механика работает….отсутствует подогрев стола…
    на индикатор температура не выводится – чисто..
    на внешний комп…информации то же нет….
    на дисплее модель UM v 2.4…..видимо блокировка этой функции…куда лезть?????

    0
  15. ArDi:

    Подскажите, пожалуйста, где искать косяк? На Prusa i3 Hephestos поставил горячий стол, в прошивке открыл его “#define TEMP_SENSOR_BED 1”, прошивку залил. Все прошло без ошибок. На дисплее появилась температура стола. Но, когда в Pronterface включаю нагрев стола – ничего не происходит. Напряжение на клеммах стола на Рампсе не появляется. Куда копать дальше?

    0
    1. Возможно у Гефестоса нагрев стола на не стандартном пине. Лучше поискать родную прошивку с включенным столом.

      0
  16. Расскажите в подробностях за что отвечает параметр “#define PIDTEMPBED”? Спасибо.

    0
    1. При активировании PIDTEMPBED включается более точный алгоритм удержания температуры стола – PID, при этом частота включения-отключения увеличивается. Если используется механическое реле, то оно будет нагреваться и быстро выйдет из строя.

      1
      1. Спасибо. Пока планирую использовать «родной» транзистор на РАМПСе с дополнительным радиатором и обдувом. Если с ним будут проблемы, то перепаяю на более подходящий. А вообще стоит с ПИДами стола запариваться? Есть какие то минусы (плюс по крайней мере очевиден)? Кстати говоря, жалею, что не вывел светодиод с термостола на переднюю панель принтера… Но при случае точно сделаю.
        Правильно ли я понимаю, что из-за закоментированного этого параметра у меня не включалась автоматическая регулировка (точнее сказать автоподбор) ПИДов командой M303 E-1 C8 S110 через Пронтерфейс?

        0
        1. PID может быть точнее на 1-2 градуса, что для стола не существенно.
          А зачем вам светодиод мигающий в глаза? Его специально сзади стола прячут.
          Команда M303 E-1 конечно не должна работать, пока не включен PIDTEMPBED в прошивке.

          1
  17. Доброго времени дня !
    Пошагово двигаюсь в освоении 3Д принтера)))
    Запустил Repeter-Host , при нажатии Кнопки “Присоединить” выскакивает вот такое окно .
    Какие мои действия дальше.

    Заранее спасибо!

    0
    1. Скорее всего что-то не правильно подсоединено или настроено. Такие вопросы лучше задавать в этой теме форума https://3deshnik.ru/forum/viewtopic.php?f=5&t=8

      0
  18. Здравствуйте.
    Получил из китая новый 3Д принтер Tevo Tarantulo.
    При сборке выяснилось что драйвер оси Х на плате MKS base v1.4 не работает.
    Прошивка Marlin 1.1 RC7.
    Подскажите можно ли в прошивке назначить драйвер предназначенный для привода второго экструдера (которого у меня нет) на привод оси Х.
    Уверен, что возможно, но в каких файлах копать?
    Спасибо.

    0
    1. Это возможно. Ищите файл pins.h для вашей электроники. Там нужно переназанчить пины между драйверами.

      0
  19. А вот это что за ошибка? Подскажите пожалуйста, а то чет нигде не нашел инфы Err: Too Far! прошивка marlin 7 принтер Anet A6

    0
      1. простите забыл написать. при нажатии на Set home offsets, вроде как должны выполняться команда M428 но что за команда чет не нашел

        0
  20. вроде нашел :) это для дельт: M428 – Set Home коррекций на основе текущей позиции.

    0
  21. zOOm:

    Доброго времени суток, Алексей.
    Подскажите пожалуйста, есть ли простой способ корректировки коэффициентов PID в прошивке уже залитой на принтер?
    Долго боролся с горизонтальной полосатостью распечаток, а выяснилось что это из-за сильно гуляющей температуры стола.
    С помощью Пронтерфейса откалибровал стол… но куда теперь писать эти данные? В Репитере есть возможность поменять коэффициенты PID только для Хотэнда.
    Пробовал прописать в Start G-code вот это “M304 P505.48 I97.94 D652.19”, но так срабатывает только до старта печати. Т.е. прогревается стол и до момента печати, пока прогревается экструдер температура держится нужная… а потом опять начинает скакать…
    Подскажите, что делать? Перепрошивать всю прошивку побаиваюсь, китайцы что-то в ней сами меняли.
    Да, принтер китайская прюша Zonestar P802 NA.

    0
    1. А может вентилятор дует на стол во время печати?
      По прошивкам для этого принтера смотрите эту тему форума https://3deshnik.ru/forum/viewtopic.php?f=5&t=95

      0
      1. zOOm:

        К сожалению вентилятор ни при чём. Наблюдал за графиком с поднятой высоко головой.
        Благодарю за ссылку, ознакомлюсь с материалом.

        0
  22. Добрый день. У меня концевики с алиэкспресс, уже на платках распаяны.. С ними вроде нужно отключить встроенные резисторы подтяжки в Ардуино? Как это сделать?

    Изображение не получается прикрепить.

    0

Добавить комментарий




     
Авторизация
*
*
Генерация пароля
Яндекс.Метрика