roboforum.ru

Технический форум по робототехнике.

3D принтер. Прошивка Marlin, оптимизация.

Обсуждение технологии печати на 3D принтерах. Самостоятельное изготовление и приобретение. RepRap и его последователи.

3D принтер. Прошивка Marlin, оптимизация.

Сообщение setar » 16 фев 2012, 17:32

Коллеги, знаю некоторые используют прошивку Marlin (https://github.com/ErikZalm/Marlin)
А делал ли кто либо оптимизацию параметров (ПИД регулятор, максимальные скорости и ускорения) ?
Вот исходный код (по словал автора глубокая бета) https://github.com/darthrake/QTMarlin
Мне удалось собрать и заставить работать это под MAC OSX 10.6.8 (3 дня жесткого секса с параметрами линковки библиотек),
под линукс вроде собирается само.

Собственно вопрос : как этим пользоваться ? документации не нашел вообще.

порт, скорость, коннект - тут все предельно понятно

RAW:
тут все понятно, отправляем G код (или наблюдаем отправку из программы) и видим результат

EEPROM:
более менее понятно - считываем и записываем параметры прошивки без ее перезаливки, удобно !

пид параметры, скорости, ускорения, подача экструдера в горячем режиме ожидания (чтобы не выгорал и не коксовался пластик внутри), конечные координаты.

PID:
для меня темный лес ...
три параметра Proportional , Integral, Differential
и ещё серия непонятных параметров (см картинку)
График температуры головы и кровати и график шим питания головы.

понятно что наша задача получить максимально быстрый выход и стабилизацию на заданной температуре.
Как этого добиваться ? (какова методика подбора)
---- обновлено 06.07.2012 ---
в самой прошивке теперь есть автоподбор параметров PID
forum107/topic11215-15.html#p243645




VelTest:
тестируем параметры максимальных скоростей перемещения и ускорения.
по нажатию на кнопку с параметрами по умолчанию каретка соответствующей оси 5 раз двигается с разными скоростями от начала до конца (медленно, быстро, с ускорением). По результатам теста ставит точку (синюю или красную) на графике.
Но у меня всегда ставились синие, даже когда пропуск шагов очень велик и слышен и виден на глаз (каретка возвращается не дойдя до конца).
Видимо (нужно посмотреть по коду) меряется время фактического перемешения до касания концевика.
Вот тут не понятно, чтобы видеть FAIL (каретка не дошла, или пришла с запозданием), видимо нужны кроме начальных (MIN) ещё и конечные (MAX) датчики.

В общем кому интересно - присоединяйтесь к изучению.
Вложения
20120216-CaptureIt-Picture-4.png
20120216-CaptureIt-Picture-3.png
20120216-CaptureIt-Picture-2.png
20120216-CaptureIt-Picture-1.png
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: 3D принтер. Прошивка Marlin, оптимизация.

Сообщение setar » 17 фев 2012, 00:39

поставил концевики на максимум
сразу получил полезную инфу в виде реальных максимальных значений X Y

гонял X, Y
Начали срабатывать корректно ситуации Failed test
прога просто следит за обоими концевиками и если сбились шаги то концевик "вдруг встретился не там" = FAILED

получил вот такие картинки
поставил параметры для X Vmax=330 Amax=8000 ; для Y Vmax=320 Amax=4500
интересно как быстрее печать - меньше максимальная скорость и больше ускорение или больше скорость но меньше ускорение ?

потестирую на досуге

P.S. Z у меня почему то вообще не стала перемещаться, поковыряю ещё код ...
Вложения
20120216-CaptureIt-Picture-7.png
Это для оси Y
20120216-CaptureIt-Picture-6.png
Это для оси X
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: 3D принтер. Прошивка Marlin, оптимизация.

Сообщение mVit » 07 июн 2012, 12:09

вопрос к тем, кто пользует Marlin: есть смысл переходить на него со Sprintera? Насколько необходим QTMarlin?

2 setar
можете поделиться QTMarlin для MacOS.
mVit
 
Сообщения: 211
Зарегистрирован: 10 окт 2005, 18:17
Откуда: Крайний Север->Самара->Спб
прог. языки: C

Re: 3D принтер. Прошивка Marlin, оптимизация.

Сообщение Aseris » 08 июн 2012, 00:28

Задам вопрос тут:

2Setar: Можеш выложить свой configuration.h и по осям где у тебя X Y Z? вот прикручиваю мерлина к кипарисовской плате... оно странно хом ищет.
У меня:
Z - ось вертикальная - минимум внизу максимум верх
X - ось горизонтальная перемещение головки - минимум право максимум лево
Y - ось горизонтальная перемещение стола - минимум близко максимум далеко.

Хом нормально счет тока по Y оси, в чем прикол?

Добавлено спустя 1 час 21 минуту 25 секунд:
Вопрос по ендстоперам снимается... это ж нада было садруинщикам извратится и пронумеровать порт А задомнаперед для цифры... :o
Аватара пользователя
Aseris
 
Сообщения: 1142
Зарегистрирован: 01 сен 2009, 14:58
Откуда: Чехия
прог. языки: C/С++, VHDL, Verilog, ASM, Python

Re: 3D принтер. Прошивка Marlin, оптимизация.

Сообщение setar » 09 июн 2012, 15:02

mVit писал(а):можете поделиться QTMarlin для MacOS.

пожалуйста, только скорость 250 000 не умеет, не стал разбираться, просто для калибровки ставлю прошивку на 115200

Добавлено спустя 33 минуты 48 секунд:
Aseris писал(а):Задам вопрос тут:

2Setar: Можеш выложить свой configuration.h и по осям где у тебя X Y Z? вот прикручиваю мерлина к кипарисовской плате... оно странно хом ищет.
У меня:
Z - ось вертикальная - минимум внизу максимум верх
X - ось горизонтальная перемещение головки - минимум право максимум лево
Y - ось горизонтальная перемещение стола - минимум близко максимум далеко.

Хом нормально счет тока по Y оси, в чем прикол?

Добавлено спустя 1 час 21 минуту 25 секунд:
Вопрос по ендстоперам снимается... это ж нада было садруинщикам извратится и пронумеровать порт А задомнаперед для цифры... :o


у меня так:

Z - ось вертикальная - минимум внизу (калибруемся вниз) максимум верх
X - ось горизонтальная перемещение головки - минимум лево (калибруемся влево) максимум право (ограничитель правый)
Y - ось горизонтальная перемещение стола - минимум близко (калибруемся на дальний концевик) максимум далеко (ограничитель ближний).

что соответствует для прошивки "marlin" и конструктива прусы с контактными концевиками:

Код: Выделить всёРазвернуть
#define MOTHERBOARD 33
#define ENDSTOPPULLUPS

const bool X_ENDSTOPS_INVERTING = false;
const bool Y_ENDSTOPS_INVERTING = false;
const bool Z_ENDSTOPS_INVERTING = false;

//#define DISABLE_MAX_ENDSTOPS // (я их использую)

#define INVERT_X_DIR true
#define INVERT_Y_DIR true
#define INVERT_Z_DIR true

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

#define min_software_endstops true //If true, axis won't move to coordinates less than HOME_POS.
#define max_software_endstops true  //If true, axis won't move to coordinates greater than the defined lengths below.

#define X_MAX_LENGTH 175
#define Y_MAX_LENGTH 195
#define Z_MAX_LENGTH 200

// The position of the homing switches. Use MAX_LENGTH * -0.5 if the center should be 0, 0, 0
#define X_HOME_POS 0
#define Y_HOME_POS 0
#define Z_HOME_POS 0

Вложения
QTMarlin.zip
(745.75 КиБ) Скачиваний: 0
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: 3D принтер. Прошивка Marlin, оптимизация.

Сообщение Aseris » 09 июн 2012, 21:03

2Setar, У тебя мерлиновская прошивка темперантуру головки вменяемо выставляет? и команду М109 S<temp> отрабатывает?

Допилил прошивку под кипарисовское железо, калибранул термисотры, стол нагревается хорошо, головка держится почему-то на 10 градусов ниже выставленного (индикация по printrun/pronterface).
Аватара пользователя
Aseris
 
Сообщения: 1142
Зарегистрирован: 01 сен 2009, 14:58
Откуда: Чехия
прог. языки: C/С++, VHDL, Verilog, ASM, Python

Re: 3D принтер. Прошивка Marlin, оптимизация.

Сообщение setar » 10 июн 2012, 19:17

Да, в пределах +-0.1 в стационарном режиме и +1/-2 град при печати держит.
причем как в printrun, так и при измерении термопистолетом
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: 3D принтер. Прошивка Marlin, оптимизация.

Сообщение mVit » 12 июн 2012, 08:19

А как можно обойти долгий прогрев головки перед печатью?
mVit
 
Сообщения: 211
Зарегистрирован: 10 окт 2005, 18:17
Откуда: Крайний Север->Самара->Спб
прог. языки: C

Re: 3D принтер. Прошивка Marlin, оптимизация.

Сообщение setar » 12 июн 2012, 14:44

если нагрев просто медленный - то увеличением мощности нагревателя, но вероятнее всего дело в ненастроенном PID регуляторе температуры. И заданное значение просто не может установится - управление сильно дергает то на нагрев то вообще его снимает.
нужно подбирать настройки PID используя QTMarlin (если прошивка марлиновская)
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: 3D принтер. Прошивка Marlin, оптимизация.

Сообщение ReaN » 15 июн 2012, 11:50

блин, кстати та же фигня - во время печати (как и до) температура скачет +/- градусов 8 от выставленного - на что это влияет при печати и как с этим бороться?
Аватара пользователя
ReaN
 
Сообщения: 615
Зарегистрирован: 06 июн 2012, 09:42
Откуда: Киев
прог. языки: Алгол :)
ФИО: Александр

