Ссылка — 4050 ₽. Сегодня я расскажу о переводе 3Д-принтера Anet ET5X на прошивку Klipper. На текущий момент этот принтер можно уже считать устаревшим, поэтому описанный ниже материал не стоит воспринимать как актуальную модернизацию, а скорее как справочную информацию для перевода практически любого принтера на Klipper, так как этот процесс во многом похож для разных моделей.
Если интересно, то садитесь поудобнее и поехали.
Что такое Klipper
Чтобы напечатать любую модель, на «вход» 3Д-принтера подается
G-code — набор простых команд вроде «переместись туда», «выдави филамент» и т.д. Для того, чтобы интерпретировать команды и превратить их в управляющие сигналы для своих электрических узлов, в принтер устанавливается микроконтроллер, в который загружается специально написанная программа – прошивка. На текущий момент существует две наиболее популярные прошивки для принтеров —
Marlin и
Klipper. Обе эти прошивки Open Source, то есть, имеют открытый исходный код, что позволяет абсолютно любому человеку или организации взять этот код и модернизировать или адаптировать его под свое железо и свои задачи (там есть нюанс с лицензиями, но в рамках данной статьи он нам не интересен). Применение данных прошивок также удобно тем, что у обоих проектов есть достаточно развитые сообщества в интернете, где можно найти ответы на большинство вопросов и, таким образом, не остаться «один на один» со своей проблемой.
К сожалению, на линейке Anet ET производитель почему-то решил не использовать стандартные прошивки, а установить на принтер что-то свое. Я не стану говорить, что на их прошивке совершенно невозможно печатать – нет, я печатал на ней порядка двух лет, и вполне себе успешно, но она серьезно уступает по возможностям Марлину или Клипперу, а также просто глючит. Однако, менять что-то в работающем принтере мне не хотелось, так как при модернизации всегда есть риск сломать устройство и остаться ни с чем, особенно если предыдущего опыта в таких доработках нет. Поэтому я мирился с багами и терпел. Но настал момент, когда ET5X был обновлен на более современный FDM-принтер, и я, наконец, решился на апгрейд.
Но вернемся к теме – почему именно Клиппер? Несмотря на то, что и Марлин, и Клиппер выполняют одну и ту же задачу, внутри они очень разные. Марлин написан целиком на С/С++, компилируется в один двоичный файл, которым прошивается непосредственно микроконтроллер принтера. Далее принтер продолжает функционировать как и ранее – файлы для печати помещаются на ту же карту памяти, для управления печатью используется тот же экран и тач-скрин принтера и т.д. Если необходимо внести какие-либо изменения в параметры прошивки, Марлин необходимо пересобрать и заново запрограммировать в микроконтроллер. Установить Марлин на ET5X вполне возможно, и в интернете есть уже реализованные
примеры. Также вынесу отдельной ссылкой репозиторий
Marlin for ET4/5 series 3D printers.
С другой стороны, Клиппер – ПО совсем другого формата. Он состоит из двух частей – относительно небольшой программы для микроконтроллера принтера, написанной на С и умеющей выполнять лишь простые команды (даже проще, чем G-code), и основной управляющей программы, написанной, в основном, на Питоне, которая работает на отдельном компьютере под управлением ОС Линукс. Чаще всего в качестве такого Линукс-компьютера выступает
SBC — одноплатный компьютер небольшого размера, построенный на каком-либо процессоре архитектуры
AArch64 (64-битный ARM, как в телефоне). Однако, при сильном желании Клиппер можно запустить и на обычной Линукс-машине.
При использовании Клиппера кардинально меняется и управление принтером – все действия, включая и отправку файлов на печать теперь осуществляется из веб-интерфейса через обычный браузер. А если необходимо каким-либо образом изменить настройки Клиппера, в большинстве случаев достаточно лишь внести изменения в конфигурационные файлы, после чего просто перезапустить управляющую программу. Никаких перепрошивок микроконтроллера принтера производить не надо. Также, до недавнего времени, отдельной killer-фичей Клиппера являлся алгоритм
Input Shaping — изменение параметров перемещения головки принтера для компенсации механического резонанса, возникающего в системе на определенной частоте. Однако, по последним данным, его в каком-то виде прикрутили и в Марлин. В общем, Input Shaping позволяет повысить скорость печати без серьезного ущерба для качества получаемых деталей, поэтому на таких старых принтерах как ЕТ5Х он однозначно полезен. Также в Клиппере есть и другие современные возможности, которых нет в Марлине, такие как поддержка телеграмм-бота, OctoEverywhere и т.д.
Прочитав всё сказанное выше, становится понятно, что если перед вами в каком-либо виде стоит вопрос выбора прошивки для 3Д-принтера и нет принципиальных ограничений, предпочтение следует отдать Клипперу. Производительность среднего одноплатного компьютера в разы выше производительности даже самой топовой платы управления принтером, что позволяет реализовать в Клиппере гораздо больше всяких функциональных возможностей. [Мне кажется, правильным подходом было бы вообще интегрировать Клиппер в слайсер, оставив в принтере лишь простейшую программу, но это уже совсем другая тема для разговора.]
Также, лично для меня важным моментом является возможность удаленной отправки файлов на печать по сети WiFi – ну, набегался я уже с флешками, особенно когда печатаешь каким-нибудь гибким TPU, нормально напечатать которым получается далеко не с первого раза, и приходится носиться туда-сюда, изменяя различные параметры в слайсере и повторяя печать.
И, наконец, перевод ЕТ5Х на Клиппер выглядит интересным челленджем – здесь необходимо разобраться с SBC, установить на него Линукс (о чем я многократно везде читал, но никогда сам не делал), перепрошить принтер, установить Клиппер, собрать правильный конфигурационный файл и запустить печать. Этим будет явно интересно заниматься, тем более, ведь Линукс – это система будущего: если когда-либо искусственный интеллект и решит совершить восстание против человечества, он определенно будет работать под управлением ОС Линукс. [Правда, восстание будет быстро подавлено – на большинстве других машин libc6 окажется не той версии.]
Orange Pi 3 LTS
Когда решение с выбором прошивки было принято, возник вопрос выбора одноплатного компьютера – какой лучше взять, ведь их сейчас целая куча? Мне кажется, основным моментом, на который необходимо обращать внимание при выборе SBC, является популярность платы и размер её интернет-сообщества: ведь если вдруг при настройке или работе с ней вы столкнетесь с какими-либо проблемами, интернет будет чуть ли не единственным местом, где вам смогут помочь. Если сообщество у SBC небольшое, не исключен вариант, что проблему вам придется решать самостоятельно. А это нервы, много кофе, бессонные ночи и красные глаза. Мне этого совсем не хотелось, ведь сплю последнее время я и так не очень.
По сообществу, конечно же, на первом месте «малина» — серия SBC Raspberry Pi. Но цены на малину высокие, да и задача у меня не сверхсложная, поэтому был выбран и приобретен, на мой взгляд, очень неплохой по соотношению цена/качество вариант SBC –
Orange Pi 3 LTS или «апельсинка».
Уверен, данный SBC уже многократно обозревался в интернетах вдоль и поперек, поэтому остановлюсь лишь на основных его характеристиках:
- Процессор Allwinner H6 64bit, 4 ядра Cortex™-A53, 1.8 ГГц
- 2 ГБ ОЗУ
- 8 ГБ встроенного ПЗУ, плюс слот для micro-SD карты памяти
- WiFi + BT5.0
- HDMI с поддержкой 4К
- USB 2.0 + 2xUSB 3.0
- Цена 3800 рублей на 11.11.2023
Кстати, уже после покупки узнал, что у нас есть и отечественные одноплатные компьютеры —
Repka Pi. Интересно, хотя и дороже аналогов.
В принципе, Orange Pi 3 LTS – это overkill для Клиппера, ему для работы хватило бы и 256 МБ ОЗУ. Но если уж приобретать SBC, зачем покупать что-то из low end-сегмента, мало ли, каким будет окончательное будущее данной платы? А еще тут есть 8 ГБ встроенной памяти – это значит, что можно будет обойтись совсем без флеш-карты, что положительно скажется на надежности системы.
Приходит плата вот в такой красивой коробочке:
Внутри инструкция и, собственно, плата в антистатическом пакете (пакет я уже снял):
Лишь после того, как получил плату, я вспомнил, что процессору, ОЗУ и модулю управления питанием неплохо бы прикрутить радиаторы. Но купить-то я их забыл! Поэтому пришлось по-быстрому колхозить самодельные – из какого-то старого радиатора от чипсета материнской платы ПК выпилил прямоугольники размерами примерно 16х16, 16х12 и 7х7 миллиметров, после чего приклеил их на обычный тонкий двухсторонний скотч к микросхемам «апельсинки». Да, теплопроводность двухстороннего скотча остается под вопросом, но у меня не планируется больших нагрузок. Зато, при необходимости, радиаторы можно будет легко снять и заменить на нормальные.
Теперь плата стала выглядеть так:
Раз у платы есть HDMI, первым делом решил подключить её к телевизору, чтобы посмотреть, что это вообще такое. Там оказалась установлена какая-то версия андроида, демонстрирующая основные возможности платы и позволяющая убедиться, что она работает исправно. Фото, к сожалению, не сделал, но этот андроид вполне себе запускался и работал. Но нам андроид сейчас не нужен, поэтому выключаем плату и идем дальше.
Установка ОС
Из всего зоопарка Линуксов мне привычней работать с Ubuntu – на ней я даже поднимал парочку серверов, один из которых, вроде как, работает и по сей день. Но в памяти почему-то отложилась рекомендация, что в качестве ОС для Клиппера рекомендовали Debian Bullseye. Что ж, Дебиан, так Дебиан, поэтому идем на сайт
SBC и скачиваем последнюю доступную версию Дебиана без поддержки десктопа. Ради интереса, когда-нибудь можно будет скачать и вариант ОС с графическим рабочим столом, чтобы просто посмотреть, что это вообще такое, графическая ось на одноплатнике, но сейчас это не нужно.
Кстати, на этой же странице можно найти и другие варианты операционных систем, среди которых есть и
MainsailOS —
испанская версия Линукс для моряков операционная система с заранее предустановленным Клиппером и веб-интерфейсом
Mainsail. То есть, по сути, если вам нужно по-быстрому клипперизировать какой-то принтер, это может оказаться хорошим выбором. Но это не так интересно, да и
Fluidd (другой вариант веб-интерфейса) мне больше по душе.
Теперь, когда у нас есть скачанный образ, для установки операционной системы понадобится SD-карта на 8 или более гигабайт и утилита Balena Etcher, которую можно взять
отсюда. Кстати, Balena Etcher – прекрасный пример современного стиля программирования: простая программа записи образа занимает целых 150 МБ,
ImageUSB нервно курит в сторонке. Хотя, кого это сейчас волнует.
Процесс записи образа прост до невозможности – выбираем образ (его надо предварительно распаковать), выбираем, куда будем записывать и нажимаем кнопку «Flash!»:
Теперь, по идее, можно вставить SD-карту в SBC и начать работу с компьютером. Но есть один нюанс – если вы хотите работать с платой удаленно по ssh, её нужно подключить к какой-либо сети. Обычно SBC подключают к беспроводным сетям, поэтому плате необходимо как-то указать имя сети и пароль. Сделать это можно тремя способами. Первый и наиболее простой – подключить к плате монитор и клавиатуру, дать ей загрузиться, после чего настроить WiFi руками. Второй, чуть посложнее – подключить плату к проводной сети, дать ей загрузиться, найти её IP в маршрутизаторе, зайти туда удаленно и снова настроить WiFi руками. Третий, наиболее сложный для типового Windows-пользователя – указать подключение к WiFi непосредственно на загрузочной флешке, тогда плата подключиться к беспроводной сети сразу же после первой загрузки.
Чем же последний способ так сложен, спросите вы? А тем, что Линукс использует для работы файловую систему
ext4, в которую мы только что и отформатировали нашу SD-карту; но вот Windows умеет работать с этой файловой системой чуть менее, чем никак. То есть, Windows прочитать карту не сможет, соответственно, просто так взять и изменить на ней файл тоже не выйдет.
Это не станет проблемой, если у вас в доступности есть какое-либо другое устройство с Линуксом – вы можете просто воткнуть карту туда и отредактировать файл любимым Vim’ом. Но что делать, если такого устройства нет? Как обычно, ищем решение в интернете.
Варианты мне попадались разные, парочка из них просто не заработала (их приводить не стану), поэтому, в итоге, выбор пал на
Linux File Systems for Windows от Paragon Software. Программа устанавливается, запускается и просто работает в фоне. Как только в систему вставляется флешка с ext4, программа создает дополнительный виртуальный диск, отображающий реальное содержимое флешки в понятном для Windows формате. Если на виртуальный диск вносятся изменения, они автоматически транслируются в ext4 и отправляются храниться на флешку. То есть, это именно то, что нужно! Единственный минус – программа платная.
Конечно, можно попробовать разные варианты, но, в данном случае, это просто не нужно – программа работает в пробном режиме 10 дней, чего вполне хватит для изменения одного единственного файла на флешке. Поэтому устанавливаем, запускаем, вставляем карту и видим следующую картину:
Виртуальный диск появился, теперь можно и параметры WiFi указать. Для этого находим на карте файл
/boot/orangepi_first_run.txt.template, переименовываем его в
/boot/orangepi_first_run.txt, после чего вносим в файл следующие изменения (выделены красным):
В параметрах
FR_net_wifi_ssid и
FR_net_wifi_key следует указать имя вашей сети и её пароль. В параметре
FR_net_wifi_countrycode можно указать код нашей страны. А можно не указывать.
Теперь отключаем карту от ПК (не забывая о безопасном извлечении), вставляем в SBC и дрожащими руками подключаем питание. Тот самый момент настал!
Тут я не выдержал и всё-таки подключил SBC еще и к телевизору, чтобы просто посмотреть, что же там будет происходить. SBC успешно увидел монитор и даже поддержал 4К-разрешение:
Процесс начальной загрузки длился порядка 9 минут, т.к. SBC увидел, что записанный на карту образ не соответствует её реальному размеру, и решил, что диск необходимо расширить. Вот этот процесс расширения и занял основную часть загрузочного времени. Затем плата завершила начальную инициализацию и приветливо замигала курсором терминала в ожидании дальнейших команд. Всё, вот он, наш Линукс.
Сейчас, если бы к плате была подключена клавиатура, можно было бы уже начать работать. Но нам нужен удаленный доступ, поэтому идем в маршрутизатор, находим IP платы и подключаемся к ней по ssh любым доступным терминалом. Если никакого терминала нет, можно начать с
MobaXterm — во-первых, он даже не требует установки (а я люблю portable-программы), а, во-вторых, в нем есть не только ssh-клиент, но и удобный графический клиент sftp, позволяющий привычными движениями мыши перекидывать файлы на устройство и обратно.
Настройка SBC
Создаем сессию, вводим IP, подключаемся. Для начального подключения используем имя пользователя
root и пароль
orangepi
Отлично. Теперь вкратце перечислю, что нужно сделать с платой. Прежде всего, удаляем китайские сервера пакетов и прописываем «нормальные»:
nano /etc/apt/sources.list
Содержимое файла удаляем и указываем следующее:
deb http://deb.debian.org/debian bullseye main contrib non-free
#deb-src http://deb.debian.org/debian bullseye main contrib non-free
deb http://deb.debian.org/debian bullseye-updates main contrib non-free
#deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free
deb http://deb.debian.org/debian bullseye-backports main contrib non-free
#deb-src http://deb.debian.org/debian bullseye-backports main contrib non-free
deb http://security.debian.org/ bullseye-security main contrib non-free
#deb-src http://security.debian.org/ bullseye-security main contrib non-free
Запись файла в nano – Ctrl-O, выход – Ctrl-X. Теперь обновляем индексы пакетов и, собственно, сами установленные пакеты:
apt update && apt upgrade
Установим временную зону:
timedatectl set-timezone Europe/Moscow
[Кстати, плата не имеет RTC, поэтому получает текущее время из интернета при каждой загрузке. То есть, для нормальной работы ей или нужен интернет, или внутренний NTP-сервер, или внешняя плата RTC.]
Для совместимости (да и хватит уже под рутом работать) создадим пользователя
pi с паролем
pi:
adduser pi
Чтобы
pi мог выполнять серьезные задачи, разрешим ему
sudo:
usermod -aG sudo pi
Поскольку я искренне верю в то, что в моей локальной сети безопасно, отключим запрос пароля для
sudo:
visudo
После чего открывается специальный текстовый редактор nano, идем в конец файла и дописываем строчку:
pi ALL=(ALL) NOPASSWD: ALL
В принципе, на данном этапе общую настройку SBC можно считать завершенной – подключайтесь под пользователем
pi и делайте то, что вам нужно. Но мне не хватает любимых «синих панелей» — файлового менеджера
Far.
Far Manager на SBC
За клавиатурой сидел большой темнокожий детина, беспрерывно нажимавший TAB, F6, Enter, TAB, F6, Enter, напевая: «I like to move it, move it», «I like to move it, move it».
Возможно, среди вас есть олдфаги, которые слышали про
Нортон-коммандер. Возможно, кто-то из вас даже работал в нем. Возможно, кому-то концепция двух панелей на синем фоне так понравилась, что позже он перешел на
DOS Navigator, а еще позже – на
Far Manager. Это всё вполне возможно, поэтому поделюсь с вами рецептом, как устанавливать Far везде, в том числе и на армовом SBC.
Вообще, изначально Far Manager сделал
Евгений Рошал, более известный как автор винрарного архиватора
WinRAR. Far тогда был ANSI-приложением, а Windows внезапно начала переходить на юникод, вследствие чего Far оказался неспособен работать с некоторыми файлами. Евгений расстроился и забросил проект. Православный Far начал вытесняться бесовским Windows Commander’ом. Но Евгений не закопал Far, предварительно он отдал его исходники «в хорошие руки» сообщества и завещал выпускать новые версии. Так родилась Far Group. Чуть позже MS наехала на
Ghisler Software GmbH и Windows Commander пришлось переименовать в Total Commander, а сообщество таки за 7 лет перевело Far на юникод. Вот так Far Manager и стал
Open Source, но это не точно.
Оригинальный Far Manager работает только под Windows, но идея синих панелей не давала покоя и людям с красными глазами. Так появился проект
far2l — порт Far под ОС Линукс. Кстати, проект
активно развивается, за что хочется выразить огромную благодарность его авторам.
Итак, если Far под Линукс существует, почему бы не запустить его на Arm? Опущу часик неудачных попыток установки Far и его зависимостей из разных репозиториев и перейду сразу к результату – есть другой проект, который называется
far2l portable. Как видно из названия, это портабельная версия Far Manager для Линукс. Ого, даже без установки? Дайте две! Или даже три, ведь автор проекта – огромный молодец и выложил сборки под
разные архитектуры, в том числе и под aarch64. Кстати, релиз состоялся всего два дня назад, поэтому страшно и представить, что бы я делал, если бы решил установить Клиппер неделей раньше.
Итак, идем в наш SBC и выполняем команду:
wget https://github.com/spvkgn/far2l-portable/releases/download/latest/far2l_aarch64.run.tar
Теперь остается распаковать tar-архив (вы же умеете распаковывать tar-архивы под Линукс?)
tar -xvf far2l_aarch64.run.tar
И, собственно, запустить сам менеджер (не забываем проверить атрибуты файла). И, о, чудо – вот они, наши синие панели:
[Примечание: если панели не очень-то и синие, как в MobaXterm, вам необходимо настроить цветовую схему терминала:
или использовать другой терминал, например, даже ssh из wsl.]
По сути, портабельная версия Far при каждом старте распаковывается из «себя» во временный каталог, после чего запускается оттуда, что может оказаться неудобным. Поэтому можно запустить Far, найти распакованные файлы во временном каталоге, перенести их на постоянное место (например, в
/var/opt/far2l), после чего создать скрипт
/usr/bin/far2l, который будет запускать Far:
#!/bin/sh
(cd /var/opt/far2l && ./far2l)
При создании скрипта не забываем, что мы работаем под Линукс, и чтобы файл «запускался», это надо явно разрешить:
chmod +x /usr/bin/far2l
Вот теперь общую настройку SBC точно можно считать завершенной.
Подключение через WSL
В современной ОС Windows есть
WSL, в которую входит, в том числе, и ssh-клиент, так что для подключения к Линукс-машинам сейчас даже не нужен сторонний терминал. Его можно тоже настроить, а, заодно, перейти на авторизацию по ключу.
Первое, что надо сделать, это сгенерировать ключ авторизации. Делается это так (в командной строке ПК):
ssh-keygen
Утилита спросит, куда положить ключ (вариант по умолчанию
C:\Users\<user>/.ssh/id_rsa вполне подойдет), пароль для защиты ключа (я оставил пустым, что означает «без пароля»), после чего сгенерирует ключ и выведет небольшой text-art:
Теперь открываем файл
C:\Users\<user>\.ssh\id_rsa.pub, копируем имеющуюся там строчку в буфер обмена целиком, переходим на SBC в наш домашний каталог, создаем каталог
.ssh, а в нем новый файл с именем
authorized_keys (путь целиком:
~/.ssh/authorized_keys), куда и вставляем содержимое буфера обмена. После чего сохраняем файл и возвращаемся на ПК, где создаем файл
C:\Users\<user>\.ssh\config со следующим содержимым:
C:\Users\SD\.ssh\config
Host <alias_name>
User pi
Hostname <orange_pi_ip>
IdentityFile C:\Users\<user>\.ssh\id_rsa
Например:
Host opi
User pi
Hostname 192.168.7.12
IdentityFile C:\Users\SD\.ssh\id_rsa
Теперь подключиться к SBC можно одной командой из командной строки:
ssh opi
Установка Клиппера
Некоторое время назад установить и настроить Клиппер было достаточно сложно. К счастью, эти времена прошли. Умные люди создали просто отличный скрипт
KIAUH (Klipper Installation And Update Helper), который сделает всё за вас. Открываем терминал SBC и просто вводим команды (гит, кстати, в бычьем глазе уже имеется):
cd ~
git clone https://github.com/dw-0/kiauh.git
./kiauh/kiauh.sh
На экран будет выведено интерактивное текстовое меню (да, такие тоже бывают), скрин которого сделать я забыл, но там просто необходимо выбрать пункт 1 [Install] (клавиши «1, Enter»). Далее появится меню выбора устанавливаемых компонентов:
В этом меню надо последовательно установить Klipper (1), Moonraker (2) и Fluidd (4). Klipper, собственно – это основной код Клиппера, Moonraker – его API для взаимодействия со внешними системами, а Fluidd – удобный веб-интерфейс для управления принтером (тут альтернативно можно установить Mainsail). При установке Клиппера следует выбрать версию Питона 3.х и один устанавливаемый экземпляр. Установка компонентов производится по очереди и может занять некоторое время.
После этого главное меню KIAUH у вас будет выглядеть примерно так:
Всё, Клиппер установлен и можно переходить к следующему шагу – его настройке. Если интересно, то уже можно набрать в браузере IP-адрес принтера и посмотреть на веб-интерфейс Fluidd. Однако, на данном этапе он должен лишь выводить ошибку, что Клиппер не может подключиться к MCU.
Отдельно отмечу еще одну деталь – начиная с текущего момента все манипуляции с Клиппером (обновление, удаление, переустановка) следует делать только через KIAUH, который будет доступен по тому же самому пути, что и раньше (
~/kiauh/kiauh.sh).
Прошивка МК принтера
Настало время прошить МК принтера микропрограммой от Клиппера. Но для начала эту микропрограмму необходимо скомпилировать именно под нашу плату. Поэтому идем в терминал SBC и запускаем конфигуратор:
cd ~/klipper
make menuconfig
На экране у нас появится еще одно текстовое интерактивное меню, в котором необходимо указать следующие параметры для компиляции прошивки:
Забегая немного вперед, скажу, что плата принтеров Anet ET спроектирована таким образом, что для перепрошивки микроконтроллера необходимо физически подключиться к ней с помощью программатора ST-Link. Так что, по-хорошему, нам бы очень не помешал bootloader. Но пару часов попыток совместить
OpenBlt с Клиппером у меня успехом не увенчались, поэтому отложим эту задачу на будущее, а сейчас выбираем «No bootloader» в меню Клиппера. После ввода всех параметров нажимаем Esc и подтверждаем сохранение изменений. Теперь осталось физически собрать прошивку:
make
После этого по пути
~/klipper/out/klipper.bin появится готовый двоичный файл прошивки, который можно зашивать в МК принтера. Этот файл необходимо скопировать с SBC на ПК (для этого можно воспользоваться SFTP-клиентом, входящим в состав MobaXterm)
Теперь берем принтер, переворачиваем его на бок и снимаем нижнюю крышку. Нам открывается прекрасный внутренний мир Anet ET5X:
[Если что,
блок питания в принтере уже не оригинальный.]
Отсоединяем все разъемы, откручиваем плату и несем её поближе к ПК. Если есть возможность принести поближе к ПК весь принтер – еще лучше, тогда ничего отсоединять и откручивать не надо, можно прошивать плату прямо так.
Для прошивки понадобится программатор
ST-Link и одноименная программа
STM32 ST-LINK utility. К сожалению, скачать по указанной ссылке программу с территории России нельзя, поэтому или используем VPN, или гуглим, откуда еще её можно взять. Далее устанавливаем программу и драйвера для программатора (установщик спросит), подключаем программатор в USB и убеждаемся, что ST-LINK видит ST-Link:
У меня ST-LINK написал, что у программатора устаревшая прошивка, после чего работал с ним крайне нестабильно, были частые отвалы от МК. Обновлять поначалу было страшно, вдруг оригинальное ПО окирпичит китайское железо (как было с FT232), но потом нашел у себя плату STM32 Value, которую можно в крайнем случае использовать как ST-Link, так что, в конечном счете, решился на обновление (делается через меню ST-LINK). К моему небольшому удивлению, ST-LINK успешно обновил прошивку китайского ST-Link и после этого работал с ним весьма стабильно. Так что обновлять прошивку крайне рекомендую (но это не точно).
Далее необходимо подключить программатор к МК на плате принтера. Для этого находим небольшую гребенку из 4-х пинов рядом с МК и подключаем их к выходу программатора по следующей «схеме» (DuPont-проводки идут в комплекте с программатором):
1. Ближайший к МК пин соединяем с землей программатора (GND)
2. Следующий пин (вывод 76 МК) соединяем с SWCLK
3. Третий по счету пин (вывод 72 МК) соединяем с SWDIO
4. Четвертый пин и четвертый проводок (задуманный для подачи питания) оставляем висеть в воздухе
Выглядит это примерно так:
Далее на плату принтера необходимо подать питание. Если вы не вытаскивали плату из корпуса и не отсоединяли разъемы, то просто включите принтер. В моем же случае пришлось подать внешние питание от блока на 12 В. Номинально принтер рассчитан на 24 В, однако на входе стоит Step-down преобразователь, который сделают нужное напряжения и из 12 В. В теории можно было подать 3.3 В с выхода ST-Link непосредственно на МК платы, однако, не зная её схемотехники делать этого я не стал.
Теперь в программе ST-LINK можно подсоединиться к МК:
Оказалось, что МК не залочен производителем, и текущую прошивку можно легко считать для создания бэкапа. Это хорошо, если идея с Клиппером не понравится, всегда можно будет вернуть её назад и продолжить эксплуатировать принтер как и раньше. В данной серии МК есть аж целый мегабайт ПЗУ (не смейтесь, для МК это правда немало), который начинается с адреса 0x08000000, поэтому вводим это значение в поле адреса, в поле размер вводим 0x00100000 = 1 МБ и сохраняем прошивку на диск. Если немного глянуть внутрь того, что мы скачали, можно увидеть, что первые 64 КБ занимает бутлоадер, а дальше идет совершенно стандартная прошивка ET5X v1.0.0, которую можно даже скачать с их сайта.
Теперь загружаем созданный ранее
klipper.bin и прошиваем МК. В качества адреса прошивки выбираем начало ПЗУ = 0x08000000. Через несколько секунд, когда прошивка завершится, плату можно отключать от программатора, ставить назад в принтер и всё собирать обратно.
Отмечу один важный момент: прошивка через ST-Link возможна только в том случае, если микропрограмма принтера не переопределила выводы, используемые при программировании. Микропрограмма Клиппера, по всей видимости, именно так и делает, поэтому, чтобы повторно перепрошить МК после Клиппера, необходимо выполнить следующие действия:
1. Подключить программатор
2. Зажать на плате принтера кнопку сброса (она расположена рядом с ионистором)
3. Нажать в программе ST-LINK кнопку «Connect»
4. Тут же отпустить кнопу сброса на плате
Программатор подключится, и вы сможете нормально программировать МК.
Настройка Клиппера
Для дальнейшей настройки Клиппера подключаем принтер к SBC кабелем USB A-B (я выбрал для этого порт USB2.0 на SBC) и включаем притер. Конфигурировать Клиппер удобнее всего через веб-интерфейс, поэтому вводим в браузере адрес принтера, после чего должен открыться Fluidd. У меня изначально он открылся на русском языке, поэтому мне понадобилось перейти в настройки Fluidd, временно выбрать там русский, после чего переключить обратно на английский. Далее на панели слева нажимаем иконку фигурных скобок (конфигурация Клиппера), затем находим в списке файл
printer.cfg и нажимаем на него:
Файл откроется на редактирование прямо в браузере. После внесения требуемых изменений следует нажать кнопку «Save & Restart», расположенную сверху справа, и тогда изменения сохранятся, а управляющая программа Клиппера будет перезапущена, чтобы их перечитать. С полной документацией по конфигурации Клиппера можно ознакомиться
тут.
Первым делом необходимо настроить подключение к микроконтроллеру. Плата Anet ET спроектирована таким образом, что вход USB идет не напрямую в микроконтроллер, а подключен к преобразователю USB <-> UART, выход которого уже подключен к UART МК (за счет этого, кстати, невозможно перепрограммировать МК в режиме DFU). Это также означает, что подключение такого устройства создает в системе новый последовательный порт. Вот его и нужно найти. Для этого идем в терминал и выполняем команду
ls -al /dev/serial/by-id/
Если вы ничего другого еще не подключали к SBC, в списке будет лишь одно устройство. Необходимо скопировать его идентификатор (у меня он получился
usb-1a86_USB2.0-Serial-if00-port0) и вернуться к конфигу Клиппера, где занести его в секцию подключения к МК:
[mcu]
baud: 115200
restart_method: command
serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
Далее зададим основные параметры принтера:
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_accel_to_decel: 3000
max_z_velocity: 50
max_z_accel: 50
Здесь я решил, что мой принтер может перемещаться со скоростью 300 мм/сек и ускорением 3000 мм/сек². А если не может? Или может больше? Тогда я просто поменяю значения в конфиге на другие, и Клиппер будет им следовать.
Теперь нужно заполнить остальные секции. Я приведу свой конфиг в конце статьи, поэтому не буду подробно останавливаться на каждой. Для заполнения проще всего взять за основу какой-либо готовый конфиг из интернета и по очереди копировать оттуда секции, внося требуемые изменения «на лету». Я за основу взял
данный конфиг для ET4X, а также руководствовался
распиновкой платы принтера.
Требуемые секции:
- Параметры шаговых двигателей: [stepper_{x|y|z}]
- Параметры экструдера: [extruder]
- Подогрев стола: [heater_bed]
- Настройки вентиляторов: [fan], [heater_fan]
- Датчик приближения к столу: [probe]
- Параметры карты стола: [bed_mesh]
- Координаты парковки по Z: [safe_z_home]
Для определения координат срабатывания концевиков по осям X/Y и положения датчика стола относительно сопла придется взять линейку и провести несколько измерений, но это совсем не сложно. При указании смещения датчика стола имейте в виду, что отрицательные значения указывают в сторону начала координат. Так как у нас по оси Z не концевик, а датчик, еще понадобится указать координаты X/Y для парковки (обычно выбирается центр стола).
Когда настройки будут завершены, сохраните конфигурацию и перезапустите Клиппер. Если вы допустите какие-то концептуальные ошибки, Клиппер об этом сообщит и вам придется вернуться и устранить их. В конечном счете, когда ошибок не останется, можно, наконец, попробовать принтер в действии. Но что-то отправлять на печать пока рано, сначала надо выполнить следующие шаги:
- Убедиться, что парковка осей X и Y работает правильно
- Проверить парковку Z
- Включить подогревы сопла и стола и убедиться, что вентилятор охлаждения головки включается, а температуры растут
- Настроить PID-регуляторы сопла и стола (команды PID_CALIBRATE HEATER=extruder TARGET=250 и PID_CALIBRATE HEATER=heater_bed TARGET=70)
- Откалибровать экструдер
- ???
- PROFIT
После этого следует снять карту стола. Делается это на рабочей температуре как сопла, так и стола, чтобы компенсировать все возможные тепловые расширения. В моем случае это 235 и 70 градусов, используемые для печати PETG. В итоге, получился вот такой стол:
Теоретически, стол можно было бы еще попытаться подстроить винтами, т.к. раньше 0.28 мм считалось достаточно большим диапазоном, однако, для Клиппера печатать на таком столе – вообще не проблема, первый слой будет ложиться хорошо. Добавим лишь в конфиг секцию, чтобы Клиппер сам загружал карту стола после старта:
[delayed_gcode bed_mesh_init]
initial_duration: .01
gcode:
BED_MESH_PROFILE LOAD=default
Подключение экрана
На этом, в принципе, конфигурацию Клиппера можно было бы завершить и перейти уже к печати, но меня сильно смущал белый экран принтера. Белым он получился потому, что его поддержка никак не настроена в прошивке, и он отображает то, что считает нужным контроллер, а контроллер много не раздумывает. Поскольку в конфиге от ЕТ4, который я брал за основу, поддержка экрана есть, я подумал, что легко смогу перенести её и сюда. Но это оказалось не совсем так. Точнее, совсем не так.
Сначала немного общей информации. По большому счету, дисплей для Клиппера не нужен вовсе — всё управление и контроль печати осуществляется через веб-интерфейс. Но если всё же подключать дисплей, то есть два способа. Во-первых, можно подключить дисплей непосредственно к SBC и настроить его там как дисплей, после чего установить
KlipperScreen. Получим достаточно годный интерфейс управления Клиппером, но понадобится физически подключать провода от SBC к дисплею, то есть, размещать SBC внутри корпуса принтера. Во-вторых, можно оставить дисплей подключенным к плате принтера и получить интерфейс «на минималках», но экран хотя бы не будет белым, плюс не понадобится что-то переподключать. На этом варианте я и решил остановиться. Но снова столкнулся с проблемами.
Если посмотреть описание компонентов
платы принтера, то видно, что ЕТ4 использует экран на контроллере ST7789, а ЕТ5Х – на ST7796S, то есть, просто скопировать конфиг ЕТ4 здесь не выйдет. А если пойти глубже и посмотреть документацию Клиппера, окажется, что поддержки ST7796S в нем нет вообще.
Тогда я решил начать с того, что просто перенести настройки с ЕТ4 – ведь оригинальные платы от этих принтеров очень похожи, может и модули дисплея тоже? И тут же столкнулся с новой проблемой – оказалось, что поддержки ST7789 в Клиппере тоже нет! А ведь он как-то работал на том ЕТ4? Разгадка была простой – г-н
pienjo добавил поддержку этого дисплея в Клиппер сам!
В итоге, покопавшись немного в незнакомом питонячем коде, прикрутить дисплей все же удалось. Не буду вдаваться в детали, т.к. искренне считаю, что это практически не нужно, остановлюсь лишь на основных моментах (если вдруг у кого появится интерес, пишите в комментах):
- Добавить из репозитория pienjo файл st7789v.py
- Добавить в display.py включение st7789v.py
- Исправить в st7789v.py пару ошибок, связанных с обновлением Клиппера и Питона за это время, изменить направление экрана по горизонтали
- Добавить в Клиппер файл lcd_st7789v.c, т.к. поддержка дисплея должна быть и в МК
- Добавить lcd_st7789v.c в makefile, чтобы он компилировался
- Перепрошить МК
- Добавить в конфиг Клиппера параметры, связанные с дисплеем
Внешне дисплей теперь выглядит так:
Кнопки просто отображаются, но пока что не работают, т.к. поддержку
xpt2046 в Клиппер тоже надо добавлять.
Пробная печать
Так ради чего это всё затевалось? Ну, вроде как, чтобы печатать. Печатать лучше и быстрее. Поэтому после приблизительной настройки «на глаз» Input Shaping (MZV 25 Hz) и Pressure Advance (0.12) напечатал тестовый кубик на скорости 100 мм/сек с ускорением 2000 мм/сек² (3000, к сожалению, оказалось слишком много – всё же большой стол принтера дает о себе знать). Тестовая печать заняла ровно 15 минут (не обращайте внимания на значения РА на скрине, он делался в другое время):
Раньше, емнип, такой же кубик печатался примерно за 37 минут, так что прирост скорости тут налицо. А что же по качеству? Смотрите сами:
Слева расположен кубик, напечатанный сейчас, справа – раньше. Первый и последний слои однозначно стали лучше. Также PA дает о себе знать – хоть на кубике и не очень заметно, но на углах ушли наплывы пластика. И, вообще, принтер начал печатать «чище», т.к. уменьшились «капли» в местах ретракта и меньше пластика сочится из сопла при холостом перемещении. Это очень важно, т.к. означает меньше постобработки напечатанной детали
напильником ножом.
Но что-то стало и хуже, например, геометрия – это из-за 100 мм/сек (у старого внешние стенки были 25 мм/сек), всё же механика принтера не топ. Хуже выглядят и нависания (на такой скорости нужен лучше обдув), а углы стали менее острыми – это из-за ускорения и Input Shaping. В целом же, я постарался максимально передать дефекты печати на фото, в жизни они так в глаза не бросаются, оба кубика выглядят достаточно хорошо.
Если останавливаться на финальных параметрах печати, я бы снизил скорость внешних стенок до 50 мм/сек, внутренних до 70 мм/сек, ускорение до 1500 мм/сек², тщательно подобрал Input Shaping, чуть уменьшил бы экструзию, таким образом, получив примерно х1.5 — 2 от изначальной скорости при лучшем, в целом, качестве.
Итоги
Перевод принтера на Клиппер оказался интересным и далеко не таким сложным, как это изначально казалось. Результат тоже приятный – произведение скорости на качество у принтера явно поднялось. Я теперь даже жалею, что два года сидел на стоковой прошивке. Так что, если у вас есть сомнения, переходить на Клиппер или нет – переходите, не сомневайтесь. Рекомендую.
Что касается самого ЕТ5Х – на Клиппере он еще вполне мог бы поработать, тем более, бывают задачи, требующие именно его большую область печати. Однако, к покупке я его не рекомендую, т.к. из коробки принтер посредственный, в нем надо много чего дорабатывать:
- Перевод на директ: это, прямо, мастхэв.
- Клиппер: обязательно, т.к. штатная прошивка глючит, а обновлений её нет и не будет.
- Замена обдува: обязательно, штатного обдува, можно считать, что нет.
- Замена экструдера: очень желательно, т.к. штатный – полная фигня с одной шестеренкой.
- Заменя хотэнда: желательно, штатный не очень.
Спасибо тем, кто дочитал до конца, ниже прикладываю получившийся конфиг. Всем добра!
printer.cfg
[include fluidd.cfg]
[virtual_sdcard]
path: /home/pi/printer_data/gcodes
on_error_gcode: CANCEL_PRINT
[mcu]
baud: 115200
restart_method: command
serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_accel_to_decel: 3000
max_z_velocity: 50
max_z_accel: 50
[safe_z_home]
home_xy_position: 150, 150
speed: 100
z_hop: 5
z_hop_speed: 5
[stepper_x]
step_pin: PB6
dir_pin: !PB5
enable_pin: !PB7
rotation_distance: 40
microsteps: 16
endstop_pin: ^!PC13
position_min: -2
position_endstop: -2
position_max: 300
homing_speed: 100
second_homing_speed: 25
[stepper_y]
step_pin: PB3
dir_pin: PD6
enable_pin: !PB4
rotation_distance: 40
microsteps: 16
endstop_pin: ^!PE12
position_min: -19
position_endstop: -19
position_max: 300
homing_speed: 100
second_homing_speed: 25
[stepper_z]
step_pin: PA12
dir_pin: !PA11
enable_pin: !PA15
rotation_distance: 8
microsteps: 16
endstop_pin: probe:z_virtual_endstop
position_min: -5
position_max: 350
homing_speed: 12
second_homing_speed: 5
[extruder]
step_pin: PB9
dir_pin: PB8
enable_pin: !PE0
rotation_distance: 22.57
microsteps: 16
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PA0 # END_CONTROL
sensor_pin: PA1 # TEMP_EXB1
sensor_type: EPCOS 100K B57560G104F
max_extrude_only_distance: 1000
pressure_advance: 0.08
pressure_advance_smooth_time: 0.040
#control: pid
#pid_Kp: 20.375
#pid_Ki: 0.844
#pid_Kd: 123.016
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: PE2 # BED_CONTROL
sensor_pin: PA4 # TEMP_BED
sensor_type: EPCOS 100K B57560G104F
#control: pid
#pid_Kp: 70.721
#pid_Ki: 1.981
#pid_Kd: 631.118
min_temp: 0
max_temp: 125
[fan]
pin: PE3 # LAY_FAN
max_power: 1.0
cycle_time: 0.010
kick_start_time: 0.500
[heater_fan hotend_fan]
pin: PE1 # END_FAN
max_power: 1.0
cycle_time: 0.010
heater_temp: 50.0
[temperature_sensor orange_temp]
sensor_type: temperature_host
min_temp: 0
max_temp: 100
[temperature_sensor mcu_temp]
sensor_type: temperature_mcu
min_temp: 0
max_temp: 100
[probe]
pin: ^!PC3
deactivate_on_each_sample: False
x_offset: -22.0
y_offset: -8.0
#z_offset: 0.170
speed: 5.0
samples: 2
sample_retract_dist: 2.0
lift_speed: 5.0
samples_result: average
samples_tolerance: 0.05
samples_tolerance_retries: 5
[bed_mesh]
speed: 150
horizontal_move_z: 5
mesh_min: 25, 25
mesh_max: 275, 275
probe_count: 5, 5
fade_start: 3.0
fade_end: 10.0
algorithm: bicubic
zero_reference_position: 150, 150
[delayed_gcode bed_mesh_init]
initial_duration: .01
gcode:
BED_MESH_PROFILE LOAD=default
[pause_resume]
[display_status]
########################################
# EXP1 / EXP2 (display) pins
########################################
[board_pins]
aliases:
# P1 header
P1_1=PD7, P1_3=PB2, P1_5=PE4, P1_7=PB1, P1_9=<GND>,
P1_2=PD5, P1_4=PE5, P1_6=PB0, P1_8=PD4, P1_10=<3V3>,
# P2 header
P2_1= PE6, P2_3=PD15, P2_5=PD1, P2_7=PE8, P2_9=PE10,
P2_2=PD13, P2_4=PD14, P2_6=PD0, P2_8=PE7, P2_10=PE9
[display]
lcd_type: st7789v
fgcolor: 255,255,0
bgcolor: 0, 0, 64
resx_pin: P2_1
dcx_pin: P2_2
csx_pin: P1_1
wrx_pin: P1_2
rdx_pin: P1_8
d15_pin: P2_9
d14_pin: P2_10
d13_pin: P2_7
d12_pin: P2_8
d11_pin: P2_5
d10_pin: P2_6
d9_pin: P2_3
d8_pin: P2_4
rect: 0,0,480,320
button0_rect: 0,260,114,320
button0_fgcolor: 255,255,255
button0_bgcolor: 48,63,0
button0_glyph:
.......**.......
......****......
.....**..**.....
....**....**....
...**......**...
..**........**..
.**..........**.
****************
button1_rect: 122,260,236,320
button1_fgcolor: 255,255,255
button1_bgcolor: 0,0,63
button1_glyph:
........**....**
......**....**..
....**....**....
..**....**......
**....**........
**....**........
..**....**......
....**....**....
......**....**..
........**....**
button2_rect: 244,260,358,320
button2_fgcolor: 255,255,255
button2_bgcolor: 192,16,16
button2_glyph:
...............**
.............**..
...........**....
**.......**......
.**....**........
..**.**..........
...**............
button3_rect: 366,260,480,320
button3_fgcolor: 255,255,255
button3_bgcolor: 48,63,0
button3_glyph:
****************
.**..........**.
..**........**..
...**......**...
....**....**....
.....**..**.....
......****......
.......**.......
#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [extruder]
#*# control = pid
#*# pid_kp = 37.162
#*# pid_ki = 3.754
#*# pid_kd = 91.976
#*#
#*# [heater_bed]
#*# control = pid
#*# pid_kp = 72.007
#*# pid_ki = 1.450
#*# pid_kd = 893.786
#*#
#*# [bed_mesh default]
#*# version = 1
#*# points =
#*# -0.166250, -0.133750, -0.122500, -0.101250, -0.092500
#*# -0.115000, -0.057500, -0.017500, 0.005000, -0.027500
#*# -0.126250, -0.045000, 0.000000, 0.046250, 0.017500
#*# -0.168750, -0.088750, -0.055000, -0.053750, -0.067500
#*# -0.167500, -0.155000, -0.142500, -0.231250, -0.153750
#*# x_count = 5
#*# y_count = 5
#*# mesh_x_pps = 2
#*# mesh_y_pps = 2
#*# algo = bicubic
#*# tension = 0.2
#*# min_x = 25.0
#*# max_x = 275.0
#*# min_y = 25.0
#*# max_y = 275.0
#*#
#*# [probe]
#*# z_offset = 0.490
А на этот вопрос ответ есть в обзоре :)
И «чуть-чуть» — это смотря что смотреть. По процу может «чуть-чуть» выигрывает всего лишь в полтора раза, а по гпу — более чем в два. Более того — там у 3b есть возможность ssd m2 установить с обратной стороны платы. Я когда увидел такое положение дел — сильно удивился. Видно много людей на автомате берут до сих пор lts, вот и цена у неё больше. Хотя на фоне такого положения дел смысла брать lts вообще нет.
Да я знаю ;)
Это больше вопрос в воздух был. Сам я взял 2w за 1700. Так и не смог своей жабе доказать, что нужен именно 3b.
По ссылке по процу совсем всё не так однозначно, в Geekbench 5 multi-core даже отстает. По гпу — да, но вот использовать гпу я точно не планирую) Эта плата либо останется для клиппера ЕТ5Х, либо потом преобразуется в какой-то сервер умного дома, или типа того. В любом случае, никакой графики не планируется.
Ну, так она часто рекомендуется именно для клиппера. На оф сайте тот же mainsailos есть лишь для 3 lts. Вот и берут, всё равно дешевле же малины.
Но вот если задумываться о плате для чего-то еще, то 3b выглядит заманчиво, как только цену снизят.
Гпу сейчас используется во многих хорошо параллелющихся задачах и в ИИ. Тот же голос обсчитывать или объекты с камеры. Я тоже жабе пытался доказать, что буду использовать в умном доме «потом». Но жаба авторитетно сказала, что «потом» будет проще и дешевле взять новую плату(более мощную и дешёвую) под умный дом, а эту выковыривать будет или лень, или не с руки(принтер ломать). Сказала ставить дешман, который не жалко в принтере оставить. :/
И подумал, что совершенно разные процессоры разных производителей могут по-разному показывать себя в разных тестах.
Так, ну, во-первых, не путайте Н6 и Н616, Н6 чуть помощнее. Во-вторых, да, посмотрел результаты. У Н6 примерно 330 (мультикор), а у 3566 — если смотреть с октября 2022-го года, то результат с 330 растет до 523. Вряд ли процессор улучшается, скорее всего, оптимизируется тест (а тесты Н6 датированы началом этого года).
Вот нет пока таких задач, да и особо не планируется.
Ну, вот я так же думаю. LTS во многих местах была рекомендована как плата для Клиппера, плюс emmc уже на плате, поэтому выбрал её. Если понадобится дальше что-то еще, буду смотреть уже какой-то другой вариант.
крыло от самолётаIntel Nuc.Про Far хорошо было, в свое время я не нашёл его на Arm, использую другой клон нортона — Midnight Commander github.com/MidnightCommander/mc
Он по умолчанию есть почти во всех репозиториях линукса.
Функционал и вид у них примерно схож.
-Края гнутые, раньше было равномерно а теперь как попало.
-Высота слоя тоже гуляет + появился какой то пропуск?
-Первый слой неравномерный (надо с зазором поиграть)
-Заметно сильнее видно шум от заполнения на наружных стенках
Реально лучше стал последний слой, но это фиксится без клиппера.
Я думаю e3 v3 se в стоке печатает заметно лучше при 150-200мм/сек (ускорение до 2500мм/сек) и это при дешевской пластиковой базе.
Если напишете настройки печати (кол-во стенок, заполнение итд), то могу напечатать тестовый куб для сравнения, на v3 se. Слайсер говорит что тестовый куб на настройке «quality 0.1mm» Будет печататься 35минут
Вот этого не заметил, по высоте все хорошо. Измерение штангенциркулем дает 19.8 мм, и это лучше, чем раньше — раньше (на стоке) было по какой-то причине чуть ли не 19.5 мм.
Да, z-offset по-нормальному не настраивал, прикинул «на глаз» по листку бумаги, плюс карту стола снял только 5х5. Но даже так первый слой значительно лучше, чем раньше.
Думаю, это небольшая переэкструзия. На стоковой прошивке никак не мог добиться нормальных результатов — то на первых слоях перебор, то на последних не хватает. На клиппере всё сразу пошло значительно лучше, но точно не калибровал — лишь 100 мм один раз замерил, подкорректировал коэффициент и так и оставил, т.к. пытаться сделать из него «конфетку» уже особого желания нет.
На стоковой прошивке мне не удавалось, там вообще ничего нет. На марлине — наверняка бы удалось, но не ставил, т.к. имхо это даже геморней, чем клиппер — тут хоть конфиг правишь в браузере и не надо ничего перепрошивать.
При скорости, наверное? Так кто бы спорил — ЕТ5Х оказался очень даже посредственным принтером. Я его взял тогда по трем причинам — дешево (акция), большой размер (подумал: «вау») и какой-то обзор, где сказали, что он печатает хорошо из коробки. Звезды сошлись. А дальше — напильник.
Давайте. Слой 0.2, линия 0.4, сверху-снизу по 5 слоев, заполнение 20% «кубик», температура 235/70, PETG, скорость заливки — 150 мм/с, перемещения — 250 мм/с, первого слоя 50 мм/с, всего остального — 100 мм/с, ускорение 2000 мм/с², ретракты 1 мм на 25 мм/с, комбинг — выкл, юбка 350 мм.
Слайсер от креалити со встроенным профилем для их же принтера. Пресет «Normal 0.2mm», сделал 5 слоев сверху и снизу хотя и пары хватило бы, стенок 3, скорости ретракты итд оставил сток, юбку убрал так как к PEI все липнет намертво.
Слайсер говорил что печатать будет 21мин 14сек. В реальности с нагревом ушло 22минуты.
К сожалению глянцевого PetG нет, печатаю в основном абразивными типа металлизированный или карбон, на которых косяков вообще не видно. Поэтому в ход пошел черный PLA от Eryone.
Размеры 20,01х20,019х20х20,017мм (напоминаю, принтер такой с завода, без настроек)
Видно проблемы с подачей на углах, LA пригодился бы. Сверху заполнение такое же косячное как у вас ДО. Но никакого шума от заполнения на стенках. Размеры прям идеальные, первый слой хорош, и общее качество укладки я считаю заметно лучше.
Ну и еще раз напоминаю. Это глупый принтер без всяких модов, за 14,5к рублей ( брал за 15,5 на распродаже но потом отменил и перезаказал по более низкой цене) + PEI стол за 1500руб (хотя еще старый рабочий остался). Как и писал выше, никаких доп настроек, просто кинул в слайсер и напечатал.
Все это при текущем долларе, считайте принтер дешевле вашего без учета модов. Напечатал ту же модель на 15 минут быстрее, и в целом я считаю приятнее чем у вас.
Это особенность исключительно PETG — слишком текучий материал. На PLA у меня такого тоже не было. И, вообще, качество кубика на PLA было выше. Но (по мне) PLA — это бенчи на скорость печатать, если нужны реальные детали для реальной работы, тут хотя бы PETG нужен.
А что там за прошивка? Модифицированный марлин? Так наверняка у них уже есть какие-то общие значения подогнанные по модель принтера.
В целом — я же не спорю, ЕТ5Х никакого смысла брать сейчас нет. Но если уж он имеется, почему бы не посмотреть, что бы из него можно было бы выжать.
для того чтобы лазить на одноплатник из под windows, в том числе для редактирования текстовых файлов и заноса ключей достаточно воспользоваться готовыми программами без консоли wsl. putty в комлекте содержит генератор ключей, так же ключ можно сгенерировать прямо на одноплатнике. Для удаленного редактирования файлов есть удобный протокол sftp (можно и ftp) — та же moba его вроде умеет, скачка и заливка автоматизированы.
но можно и на одноплатнике довольно удобно: ставим пакет mc (midnight commander) — это и far замена и текстовый редактор там вполне dos-подобный.
ну а карту с ext4 лучше все таки трогать через загрузочную флешку с настоящим live линуском. или wls Приблуд то для ext4 всяких много наделали, есть и бесплатные софты, но все довольно корявенько. поэтому обычно в готовых сборках нужные текстовые конфиги выносят в отдельный раздел на fat32 и можно без проблем редактировать.
Так зачем? ) putty надо ставить, а wsl уже есть. При этом putty мне ну, вот, вообще не нравится — намучился я с ней давно, когда куча багов была и т.п. Тот же mobaxterm — в разы удобней.
Так я же в статье и ссылался на moba :) А если надо автоматизировать, из скрипта качать/закачивать, то да — scp. [добавлено] А far на РС, кстати, умеет вполне sftp, так что можно и таким способом редактировать.
Я наоборот считаю, что far — замена mc :) mc, кстати, вроде даже там есть с самого начала.
Лучше. Да, на самом деле, надо будет себе убунту какую-нибудь с десктопом поставить в виртуалку, будет и чем развлечься, и карты памяти редактировать (если что).
Переезжал я в августе с квартиры на квартиру. И был у меня андроидный бокс на амлоджике 905 1/8, практически идеальный, чтобы перешить и дружить с принтером.
Принтер у меня сильно древнее чем ваш — мейкербот репликатор 1 (стс клон). Понятно, нет ни вайфая, ни каких-либо вариантов с клиппером, но есть прошивка сейлфиш и можно через юсб управлять с помощью октопринта. То есть у меня получался совершенно бесплатный вариант внешнего интерфейса, на котором можно ещё, к примеру, гонять автоматизацию умного дома (ну или что душенька пожелает).
На новом месте принтер у меня поехал в подвал, где я организовал интернет через адаптер dlan, то есть через электрическую сеть.
В общем, все планы накрылись тазом только потому, что вёз и бокс и кучу других вещей в картонной коробке. А когда начал подключать, выяснилось, что косметическое зеркало жены и андроидный бокс имеют одинаковый разъем питания. 12в бокс не пережил.
Сейчас под это дело задействовал имеющийся hdmi-stick, где снёс винду8 и поставил дебиан. Но у стика свои печали, к примеру, там биос настолько кастрирован, что нет способа запускать без кнопки при пропадании питания.
hdmi-stick по приоде своей должен быть запрятан за телевизором и до кнопки не дотянуться, так что это они перемудрили. не помню уже — мой стик мог ли такое (он уже не мой)
Их закупили в больших количествах для использования в качестве источника сигнала для кучи информационных табло вида «телевизор + стик», где инфа актуализируется через интернет. И внезапно вышло, что в случае чего нужен специальный человек со стремянкой, чтобы нажать кнопку сзади, хотя телек можно включить дистухой.
Они потом долго лежали на складе, а потом отправились в утилизацию, где мне товарищ и ухватил один на случай «авось пригодится». Пригодился.
Вообще, процесс включения такого стика, который воткнут в телек, для меня до сих пор не особо понятен. Предполагается, что пользователю предстоит мучиться и лезть за телек каждый раз?
а вообще тут случай вообще какой то непонятной даже не экономии а игнорирование профессиональных решений для таких задач — а таки есть. очень многие хотят для этого использовать самый дешеман, колхозить, в то время как БУ специализированные решения уже на авито продают
а сейчас в тредах про одноплатники и плееры регулярно появлятются соотв. персонажи и хотелки
А это почему? По сути, для клиппера вам нужна очень простая микропрограмма в самой плате, остальное — делается в SBC.
Можно сделать эмуляцию нажатия кнопки через какое-то время после включения питания. Наверное, даже 555 подойдет. Или какой-нибудь мелкий tiny13. Хотя, может даже большой конденсатор?
Под майтибоард вроде есть конфиг, да и атмега1280 поддерживается, но так и не удалось её по-человечески прошит. И в интернетах не увидел никого, у кого это вышло. Сейлфиш+октопринт тоже норм, так что я успокоился.
приблуда называется «Резетер» и делается на маленьком микроконтроллере. Есть и прямо в продаже.
если пробило транзистор понижайки — то на выходе у нее будет входное напряжение, что для большинства контроллеров (а тем более процов) сразу гилка. ARM-ы довольно чувствительны к перенапряжению.
В любом случае, для постановки вердикта следует подать 5 В и ткнуться мультиметром на выходы понижайки и посмотреть, что там. Если 5 В — выкидывать, а если нет, может и попробовать поменять.
есть, но там не в этом соль. Там обычно интегральник стоит, а у него может куда ниже порог на входе (и там при повышении легко силовой транзистор пробивается).
а не ставят там (обычно) синхронники, ну нету никакого смысла.
— совершенно точно. А лучше — на выводы питания MCU (ну и пальцем проверить температуру).
А если серьезно — я писал на русском, и на русском допустимо называть прошивку микропрограммой. Ибо прошивка — это вообще что? Куртку на машинке прострочить? Жаргон компьютерный это. А официальное название — как раз микропрограмма.
Да вот не факт, смотреть надо. Может просто логика управления сгореть.
Смысл есть. Откройте даташит хотя бы на AXP805, который в Orange Pi 3 LTS стоит, посмотрите схему:
Вот он, голубчик.
— может, но (из опыта) — сгорает либо внутренний стаб либо силовой транзистор.
а у нас тут речь идет о ТВ-боксе, там не встречал. Как-бы не о Оранж-Пи.
Просто откройте гугл и наберите «микропрограмма», и сами увидите, где применяется это слово. Да, вот, например, даже у ХП.
Ну, про тв-боксы особо не знаю. В своем (где вайфай сгорел) завтра гляну.
да Бог с ним, это весьма не столь важно. Как уже писал, сгорал внутренний стаб (пробивало встроенный ИОН) либо пробивало (иногда до выгорания) силовой транзистор (на синхронных и не мостовых — чаще нижний). Типа так. А было несколько случаев, когда прошивало по Ethernet и типа бокс/роутер не видится никак, пока не физически не отрубишь трансформатор (ну иногда еще отжигать нужно защитные диоды — но это гемморно да и нафиг сдалось). Так что есть варианты…
На самом деле, мне не интересно продолжать с вами спорить, потому что если посмотреть историю выше, я вам привел несколько ссылок, вы же — ничего, кроме своего мнения. И, уж простите, но для меня ваше мнение в этом вопросе не является правильным.
ура, я рад.
А так, — в микрокоде/микропрограмме ключевое слово «микро», то есть это махонький набор команд (порядка 5-15 шт) с жестко заданными полями и оччень маленькое допустимое число шагов (ну, типично до 32). И это такой микроассемблер (ни Си/С++, какие еще более высокго ровня языки там не применяются, чисто ассемблер или кодирование напрямую). Из ширпотреба: у rp2040 (Rapsberry Pi pico) код для PIO машины можно назвать микрокодом. Ну или микропрограммой, — кому как нравится. Это так, для расширения кругозора.
dm53x, U3 AXP209, U2 не разобрал. Есть еще D2, думал может будет играть роль предохранителя, но замыкал контакты в обход него, не помогал.
А так, накатил с Thingverse прошивку на принтер, уже заработало хорошо. Потом вообще без участия мозга забабахал на стик октопринт с помощью деплой-скрипта github.com/paukstelis/octoprint_deploy
Выставил что надо, единственный нюанс, нужно поставить плагин, чтобы транслировал код:
plugins.octoprint.org/plugins/gpx/
Качать отдельно не надо, достаточно репозитория.
Из трудностей выплыла только одна, которую я решил не очень красиво. Камера — дешманское гуано за 1.99 из акции 3-в-1 — не захотела работать на чистом сервером дебиане, понятия не имею, что ей не понравилось. Попробовал дистрибут какого-то дебиана с гуи, sparx или ещё какой не помню — проблема пропала. По хорошему нужно найти правильный пакет, наверное, но я уже махнул рукой, работает, ну и фиг с ним.
А что за прошивка с Тсинквёрс?
Там только один юсб, но работает с конечным пассивным хабом что принтер по юсб, что камера.
Но и андроидный тоже пойдёт, если на него можно накатить армбиан или другой Линукс.
Прошивка обычная сейлфиш, автор ее выкладывает на сингверс
www.thingiverse.com/thing:32084
Дальше не ковырял. Надо бы попробовать поставить на Линукс, для этого надо старую мелкую машину принести — валяется маленький комп на АМД Закате.
И, вроде бы, люди ставят на старые телефоны. А у меня их есть, тоже было бы интересно.
Я так понимаю, что Майтиборд — уже седая с бородой и про неё уже все забыли. Но мне нравится как оно работает!
Сдаётся мне — сам дурак:
Может быть такое, что плагин заводится только на Линуксе?
и уж честно слово не знаю какие там глюки (ни разу не видел), а ключи одной мышкой можно сгенерировать.
суть в общем что вариантов много.
что касается боксов — если кто то сделал конфиг то да, иначе — приключения почти обеспечены. регулярно вижу такое мнение что только так и надо, но боксов очень много, очень разных, и даже если все типа совместимо, то находится какой то нюанс
Ну и во всех статьях типа такой уже само по себе подразумевается, что для реализации требуется технически подкованный человек.
вот случай с 313 реальный, я для интреса покопался — а что с линуксами на 313, местами соображения высказывают от силы. но нашел сборку arch именно для этого девайса. т.е. человек не стал даже гуглить, а просто спросил на известном форуме, че то он там сыскал в итоге че то даже поставилось
раз работает — повезло. надо тож попробовать, наверное :)
Добавлю только, чтобы не мучаться с Far, можно просто использовать mc, который, скорее всего, уже будет внутри Линукса.
Для себя выбрал путь проще, о котором автор упомянул — готовый образ MainsailOS.
Кстати, в новых дистрах линуха far уже в репу добавили, там еще проще будет.
А зачем far ставишь — ты вроде выше написал «взамен мс»?
Чем лучше?
Я работаю в far на винде примерно с 2008-го года — с того момента, как узнал, что вышла поддержка юникода. Когда году в 14-м впервые плотно столкнулся с администрированием линукс-сервера, помню, что от mc по сравнению с far плевался. С тех пор за развитием mc не слежу, а far использую постоянно. Поэтому far для меня — дело привычки.
Не могу сейчас утверждать, насколько он сильно впереди mc по функциональности, но люди в комментах писали, что впереди (наверное, той же подсветки синтаксиса в редакторе в mc нет?). Также сам факт того, что far2l существует под все распространенные платформы (линукс, мак) говорит о том, что не я один предпочитаю этот файловый менеджер.
я как раз тоже года с 2014 начал причем как пользователь десктопный…
Редактор бы еще ему получше
Полный фарш с emmc диском, дисплеем, вайфаем:
Про дешевизну я, кстати, ни слова не говорил. Но если посчитать, то купить orange за 4к всё равно оказывается дешевле, чем ваша плата за 8+, плюс еще четыре драйвера.
Что касается простоты — ваш вариант вообще ни разу не проще. Установить ось и клиппер — вопрос часа. Зато всё самое последнее и не модифицированное неумелыми руками китайцев (как у К1, например). Разбираться и настраивать конфиг — одинаково что там, что там. Только для подключения к вашей плате еще придется все штатные кабели anet распустить.
Не, если собирать принтер с нуля, можно ваш вариант рассмотреть. Но я всё равно его не рекомендую — если что-то спалите, спалите сразу всю плату. А так есть шанс SBC не испортить. И да, а где у вас на плате WiFi-то? Что, нету? Серьезно?
можно установить в течении часа, а можно не устанавливать и потратить этот час на что-то более интересное. у вашего Anet очень экзотические разьемы? серьезно?
в мкс инженеры не полные дауны, питание силовой, клиперной и управляющей части разнесено и эти части гальванически развязаны между собой. Три dc-dc конвертора выстроенные в ряд на плате не видно? вай-фай там же где и дисплей, не на плате, т.к. можно использовать разные модели, беленький свисток на фотке видно?
На написание комментариев на муське? ))
Посмотрите обзор, ну, серьезно. У anet кабель от головки проприетарный, где два мотора, два датчика, вентиляторы и хотэнд в одном шлейфе. Сколько времени уйдет на его роспуск? А где еще разъемы подходящие взять?
Прям гальванически развязаны? Даже земля у них разная? Вот не верю. Да и при сборке принтеров возможны другие ситуации, например, провод какой-то упадет на плату и т.д. Умные люди давно вывод сделали — две отдельные платы являются более ремонтопригодным решением. Это ж очевидно, не спорьте с аксиомами.
А, то есть, я ставлю плату в корпус принтера, из которого у меня потом торчит «свисток»? Не, спасибо, вот такого колхоза мне точно не надо.
прям все сигналы идут через оптроны, вполне достаточно чтобы если сгорит что то одно то оно не потянет за собой остальное. впрочем умным людям виднее…
а торчащая антенна — вы не понимаете это другое? да, сбоку платы еще один usb для неколхозников.
вобщем по сути то сказать нечего, бум к свисткам и драйверам цепляться…
да, и обзор вроде не про трудности с Анетом а про клиппер это просто, вот со skipr это действительно очень просто, для любого принтера, получаете все сразу и в одном флаконе, что своим комментом я и хотел донести.
Все сигналы через оптроны, говорите? Это которые на схеме R269 и R270 обозначены?
Куда торчащая? Она и внутри корпуса принтера прекрасно работает.
Слушайте, вы вообще плату в руках держали? Понимаете, о чем разговор? Сбоку платы разъем USB от МК, какой туда вайфай вставлять-то?
Ну так вы без пафоса информацию подавайте — типа, есть еще такая плата, там уже сразу МК + SBC, у неё такие-то плюсы, такие-то минусы. И подумайте сначала, в каком случае такую плату будет проще использовать, а в каком проще вариант SBC + штатная плата.
Устанавливается за 3 сек на любом дистрибутиве.
Лично мне фар на голову удобнее миднайта, пользуюсь и тем и тем. Даже не так, пользуюсь и mc, и far, и far2l.
Это разовое занятие, теперь я знаю, откуда portable брать)
Другое дело, что ещё дело привычки, то есть человеку, плотно сидящему на мс фар покажется неудобным просто потому, что ожидаемые функции находятся не там и работают по-другому.
главное чтобы не «там тебе и накрылось все зараз медным тазом», ну и, скажем, не зависло все одновременно. и более банальный случай когда прям нужно перезагрузить все, а — нельзя. ну для этого есть конечно всякие контейнеры…
вообще nas конечно очень хорошо выходит на x86, особенно когда та терабайты дисков, но есть и отдельные (логически и географически) микрозадачи для которых x86 просто неудобно
Какие именно преимущества у НАС в данной прикладной задаче?
дваждытрижды — уже не ошибка, а выбор.Кстати по теме клиппера: Вы главные преимущества клиппера так и не использовали, а именно настройки Pressure Advance и Input Shaping, с которыми как раз и увеличивается скорость печати без насилования механики и увеличивается сильно качество печати
Ну и в догонку… Экран на клиппере не нужен от слова «совсем». Всем прекрасно управляется с веб-морды, в том числе и отправка моделей на печать
В догонку 2… Качество модели до и после одинаково ужасны… Вам бы механику перебрать — у вас реальные с ней проблемы
far portable ничего не тянет, всё находится лишь в каталоге фара.
Во-первых, фар никогда не был заточен под msdos. Во-вторых, приведите пример того, что есть в мс и нет в фаре.
Обзор, похоже, вы не читали.
Обзор, похоже, вы не читали. Или я это уже писал?
Качество нормальное, на фото выглядит хуже, чем в жизни. Более того, в реальности для ускорения печати я использовал сопло 0.6 и слой 0.3, там качество еще хуже было. И ничего — стоят себе детали, работают.
Но ЕТ5Х далеко не лидер по качеству, это я и так знаю. Можно перебрать, конечно, и поменять кое-то что еще, но сейчас уже не нужно.
все там точно так же как и в far через плагины и конфиги сделано., полноценная рабочая среда.
но я лично обычно просто использую не сам mc а запускаю отдельно реадактор из него чтобы еще и с vim/nano не копаться
Относительно серьезное отличие заключается на вскидку в том что mc довольно сильно заточен под линуксовские атрибуты файлов: права доступа и владельцев, и нужно. в ntfs же это довольно по другому сделано, в fat — все проще. я уж думаю что far для линкуксов это допилили потому что это довольно удобный функционал
Конечно, допилили, т.к. без этого в линуксе «как без рук». Диалог «атрибуты файла», вызывается по Ctrl-A.
Гибкая фильтрация и масочки, быстрый просмотр, очень удобный менеджер соединений нетрокс, отличный редактор с подсветкой синтаксиса колорер, удобно и гибко настраиваются цвета подсветки файлов, директорий и симлинков, архивы через мультиарк тоже очень хорошо открывать (вплоть до того, что один пользователь в тележной группе забабахал для мультиарка псевдоархиватор поддержку рклона с доступом ко всем облакам), очень гибкие настройки режима отображения файлов в панели.
Ну и опять-таки, дело привычки и заточенности под пальцы. Понятно, если кому придётся переходить с мц на фар, будет трудно чисто из-за того, что многие вещи находятся не там и не по тем клавишам.
Если у кого-то нет под рукой ST-Link, можно подключиться к STM через UART.
на них есть 1,2 специальных входа boot при замыкании которых (вроде на землю) контроллер входит в специальный режим получения команд через uart/usb — и есть соотв. софт который заливает прошивку.
первая тонкость как видим — должен быть доступ к этой ноге, для этого обычно кнопочку делают, ну или перемычку boot так и называют
на сайте stm есть большой документ который все описывает
Быстро записывает
Может записывать дистры Windows, Linux
Имеет размер 1,5 МБ
А откройте во время печати терминал и наберите top — это загрузка процессора. И посмотрите, на сколько у вас проц загуржен, чем, и сколько еще свободно.
Не думаю, хотя я не тру-линуксоид.
Но купил BIGTREETECH BTT PI V1.2 с can адаптером.
Дешевле, питание 24В, радиатор в комплекте, есть готовый образ ОС с Клиппером.
А статья полезная — думаю, многим пригодится.