roboforum.ru

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

CaliGator - генератор калибровочных кодов

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

CaliGator - генератор калибровочных кодов

Сообщение setar » 25 апр 2013, 15:05

Для удобства пользователей 3D принтеров, мной создан генератор тестовых кодов.
http://base3d.ru/CaliGator/

в данный момент доступны следующие тесты:
  • raft - по сути это просто подложка, по ее качеству можно осуществлять калибровку стола
  • flow - подбор потока под конкретный материал
  • width - подбор ширины линии экструзии
  • temp - подбор температуры печати
  • suck - подбор величины отката подачи (ретракта)
  • suck_speed - подбор скорости отката подачи


Методика тестирования:
Прежде чем приступить к тестированию проходим по всем вкладкам проверяя параметры, выставляем значения по опыту,
которые на наш взгляд дают наилучшие результаты (позже я введу рекомендуемые профили для разных принтеров).

raft
в этом тесте наша задача получить равномерные, слегка придавленные линии.
Обращаем внимание на расстояние между линиями экструзии, оно должно быть равномерным по всей площади, по ним можно судить о наклоне стола (если один угол или сторону плющит больше других) или о неровности стола (если имеют место неравномерно расположенные участки с более сильным придавливанием).
Рафт делается на двойной высоте слоя и использует тройной поток.

flow
в этом тесте проверяется поток, он должен быть достаточен чтобы между линиями экструзии не образовывалось просветов (щелей), в то же время сильно завышенный поток будет давать выдавливание пластика за периметр модели.
2013-04-25 14.48.36.jpg


width
в этом тесте меняется сразу два параметра: ширина между центрами выкладываемых линий, и поток который компенсирует увеличение требуемой площади экструзии.
При слишком плотной укладке линии будут мешать друг другу, а при слишком редкой будут появляться щели.
результатом теста является некоторый диапазон допустимых значений ширины одной линии экструзии
2013-04-25 13.48.02.jpg


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

Re: CaliGator - генератор калибровочных кодов

Сообщение setar » 29 окт 2015, 13:23

в том то и дело что прошивка при исполнении команды M109 головой не может двигать! так задумано
Код: Выделить всёРазвернуть
 * M109 - Sxxx Wait for extruder current temp to reach target temp. Waits only when heating                                                        
*        Rxxx Wait for extruder current temp to reach target temp. Waits when heating and cooling
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: CaliGator - генератор калибровочных кодов

Сообщение unigenum » 29 окт 2015, 13:23

Andrew S писал(а):Скорее прошивка не правильно понимает команду M109 S188; wait heat
Что за прошивка кстати?

марлин 1.0.2-1
команда прерасно понимается и отрабатывается в стартовом коде перед печатью. отрабатывается коретно и вовремя, наблютаю в пронтерфейсе

чудеса были на версии марлина 1.0.0
на последних версиях не проверял
unigenum
 
Сообщения: 705
Зарегистрирован: 29 окт 2012, 13:55
Откуда: СПб

Re: CaliGator - генератор калибровочных кодов

Сообщение 8cd » 29 окт 2015, 13:25

Andrew S писал(а):Скорее прошивка не правильно понимает команду M109 S188; wait heat
Что за прошивка кстати?

RAMPS 1.4 Marlin (качал в сентябре, https://github.com/MarlinFirmware/Marlin)
8cd
 
Сообщения: 54
Зарегистрирован: 19 апр 2015, 12:18
Откуда: СПб

Re: CaliGator - генератор калибровочных кодов

Сообщение setar » 29 окт 2015, 13:28

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

Re: CaliGator - генератор калибровочных кодов

Сообщение 8cd » 29 окт 2015, 13:40

Andrew S писал(а):Скорее прошивка не правильно понимает команду M109 S188; wait heat


Почему это команда "пролезает вперёд"?

Если бы ваша версия была верна, то выглядело бы это по другому: начиналась бы печать следующей полосы с предыдущей температурой.
8cd
 
Сообщения: 54
Зарегистрирован: 19 апр 2015, 12:18
Откуда: СПб

Re: CaliGator - генератор калибровочных кодов

Сообщение dccharacter » 29 окт 2015, 18:58

Наблюдал этот эффект нга своем принтере, просто не понимал, что происходит. Спросить у марлинистов - правильное решение.

Добавлено спустя 11 минут 2 секунды:
Код: Выделить всёРазвернуть
while ((residencyStart == -1) ||
              (residencyStart >= 0 && (((unsigned int) (millis() - residencyStart)) < (TEMP_RESIDENCY_TIME * 1000UL)))) ) {
      manage_heater();
          manage_inactivity();
          lcd_update();     }

