Собираем Marlin 2.0 для MKS sBase v1.3

Добавлено в закладки: 7

2 года занимаюсь разработкой 3D принтеров. На сегодняшний день имеются в наличии два действующих принтера собственной разработки. За 2 года были неоднократные модернизации, переделки обоих принтеров. Как результат собраны две наиболее удачные конструкции, доведенные почти до идеала. На первом принтере установлена 32 битная материнская плата MKS sBase v1.3 с MKS TFT32 с контроллером LPC1768, на втором принтере установлена 8 битная материнская плата MKS Gen L v1.0 с контроллером мега 2560.

В определенный момент, устав от недостатков прошивки Smoothie, решил поменять на MKS sBase v1.3 прошивку на Marlin 2.0, скомпилированную под процессор LPC1768. На форуме пользователь под ником Lenivo выкладывал видео о сборке прошивки, впрочем это видео не секрет, вот ссылка на него https://www.youtube.com/watch?v=gMPdsBumWCQ.

Сразу предупреждаю, все что здесь описано, вы делаете на свой страх и риск. Хотя вероятность повреждения платы или загрузчика крайне мала, но она есть. При загрузке прошивки в плату ни в коем случае не отключайте питание, не вынимайте карту из слота…

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

Первое что нужно сделать это установить среду разработки platformio. Проходим по ссылке https://platformio.org/ и жмем кнопку

За ней следующую

Особых премудростей здесь нет, обычный инсталлятор для windows. После установки открываем Visual Studio Code, он может попросить обновить некоторые модули, надо согласиться. В моем случае это был С/С++. Далее

Жмем кнопку 1, в строке поиска 2 вводим platformio, в результатах поиска 3 выбираем Platformio IDE и жмем кнопку install в области 4. Т.к. у меня она уже установлена, кнопки нет.

Все, теперь можно переходить к настройке компиляции и прошивки.

Перед тем, как начинать настраивать, необходимо скачать исходники прошивки, для этого переходим по ссылке http://marlinfw.org/meta/download/ и скачиваем архив

Распаковываем архив, желательно чтобы в пути до распакованной папки не было кириллицы. Теперь в проводнике windows идем сюда

\Marlin-bugfix-2.0.x\config\examples\Mks\Sbase

и копируем файлы Configuration.h и Configuration_adv.h с заменой сюда

\Marlin-bugfix-2.0.x\Marlin

(либо другим удобным способом копируем эти файлы с заменой).

Теперь добавляем всю папку в среду разработки. Для этого открываем (если Visual Studio Code не запущена, то запускаем) через меню File->Open folder появится окно, как на скриншоте, выбираем только что распакованную папку, там, где выделено красным должно быть название открываемой папки… и жмем «Выбор папки»

И должны получить это

Здесь уже открыта папка с исходниками, теперь кликаем на файл platformio.ini, он откроется в окне справа и там ищем и правим строку…

Все, здесь больше ничего не трогаем. Сохраняем через File->Save и можно закрыть файл. Далее кликаем на configuration.h и проверяем, правильно ли установлена материнская плата

Также, если вам необходимо задействовать последовательный порт, выведенный на разъем AUX-1, например для подключения дисплея MKS TFT, то здесь же снимаем комментарий со строки

#define SERIAL_PORT_2   0

если этого не сделать, MKS TFT не заработает. Если у вас другой экран, то эту строку комментируем, а настраиваем дисплей как обычно.

Осталось только настроить токи для драйверов, делается это здесь

Токи по дефолту настроены на 1.2 ампера. Если устраивает, то можно не трогать.

Теперь основные настройки, касающиеся именно платы MKS sBase, рассмотрены, остальные настройки вполне стандартные для marlin, к тому же для разных принтеров они будут различными, поэтому рассматривать я их не буду, настройка ничем не отличается от настройки для 8 битных плат в Arduino IDE.  Да и рассмотрены они уже неоднократно, к тому же к теме данной статьи они не относятся.

Обращаю внимание, не стоит уже настроенные файлы конфигурации из более старых версий копировать сюда, работать они может быть и будут, не пробовал, но в marlin 2.0 появились новые настройки, которых вы можете лишиться скопировав файлы из 1.1.х.

Теперь, когда прошивка настроена под MKS sBase, а также под конкретный экземпляр принтера, ее нужно собрать, для этого жмем на кнопку

И ждем пока прошивка скомпилируется. Должны получить вот это

Если выделенные строки совпадают, значит, прошивка удачно скомпилировалась именно под LPC1768. На вкладку PROBLEMS в этом случае внимание можно не обращать, у меня там варнинги о том, что переменная определена, но не используется. В этом нет ничего страшного, и является прямым следствием того, что прошивка написана не конкретно под одну плату, а сразу под набор разных плат и процессоров, а возможно и ошибки программистов, которые просто забыли убрать ставшую ненужной переменную…

Осталось только залить саму прошивку в плату, прошивка после компиляции будет здесь

