Купила баба порося... MKS Robin nano / Sapphire PRO

VyacheslavSS
Идет загрузка
Загрузка
03.07.2020
3829
112
Техничка

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

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

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

9

Здравствуйте, уважаемые! Эта запись о переписанной прошивке для платы 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 модуля, напишу отдельно, если будет интересно.

И фото:

Модуль управления питанием:

Общий вид изнутри:

Принтер, в правом нижнем углу кнопка выключения питания (без фиксации):

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

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

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

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

Комментарии

03.07.2020 в 20:09
0

...и особенностях WiFi модуля...

Очень интересно! А штатный модуль не заработает?

И по поводу модуля отключения интересно! :)

03.07.2020 в 20:25
0

Штатный модуль будет работать. Точно так же будет работать модуль моей самописной прошивкой. Протокол обмена один и тот же. Но, если в самодельный модуль залить прошивку от производителя, без дополнительно шаманства, то прошивка в таком модуле работать не будет. Вернее, вместо статуса "подключились к сети" она будет выдавать код ошибки. Но и это поправимо. При чем исправляющий код можно встроить в прошивку материнской платы.

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

03.07.2020 в 21:00
0

Т.е. Ваша прошивка для модуля WiFi не нужна? По ссылке нет MksWifi.bin

У меня WiFi работает, но как-то нестабильно подключается после включения принтера.

Заметил, что если включать принтер с вытащенной картой SD, то подключения почти мгновенно, а вот с картой бывает долго...

03.07.2020 в 21:35
0

Нет, не требуется. Комбинировать прошивки можно. 

03.07.2020 в 21:34
0

Да, для прошивки материнской платы wifi прошивки не требуется. Будет работать штатный модуль. Протокол обмена я не менял. Свою прошивку к модулю wifi я выложу вместе с описанием. Обратная совместимость тоже есть. Моя прошивка wifi будет работать с оригинальной прошивкой материнской платы, просто пакеты ntp будут игнорироваться. 

Вставлена sd карта или нет никак не влияет на запуск модуля wifi, они даже на шинах разных. 

А о нестабильности Вы говорите для оригинальной прошивки? 

Я тоже обратил внимание, что оригинальная прошивка wifi очень долго инициализируется иногда и долго ищет сети. Исходников от нее нет, к сожалению. 

03.07.2020 в 22:05
0

А вы pr в марлин с фиксами сделали?)

03.07.2020 в 22:15
0

Нет, код makerbase перемешан с марлином, а pr к  makerbase просто не будет принят. Там уже почти нет их кода, по крайней мере пользовательский интерфейс полностью мой. Оставлены только картинки. Считайте это не изменениями а перепроектированием) 

03.07.2020 в 22:34
0

Тогда получается это форк с тупиковой судьбой.

03.07.2020 в 22:35
0

;) о религии не спорим

06.07.2020 в 10:44
0

https://github.com/MarlinFirmware/Marlin/pull/18071
MKS портировала свой 480х320 интерфейс для Marlin и он включен в официальный репозиторий.


jmz
06.07.2020 в 15:26
1

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

Посмотрим, хватит ли у меня запала добавить альтернативную реализацию UI для MKS в marlin 2, а может и сподвижники найдутся ;) Репозиторий кода открыт. Цель такая.

03.07.2020 в 22:07
0

А о нестабильности Вы говорите для оригинальной прошивки?

Сейчас у меня прошивка Mks_Nano35_V2.0.2 (Была, сейчас пробую Вашу)

03.07.2020 в 22:16
0


03.07.2020 в 22:17
0

Изображение со сбоями...

03.07.2020 в 22:28
0

Подскажите, а какой плагин в куре у Вас установлен? Так может получаться, если плагин формирует изображение другого разрешения. И еще, в листинге файлов есть превью? 

03.07.2020 в 23:18
0

В листинге превью также искажено..

Пользую Куру 3.4.1, соответственно, плагин для нее...

В прошивке от МКС превью норм.

Сейчас кстати попробую новую от МКС - Mks_Nano35_V2.0.3.2

03.07.2020 в 23:24
0

Не могли бы Вы мне прислать файл, который вы печатали? Я гляну как там сформированы данные по превью? По всей вероятности у нас разные плагины для куры. Свои версии могу Вам прислать тоже. 

04.07.2020 в 00:21
0

Вот два файла по ссылке ЯДиск

04.07.2020 в 01:13
0

Спасибо. Да, действительно, превью формируется по разному. В Вашей версии маленькая картинка для листинга файлов имеет больший размер, чем в моей 50х50. Отсюда и расхождения и смещенный рисунок на большом превью.

Файл сформированный плагином установленным у меня

Поддержку обоих форматов можно сделать. Попробую в понедельник. 

А откуда Вы устанавливали плагин?

По всей видимости и дополнительная информация о печатаемой модели у Вас не отображалась (кнопочка с зеленым знаком восклицания). Там по ней появляется диалоговое окно с данными о размерах модели, расходе пластика, числе слоев, предполагаемом времени печати. 


Посмотрел исходники плагина у makerbase на github. 6 месяцев назад был комит где размер превью изменили с 50х50 на 100х100. 

04.07.2020 в 09:21
0

