Купила баба порося... MKS Robin nano / Sapphire PRO
Здравствуйте, уважаемые! Эта запись о переписанной прошивке для платы MKS Robin nano, модуле управления питанием и модуле WiFi. Попытка начать описание проделанной работы.
Началось все как у всех: купил принтер Sapphire PRO... Как по мне, так отличный аппарат за исключением того, что прошивка в нем на столько ужасна, на сколько это только можно представить. Нет, она, конечно работает, если надо просто записать файл на флешку и запустить, но хочется и "рюшечек".
Для начала подключил датчик обрыва филамента - не работает. Попробовал попищать командой M300 - не пищит. Подключил светодиод на вывод управления питанием, мол по окончании печати можно сделать автоматическое выключение (M81) - ноль внимания, фунт презрения. Плагин для CURA от Makerbase (производитель платы и прошивки) дополняет gcode данными, которые потом прошивка использует для формирования картинки предварительного просмотра печатаемой модели (на экранчике при печати показывается). Данные формирутся, а вот оторбажаются они в виде шума отдаленно напоминающем вид печатаемой модели. По задумке производителя, такие же превьюшки должны были быть на пиктограммах файлов в листинге.Перепрошил принтер под "летающего медведя". Стало чуть лучше, по другому раскрашен интерфейс, но на этом и все. Отличие прошивок минимально, и представляет из себя лишь замену картинок и настроек используемых цветов.
Тем временем, Makerbase выпустило прошивку V2, и вместе с этим открыла исходный код. Отлично! Можно препарировать.
Не буду рассказывать "кошмарный сон программиста", но то, что я увидел в исходниках это "спагетти код" в худшем его виде.
Для начала я починил алгоритм обработки датчика филамента, затем пищалку, потом формирование сигнала, который можно использовать для выключения питания по окончании печати.
Получилось то, к чему уже можно присоединять свои железки, уж очень хотелось чтобы принтер сам выключался.
Пока ждал комплектующие для разработанного модуля управления питанием переписывал прошивку. Полностью заменил код создания и управления пользовательским интефейсом, но сам интерфейс остался по функционалу тем же или шире.
- Код прошивки уменьшился более чем на 100к ~-25% (не потому, что стало меньше функционала, а за счет замены спагетти кода)
- Датчик филамента работает
- Пищалкой можно управлять (M300)
- Дисплей переходит в режим "без подсветки" если по нему не тапать 10 минут (опционально)
- По окончании печати принтер выключается (опционально или по M81)
- Работает превью
- Для печатаемого файла можно посмотреть сколько пластика на него нужно, сколько уже использовано и т.д. (эту информацию прописывает CURA в GCODE в виде комментариев)
На этом можно было бы и остановиться. Однажды анализируя трафик домашней сети, я обнаружил, что принтер держит соединение с каким-то китайским сайтом, и по статистике это соединение было лидером в объеме обмена. Запретил принтеру выходить во внешнюю сеть, но осадочек остался. По все видимости, это обмен с облаком, о котором китайцы заявляли в описании принтера. А оно мне надо?
Китайская плата c WiFi стоит 500-600р при комлектующий на менее 100. Понятное дело, что за прошивку тоже надо платить. Спаял такую же плату, вставил в принтер, обновил прошивку штатным способом через флешку. Плата завелась, подключается к сети, но выдает ошибку. Логично. Китайцы защитились от копирования. Не буду описывать как была сделана защита, скажу лишь, что получить рабочую версию мне удалось (не для использования, а ради спортивного интереса).
Так как исходный код прошивки материнской платы принтера открыт, то соотвественно, открыт и протокол обмена с модулем WiFi, чем я и воспользовался, повторив функционал в собственной реализации оставив все, кроме обмена с облаком. Сделал отображение прогресса при передаче файла на принтер. Дополнительно встроил поддержку NTP (Network Time Protocol) и теперь принтер у меня показыват точное время. В планах подключить MQTT и WebDAV.
Приглашаю желающий посмотреть проделанную работу. Именно этой прошивкой я пользуюсь сам. Интересные идеи допишем, а найденные ошибки исправим ;).
Прошивку для MKS Robin nano можно взять у меня на github https://github.com/vyacheslav-shubin/mks-robin-nano35-binary/tree/master/2020-07-03
Конфигурационный файл от моего принтера, а там я уже сменил драйверы шаговых двигателей. Поэтому инверсию осей и типы концевых датчиков, возможно потребуется поправить. Установка картинок обязательна.
Штатная прошивка от Makerbase: https://github.com/makerbase-mks/MKS-Robin-Nano/tree/master/Nano%20firmware%20v2.x.x
Кстати, в прошивке v2, на которую идет ссылка многие параметры принтера, которые задаются в конфигурационном файле можно изменять через пользовательский интерфейс. В моей прошивке это тоже есть, но в большем объеме.
О том, как сделан модуль управления питанием и особенносях WiFi модуля, напишу отдельно, если будет интересно.
И фото:
Модуль управления питанием:Общий вид изнутри:
Принтер, в правом нижнем углу кнопка выключения питания (без фиксации):
Еще больше интересных статей
Застрял филамент в 3D ручке
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Elegoo Neptune 4 Plus альтернативный и более простой способ замены сопла
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Настраиваем прошивку Marlin и заливаем её в 3D принтер
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Комментарии и вопросы
бесполезная статья, просто ска...
извратненько
Здравствуйте. Можно как-нибудь...
Доброго времени суток! нужна м...
Доброй ночи, после покупки и с...
Хочу себе новый принтер. Из ва...
Всем доброго времени суток!Пос...