Устраняем раздражающие моменты Marlin

StasBronchukov
Идет загрузка
Загрузка
23.03.2019
6840
25
печатает на Ender 3
Техничка

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

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

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

66
Добрый день, товарищи!

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

Собственно к теме.

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

Запуская печать иногда происходит [нужное вставить] и нужно прекратить печать что бы быстренько исправить что нужно и запустить печать повторно, но в реальности эта спокойная, на первый взгляд, операция превращается в раздражитель нервов.

Отмена печати => Возврат домой => Исправление => Запуск повторной печати => Ожидание - время всего этого можно сократить парой строчек кода.

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

Для начала зайдем в language_en.h и добавим имя для пункта

Вставить можно в любое место списка, я вставил после 659 строчки:
#ifndef BAD_START

#define BAD_START _UxGT('Bad start')

#endif
Если пользуетесь только английским языком то пропускайте следующий пункт, если нет смотрим дальше.

В language_ru.h или любом другом добавляем:
#define BAD_START _UxGT('Плохой старт')
Теперь основное. В ultralcd.cpp после 864 строки добавляем новую функцию:
void bad_start_stop() {

wait_for_heatup = wait_for_user = false;

card.stopSDPrint(

#if SD_RESORT

true

#endif

);

enqueue_and_echo_commands_P(PSTR('G91

G1 F1800 E-5

G1 F3000 Z10

G90

G0 Y220

G28 X0

M84 '
));

lcd_setstatusPGM(PSTR(MSG_PRINT_ABORTED), -1);

lcd_return_to_status();

}
Которая останавливает только печать, а не завершает все процессы. Выполняет последовательность команд (подчеркнуты) которые вы можете задать сами. Пишите что хотите, но я советую в конце всегда дописывать M84 (если кому будет интересно напишу в коменты почему). И выводит статус о завершении печати.

Теперь собственно осталось только добавить еще один пункт к меню.

После 1122 строки добавляем:
if (axis_known_position&&card.sdprinting) MENU_ITEM(function, BAD_START, bad_start_stop);
Проверяем что известны координаты (что бы не выйти за границы) и то что идет печать. Все - пункт будет появляться в меню только когда идет непосредственно печать.

При желании можете добавить такую же последовательность действий при полной отмене печати - допишите:
enqueue_and_echo_commands_P(PSTR('G91

G1 F1800 E-5

G1 F3000 Z10

G90

G0 Y220

G28 X0

M84 '));
В функцию lcd_sdcard_stop()
void lcd_sdcard_stop() {

wait_for_heatup = wait_for_user = false;

abort_sd_printing = true;

enqueue_and_echo_commands_P(PSTR('G91

G1 F1800 E-5

G1 F3000 Z10

G90

G0 Y220

G28 X0

M84 '));

lcd_setstatusPGM(PSTR(MSG_PRINT_ABORTED), -1);

lcd_return_to_status();

}
Все! В подобном виде прошивкой пользуюсь где то полгода и каждый раз когда нужно прервать печать хвалю себя!
Пользуйтесь!

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

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

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

66
Комментарии к статье

Комментарии

23.03.2019 в 07:28
0

Спасибо.
Пригодиться точно.

23.03.2019 в 08:17
0

Спасибо!

23.03.2019 в 10:19
1

У меня тоже ender 3, на оригинальной плате с марлином ставил на паузу, голова уезжала домой, вносил правки и далее продолжал печать или отменял и запускал заново. Сейчас плата letdge x и стало еще проще - все кнопки на сенсорном экране и на первой же странице, вообще без напрягов :)

23.03.2019 в 10:59
0

Тоже бы хотелось поставить плату по мощнее, но здравое рассуждение охлаждает детское хочу - объективно принтер справляется со всеми задачами, да и лишние деньги тратить не хочется. Возможно если что то сгорит то задумаюсь. Кстати  lerdge x легко поставить на эндер и есть ли какие-нибудь замечания? Никогда просто не касался темы замены платы

23.03.2019 в 11:31
0

У меня в стадии интеграции, провода не уложены, сложного ничего нет. Тут самый ценный ресурс это время на установку. Много мелочей типа корпуса, проводов, калибровок и прочего. Преимущества lerdge x в том, что все настройки через дисплей, даже настройки прошивки. Не нужно ковырять конфиги как например в marlin. До этого ставил MKS SBase 1.3, тоже понравилось, но лердж выделяется на этом фоне. Плата ender 3, тоже норм, ей только обдува добавить да bltouch. Ну и экран выкинуть и raspberry pi воткнуть для удаленного управления. Сейчас смотрю в сторону  платы big tree tech 1.3, недавно вышла. Цена просто копейки и 32 бита. Вот отличная замена на бюджетный принтер.

Ниже пример интеграции sbase с тач экраном на ender 3.

23.03.2019 в 10:29
0

Для начала зайдем в language_en.h
А это где???
В Пускменю программы - ???

23.03.2019 в 10:46
2

Это конфигурационные фаилы Mrlin. Посмотрите любое видео о настройке Marlin и сразу разберетесь. Я все менял в Notepad++ , но все то же самое можно проделать в Arduino IDE. Могу посоветовать канал Sergey Irbis, у него есть видео о настройке Marlin и ее загрузки.

23.03.2019 в 10:54
5

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

23.03.2019 в 11:21
1

В данной модификации при использовании нового пункта меню стол и экструдер не выключаются, а так же исправно держат температуру
Вот именно это и важно!

23.03.2019 в 14:42
0

... возможно кто то не поймет основной смысл задуманного ...
... и этим кто-то был конечно-же я.

Благодарю, что разъяснили.

У меня остаётся ещё один вопрос, на который я такого-же просто го ответа пока не получил:

В чём отличие предложенного Вами 'БэдСтарта' от режима 'Пауза'?

Всегда считал что при 'Паузе' - нагреватели по-прежнему греют.

ski
23.03.2019 в 15:03
1

... и этим кто-то был конечно-же я.
И я… 
Нажимаем 'Пауза' - каретка отъезжает от модели. Температура стола и сопла поддерживается на заданном уровне. 
Делаем то, ради чего останавливали печать. 
Ну а дальше есть выбор - либо продолжение печати, либо рестарт. 
Отмена печати => Возврат домой => Исправление => Запуск повторной печати => Ожидание
'Возврат домой' и 'Ожидание' откуда берутся? 

23.03.2019 в 15:14
1

'Возврат домой' и 'Ожидание' откуда берутся?
При отмене печати , печать тупо останавливается те сопло не отъезжает, а остается там же. Что бы нормально убрать то что уже есть на столе необходимо опять же лезть в меню и вызывать возврат домой. Ожидание- ожидание это ожидание нагрева стола и экструдера тк после завершения печати стол и экструдер скидываются в 0. А после повторного запуска они бывают изрядно остывают, особенно стол если он был на 110

23.03.2019 в 17:24
0

Ну так зачем нажимать 'отмена', если можно нажать 'пауза'?
Хотя Ваше решение тоже интересно.

23.03.2019 в 20:07
0

У меня при отмене температура держится. Домой вроде не едет, но двигатели отключены, так что можно спокойно отодвинуть все.

ski
23.03.2019 в 15:08
1

В том что пауза она на то и пауза что бы после нее печать продолжилась. Насколько я понимаю пауза нужна для замены филамента, если он кончается тк после возобновления происходит протяжка пластика.А нам то нужно запустить печать с начала

23.03.2019 в 15:35
1

А нам то нужно запустить печать с начала
Ok, уже понятнее.

'Bad Start'...

Я бы предложил 'ФальCтарт'...

А то непонятно, что там 'Bad' - может произойти... хочется думать о хорошем а не о плохом...

25.03.2019 в 05:42
0

Присоединяюсь к армии все еще не понимающих))
При отмене печати принтер почему-то каждый раз ведет себя рандомно. Тоже бывает, что просто замирает, но в 2/3 случаев уходит домой по X/Y. По части остывания пока не замечал чего-то раздражающего. Проблема скорее в долгом остывании стола. Печатаю АБС на соке и ПЛА на ПВА, так при свежих слоях покрытия, пока температура высокая, деталь вообще никак не отрывается от стола. Тогда при косяке печати приходится скорее ждать пока стол остынет. Сопло греется достаточно быстро. Стол всегда ставлю на преднагрев пока настройки слайсера ковыряю. В случаях с несвежим покрытием и довольно легким отдиранием детали от стола, просто после печати кликаю преднагрев и пока решаю проблему все держится горячим.

23.03.2019 в 17:52
0

Благодаря таким решениям мир 3д печати становится капельку лучше! Спасибо за идею! Сегодня же у себя реализую в KLIPPER меню.

24.03.2019 в 12:31
0

Поделится не забудьте)