Фактически вот код М109. Надо смотреть что там в менеджерах происходит
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: CaliGator - генератор калибровочных кодов

Сообщение 8cd » 30 окт 2015, 00:56

Уточнил прошивку - Marlin 1.0.2
Создаю файл с кодом:
Код: Выделить всёРазвернуть
G28
G1 Z20
M109 S210
G1 X60.00 Y100.00
G1 X220.00 Y100.00 F1000
M109 S216
G1 X60.00 Y100.00 F1000


И вот что происходит:
Парковка, опускание стола. Далее пауза - ожидание нагрева. Когда достигается установленная температура - начинается движение.
В этот же момент температура устанавливается в следующее значение.
По окончанию движения пауза, связанная с ожиданием нагрева до заданной температуры. Когда температура достигнута начинается очередное движение.

Если запустить такой код:
Код: Выделить всёРазвернуть
G28
G1 Z20
M109 S210
G1 X60.00 Y100.00
G1 X220.00 Y100.00 F1000
G1 X60.00 Y100.00 F1000
G1 X220.00 Y100.00 F1000
G1 X60.00 Y100.00 F1000
G1 X220.00 Y100.00 F1000
G1 X60.00 Y100.00 F1000
G1 X220.00 Y100.00 F1000
G1 X60.00 Y100.00 F1000
G1 X220.00 Y100.00 F1000
G1 X60.00 Y100.00 F1000
G1 X220.00 Y100.00 F1000
G1 X60.00 Y100.00 F1000
G1 X220.00 Y100.00 F1000
G1 X60.00 Y100.00 F1000
G1 X220.00 Y100.00 F1000
G1 X60.00 Y100.00 F1000
G1 X220.00 Y100.00 F1000
G1 X60.00 Y100.00 F1000
G1 X220.00 Y100.00 F1000
G1 X60.00 Y100.00 F1000
G1 X220.00 Y100.00 F1000
G1 X60.00 Y100.00 F1000
G1 X220.00 Y100.00 F1000
G1 X60.00 Y100.00 F1000
G1 X220.00 Y100.00 F1000
G1 X60.00 Y100.00 F1000
G1 X220.00 Y100.00 F1000
G1 X60.00 Y100.00 F1000
G1 X220.00 Y100.00 F1000
G1 X60.00 Y100.00 F1000
G1 X220.00 Y100.00 F1000
G1 X60.00 Y100.00 F1000
G1 X220.00 Y100.00 F1000
G1 X60.00 Y100.00 F1000
G1 X220.00 Y100.00 F1000
G1 X60.00 Y100.00 F1000
M109 S216
G1 X60.00 Y100.00 F1000


Переключение на следующую температуру произойдёт не сразу, а на 8-10том проходе.
Вот как видится это история:
Г-код читается кусками и если я правильно понимаю размер блока такой:
static char cmdbuffer[BUFSIZE][MAX_CMD_SIZE];
//The ASCII buffer for receiving from the serial:
#define MAX_CMD_SIZE 96
#define BUFSIZE 4

Как только в прочитанном блоке окажется команда M109 SХХХ - она будет выполнятся одновременно с другими командами.

Первый пример очень коротенький и видимо читается целиком, и мы видим что температура перескакивает сразу.
Второй пример намного больше и Г-код читается несколькими порциями - поэтому и переключение происходит не сразу.

Вероятно нужно покопаться в void process_commands() файл Marlin_main.cpp

Интересно было бы узнать у кого ещё такое же поведение принтера.
8cd
 