..откуда ... плагин?

Я просто и не вспомню, где именно брал.. Для разных версий Куры - разные плагины..

Меня в моем бесит, что при отправке файла я не могу использовать имя файла (имя назначает сам плагин)...

(кнопочка с зеленым знаком восклицания).

Была такая кнопочка, что-то отображала - напр. расход длины пластика, а вот количество слоев стояло на нулях...

А вот Ваш файл на новой прошивке от МКС - Mks_Nano35_V2.0.3.2

04.07.2020 в 09:38
0

Да, мой файл с превью 50х50 (сформирован старым плагином от mks) в прошивке от mks он так отображается, что меня и расстравивало. Алгоритм я этот поправил в своей прошивке, попробуйте, а в понедельник допишу поддержку больших превью от нового плагина. 

А что за артефакты на превью в оригинальной прошивке? На железе, к сожалению сейчас посмотреть не могу. Только в понедельник

04.07.2020 в 09:41
0

...попробуйте...

Ок, спасибо, попробую к вечеру :)

А что за артефакты на превью в оригинальной прошивке?

Мои файлы отображаются нормально, Ваш - поломан..

04.07.2020 в 09:47
0

Я о белых точках по верхней строке и в правом верхнем углу. 

03.07.2020 в 22:18

Комментарий удалён

04.07.2020 в 06:58
0

Можно просто поставить Вашу прошивку со своим конфигом и все? Ни ВиФИ ни отключение питание я пока не пользую.

04.07.2020 в 09:28

Комментарий удалён

04.07.2020 в 09:30
0

Да, можно. 

Вчера выяснили, что последняя версия плагина для куры от makerbase генерирует gcode с превью размером 100х100 пикселей. В моей прошивке 50х50, учтите это. На функционал не влияет, но картинка превью на экране разъедется. Если не пользовались плагином или у вас версия полугодовой давности, то все будет нормально или вместо превью будут фиксированные пиктограммы. 

Про концигурационный файл. 

В версии v2 makerbase добавили в нем строк. У меня после первого перехода  (с оригинальной прошивки на оригинальную) пришлось корректировать максимальные скорости оси Z (если верно помню). Я тогда просто недостающие строки добавил в новый конфиг. 

Если у Вас уже стоит v2 от makerbase, то просто установите мою прошивку. Картинки для нее тоже надо обновить. Обратная процедура та же. 

04.07.2020 в 09:46
0

По ссылке обновленная версия? Просто смотрю изменения были 18 часов назад..

04.07.2020 в 09:50
0

Нет. В понедельник поправлю, если успею. Я имел ввиду, попробуйте мою прошивку посмотреть с файлом который еще старым плагином сделан. Для него должны работать превью и доп.информация о модели

06.07.2020 в 15:32
0

https://github.com/vyacheslav-shubin/mks-robin-nano35-binary/tree/master/2020-07-06-snapshot

Поддержка Preview 100х100, gcode в комплекте.

В Ваших файлах превью содержит вид стола, надписи в окне. Я подправил код плагина установленного у меня, чтобы он генерировал превью 100х100. Обратите внимание, что в итоге только модель на черном фоне. Но это о плагине и куре.

06.07.2020 в 19:10
0

...подправил код плагина установленного у меня...

А где взять такой подправленный плагин? И для какой версии Куры он?

06.07.2020 в 19:18
0

На Linux у меня стоит 4.4.1, на win10 не знаю какая, наверное тоже. Плагин я устанавливал из стора той же куры. Правил в файле SaveOutputDevice.py строку:

        try:
            message.show()
            save_file = open(file_name, "w")
            if image:
                save_file.write(utils.add_screenshot(image, 100, 100, ";simage:"))
                save_file.write(utils.add_screenshot(image, 200, 200, ";;gimage:"))
                save_file.write("\r")
            for line in _gcode:
                save_file.write(line)



06.07.2020 в 19:24
0

У меня в плагине абсолютно такие же строки

try:
            message.show()
            save_file = open(file_name, "w")
            if image:
                save_file.write(utils.add_screenshot(image, 100, 100, ";simage:"))
                save_file.write(utils.add_screenshot(image, 200, 200, ";;gimage:"))
                save_file.write("\r")

06.07.2020 в 19:36
0

Конечно можно, не берусь с уверенностью сказать, что именно это имя используется для передачи фала по сети. Ищите метод post для сетевого обмена. Там много чего можно переписать и сделать лучше. Только не люблю я питон...

О протоколе обмена с WiFi и какие данные туда идут я еще напишу, расскажу как за 100р свой модуль такой спаять.

До сих пор под впечатлением от китайсого кода в прошивке. Просто поверьте, что тривиальные вещи, которые пишутся в 10 строк были написаны более 1000. И я не утрирую и не шучу. Местами вообще удивлял "полет мысли".

06.07.2020 в 21:05
0

...именно это имя используется...

Cura.gcode - с таким именем попадает на карту... И соответственно, каждый раз заменяет старый файл новым, несколько бесит :)

P.S. Однако.. в версии 4.6 Куры файл отправляется с тем же именем, что и у файла STL.. Уже радует :)

05.07.2020 в 12:57
0

