Перейти к содержанию
    

Firmware платы управления 3D-принтером

Интересно: кто-нибудь разбирался/модифицировал прошивку своего принтера?

Особенно интересна эта плата:  https://github.com/makerbase-mks/MKS-Robin-Nano-V2.X/wiki/Wiring_Pinout_and_Size

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

19 часов назад, jcxz сказал:

Интересно: кто-нибудь разбирался/модифицировал прошивку своего принтера?

Особенно интересна эта плата:  https://github.com/makerbase-mks/MKS-Robin-Nano-V2.X/wiki/Wiring_Pinout_and_Size

Я разбиралась и модифицировала под свои цели плату "MKS Gen V1.4". Купила 2 штуки с рук за полцены на Авито. Это, я полагая, одна из самых крупных плат такого рода, разве что за исключением платы  "MKS Monster8", чьё название говорит само за себя. :). А нынче ассортимент крупных плат (а стало быть, и удобных!) из продажи вымыли карлики, да еще и с гордостью носящих приставку "нано". Как будто такую плату я с собой в кармане буду носить.

Лично мне плата была нужна не для 3D-принтера, а для пары шаговых двигателей, весом где-то по 20 кг каждый :). Причем именно такие управляющие платы для китайских 3D-принтером оказались самым дешевым из таких решений.

К сожалению, мой опыт модификации мало чем вам может пригодиться - другая задача. А модифицировать мне пришлось "врожденные" ограничения 3D-принтера длиной его штанг и направляющих. И хотя системой G-кодов плату можно перевести в относительную шкалу (не координату задаем, а смещение от текущего положения), прошивка на плате такова, что дальше виртуального края "рельса"движки крутиться не хотят, и командами это ограничение отменить невозможно.

Так что если вам тоже  плата под 3D-принтер нужна, то идите на сайт https://marlinfw.org/ . Там сорцы программ под эти платы раздают, где внутри полно комментариев. Вполне можно сообразить, в каком месте там ковырять. Например, я добавила к уже существующей прошивке свои коды, назвав их "P-кодами" (там уже ранее были G- и M-коды). А если не так, то смело стирайте их дурную прошивку и пишите свою заново :).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

16 часов назад, Xenia сказал:

Так что если вам тоже  плата под 3D-принтер нужна

Мне нужна корректная прошивка для моего 3D-принтера, в котором стоит указанная плата. Производитель даёт ссылку на исходники: https://github.com/makerbase-mks/MKS-Robin-Nano-Firmware

как исходники прошивки своей платы. Я их скачал, глянул..... :shok: волосы встали дыбом!!! Цензурно описать их невозможно. Такое ощущение, что писали школьники, к тому же обкуренные. Полный бардак в исходниках. Быдлокод и ардуинщина в своей самой худшей форме. При компиляции IAR выдаёт больше 3 тысяч варнингов!

Понятно, что и прошивка глючит во многих местах (почему я и полез за исходниками).

Вот теперь думаю - пытаться эту исправить или искать может более свежую, надеясь что хоть часть багов поправили?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я вы не рассматриваете проект Marlin для своего принтера?

Под вашу плату вроде есть https://github.com/makerbase-mks/Mks-Robin-Nano-Marlin2.0-Firmware.

Я модифицировал Marlin для creality вполне не плохо сделано. Правда из-за мультиплатформенной поддержки HAL уровень написан с извращениями. 

Изменено пользователем Sverchok

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 минут назад, Sverchok сказал:

Я вы не рассматриваете проект Marlin для своего принтера?

Я так понял - те исходники, которые я смотрел, они тоже - Marlin. По крайней мере там есть такая папка с файлами. Или я не прав?

15 минут назад, Sverchok сказал:

Под вашу плату вроде есть https://github.com/makerbase-mks/Mks-Robin-Nano-Marlin2.0-Firmware.

Да, эти тоже я находил. Только они собираются не IAR-ом как я понял. И к тому же - под множество плат могут собираться. Надо разбираться как собирать и настраивать сборку под свою плату. И можно ли их собрать IAR?

15 минут назад, Sverchok сказал:

Я модифицировал Marlin для creality вполне не плохо сделано. Правда из-за мультиплатформенной поддержки HAL уровень написан с извращениями. 

Чем собирали?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 минуты назад, jcxz сказал:

Я так понял - те исходники, которые я смотрел, они тоже - Marlin. По крайней мере там есть такая папка с файлами. Или я не прав?

https://github.com/makerbase-mks/MKS-Robin-Nano-Firmware . Да какая-то папка marlin есть, но как будто это только малая его часть. В первоисточнике исходных файлов гораздо больше. 

Может не совсем удачная попытка адаптации. Если вас интересуют исходники самого Marlin, то они вот тут https://github.com/makerbase-mks/Mks-Robin-Nano-Marlin2.0-Firmware/tree/master/Marlin/src

4 минуты назад, jcxz сказал:

И можно ли их собрать IAR?