Re: 3D принтер. Прошивка Marlin, оптимизация.

Сообщение setar » 15 июн 2012, 18:54

выставляем раздел PID :
Код: Выделить всёРазвернуть
// PID settings:
// Comment the following line to disable PID and enable bang-bang.
#define PIDTEMP
#define PID_MAX 255 // limits current to nozzle; 255=full current
#ifdef PIDTEMP
  //#define PID_DEBUG // Sends debug data to the serial port.
  //#define PID_OPENLOOP 1 // Puts PID in open loop. M104 sets the output power in %
  #define PID_INTEGRAL_DRIVE_MAX 255  //limit for the integral term
  #define K1 0.95 //smoothing factor withing the PID
  #define PID_dT ((16.0 * 8.0)/(F_CPU / 64.0 / 256.0)) //sampling period of the

// If you are using a preconfigured hotend then you can use one of the value sets by uncommenting it
// Ultimaker
    #define  DEFAULT_Kp 22.2
    #define  DEFAULT_Ki 1.08 
    #define  DEFAULT_Kd 114 

// Makergear
//    #define  DEFAULT_Kp 7.0
//    #define  DEFAULT_Ki 0.1 
//    #define  DEFAULT_Kd 12 

// Mendel Parts V9 on 12V   
//    #define  DEFAULT_Kp 63.0
//    #define  DEFAULT_Ki 2.25
//    #define  DEFAULT_Kd 440
#endif // PIDTEMP

