Купила баба порося... 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 модуля, напишу отдельно, если будет интересно.
И фото:
Модуль управления питанием:Общий вид изнутри:
Принтер, в правом нижнем углу кнопка выключения питания (без фиксации):
Еще больше интересных статей
Помощник по учёту хранения и поиска домашних вещей, запчастей, радиодеталей и прочего мелкого хлама.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Продолжение о СЖО. Датчик потока.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Настраиваем прошивку Marlin и заливаем её в 3D принтер
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.




Комментарии и вопросы
В месте крепления пружин стави...
Просто эти колечки довольно бы...
Если делать для домашнего прои...
Уважаемые коллеги, кто имеет д...
Один отрезок как минимум полча...
Решил тут модернизировать экст...
досталось вот такое чудо. ...