Нет под IAR я не видел инструкции. Для сборки нужен будет VS Code + Platform IO. Вот тут подробно расписано https://marlinfw.org/docs/basics/install_platformio_vscode.html, как настроить сборку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 минуты назад, Sverchok сказал:

Нет под IAR я не видел инструкции. Для сборки нужен будет VS Code + Platform IO. Вот тут подробно расписано https://marlinfw.org/docs/basics/install_platformio_vscode.html, как настроить сборку.

А как у вас в целом впечатления от качества исходников и в целом работы прошивки? Вы собирали: https://github.com/makerbase-mks/Mks-Robin-Nano-Marlin2.0-Firmware  ?

Просто я только начал печатать на нём, напечатал всего штуки 4 изделия. И уже за это время напоролся на несколько багов: то печать не запускается, тупо стоит и несколько минут ждёт непонятно чего (при уже установленных температурам сопла и кровати), пока не выключишь/включишь питание; то настройки (некоторые) вдруг слетают, не все, а именно некоторые вдруг меняют свои значения ни с того ни с сего; то принтер перестаёт обращать внимание на концевик и начинает биться о конец вала (хотя концевик сработал - видно по светодиоду на нём) - опять нужно перегружать; ну и множество других - всех даже не упомню... :sad:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

26 минут назад, jcxz сказал:

Нет у меня принтер creality ender 3 s1. Пробовал вот эту прошивку https://github.com/mriscoc/Ender3V2S1 основана на Marlin, работает как часы. Работал с родной прошивкой, если не ошибаюсь основана на klipper, тоже нареканий нет.

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

Изменено пользователем Sverchok

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 25.10.2022 в 13:37, jcxz сказал:

Мне нужна корректная прошивка для моего 3D-принтера, в котором стоит указанная плата. Производитель даёт ссылку на исходники: https://github.com/makerbase-mks/MKS-Robin-Nano-Firmware

как исходники прошивки своей платы. Я их скачал, глянул..... :shok: волосы встали дыбом!!! Цензурно описать их невозможно. Такое ощущение, что писали школьники, к тому же обкуренные. Полный бардак в исходниках. Быдлокод и ардуинщина в своей самой худшей форме. При компиляции IAR выдаёт больше 3 тысяч варнингов!

Понятно, что и прошивка глючит во многих местах (почему я и полез за исходниками).

Вот теперь думаю - пытаться эту исправить или искать может более свежую, надеясь что хоть часть багов поправили?

Самой корректной прошивкой для ВАШЕГО 3D-принтера может быть только ... фабричная 🙂, поскольку на заводе хоть кто-то этим принтером занимался. В других местах, где производятся 3D-принтеры других типов (но на той же плате MKS-Robin-Nano-V2), про особенности ВАШЕГО КОНКРЕТНОГО 3D-принтера не знает никто. Т.е. корректность прошивки в отношении платы и корректность ее в отношении самого принтера - в общем-то разные вещи, хотя корректность в отношении принтера подразумевает то и другое.

Причина этого в том, что количество разнообразных 3D-принтеров, если еще не 10 тысяч, то уже приближается к этой цифре. Число существующих управляющих плат доходит до 100, хотя их реальный ассортимент (т.е. то, что продается) имеет тенденцию к снижению, т.к. производить такие платы большими тиражами гораздо выгоднее, чем малыми партиями, как для производителя, так и для покупателя. Скажем, в розницу одна лишь голая микросхема atMega2560 стоит дороже, чем вся эта плата целиком.  Именно этим эти платы так меня заинтересовали - прежде всего своей дешевизной. Причем большинство из них действительно красиво сделаны. То же самое можно сказать и о выносных дисплеях, которые используют в качестве пульта управления.

А вот Марлин у нас только один для всех принтеров :). Преувеличиваю, конечно, но близко к истине, что находит себе подтверждение в том, что абсолютное большинство управляющих плат - Ардуины. А Ардуины они потому, что так написал свою прошивку Марлин :). А кто по стопам Марлина идти побрезгут, тот будет писать свою прошивку многие годы 🙂 и потратит на эти усилия половину отпущенного бюджета.

В 25.10.2022 в 13:37, jcxz сказал:

Производитель даёт ссылку на исходники: https://github.com/makerbase-mks/MKS-Robin-Nano-Firmware

как исходники прошивки своей платы. Я их скачал, глянул..... :shok: волосы встали дыбом!!! Цензурно описать их невозможно. Такое ощущение, что писали школьники, к тому же обкуренные. Полный бардак в исходниках. Быдлокод и ардуинщина в своей самой худшей форме. При компиляции IAR выдаёт больше 3 тысяч варнингов!

Понятно, что и прошивка глючит во многих местах (почему я и полез за исходниками).

У меня вот тоже от лицезрения этого кода косички дыбом встали :), то быстро разобралась что к чему. Причем не в самом коде, а почему он такой "дурной". А это не злой умысел и не халтура, а традиция у адуинщиков такая 🙂. И использовать для компиляции следует "Arduino Studio" (там компилит GCC, а не IAR). Оно, конечно, плохо, что язык C++ так сильно расползается в стандартах, но со своим уставом в чужой монастырь не ходят.

