Octoprint смена филамента: Октопринт и замена филамента … – Freelancer Chronicles
Содержание
Умный принтер. Улучшая Octoprint / Хабр
Разрабатывая открытый проект 4-х экструдерного принтера Z-Bolt, мы столкнулись с проблемой выбора экрана для управления принтером. Из имеющихся экранов лишь решение от Duet Wifi умеет управлять более чем 2-мя экструдерами. Решение, мягко говоря, не бюджетное, да и интерфейс на любителя. Так что мы решили поискать альтернативный вариант с преферансом и куртизанками. Эта история о нем…
На просторах интернета существует масса информации о применении Octoprint. Чуть больше чем пол года назад и мы стали пользователями данного решения, сразу оценив его преимущества. Возможность управления принтером через веб-лицо, действительно трудно переоценить. У Octoprint множество плагинов, а главное для нас — Octoprint отлично управляется с количеством экструдеров, большим чем 2. Но оставалось решить еще один вопрос.
Многие любители Octoprint уверенно утверждают, что экран им больше не нужен от слова “совсем”, что это абсолютно лишняя часть принтера, которая им только мешает.
Однако я убежден, что есть и другая часть пользователей OctoPrint. У всех свои привычки и требования к повседневному использованию 3D принтера, и есть операции выполнять которые удобнее, имея экран:
- Замена филамента
- Калибровка уровня стола
- Запуск печати файла, который уже печатался раньше
- Включение преднагрева принтера
- Возможность увидеть статус печати
- …
Сейчас экраном по умолчанию в принтерах Z-Bolt является MKS TFT. Можно поставить TFT24, TFT32 или TFT35. Это хорошие экраны, но они не умеют интегрироваться с Octoprint. Если Octoprint запустил печать, экран об этом ничего не будет знать. Они используют разные хранилища файлов и т.д. А еще экраны MKS TFT не хотят работать с 3х- и более -головыми 3д принтерами.
Передо мной обозначилась цель найти/сделать/настроить экран для Octoprint, способный управлять более чем 2-мя экструдерами.
Погуглив немного я наткнулся на плагин TouchUI.
Первое впечатление было: вот оно — решение!!!
Я сразу установил плагин и открыл Octoprint c телефона. Интерфейс TouchUI тупил :/. Иногда кнопки нажимались нормально, иногда тормозили, а порой и вовсе не нажимались с первого раза. С подключенного экране TouchUI вел себя также плохо как и с телефона.
Параллельно было найдено другое решение.
Описание обнадеживало, в отличии от TouchUI, это самостоятельное приложение, запускающееся без браузера, а значит требовавшее значительно меньше вычислительных ресурсов.
Установка и настройка проблем не вызвали. Интерфейс действительно работал намного предсказуемее и отзывчивее.
Но и тут не всё оказалось гладко. Приложение регулярно зависало при начале печати. На github’е нашелся issue по этой ошибке, созданный почти год назад и активно обсуждаемый, но не закрытый.
Основная проблема оказалось в том, что автор приложения, судя по всему, утратил к нему интерес и на данный момент больше не развивает.
Поскольку, на мой взгляд, приложение написано достаточно хорошо и имеет потенциал, было решено сделать “hard-fork” и взяться за проект основательно.
Вот что у нас получилось:
- Подобраны оптимальные экраны для проекта
- Сделан “hard-fork” от Octoprint-TFT
- Пересмотрен взгляд на программно-аппаратную архитектуру принтера
- Создана своя тема для интерфейса Octoprint
Но обо всем по порядку…
Выборы экранов
Мы начала с экрана TFT 3.5, который, мягко говоря, не выдержал никакой критики. Углы обзора никакие, картинка блеклая. Поэтому было решено подобрать более качественное решение.
Главными критериями были:
- IPS матрица
- размер 4 — 5 дюйма
- емкостной экран (желательно)
- приемлемая цена
В итоге остановились на двух вариантах:
1. Вариант попроще. 4’’ IPS резистивный Touchscreen
2. Вариант побогаче. 4.3’’ IPS емкостной Touchscreen
Оба экрана имеют разрешение 800х400. У обоих великолепная картинка, цветопередача и угол обзора. Главное их отличие — это емкостной touchscreen. К нему (как и ко всему хорошему) очень быстро привыкаешь и пользоваться им намного приятнее, чем резистивным. Тем не менее, экран с резистивным touchscreen’ом также вполне жизнеспособен.
Это Hard-Fork, детка!
Приложение было серьезно доработано. И почти перестало напоминать своего родителя. Поэтому (а также потому, что создатель Octoprint-TFT официально заморозил развитие своего детища) было принято решение сделать hard-fork и назвать новый проект Octoscreen.
- В первую очередь была полностью устранена проблема зависания экрана, которой страдал Octoprint-TFT.
- — Заметно изменился дизайн и компоновка:
- Экран научился понимать состояния принтера (ожидание/печать):
- Добавлена функция быстрого преднагрева/выключения нагрева по нажатию на значок экструдера или стола, при этом экран подсвечивает статус:
- Добавлен экран ручной калибровки стола:
- Пункт “Menu” вынесен на отдельный экран:
- Добавлена функция управления WiFi:
- Само приложение теперь поддерживает до 4-х экструдеров, собственно для чего оно и создавалось:
Скачать приложение и найти краткую инструкцию по установке можно с нашего GitHub.
Также есть подробная инструкция под экран 3.5, за что отдельное спасибо нашему соратнику Денису (@negativ72rus).
Пересмотр взглядов на программно-аппаратную архитектуру принтера или переобувание на ходу
Изначально мы планировали использовать Marlin в нашем многоэкструдерном принтере, однако в итоге выбор пал на Klipper. Причин несколько:
1. Одна из главных для нас, как разработчиков, причина — это его гибкость. Marlin и его “макаронный” код делают настоящим вызовом процесс внесения в него доработок, а тем более их дальнейшую поддержку.
Klipper в этом плане полная противоположность Marlin. Во-первых все конфигурирование Klipper вынесено из программного кода. Сам код хорошо структурирован. Но что самое важное, Klipper предусматривает модульность!!! Можно добавлять свою логику в прошивку, не внося изменение в ее ядро, и тем самым колоссально упрощать дальнейшую поддержку своего кода.
2. Всю настройку прошивки можно осуществляется прямо через web интерфейс OctoPrint. И при этом возможности настройки на много мощнее чем у Marlin или Smootheiware.
3. Как же тут не сказать о битах, за которыми в последнее время все гонятся )). Сама архитектура Klipper предполагает, что вычислительная нагрузка ложится на Raspberry PI. Функция платы управления MKS Gen L (в случае с принтерами Z-Bolt) остается в передаче сигналов к/от периферии (двигателям, сенсорам, нагревателям, элементам управления).
А ведь Raspberry Pi 3 Model B+ оснащен 64-х битным, 4-х ядерным чипом Broadcom BCM2837B0 A53 1.4GHz.
По сути Octoprint + Klipper, запущенные на Raspberry Pi + тот же MKS Gen L —
на порядок более функциональное и прогрессивное решение, чем Marlin, запущенный на каком-нибудь 32-х битном чипе.
Конфигурационные файлы для Klipper’а под принтеры Z-Bolt также можно найти тут.
Небольшой бонус напоследок!
Так же мы сделали свою тему для интерфейса Octoprint:
Шапку можно настроить нативным пунктом выбора цвета в разделе Appearance:
Инструкция как установить тему вы можете найти у нас на GitHub.
Пишите в комментариях, какие функции экрана вы считаете наиболее полезными и необходимыми к добавлению.
Всем добра, позитива и хорошего обдува нависающих элементов!
Умный принтер. Улучшая Octoprint
Разрабатывая открытый проект 4-х экструдерного принтера Z-Bolt, мы столкнулись с проблемой выбора экрана для управления принтером. Из имеющихся экранов лишь решение от Duet Wifi умеет управлять более чем 2-мя экструдерами. Решение, мягко говоря, не бюджетное, да и интерфейс на любителя. Так что мы решили поискать альтернативный вариант с преферансом и куртизанками. Эта история о нем…
На просторах интернета существует масса информации о применении Octoprint. Чуть больше чем пол года назад и мы стали пользователями данного решения, сразу оценив его преимущества. Возможность управления принтером через веб-лицо, действительно трудно переоценить. У Octoprint множество плагинов, а главное для нас — Octoprint отлично управляется с количеством экструдеров, большим чем 2. Но оставалось решить еще один вопрос.
Многие любители Octoprint уверенно утверждают, что экран им больше не нужен от слова “совсем”, что это абсолютно лишняя часть принтера, которая им только мешает.
Однако я убежден, что есть и другая часть пользователей OctoPrint. У всех свои привычки и требования к повседневному использованию 3D принтера, и есть операции выполнять которые удобнее, имея экран:
- Замена филамента
- Калибровка уровня стола
- Запуск печати файла, который уже печатался раньше
- Включение преднагрева принтера
- Возможность увидеть статус печати
- …
Сейчас экраном по умолчанию в принтерах Z-Bolt является MKS TFT. Можно поставить TFT24, TFT32 или TFT35. Это хорошие экраны, но они не умеют интегрироваться с Octoprint. Если Octoprint запустил печать, экран об этом ничего не будет знать. Они используют разные хранилища файлов и т.д. А еще экраны MKS TFT не хотят работать с 3х- и более -головыми 3д принтерами.
Передо мной обозначилась цель найти/сделать/настроить экран для Octoprint, способный управлять более чем 2-мя экструдерами.
Погуглив немного я наткнулся на плагин TouchUI.
Первое впечатление было: вот оно — решение!!!
Я сразу установил плагин и открыл Octoprint c телефона. Интерфейс TouchUI тупил :/. Иногда кнопки нажимались нормально, иногда тормозили, а порой и вовсе не нажимались с первого раза. С подключенного экране TouchUI вел себя также плохо как и с телефона.
Параллельно было найдено другое решение.
Описание обнадеживало, в отличии от TouchUI, это самостоятельное приложение, запускающееся без браузера, а значит требовавшее значительно меньше вычислительных ресурсов.
Установка и настройка проблем не вызвали. Интерфейс действительно работал намного предсказуемее и отзывчивее.
Но и тут не всё оказалось гладко. Приложение регулярно зависало при начале печати. На github’е нашелся issue по этой ошибке, созданный почти год назад и активно обсуждаемый, но не закрытый.
Основная проблема оказалось в том, что автор приложения, судя по всему, утратил к нему интерес и на данный момент больше не развивает.
Поскольку, на мой взгляд, приложение написано достаточно хорошо и имеет потенциал, было решено сделать “hard-fork” и взяться за проект основательно.
Вот что у нас получилось:
- Подобраны оптимальные экраны для проекта
- Сделан “hard-fork” от Octoprint-TFT
- Пересмотрен взгляд на программно-аппаратную архитектуру принтера
- Создана своя тема для интерфейса Octoprint
Но обо всем по порядку…
Выборы экранов
Мы начала с экрана TFT 3.5, который, мягко говоря, не выдержал никакой критики. Углы обзора никакие, картинка блеклая. Поэтому было решено подобрать более качественное решение.
Главными критериями были:
- IPS матрица
- размер 4 — 5 дюйма
- емкостной экран (желательно)
- приемлемая цена
В итоге остановились на двух вариантах:
1. Вариант попроще. 4’’ IPS резистивный Touchscreen
2. Вариант побогаче. 4.3’’ IPS емкостной Touchscreen
Оба экрана имеют разрешение 800х400. У обоих великолепная картинка, цветопередача и угол обзора. Главное их отличие — это емкостной touchscreen. К нему (как и ко всему хорошему) очень быстро привыкаешь и пользоваться им намного приятнее, чем резистивным. Тем не менее, экран с резистивным touchscreen’ом также вполне жизнеспособен.
Это Hard-Fork, детка!
Приложение было серьезно доработано. И почти перестало напоминать своего родителя. Поэтому (а также потому, что создатель Octoprint-TFT официально заморозил развитие своего детища) было принято решение сделать hard-fork и назвать новый проект Octoscreen.
- В первую очередь была полностью устранена проблема зависания экрана, которой страдал Octoprint-TFT.
- — Заметно изменился дизайн и компоновка:
- Экран научился понимать состояния принтера (ожидание/печать):
- Добавлена функция быстрого преднагрева/выключения нагрева по нажатию на значок экструдера или стола, при этом экран подсвечивает статус:
- Добавлен экран ручной калибровки стола:
- Пункт “Menu” вынесен на отдельный экран:
- Добавлена функция управления WiFi:
- Само приложение теперь поддерживает до 4-х экструдеров, собственно для чего оно и создавалось:
Скачать приложение и найти краткую инструкцию по установке можно с нашего GitHub.
Также есть подробная инструкция под экран 3.5, за что отдельное спасибо нашему соратнику Денису (@negativ72rus).
Пересмотр взглядов на программно-аппаратную архитектуру принтера или переобувание на ходу
Изначально мы планировали использовать Marlin в нашем многоэкструдерном принтере, однако в итоге выбор пал на Klipper. Причин несколько:
1. Одна из главных для нас, как разработчиков, причина — это его гибкость. Marlin и его “макаронный” код делают настоящим вызовом процесс внесения в него доработок, а тем более их дальнейшую поддержку.
Klipper в этом плане полная противоположность Marlin. Во-первых все конфигурирование Klipper вынесено из программного кода. Сам код хорошо структурирован. Но что самое важное, Klipper предусматривает модульность!!! Можно добавлять свою логику в прошивку, не внося изменение в ее ядро, и тем самым колоссально упрощать дальнейшую поддержку своего кода.
2. Всю настройку прошивки можно осуществляется прямо через web интерфейс OctoPrint. И при этом возможности настройки на много мощнее чем у Marlin или Smootheiware.
3. Как же тут не сказать о битах, за которыми в последнее время все гонятся )). Сама архитектура Klipper предполагает, что вычислительная нагрузка ложится на Raspberry PI. Функция платы управления MKS Gen L (в случае с принтерами Z-Bolt) остается в передаче сигналов к/от периферии (двигателям, сенсорам, нагревателям, элементам управления).
А ведь Raspberry Pi 3 Model B+ оснащен 64-х битным, 4-х ядерным чипом Broadcom BCM2837B0 A53 1.4GHz.
По сути Octoprint + Klipper, запущенные на Raspberry Pi + тот же MKS Gen L —
на порядок более функциональное и прогрессивное решение, чем Marlin, запущенный на каком-нибудь 32-х битном чипе.
Конфигурационные файлы для Klipper’а под принтеры Z-Bolt также можно найти тут.
Небольшой бонус напоследок!
Так же мы сделали свою тему для интерфейса Octoprint:
Шапку можно настроить нативным пунктом выбора цвета в разделе Appearance:
Инструкция как установить тему вы можете найти у нас на GitHub.
Пишите в комментариях, какие функции экрана вы считаете наиболее полезными и необходимыми к добавлению.
Всем добра, позитива и хорошего обдува нависающих элементов!
Как заменить нить на определенных слоях с помощью октопринта — общая информация
van-ant
#1
Я пытался изменить цвет филамента на определенных слоях и видел, что у многих людей были проблемы. После безуспешных попыток вставить различные команды M-кода я понял, что некоторые из команд либо не реализованы в прошивке принтера, либо работают только при печати с SD-карты, чего я не делаю. в любом случае, после небольшого исследования, как это сделать
вот как вызвать автоматическую смену нити на определенных слоях
- обновить сценарии паузы и возобновления в настройках октопринта Скрипты GCode (см. Сценарии GCODE — основная документация OctoPrint)
- используйте программу просмотра gode для просмотра файла печати gcode, который вы хотите распечатать, и найдите слой, на котором вы хотите изменить нити (я использовал https://gcode.ws/)
- используйте текстовый редактор (я использую notepad++) для редактирования файла GCode, который вы хотите распечатать. Найдите «Слой» и найдите слой, на котором хотите остановиться.
- добавьте строку «@pause», это вызовет паузу, как если бы вы нажали кнопку в octoprint (см. @ Commands — основная документация OctoPrint)
- сохраните измененный Gcode.
- Распечатать файл GCode из octorprint (не с SD-карты)
- Печать остановится на слое и переместит печатающую головку в положение x0 y0.
- заменить нить накала
- Нажмите «Возобновить» в octoprint, чтобы продолжить печать.
работа выполнена
1 Нравится
джнейллиии
#2
вы также можете сделать это в большинстве слайсеров, например, Cura использует расширение сценариев постобработки, просто убедитесь, что выбран параметр для стиля повторения (@pause), и все готово.
фургон
#3
Я попробовал сценарии постобработки cura, такие как смена нити на высоте, но они мне не помогли, прошивка в cr10s prov2 не имеет расширенной конфигурации (я посмотрел исходный код). Я взгляну на параметры повторения, чтобы увидеть, какой gcode они производят. спасибо за голову.
джнейллиии
#4
Да, в одном из параметров постобработки cura есть раскрывающийся список, в котором вы можете изменить используемую команду.
Билл.b1
#5
Некоторые прошивки Creality не поддерживают M600. Вам потребуется установить последнюю версию Marlin, чтобы включить M600 9.0005
Билл
jneilliii
#6
хорошее замечание, поэтому я рекомендовал использовать @PAUSE
, так как это будет обрабатывать паузу непосредственно в OctoPrint и не имеет значения, какая прошивка запущена.
Как заменить нить во время печати с помощью Octoprint
Общее руководство по 3D-печати
25/07/2020
0 4,094 2 минуты чтения
Если вы используете Octoprint с вашим 3D-принтером, вы можете воспользоваться преимуществами функции печати пауза и возобновление печати . На самом деле, когда вы нажимаете кнопку Pause в веб-интерфейсе Octoprint , ваш 3D-принтер немедленно останавливается. И затем вы можете продолжить, нажав кнопку Resume .
Это хорошо, но вы можете использовать эту функцию, чтобы заменить или добавить новую нить. Однако хотэнд остается на последней позиции, когда вы нажимаете на Пауза . Если вы хотите заменить нить, вам нужно переместить хотэнд в более удобное положение. Когда вы меняете положение хотэнда, у вас нет возможности успешно возобновить печать. Печатающая головка не возвращается в последнее положение автоматически.
Чтобы иметь возможность успешно возобновить печать , вам необходимо ввести несколько команд, которые принтер будет выполнять сразу после нажатия кнопки Пауза и до того, как принтер продолжит печать после нажатия Кнопка возобновления .
Предупреждение : будет работать только , если вы используете Marlin (другие не тестировались) и не печатаете с SD и не используете несколько экструдеров необходимые данные о положении и параметры печати из-за ограничений прошивки.
Хорошо. Давайте начнем. Откройте Octoprint Settings и выберите GCODE Scripts.
Найдите После того, как задание на печать приостановлено, раздел и напишите внутри следующий код.
{%, если pause_position.x не равно none %} ; относительный XYZE G91 М83 ; втяните нить (3 мм), сдвиньте Z немного вверх G1 Z+5 E-3 F4500 ; абсолютный XYZE М82 G90 ; перейти в безопасное положение для отдыха, при необходимости отрегулировать G1 Х0 Y0 {% endif %}
Найдите Перед возобновлением задания на печать и напишите внутри следующий код.
{%, если pause_position.x не равно none %} ; относительный экструдер М83 ; заправочное сопло Г1 Е-3 F4500 G1 E3 F4500 G1 E3 F4500 ; абсолютный Е М82 ; абсолютный XYZ G90 ; сбросить E G92 E{{ pause_position.e }} ; вернуться в положение паузы XYZ G1 X{{ pause_position.x }} Y{{ pause_position. y }} Z{{ pause_position.z }} F4500 ; сбросить скорость подачи до паузы, если она доступна {% если pause_position.f не равно none %}G1 F{{ pause_position.f }}{% endif %} {% endif%}
Сохраните и закройте страницу настроек.
Теперь вы можете остановить принтер в любом месте во время печати и заменить нить. Если вы хотите заменить нить в определенных слоях, вы можете использовать плагин Multi Colors .
Вы можете проверить, как установить плагины в Octoprint https://docs.octoprint.org/en/master/features/plugins.html#installing-plugins
В поле Номер слоя или высота . Вы можете написать номер слоя или числа через запятую, которые вы хотите, чтобы ваш 3D-принтер остановил для замены нити.
Имейте в виду, что на рынке есть радужные нити для причудливых отпечатков.
Наконец, если вы хотите обновить версию Octoprint / RPi pip, откройте терминал оболочки для вашего RPi.
Всего комментариев: 0