Очень интересно. Спасибо за проделанную работу, буду следить.

Скажите, а где-то там, в прошивке, Linear Advanse есть возможность включить?

05.07.2020 в 23:09
0

Linear Advanse это же функции марлина. Туда не лазал, только в местах интеграции кода makerbase. Я лишь выкинул реализацию пользовательского интерфейса, и написал свою. Плюс, починил использование датчиков и расширил протокол обмена с wifi. Подробнее о функциях UI еще напишу отдельно. Особенности есть. Например, я отключил автоматический home при ручной настройке уровня и добавил отдельную кнопку для home... 

А марлин внутрях совсем не новый, и точно не 2. Там есть опция LIN_ADVANCE и к ней еще один параметр, если этого достаточно, то конечно можно вынести в настройки. 

05.07.2020 в 23:44
0

да, было бы очень интересно попробовать. 

25.07.2020 в 17:11

Комментарий удалён

25.07.2020 в 17:12
0

Вячеслав, приветствую!

Наконец-то поставил вашу прошивку. Две недели к принтеру не подходил, а тут пришли новые драйверы и удалось таки выкроить время.  

Первое - спасибо за труд, работа проделана немалая.  

linear advance в опциях не нашел, к сожалению 

И да, вот еще что - парковаться головка стала по-другому. Сначала Х и У, потом едет в цент стола и только потом Z. Мне подсказали, что в есть такая опция - Z Safe homing. Но как это отключить в вашей прошивке я не нашел, не подскажете?

PS Прописал в конфиг, отключил. 

26.07.2020 в 20:59
0

Если опишите, где это настраивалось раньше, сделаю такую же опцию. А так, я функционал не изменял, лишь дополнил тем, что мне самому хотелось. Home едет штатной командой g кода. В марлин не вмешивался. Из особенностей: я убрал автоматическую парковку в настройках уровня стола, учтите это. Т. Е после включения принтере, если собираетесь настроить уровни стола, сначала выполните парковку. 


linear advance смотрел. К сожалению сделать опцию в настройках не просто. Эта функция включается условной компиляцией кода. Собрать отдельную прошивку с включенным la можно. 

26.07.2020 в 21:36
0

В том-то и дело, что на "родной" прошивке эта функция отключена и в опциях я ее не помню. А в вашей включена. Решается просто, даже не в прошивке, а в том конфиге, что Вы прикладываете можно добавить следующую строку в разделе "Z Probe Options": 

>Z_SAFE_HOMING 0 # 0:Disable  1:Enable

Насчет LA

linear advance смотрел. К сожалению сделать опцию в настройках не просто. Эта функция включается условной компиляцией кода. Собрать отдельную прошивку с включенным la можно. 

А как это будет выглядеть? Какое-то фиксированное значение? Можно ли будет его отключить в стартовом коде командой M900 K0 ?

Я бы попробовал, да и не только я - в нашем telegram-канале по принтерам TT  многие интересуются. И сидят пока на Марлине из-за ЛА

26.07.2020 в 21:43
0

Это отдельная прошивка с включенным функционалом. Я не совсем в курсе, как работает эта опция с точки зрения g кода. Но в марлине есть опция, включается в его конфигурации. Потом прошивка пересобирается.

26.07.2020 в 22:12
0

Если Вам не сложно будет собрать такую прошивку, мы бы попробовали

26.07.2020 в 22:13
0

Хорошо, завтра сделаю, если будет время. Напишу сюда или в личку. 

27.07.2020 в 10:23
0

Вот здесь включается функционал LA

 Middlewares/Third_Party/Marlin/Configuration_adv.h: 696


//#define LIN_ADVANCE