Тем не менее, дело обстоит еще хуже, и вовсе не GCC тому виной, а ... традиции ардуинщиков, который сложились еще с первой Ардуины на atMega8. А традиция эта такова, что про устройство микроконтроллера надо ... полностью забыть (!), пронумеровать его микросхему в порядке возрастания номеров только те пины, которыми МК может дрыгать (менять на них высокий потенциал  с низким, а про прочие применения начисто позабыть. Далее надо списать откуда-нибудь код, которым этими пинами дрыгают(это обычно 1-2 инструкции) и про контроллер больше вспоминать. Тогда как электронщики, с которыми я знакома, упирают в "даташито-читанизм" :). Отсюда и разный взгляд на вещи: профессиональные электронщики ковыряются внутри контроллера, а принтеро-строители мыслят в рамках логики принтера, а о контроллере вообще не думают. Т.е. для последних принтер - СЧПУ, для которого высокая тактовая частота скорее избыточна, чем необходима. А если что-то нужно специфическое, то ардуино-библиотеки для этого в самый раз.

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

Поведу итог. Ни одна прошивка Марлина к конкретному принтеру не подойдет! Проект Марлина следует рассматривать исключительно, как ЛЕГО-конструктор, требующий тщательной настройки/подгонки под конкретное железо. У меня знакомый как-то купил себе 3D-принтер, который с ходу не заработал - вот он и вздумал в него залить "самую свежую" прошивку, не потрудившись сохранить старую/фабричную. С тех пор он у него в кладовке пылится - мастеровые не смогли его реанимировать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

22 часа назад, jcxz сказал:

Мне нужна корректная прошивка для моего 3D-принтера

Может , вам стоит попробовать Klipper ? Первым на этом форуме. 🙂

Про него прочитаете сами. Его достоинства для вас:

1 Простая прошивка для самого принтера. ( проще разобраться , если понадобится)

2 Общее ПО для всех (а значит протестировано многочисленными пользователями)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 часов назад, muravei сказал:

Может , вам стоит попробовать Klipper ? Первым на этом форуме. 🙂

Если подскажете ссылку, то может и попробую.

В 25.10.2022 в 14:32, Sverchok сказал:

Для сборки нужен будет VS Code + Platform IO. Вот тут подробно расписано https://marlinfw.org/docs/basics/install_platformio_vscode.html, как настроить сборку.

Хотел попробовать, но споткнулся на 1-м же шаге: не запускается этот самый VS Code. Почему - неясно, установился нормально. Может ему win7 не нравится? Но почему только установился без вопросов?

Если проблемы начались на 1-м же шаге, то боюсь представить сколько их дальше.... :sad:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 часов назад, jcxz сказал:

не запускается этот самый VS Code.

Я собирал на ubuntu 20.04 все пошло с первого раза, как дела обстоят с windows не знаю. Я думаю, что поддержки win7 уже нет, на сайте VS code при скачивании указаны только win 8, 10, 11.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 часов назад, jcxz сказал:

Если подскажете ссылку, то может и попробую.

"Ну вы , блин, даете!" (с)

"Дело спасения утопающих ..."(с)

Вас в Гугле забанили? Я должен выложить 100500  ссылок?  Есть сайт , есть на github .  Ищите: клиппер 3д.

Вы хоть что-то смотрели? 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 часов назад, Sverchok сказал:

Я собирал на ubuntu 20.04 все пошло с первого раза, как дела обстоят с windows не знаю. Я думаю, что поддержки win7 уже нет, на сайте VS code при скачивании указаны только win 8, 10, 11.

Да, я позже нашёл более старую версию, под win7. И через пень-колоду, с 10-го раза и N-х часов мата оно как-то собралось...  :wacko2:  Прошивать то что получилось ещё не пробовал, позже наверное рискну. Но размер бинарника примерно в ~2 раза меньше, чем получающийся из исходников производителя (~220КБ vs ~484КБ).

А исходники производителя реально кривые. Даже просматривая их поверхностно, по диагонали уже нашёл несколько явных багов. Например:

void mksSwap(float *src,float *dst)
{
  float *temp;
  *temp = *src;
  *src = *dst;
  *dst = *temp;
}

И это вызывается из кода, работающего с сохранённым конфигом! :shok: Теперь понятно почему конфиг периодически слетает.

Или такое:

if ( (tmp_char >> 7-j) & 0x01 == 0x01)

Такое нашёл в нескольких местах (размножение багов посредством копи-паста :biggrin: ).

Ведь явно нужно было:

if ((tmp_char >> 7 - j & 1) == 1)

Вот и думаю - если даже глубоко не вникая, лишь поверхностно просматривая код, я уже нашёл несколько явных багов, то сколько же их там ещё???  :umnik2:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...