\Marlin-bugfix-2.0.x\.pioenvs\LPC1768

Как обычно кидаем файл на флешку, вставляем на плату и перезагружаем. После прошивки можно подключить плату по USB к компьютеру. Кому то это нужно, кому то нет, но при подключении в диспетчере устройств определяется USB устройство Marlin USB Device, драйвера для данного устройства не устанавливаются автоматически. К сожалению я нигде не нашел, даже в официальной документации Marlin, где этот драйвер найти. Возникла проблема, но после поисков по исходникам драйвер нашелся, лежал у меня прямо под носом здесь

\Marlin-bugfix-2.0.x\Marlin\src\HAL\HAL_LPC1768\win_usb_driver

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

В принципе все. По результатам тестовой печати я был сильно, очень сильно разочарован в прошивке Marlin. Если сравнить качество печати с родной прошивкой смузи, то не идет вообще ни в какое сравнение.

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

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

Надеюсь статья была полезной.

 

25

Метки: , , ,    2019-04-17      Раздел: Настройка, Прошивка  
Автор: Просмотров: 6 474   37 комментариев



37 комментариев на «Собираем Marlin 2.0 для MKS sBase v1.3»

  1. Афтар, убейся ап стену, да ]:->

    0
  2. а еще говорят klipper геморройно ставить :D

    0
    1. Так перед тем как ставить клиппер, надо приобрести малину/апельсину, на нее накатить линукс и настроить его, octoprint и настроить, и только потом клиппер. У бывалых это займет полчаса, у начинающего может и неделю и месяц занять. Я когда решил перейти на окту, неделю проковырялся с линуксом и октой. :D

      0
      1. ну klippery особо и не нужен octoprint… он будет работать и с repetier server (ставится куда проще). правда с наскока у меня не получилось их подружить, repetier отказывался подключать klipper.
        я использую klipper с обычным PC(debian). в гугле вторая ссылка на видео по полной установки octoprint и klippera. ставится минут 15 (без учета установки linux) путем копирования строк в консоль)

        0
  3. так же марлин 2 поставил только на SKR. Тоже полосатость кубика. ХЗ может и прям прошивка …

    0
    1. На SKR тоже ведь LPC1768 вроде? Возможно мы что то в настройках не учли? А возможно действительно прошивка еще сырая, не даром bugfix ом называется :D . Надеюсь пофиксят в ближайшее время.

      0
    2. Нашел на гитхабе. Это официально признанный баг прошивки для 32 битных плат. Если установлены относительно медленные драйвера типа DRV8825 или другие, которым длительность сигнала “STEP” необходима более 2 мкс, вероятнее всего будет проявляться этот баг. Это нестабильная работа драйвера. Марлин выдает сильно заниженные длительности импульсов STEP, отсюда и баг. На гитхабе до сих пор предлагают вбивать костыль. Нужно расскоментировать строку #define MINIMUM_STEPPER_PULSE и выставить вместо дефолтной двойки, цифру от 3 до 6, это увеличит длительность импульса и на определенных значениях принтер будет работать уже стабильно. Я выставил 4, скорее всего придется еще увеличить до 5. Но теперь принтер работает более менее стабильно.

      0
  4. Кстати, поглядел ценники на SKR. Да она стоит на 200 рублей дороже даже 8 битных плат MKS Gen L и рампса! Вопрос, на кой фиг я брал MKS sBase и MKS Gen L??? Получается SKR v1.3 рулит. А SKR v1.1 вообще стоит как комплект ардуины и рампс. Т.е. фактически получаем 32 бита по цене ардуино+рампс.

    0
  5. Привет сделал все как показали но выдает ошибку при компиляции.в чем может быть проблема

    0
    1. Ничего не видно, скопируйте то, что написано во вкладке PROBLEMS

      0
  6. Подскажи пожалуйста как теперь открыть новый проэкт или папку как правелно сказать.Ну удалить из Platformio IDE убрать marlin.я пытаюсь открыть по новой марлин а он мне открывает тот который уже открыт в Platformio IDE.

    0
  7. Я понять не могу что я сделал но ошибка пропала и горит зеленым

    0
  8. Короче бред полный прошивки на том месте где вы указали нет

    0
  9. СДЕЛАЛ ПО НОВОМУ НО ВСЕ РАВНО ВЫДАЕТ ОШИБКУ.

    0
    1. Проблема в том, что не определены пины для платы, что указана Configuration.h. Это пины нагревателя 0, STEP и ENABLE пин на драйвер экструдера 0. Т.е. скорее всего просто надо правильно указать плату. Что за плата, может у нее реально нет этих пинов?

      1
  10. Строка в Configuration.h так прописана
    #ifndef MOTHERBOARD
    #define MOTHERBOARD BOARD_BIGTREE_SKR_V1_3
    #endif

    Если так, скиньте файлы
    Configuration.h
    Configuration_adv.h
    platformio.ini

    1
    1. Спасибо тебе добрый человек.Я смотрел видео одного мастера ломастера там эта плата прописывалась по другому.А у тебя все правельно и понятно. *YAHOO* *YAHOO* *YAHOO*

      0
      1. Раз так, не забываем ставить лайк :D .

        0
    2. Подскажи пожалуйста как теперь залить в плату через юзб.или она только через флешку прошивается.Папку LPC1768 Всю на флешку кидать или только firmware.bin

      0
      1. Через USB залить можно, но это на порядок сложнее чем через флэшку. В корень флэшки надо кинуть firmware.bin и все. Дальше отключаем питание, вставляем в плату флэху и включаем. Ждем секунд 30, это с охрененным запасом, чтобы прошилась и можно пробовать.

        1
        1. Прости меня недоразвитого. В корень флешки?Там у меня на флешки которая шла с платой есть какой то файл но я не знаю чем его открыть и вобще нужен ли он?Просто взять файл firmware.bin закинуть на флешку.На плате перекинуть перемычку с +5v USB на INT+5v.И подключаю 12v.При прошивке должны мигать светодиоды или все происходит тихо.

          0
          1. Просто открываешь флэшку, никаких папок не создаем, просто кидаем файл туда, это называется корень.
            На флэхе наверное у тебя лежит firmware.cur, это прошивка с завода, при желании можешь ее сохранить, если поменять cur на bin можно ее снова прошить в плату будет. После прошивки на флешке в любом случае останется только файл firmware.cur. Его при желании можно удалить, а можно оставить, без разницы.

            1
    1. После испытания марлина на принтере поделишься фото получившихся отпечатков? У меня как то очень не хорошо получилось по сравнению со смузи.

      0
  11. У меня еще одна проблема.Плата SKR V1.3 экран MKS TFT24.Все включается экран работает но через экран не выполняется не одна команда.Пробывал перемещение осей управляя через экран но принтер не как не реагирует совсем не как.Хотя через программу pronterface передвижение по осям работает без проблем.И еще при подключения разъема термистора BED стола к плате gринтер перестает соеденятся с компьютером.При отключении этого разъема все соеденяется без проблем.Пробывал менять разъемы вместо термистора стола подключил термистор экструдера все в порядке но если подключаю оба термистора то не соеденяется в программе Pronterface.Может встречались с этой проблемой?

    0
  12. Необходимо раскоментировать строку в configuration.h
    #define SERIAL_PORT_2 0
    Этот момент есть в статье, вот скрин из статьи
    https://3deshnik.ru/wp-content/uploads/2019/04/image-8.png
    По поводу не соединения с компьютером честно говоря не встречался. Возможно термистор не того типа или не исправен. Сколько у него сопротивление? При комнатной температуре должно быть порядка 80-100 килоом.

    1
    1. строка в configuration.h
      #define SERIAL_PORT_2 0 раскоментирована.Но все равно спасибо.

      0
      1. #define SERIAL_PORT_2 0
        Здесь должен быть указан именно 0
        Обрати внимание, там еще есть очень похожая строка
        #define SERIAL_PORT -1
        Не перепутал ли с ней?
        У меня MKS TFT32 при подключении к AUX1 отлично работал как только раскоментировал.
        А так могу только посоветовать проверить настройки MKS TFT24, у него свой конфиг, в том числе настраивается и скорость порта(скорость должна совпадать с тем, что прописано в марлине, иначе работать не будет), и тип прошивки… Ну и само собой проверить правильность и целостность шлейфа от TFT до SKR.

        1
          1. Тогда либо настройки TFT неверны, либо шлейф неисправный.

            1
  13. Подскажи какие строки отвечают за установку магнитного автоуровня.У меня по моему прописано на Zmin автоуровень.А где это не могу найти.

    0
    1. В configuration.h ищи строку
      Z Probe Options
      Просто прошерсти поиском, у меня это 763 строка и ниже все настройки.
      Не знаю что ты имеешь ввиду под магнитный, толи индуктивный толи BLTOUCH. Для первого без разницы, он как обычный концевик настраивается, для второго есть отдельные настройки. Честно говоря у меня нет автоуровня, поэтому сильно не вникал.

      1
      1. Да ты прав индуктивный.Я так понимаю если стоит авто уровень, то на ось Z не нужен концевик.

        0
        1. Я никогда не настраивал автоуровень, но насколько я понимаю если стоит индуктивный датчик на Z-, то да, концевик уже не нужен, но автоуровень должен быть включен. Тогда датчик автоуровня уже будет работать как концевик Z- но по нескольким точкам на самом столе. Но честно говоря лично я особого смысла в автоуровне не вижу, лично у меня оба принтера один раз выровнял стол, подогнал его уровень и хватает очень на долго. Все это вручную проделать не так уж и долго при определенной сноровке, да и хватает тоже на долго.

          0

Добавить комментарий




     
Авторизация
*
*
Генерация пароля
Яндекс.Метрика