Сообщения: 54
Зарегистрирован: 19 апр 2015, 12:18
Откуда: СПб

Re: CaliGator - генератор калибровочных кодов

Сообщение dccharacter » 30 окт 2015, 01:56

А, все понеятно тогда. Там что происходит - во всех циклах идет обработка входящих данных, т.е. буфер постоянно заполнен. Соответственно при парсинге команд, если попадается команда на движение, то он отправляется в планировщик и ставится в очередь. А команды вроде установки температуры сразу отрабатывают. Немножко непонятно пока, почему разрывается цикл ожидания установки температуры, но, скорее всего где-0то в менеджерах продолжается исполнение очереди планировщика...

Добавлено спустя 56 секунд:
У меня такое же поведение
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: CaliGator - генератор калибровочных кодов

Сообщение Dmitry__ » 30 окт 2015, 04:22

Жесть, если это так, то отформатирую диск с марлином :o
Так, где мой grbl?
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: CaliGator - генератор калибровочных кодов

Сообщение 8cd » 30 окт 2015, 11:27

dccharacter писал(а):У меня такое же поведение


Спасибо. Видимо действительно в прошивке Marlin есть баг.

Dmitry__ писал(а):Жесть, если это так, то отформатирую диск с марлином :o
Так, где мой grbl?


Держись! Не всё так страшно!

Если серьёзно, то наверно, только в температурном тесте это поведение принтера искажает результат, в целом печатать это не мешает.
8cd
 
Сообщения: 54
Зарегистрирован: 19 апр 2015, 12:18
Откуда: СПб

Re: CaliGator - генератор калибровочных кодов

Сообщение unigenum » 30 окт 2015, 12:02

надо бы попробовать на прошивке repetier
как будет свободное время, потестирую
unigenum
 
Сообщения: 705
Зарегистрирован: 29 окт 2012, 13:55
Откуда: СПб

Re: CaliGator - генератор калибровочных кодов

Сообщение KtSerg » 22 ноя 2015, 11:13

Приветствую.
Интересный тест-настройка.
Обязательно попробую.
Я так понял размеры 100*100 ?
А есть возможность изменить размеры, ну например сделать 80*80, для того, что-бы сделать последовательно четыре теста на разных участках стола?
KtSerg
 
Сообщения: 67
Зарегистрирован: 13 ноя 2015, 22:48

Re: CaliGator - генератор калибровочных кодов

Сообщение setar » 25 ноя 2015, 13:15

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

Re: CaliGator - генератор калибровочных кодов

Сообщение KtSerg » 25 ноя 2015, 19:14

Ну, я вчера тестировал пластик, пробовал снять со стола сразу после печати, тест деформировался (был тёплый), следующий снимал, когда стол остыл. А нагрев для печати следующего это снова 20-30 минут ожидания. А с размерами 100*100 сложно на столе разместить даже второй тест. При меньших размерах (хотя-бы на 20мм), можно было-бы напечатать сразу до 4-ёх тестов с минимальными потерями времени на остывание/разогрев стола/сопла.

Да и ещё я не понял, так и должно быть, или я не правильно что-то задавал, у меня в G-коде сгенерировалось первый слой Z0.60, а второй Z0.90. Хотя "высоту стоя" указывал 0.3 , "Z смещение" не менял - 0.
Перед печатью поменял на Z0.30 и Z0.60 соответственно.
И ещё один момент, в G-коде сначала включается нагрев сопла, а потом стола. Получается сопло горит почти пол-часа в холостую. Думаю лучше поменять порядок. Хотя, я не в курсе, может на каких-то принтерах сопло греется долго а стол моментально...

А вообще, спасибо за генератор.
KtSerg
 
Сообщения: 67
Зарегистрирован: 13 ноя 2015, 22:48

Re: CaliGator - генератор калибровочных кодов

Сообщение setar » 25 ноя 2015, 19:18

тест умышленно делается в центре, где искажения стола минимальны
рафт (первый слой) печатается на двойной высоте тройным потоком
а порядок нагрева меняется в стартовых G-code, это не более чем пример, я мог бы там пустоту оставить

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

Пред.След.

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

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

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

cron