#if ENABLED(LIN_ADVANCE)
  #define LIN_ADVANCE_K 75

  /**
   * Some Slicers produce Gcode with randomly jumping extrusion widths occasionally.
   * For example within a 0.4mm perimeter it may produce a single segment of 0.05mm width.
   * While this is harmless for normal printing (the fluid nature of the filament will
   * close this very, very tiny gap), it throws off the LIN_ADVANCE pressure adaption.

Попробовал включить. Пошли ошибки компиляции в stepper.cpp. Вполне возможно, что под MKS Robin NANO не адаптировано.

27.07.2020 в 10:41
0

Очень жаль, не хотелось бы на марлин переходить из-за ЛА

В любом случае, большое Вам спасибо!

27.07.2020 в 10:45
0

Кстати, вот отзыв по парковке из нашей группы

На прошивке от Вячеслава какой-то глюк с осью z. При калибровке стола после перемещения головы уплывает зазор, может не обращая внимания на концевик въехать в стол соплом, приходится каждый раз home z выполнять. И еще как-то раз после калибровки стола отключил моторы и опустил немного стол вручную и при следующей печати он начал печатать в воздухе (в стартовом коде g28 присутствует)

28.07.2020 в 21:34
0

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

Про печать в воздухе:

В оригинальной прошивке есть опция "продолжить печать". Работает она так: если отвести голову по z на определенное расстояние, то принтер будет пропускать g код весь, что ниже заданной высоты. Зачем это сделано и как предполагалось использовать я не знаю, но данная опция выведена на виджет перед печатью. 

28.07.2020 в 21:41
0

Скорее всего, так и было -  полагаю, он нажал "продолжить печать" по невнимательности

28.07.2020 в 21:45
0

Честно говоря, я вообще хотел прибить эту возможность, или убрать возможность ее использовать под опцию в конфигурации. Кто-то вообще пользуется этим? 

28.07.2020 в 22:01
0

Уверен, что такие появятся, стоит вам только это сделать :) для конструктора это очевидная реальность, для программиста, думаю ,тем более. 

Думаю, функция не бесполезная, но испытать ее в деле возможность представиться только если свет при многочасовой печати отключат, например. Как узнавать координату Z при этом не очень понятно, разве что поднимать стол по Z до касания соплом... Или наоборот, запарковаться по Z, потом опустить стол ниже модели и по чуть-чуть поднимать. Впрочем, как я и говорил, заниматься этим вопросом захочется только по большой нужде, но как сказал один очень известный самурай: "меч может пригодиться тебе лишь один раз в жизни, но для этого тебе придется таскать его всю жизнь" (за дословность цитаты не ручаюсь :)

06.07.2020 в 15:34
0

https://github.com/vyacheslav-shubin/mks-robin-nano35-binary/tree/master/2020-07-06-snapshot

Версия с поддержкой превью 100х100, 50х50


Модуль управления питанием:

https://3dtoday.ru/blogs/vyacheslavss/modul-upravleniya-pitaniem

06.07.2020 в 18:30
0

Замечательная прошивка, минимум подстроек "под себя" , и всё работает, просто радует. Жаль плюсик поставить не могу. Вячеслав, огромное Вам спасибо.

06.07.2020 в 19:18
0

Спасибо

06.07.2020 в 19:30
0

А что за параметр "time offset" ? значение стоит -1, за что отвечает ? на что влияет?

И еще, у меня не стала работать штатная кнопка отключения питания , с дисплея отключает от кнопки нет, но с кнопки включает. Стоит модуль MKS PWC.

06.07.2020 в 19:42
0

Если Вы подключите модуль WiFi с моей прошивкой,то к прочим возможностям, за исключением китайского облака, вы получите часы с точным временем, синхронизирующимся по NTP (протокол точного времени). time_offset - черновое название до поддежки многоязычности. Определяет временную зону. Для Москвы это +3*60=180.

Точное время будет показываться на начальном экране, где раньше было "Готов к>"  во время печати рядом с пиктограммой скорости. Там, кстати, тоже черновая пиктограмма. Часики еще нарисовать надо.

06.07.2020 в 19:52
0

Про кнопку питания...

Честно говоря, я не знаю как там устроен оригинальный модуль. Там, вроде есть обратная связь, которая используется для анализа напряжения в сети и пропадания его. Рассчитано на наличе UPS. Может этот сигнал кнопка возвращает еще на плату, тогда его надо просматривать. Надо попробовать... в любом случае, если Вы мне поможете с отладкой, то реализовать не сложно.

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

Если это так, то модуль от MSK у Вас соединен двумя шлейфами к материнской плате...

06.07.2020 в 19:55
0

Ага, все понял, значит мне это "как зайцу стоп сигнал", у меня WiFi нету.

А по поводу кнопки питания? может где то что подправить надо? ток не понимаю где.

06.07.2020 в 20:00
0

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

А для Куры вы плагин поставили от MKS? Там кроме WiFi есть пункт  Save as TFT, и файлики с gcode будут отображаться с превьюшками в браузере принтера.

06.07.2020 в 19:59
0

Да двумя.

Вот он - https://aliexpress.ru/item/32853300039.html?spm=2114.13010708.0.0.784333ed7KJEqU&_ga=2.52719725.43137957.1593333263-580406480.1577093609&_gac=1.49092948.1592235670.Cj0KCQjwoPL2BRDxARIsAEMm9y82UpAppMLKjH-PI0KVn-RoJnmEnB2xzMFzznvqw8ANCYI7DfOkyuEaApiREALw_wcB

Дело в том что по моему, на Вашей прошивке 2020-07-03 она работала, могу что то путать, если надо могу прошить ее еще раз и проверить.

06.07.2020 в 20:02
0

Думаю, что путаете. Я в этом коде не копался с момента начала всей этой авантюры ).

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

06.07.2020 в 20:10
0

Да, там Power Detector, неужели кнопка при выключении только сигнал на этом выходе меняет, а не отключает реле? Я понял. Посмотрю, думаю при спадении сигнала на PwrDet принтер выполняет M81, а у меня эта связь разорвана.

06.07.2020 в 20:22
0

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

06.07.2020 в 20:51
0

Спасибо большое, будем ждать.

Плагин стоит, превьюшки показываются, причем на вашей прошивке рисуется очень быстро .

Еще момент, как я понял, автоотключение сделано по времени, может правильнее сделать по температуре хотенда? А то после высокотемпературных пластиков он остыть не успеет.

07.07.2020 в 17:59
0

https://github.com/vyacheslav-shubin/mks-robin-nano35-binary/tree/master/2020-07-07-snapshot
Пробуйте. До этого написал большой пост, и в самом конце произошел какой-то сбой в браузере и сообщение не сохранилось. Разобью на части.

07.07.2020 в 18:05
0

Подскажите, а зачем ждать остывания хотэнда? Он ведь выключается просто снятием с него напряжения, что равносильно полному выключению питания? Вентилятор обеспечивающий термобарьер встанет, но там и радиатор и сам термобарьер имеют достаточную инерцию. Встроить это легко, но какой процесс надо обеспечить при выключении?

07.07.2020 в 22:45
0

Навскидку - если горло установлено в колдэнд на термопасту, то ее можно перегреть. Ну и вообще, зачем греть вентиллятор? Из чего он сделан, из АБС? Там не такие большие температуры размягчения, теоретически может и подплавиться. 

07.07.2020 в 18:15
0

У MKS есть параметр >cfg_mask_det_function значение 1 в котором маскирует одновременно функцию контроля питания и обрыва филамента. В тех конфигурацинных файлах, что были у меня параметр не описан, может конфиги старые?
Я подумал, что полезно будет разделить маску и сделать ее отдельно для каждой функции. Установленный бит 0 отключит обработку датчиков филамента, а бит 1 сигнала обратной свяди модуля управления питанием. По-умолчанию данный параметр имеет значение 0.

В виджете Кофигурирование/Дополнительно оба бита можно изменять отдельно.

07.07.2020 в 18:30
0

Об алгоритме отключения при использовании модуля управления питанием от MKS

На сколько я понял, работает модуль следующим образом:

При нажатии на кнопку питания, включается реле. Пока кнопка нажата на входящем PortA2 держится логический 0, а PortB2 высталяет 1, которая фиксирует через ключ реле во включенном состоянии. При отпускании кнопки влючения на PortA2 появляется логическая 1. Процедура включения закончена.

При выключении, по нажатии на кноку питания, на входящем PortA2 снова появляется логический 0, что является сигналом сброса удерживающего реле PortB2

Со стороны прошивки реализовано так:

После включения питания и появления в последствии логической 1 на PortA2 принимается решение о включении контролирующего алгоритма. Теперь, если на  PortA2 появится логический ноль в течении 0.5-1 сек (тактировани опроса 0.5 сек), на PortB2 выставляется логический 0.

07.07.2020 в 18:41
0

Развитие прошивки.

В разделе Настройки добавлен виджет "PID Set". Хочу сделать UI для автонастройки PID термостатов. Виджет в черновом варианте. Сейчас на нем отображаются графики температуры стола и хотэндов. Минимальное значение 20, максимальное 260.

Пасхалка

Одну из первых функций, которую я заменил была ф-я отображения заставки при старте принтера. Надо было на чем-то проверить алгоритмы перевода полноцветных RGB картинок в 565, и реверса ресурсных файлов обратно в BMP. Если на флешку в корневой каталог положить специально подготовленный файл картинки, то она будет отображаться вместо оригинальной от MKS. Сразу видно вставлена ли флешка, да и на разные флешки можно разные картинки положить. Одна из таких картинок: https://github.com/vyacheslav-shubin/mks-robin-nano35-binary/blob/master/2020-07-07-snapshot/bmp_logo.bin

07.07.2020 в 20:38
0

Кнопка питания работает, но:

Что то пошло не так.

В меню BLtouch -вкл.  Выключаем BLtouch , выключаем питание, включаем питание, заходим в меню BLtouch опять вкл.

Уровень: 

голова посередине стола , включаем питание - инструменты - уровень - выбираем точку например 1, голова едет по Y, т.е. голова не ищет своей начальной позиции.

Сначала должна быть парковка по Х потом по Y, потом Z и только после этого на точку калибровки уровня.


А я эту картинку в папку mks_pic кидал, думал он ее только оттуда берет.

07.07.2020 в 21:14
0

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

Про парковку. Я ее специально отключил, добавив кнопку парковки, чтобы можно было ездить так, как хочется. Возможно ее надо делать в операциях определения уровня стола после включения принудительно, если она еще не делалась, чтобы не бить головой об стену по невнимательности. 

А что с выключением с ожиданием охлаждения? 

08.07.2020 в 05:43
0

-А что с выключением с ожиданием охлаждения? -

В принципе можно оставить и так по таймеру.

У меня тоже нет BlTouch и датчика обрыва филамента.

08.07.2020 в 13:35
0

BLTouch в моей версии исходников mks включает принудительно в любом случае. Это действительно не принципиально, если есть концевик по Z. Сейчас посмотрел исходники. В этом месте я делал отметку "todo: разобраться с принудительным включением" )). Вопрос был известен, но вылетел из головы из-за отсутствия самого датчика. Поправил. Пока не буду публиковать.


Про выключение питания
Выше в теме пояснили, что выключать принтер без ожидания охлаждения хотэнда, черевато возможным подплавлением пластика, например, вентилятора. Это же ожидание можно приделать и к алгоритму выключения по нажатию кнопки питания как у Вас с модулем от MKS. Жмете на выключение,  появляется  то же диалоговое окно с таймером и контролем температуры (опционально и по необходимому условию), и в процесс выключения встраивается процедура контроля температуты.... надо подумать. Тут главное не переусердствовать, а то хочешь выключить, а принтер тебе гордо: "А вот пока не хочу!"

08.07.2020 в 16:44
0

В вашей прошивке есть выбор выключения А (авто) М (Мануал). 

При выборе А:  - пусть выключается при достижении t° 70-100° как хотите.

При выборе А: - при нажатии кнопки Power - появится выбор: при достижении t° или через какое то время.

При выборе М - при нажатии кнопки Power выключение сразу.

Это как вариант, на Ваше усмотрение, мое дело предложить.

08.07.2020 в 16:56
0

Да, отличная идея. Я бы только не стал разделять время и температуру. Если за отведенное время хотэнд не остыл - ждем хотэнд.

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

08.07.2020 в 18:21
0

Ну путем долгих и упорных экспериментов , можно придти к нужному результату, было бы желание. Давайте пробовать.

09.07.2020 в 12:56
0

https://github.com/vyacheslav-shubin/mks-robin-nano35-binary/tree/master/2020-07-09-snapshot

  • Поправил отключение BlTouch в конфигурации
  • Появился виджет управления алгоритмом выключения питания
  • Процедура выключения питания опционально может ожидать охлаждения хотэнда (сейчас это 80 градусов)
  • Аппаратныя кнопка работает так же как и программная из основного виджета, но таймаут у нее 3 секунды, т.е. выключение будет поставлено на паузу, если хотэнд горячий (опционально)

Картинки не менялись, можно не обновлять.

09.07.2020 в 14:39
0

С кнопками и с выключением все отлично.

Остались проблемы с уровнем после включения.

И еще сегодня заметил, название модели на кирилице - абракадабра. Может папку фонт надо подкинуть? 

09.07.2020 в 14:44
0

Фонты там есть, просто я выключил уникод. Не обращал на это внимания никогда, так как использую латинские символы. Гляну, конечно. У китайцев там было шаманство  со шрифтами...

09.07.2020 в 19:41
0

Доброго всем дня, имею MKS Robin Nano 35, прошивка 2.0.3, короче говоря картина такая....

Печатаю модель и уменя плывут с каждым слоем со смещением примерно на 0.01 мм, думал сначала на ось z что она не саосна так как 2 движка на оси и не за синхронизированы либо ещё что но нет!!!

В куре уже устанавливал малую скорость и толку нет....

В итоге обнаружил что при скорости 100% той что в меню на экране слои X Y смещаются  с каждым слоем дальше от дома, далее попробовал установить скорость выше 100 и о фак, слои начинают ехать в обратную сторону ближе к дому и получается лесенка то в одну то в другую сторону...

Я сначала подумал но драйверы и максимальное дробления шагов выставлены джамперами на плате но испытав разные варианты убедился что это не особо влияет!!!

Передача у меня швп не на ремнях, мощи движков хватает но рукой сложновато удержать...

Короче смещение слоёв зависит от скорости и оно плывёт не так как как будто движки пропускают шаги а как будто уто в прошивке умышлено задумано со злым умыслом, уже столько пластика перевел....

Подскажите как решить вопрос, куда копать и что править?  Кура 100% не виновна в этом,  первый слой идеален во всём второй уже идёт со смещением и т.д!

Если имеете возможность дайте пожалуйста ссылку на Марлин и как его подробно установить и запустить это всё дело на этой плате если конечно нет готового решения с моей проблемой.

За ранее очень благодарен за любую помощь.

Если есть стабильная рабочая прошивка для платы MKS Robin Nano35 v1.2 дайте пожалуйста ссылку на неё или альтернативу.

09.07.2020 в 20:03
0

Если есть стабильная рабочая прошивка для платы MKS Robin Nano35 v1.2 дайте пожалуйста ссылку на неё или альтернативу.
У меня такая же плата. На прошивке, о которой тут идет речь ничего подобного не наблюдалось. Марлин 1.какой то. Алгоритмы управления движками без изменений. Попробуйте.

09.07.2020 в 21:21
0

 Марлин 1.какой то.

Я не совсем понял о каком  Марлин 1. вы пишите, дайте ссылку на прошивку вашей версии пожалуйста.

09.07.2020 в 21:44
0

https://www.github.com/vyacheslav-shubin/mks-robin-nano35-binary/tree/master/2020-07-09-snapshot

Буквально перед первым Вашим сообщением. 

09.07.2020 в 21:54
0

Спасибо, обычно эти файлы идут в оной папки и скачиваються одним архивом, если я правильно понимаю нужно их все скачать разархивировать и кинуть на карту для прошивки платы всё верно?

09.07.2020 в 22:01

Комментарий удалён

09.07.2020 в 22:02
0

Не один из архивов не открыть не извлечь.

09.07.2020 в 22:14
0

Скачал, проверил, получил содержимое. Что - то у Вас в момент загрузки произошло. Попробуйте снова скачать. Прошить Вам надо собственно прошивку и картинки. Шрифты не надо. Об остальном писал и обсуждали выше. Конфигурационный файл свой надо будет дополнить. 

09.07.2020 в 22:24
0

Да вы правы, это браузер блокировал файлы по безопасности, всё открывается!

Спасибо!

09.07.2020 в 22:19
0

Ок, спасибо, сейчас повторно попробую...

13.07.2020 в 19:23
0

https://3dtoday.ru/blogs/vyacheslavss/mks-wifi-dlya-skrudzha

В прошивке добавлена возможность клонирования модулей WiFi + альтернативная прошивка модуля (подробнее MKS WiFi для Скруджа )


Убрал отдельный пункт "Продолжить печать" из разделов инструментов. Вместо него теперь управление вентиляторами.

"Продолжить печать"  перенес в виджет предварительного просмотра печатаемого фала, там появилась опция "Продолжить". Соответственно ее надо включить.

Честно говоря, я не понимаю необходимость этого функионала, но он был в оригинальной прошивке. Суть его в том, что принтер продолжает перчать выбранного файла с стекущей высоты Z, а все что ниже он пропустит вхолостую. Может кто пользуется? Расскажите, пожалуйста, когда и для чего это нужно?

14.07.2020 в 09:13
0

Доброго времени. Прошил принтер Sapphire Pro (плата MKS Robin Nano v1.2) прошивкой 2020-07-09-snapshot, после чего все перемещения головы происходят очень медленно. Пробовал менять скорости в настройках, ничего не меняется. Ссылка на видео и фото настроек - https://yadi.sk/d/lrycQDAtFZaadQ. Слышно урчание шаговиков и валы вращаются очень и очень медленно. Как это можно исправить или что я сделал не так???

14.07.2020 в 09:33
0

Почитайте чуть выше. Нужен конфигурационный файл от второй версии. 

14.07.2020 в 09:33

Комментарий удалён

14.07.2020 в 09:33

Комментарий удалён

14.07.2020 в 09:32
0

У Вас, навернре, была прошивка еще первой версии. Так же бы произошло, если бы Вы прошили вторую версию  оригинальной прошивки. Нужно полный конфигурационный файл от второй версии подправленный под ваш принтер. Я об этом писал. 

14.07.2020 в 20:41
0

Все получилось, спасибо еще раз. Как Вы и сказали взял конфиг от второй версии, подправил под свой принтер, залил. Голова бегает как надо.

14.07.2020 в 09:48
0

Я понял, спасибо за ответ. Вечером дома буду пробовать.

14.07.2020 в 10:54
0

А исходники вашей прошивки доступны?

Вы переделывали код от MKS который под IAR был, со старым марлином 1.* ?

У них там выложен проект на свежем 2.0.5.3. Но код такой же ужасный. Они использовали LVGL 6, но не из официального репозитория, а зачем-то изменили ее и добавили в проект platfotmio ссылку на уже на свою версию, со своего github. 

Я понемногу делаю графический интерфейс к марлину на lvgl 7, но процесс пока далек от финала :)


Исправлено: исходники нашел.

14.07.2020 в 11:12
0

Да, именно. Эти исходники и были. Они действительно ужасны. Я не знаю, что надо выкурить, чтобы так писать. Копипаст на копипасте. То, что они портировали в Marlin 2 не лучше. Они просто заменили одну графическую библиотеку на другую, но как писали так и пишут. Все что у них было связано с GUI я выкинул. Рефакторинг такого кода накладывает определенную последовательность разработки. Сейчас у меня еще остались незначительные прослойки, но и их убираю. GUI сделан в стиле ООП. Посмотрите у меня на github

27.07.2020 в 12:24
0

https://github.com/vyacheslav-shubin/mks-robin-nano35-binary/tree/master/2020-07-27-snapshot

Если парковка не была произведена  она будет выполняться автоматически:

  • по всем осям при настройке уровня стола.
  • по осям X, Y при парковке в точку смены инструмента (пластика)

Z safe homing - вынесено в виджет конфигурации (парковка по z в цетре стола)

Не отображались имена каталогов (предыдущая версия прошивки) - исправлено.


27.07.2020 в 14:43
0

Спасибо!

по осям X, Y при парковке в точку смены инструмента (пластика)

То есть, при нажатии кнопки "пауза" он сначала запаркуется в левом дальнем углу и только потом поедет в левый ближний?

28.07.2020 в 21:24
0

Нет, не так. Если вы нажимаете на паузу во время печати, home уже был выполнен, и голова едет сразу в ближний левый угол (конфигурируется). Это код я не менял. Он как в оригинальной прошивке. Я лишь вынес в настройку координаты. 

Если вы только включили принтер и нажимаете на HomeT (tool change меется ввиду), то сначала делается парковка x y, потом переход в координаты из конфигурации. 

Если вы только включили принтер и делаете автоуровень, то перед первой точкой сначала будет выполнен home

Если вы сделали home вручную после включения принтера, то все операции идут без предварительной парковки

28.07.2020 в 21:45
0

Спасибо за разъяснения, теперь логика понятна. 

И еще раз спасибо за труды - прошивка была приличной такой головной болью, от которой вы многих из нас избавили. 

28.07.2020 в 21:50
0

Вам спасибо за фитбэк. Одному все не протестируешь. 

27.07.2020 в 22:09
0

Вспомнил еще одно: проблема с русской кодировкой в именах файлов

28.07.2020 в 21:25
0

Да, это так. Там весь код мой, поддержку уникода в именах оставил на потом, но в планах. 

28.07.2020 в 15:13
0

Добрый день!

Я правильно понимаю, что для принтера Creativity ELF Ваша прошивка тоже подойдет?

28.07.2020 в 21:13
0

Если там стоит плата mks robin nano, то да, подойдет. Учтите только, что тестирую я на механикн core xy. В любом случае, алгоритмы управления двигателями я не трогал, только пользовательский интерфейс. Все управление там на основе Марлин 1

28.07.2020 в 21:48
0

Да, там он тоже corexy и плата такая же. По слухам, принтер сделан ушедшим из ТТ разработчиком Сапфира и именно он должен был стать Сапфиром Про. 

28.07.2020 в 21:56
0

они только драйверами отличаются по железу вроде

29.07.2020 в 19:59
0

Здравствуйте! Попробовал поставить Вашу прошивку (.bin) на свой Flying Bear Ghost 4S. Очень понравилась эргономика меню и функционал. Отличная работа! Спасибо за труд!  Но решению окончательно отказаться от стоковой прошивки мешают два нюанса: 

Первое и самое важное:  не заводится Wi-Fi. При входе в меню висит на "Поиск сетей" и всё. Пробовал разные варианты прошивки модуля как со стоковой, так и с Вашими вариантами. Результат неизменный. Ждал до получаса. Помогите, пожалуйста разобраться.

Второе:  В оригинальной прошивке и конструктивно охлаждение хотенда организовано подключением вентилятора через разъём нагревателя второго сопла. Включается при достижении температуры на основном  80-ти градусов. Очень удобная штука. Заставляет абсолютно молчать принтер в простое. Пытался сам поковыряться в Марлине, но знаний явно не хватает. Можно ли повторить это?

И лично моё субъективное мнение... Как по мне, кнопка выбора типа пластика была бы информативнее, если бы показывала не следующий, а текущий тип пластика и установки температур. Тогда при беглом взгляде на экран можно сразу оценивать правильность настроек.

30.07.2020 в 21:35
0

Если прошивка модуля wifi оригинальная, вполне возможно, что включена она в режиме точки доступа. Тогда найдите и подключитесь к wifi ESP....чего то там. Затем в адресной строке браузера введите 192.168.4.1. Откроется страница настроек. 

Если прошивка моя, то подробно, что происходит можно посмотреть, подключив терминал к usb. Но вообще, странно. Список сетей отрабатывал всегда. Долго, но отрабатывала связка моей прошивки материнской платы и оригинальной wifi в режиме точки доступа. У себя я пользуюсь связкой своих прошивок. И модуль самодельный. Вы сможете посмотреть вывод отладочной информации через usb? 

Про кнопку нагрева. Вы правы, есть небольшая коллизия вида и состояния. Но, если сделать так, как Вы говорите, как переключать режимы? Текущий видно на целевых цифрах пиктограмм стола и хотэнда. Кнопка предлагает включить тот, который она отображает. Или потребуется сделать 3 кнопки взаимовыключающие друг друга. 

Про режим вентилятора. Интересная идея. 

Я так понимаю, у Вас была какая-то кастомная прошивка от производителя принтера? Такого режима в прошивеке от mks я не видел. Или плохо смотрел? Можно сделать опцию: включать второй хотэнд, если у первого температура больше 80. Сложным пока не видится. Завтра по исходникам посмотрю подробнее. 

31.07.2020 в 21:37
0

Про кнопку нагрева. Пиктограмма выглядит в виде "колёсика", соответственно понятно, что это "переключатель". Не нужно делать три кнопки. Просто тапом выбираешь пока не засветится нужный тип. Лично для меня это было бы удобнее и нагляднее.

По термоконтролю. Это в родной прошивке на FBG-4S.  Тут.  Покопался в  Марлине. Я думаю, организовать это можно через #define AUTO_POWER_E_FANS и  #define AUTO_POWER_E_TEMP.  Плюс переназначение пинов платы. Попробовать смогу в воскресенье.

31.07.2020 в 23:54
0

Переключатель температур пластиков придется снабдить еще одним состоянием: “не выбран“. Тогда да, как раз и исчезнет неопределенность. Если время будет, дорисую в понедельник.

Определения в define не в концепте прошивки,где настройки вынесены в интерфейс пользователя и уж тем более переопределение пинов. Это уже форк.

Я думаю,что надо сделать так:

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

01.08.2020 в 13:43
0

Отличное решение! Ещё было бы не плохо иметь возможность пользовательской корректировки предустановленных температур для этих типов пластика. Или я чего-то не увидел? В кастомной прошивке FBG-4S это есть, но после выключения они опять сбрасываются на дефолтные.

01.08.2020 в 15:05
0

Нет,этих настроек не сделано. Память под конфигурацию распределять надо аккуратно. Оставил на потом. Точно так же нет настройки выключения питания по остыванию хотэнда.

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

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

Теория вычисления стоимости изделия 3D печати

Всякие полезности

Первые впечатления об eSUN Hard-Tough Resin.

Радиоуправляемая авиамодель распечатанная на 3Д принтере

Лишние поддержки в фотон с

О программном выборе режима StealthChop/SpreadCicle у драйверов TMC (по UART/SPI) в Marlin