28.03.2019 в 17:00
0

спасибо, нужная штука.

а не подскажете где подправить, чтобы скорость вентилятор изменять не на одну единицу (меняется от 0 до 255), а скажем на 10 единиц? а то бывает надо сильно обдув поменять, а меняется медленно да и точность такая не нужна.

29.03.2019 в 20:18
0

Возможно в филе конфигурации есть настраиваемые параметры энкодера. Конкретно под кулер скорее всего не получится изменить шаг каким то простым способом, тк это меню является объектом и оно для всех подобных параметров одинаковое. Но для быстрого увеличения у энкодера есть ускорение, его можно сделать более отзывчивым. В ultralcd.cpp найдите поиском encoderStepRate
[COLOR=#24292e]В строках можно разделить этот параметр тем самым уменьшить скорость при котором срабатывает ускорение[/COLOR]
[COLOR=#24292e]Примерно вот так
[/COLOR]
if (encoderStepRate/1.5 >= ENCODER_100X_STEPS_PER_SEC) encoderMultiplier = 100; else if (encoderStepRate >= ENCODER_10X_STEPS_PER_SEC) encoderMultiplier = 10;

Лично этого не делал, попробуйте - потом расскажите 

29.03.2019 в 21:59
0

Спасибо :)
Но у меня кнопки, энкодера нет :(
Сделал ваш bad_start, работает, но только надо будет сделать чтобы включено в меню всегда было, т.к. если запустить печать с ПК, то не появляется этот пункт меню.

30.03.2019 в 15:47
0

так при печати с компьютера данная модификация не остановит печать

30.03.2019 в 15:43
0

А никто не подскажет, как изменить step кнопок с 1 на 5. Сильно раздражает установка температуры с шагом 1, такая точность мне не нужна.

20.05.2019 в 21:37
0

Почему у меня после отработки плохого старта появляется меню настройки Z-офсета??

Для написания комментариев, пожалуйста, авторизуйтесь.

Читайте в блогах

Продолжение работы с моделькой паровоза

Delta дома или побюджетней на мечту

Upgrade 3D принтеров PICASO Designer X series. Создаем 3D печатные Фермы. Удаленное управление.

Старт тестирования 3D принтера WanHao GR 1

Закусывание китайских кареток MGN9H

Видеообзор нового профессионального 3D принтера Flashforge Creator 3