из этого раздела пробуем разные настройки Kp Ki Kd

ну а по уму запускаем QtMarlin и подбираем наблюдая график
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: 3D принтер. Прошивка Marlin, оптимизация.

Сообщение karabas2011 » 26 июн 2012, 18:07

setar писал(а):если нагрев просто медленный - то увеличением мощности нагревателя, но вероятнее всего дело в ненастроенном PID регуляторе температуры. И заданное значение просто не может установится - управление сильно дергает то на нагрев то вообще его снимает.
нужно подбирать настройки PID используя QTMarlin (если прошивка марлиновская)

если прогревать форсированно - должен быть особо хороший теплоотвод. На хакслипро через месяц вылетел резистор нагрева. Так что чувство меры не помешает.
karabas2011
 
Сообщения: 1607
Зарегистрирован: 04 мар 2012, 01:06
Откуда: Севастополь-Москва

Re: 3D принтер. Прошивка Marlin, оптимизация.

Сообщение setar » 27 июн 2012, 00:14

:) а не нужно пленочный резистор на нагрев использовать
проволка нихром + термоцемент и все отлично. и не перегревается и не окисляется
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: 3D принтер. Прошивка Marlin, оптимизация.

Сообщение karabas2011 » 27 июн 2012, 10:39

А кто ж знает какой он - другом принтер был куплен в сборе у производителя. После сгорания выяснилось что заделан был халявно. А проволочный или нет я не знаю.
karabas2011
 
Сообщения: 1607
Зарегистрирован: 04 мар 2012, 01:06
Откуда: Севастополь-Москва

Re: 3D принтер. Прошивка Marlin, оптимизация.

Сообщение ReaN » 03 июл 2012, 15:58

Правильно ли я понял - для того, чтобы установить Мерлин, нужно сначала установить Arduino software? На сколько я понял - это технология изготовления платы? Если у меня плата ГЕН6, то означает ли это, что она Arduino и я могу ставит этот софт?
Аватара пользователя
ReaN
 
Сообщения: 615
Зарегистрирован: 06 июн 2012, 09:42
Откуда: Киев
прог. языки: Алгол :)
ФИО: Александр

След.

Вернуться в 3D печать

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 17