Jump to content

PlatformIO або як прошити Marlin 2.х в плати з 32біт контролерами.


Recommended Posts

З придбанням материнки SKR v1.1, на мікроконтролері LPC-1768, та невеликого ознайомлення із системою Smoothie – захотілося повернутися на знайомий Marlin. Під 32біт системи необхідно використовувати Marlin 2.0 (поки що складання bagfix), та й поняття прошивати контролер тепер відходить у небуття. Тепер потрібно компілювати firmware.bin та записувати цей файл на флешку. Принаймні, така процедура роботи озвученої плати. Ну і для цієї процедури потрібно використовувати PlatformIO. Власне раніше я не стикався з цим програмним середовищем – от і довелося розбиратися в особливостях та тонкощах, чим я з Вами і поділюся.

Мається на увазі наявність досвіду в установці та налаштуванні Marlin у середовищі Arduino IDE!!!

Формат посту більше схожий на покрокову інструкцію "приготування" прошивки для плати BIGTREETECH SKR V1.1 на мікроконтролері LPC-1768 з картинками:

 

  • Качаємо свіжу прошивку Marlin та розархівуємо її в корінь будь-якого диска. Якщо на хляху до прошивки будуть російські літери або сама прошивка буде на хмарному сервісі типу Google drive - можливі проблеми та помилки при компіляції!
  1. Відкриваємо PlatformIO і швидко знайомимося з вмістом сайту, для підвищення власної освіченості. Бачимо, що є два шляхи (тут згадалася байка про два шляхи )використовувати Atom або VSCode. Я вибрав перше і перейшов на сайт ATOM, де його і скачав.
  2. Запускаємо установку та чекаємо запуску програми.

1.thumb.png.cfcaa48c70d93141389752ab261a3c86.png

 

3. У вікні отримуємо набір запрошень, вітань та попереджень.

2.thumb.png.24d3fbbdccd859df7ab5b28d3b3adfaa.png

Я прибрав усе не потрібне мені.

4. Запускаємо налаштування, у вікні вибираємо пункт Install, у пошуку вбиваємо назву "platformio" і встановлюємо Platformio-IDE

3.thumb.png.8e6ea14a070b891893426cbb0349dfba.png 4.thumb.png.9ff63433c26da5b86ff3be6e3efa6c20.png 5.thumb.png.5cd55096b12a3cc753719eae3cdd0af2.png 

 

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

6.thumb.png.380489b5829cc34cbd1680d197722ce0.png 7.thumb.png.5846c482255308f6367db8279f66167e.png 

 

З'явиться вікно з командним рядком і пропозицією натиснути будь-яку клавішу - тицяємо пальцем у клаву, можна із заплющеними очима🙂 

8.thumb.png.c832ac2b0ff71e9aee0473937a4ffd44.png

 

Програму встановлюємо із запропонованими параметрами, як завжди - далі - далі - ОК. 🙂 та після успішного встановлення, Atom запропонує нам перезавантажити себе – погоджуємось.

9.thumb.png.ffb07e64efad1d1808e9c9f810c2b037.png

 

6. Відкриється домашнє вікно програмного середовища Platformio, вибираємо – відкрити проект

10.thumb.png.21747289fb188d30a210a0edfe26b7c4.png

 

Вказуємо шлях до папки з Marlin, зайві вкладки можна закривати.

11.thumb.png.32560a446177640e707f30934dc9b0d2.png 12.thumb.png.304babf8a82550223431d815d8c75a81.png

 

7. Вибираємо файл налаштувань проекту Platformio.ini, в блоці [platformio] знаходимо пункт env_default і виділяємо megaatmega2560 – встановлену назву плати мікроконтролера та починаємо писати lpc – редактор запропонує на вибір варіанти з цим поєднанням літер. Вибираємо LPC1768 та зберігаємо зміни поєднанням клавіш "Ctrl+S" або через меню "Файл"

13.thumb.png.0d40ba647009d8989a5971f94b8e40be.png 15.thumb.png.9477b920301c3fe385150a5bc6c9f04f.png

 

8.Відкриваємо файл boards.h по шляху Marlin\src\core і за допомогою поєднання клавіш "Ctrl + F" відкриваємо пошукове вікно, в ньому вводимо назву нашої плати SKR, виділяємо назву плати BOARD_BIQU_SKR_V1_1 і копіюємо назву в буфер обміну.

16.thumb.png.0e687cf82f70949b4b7366e8f5a8fb69.png

 

9. Відкриваємо конфігураційний файл Configuration.h і знаходимо рядок 135, в якому замінюємо назву материнської плати на свою, скопійовану. Також змінюємо швидкість порту відповідно до ТТХ своєї материнки. У моєму випадку 115200 та зберігаємо зміни. Якщо є не збережені дані у файлі, в кутку назви файлу буде світиться синя кулька. Після збереження він зникне.

17.thumb.png.b6bb559ff6d625e9a10c74625dbd97d2.png 18.thumb.png.a2946c8d04c0f2e90e33fbc2890d1137.png

 

10. Ось ми й дісталися пробної компіляції. На цьому пункті ми повинні протестувати компіляцію прошивки з основними налаштуваннями. Натискаємо на галочку або вибираємо в меню PlatformIO \ Build і згадуючи Масяню - "Тільки б не disconnect !!!" ©  очікуємо завершення процесу компіляції. Процес супроводжуватиметься рухом рядків із системною інформацією.

19.thumb.png.c85bf818a80f94223f114791a37135f9.png 20.thumb.png.2ee1024ebdfd52e17a150832df26262b.png

 

11. Якщо все пройшло успішно, на кілька секунд шапка термінального вікна забарвиться у зелений колір та вікно закриється. Це буде сигналом до успішного завершення пробної компіляції.

21.thumb.png.1f40baa44a6ea9b4381e65fb51062817.png

 

Якщо буде виявлена помилка – вікно терміналу залишиться активним і забарвиться у червоний колір. У ньому буде інформація про помилку.

 

12. Ну і власне, результат нашої роботи буде в папці проекту Марліна на шляху \Marlin-bugfix-2.0.x_02.07\.pioenvs\LPC1768

22.thumb.png.022719a746cfe4835bd756111ef0ed03.png

 

ЕПІЛОГ.

Ось ми разом і пройшли весь шлях встановлення, налаштування та компіляції прошивки Marlin 2.0 у програмному середовищі Platformio. Тепер можна приступати до налаштування прошивки під свій улюблений принтер, змінюючи файли Configuration.h и Configuration_adv.h

 

За цим – дозвольте відкланятися!

 

UPD. Корисна стаття з налаштуванням Атом- http://blog.harrix.org/article/6076#h2_1

 

 

  • Thanks 2
Link to post
Share on other sites

Спасибо за инструкцию! Буду ждать выхода стабильной версии марлин 2.0 и потом тоже сделаю переход. И по плате SKR спасибо, как-то я ее не замечал до этого. В работе марлин 2.0 уже был у вас?

  • Like 1
Link to post
Share on other sites

Я давно перешел на 2.0.bagfix. 😁 В нем появляются плюшки, да и разрабьі обьявили, что ветка 1.1.9 закрьіта и новьіх обновлений не будет. 

Так что можно не ждать и смело переходить на Marlin 2.

Link to post
Share on other sites
1 час назад, KomAndr сказал:

Так что можно не ждать и смело переходить на Marlin 2.

Эх... а как бы туда репитер всунуть?

Link to post
Share on other sites

@KomAndr баги какие-то вам попадались? Некоторые в сети пишут, что есть всякие зависания и ребуты у багфикс версии. Зависания могут быть опасны...

Link to post
Share on other sites

@TTND в єтом вопросе я не силен. 😁 

@Magg_ot если честно - мне они не попадались. Может я не умею бетатестить... 

Хотя нет! Я так и не освоил возобновление печати после пропадания искричества при печати с sd картьі, просто забил на єту плюшку. 😁 

Link to post
Share on other sites
  • 2 months later...

Доброго всем.. Сделал как описано, но почему то ошибка при компиляции.  Марлин качал чистый

Может подскажите что и куда?

11.jpg

Link to post
Share on other sites

п.10 - скомпилировалась прошивка или это результат первой компиляции?

Разбирать баги нужно с первой записи красным цветом. По фото вообще ничего не понятно.

Link to post
Share on other sites

это первая компиляция, по вашему описанию

 

.piolibdeps\Adafruit NeoPixel\Adafruit_NeoPixel.cpp:153:3: error: 'noInterrupts' was not declare
d in this scope
Link to post
Share on other sites
5 часов назад, kasper сказал:
Adafruit_NeoPixel.cpp:153:3: error: 'noInterrupts' was not declare
d in this scope

Открыл файл и посмотрел на 153-ю строку

// AVR MCUs -- ATmega & ATtiny (no XMEGA) 

А судя по скрину кто-то пытается скомпилить прошивку для SKR.

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

 

П.С. скачал сегодняшнюю сборку Marlin и вуаля:

image.thumb.png.e0ca063c435656c7adf94da4a5af089f.png

 

@kasper  Удали все папки проекта из Платформио. Разархивируй Marlin. В пути к марлину не должно быть кирилических символов!!! Добавь папку с нетронутым марлином в проект. Открой Platformio.ini и замени мегуотмегу на LPC1768. В конфигурационном файле измени скорость порта на 115000 и название материнской платы. 

Больше ничего не менять! Сохрани изменения в двух этих файлах и все скомпилируется.

П.С. не нужно настраивать и включать контроллер RGB подсветки. Именно за это и отвечает файл на который ругается платформио.

Link to post
Share on other sites
44 минуты назад, KomAndr сказал:

Удали все папки проекта из Платформио

удалил

44 минуты назад, KomAndr сказал:

Разархивируй Marlin. В пути к марлину не должно быть кирилических символов

разархивировал, путь кирилицы нет

 

45 минут назад, KomAndr сказал:

Добавь папку с нетронутым марлином в проект

добавил

 

46 минут назад, KomAndr сказал:

Открой Platformio.ini и замени мегуотмегу на LPC1768

сделал так

 

46 минут назад, KomAndr сказал:

В конфигурационном файле измени скорость порта на 115000 и название материнской платы. 

сделал так  115200  материнка   #define MOTHERBOARD BOARD_BIQU_SKR_V1_1

 

47 минут назад, KomAndr сказал:

Больше ничего не менять!

не менял

 

47 минут назад, KomAndr сказал:

Сохрани изменения в двух этих файлах и все скомпилируется.

сохранил... все равно ошибка(((

 

не судьба мне марлина пользовать

Link to post
Share on other sites

@kasper  что-то мне кажется - загвоздка в малом. 🙂

А Platformio и компоненты обновлены?

Link to post
Share on other sites

Проблема решилась. Снес Атом  и все что с ним связано было, поставил по новой и все скомпелировалось.  Спасибо за помощь)))

Link to post
Share on other sites
  • 3 weeks later...

Кстати, Atom же не очень рекомендуется(или не рекомендовался в одно время, не знаю точно как сейчас) для PlatformIO. Вобще VSCode безбажный - поставил и забыл.

Link to post
Share on other sites

@_nik я не могу утверждать, но первая попьітка подружиться с PlatformIO бьіла именно на VS. Почему-то єта связка вешала прогу наглухо. Поставил Атом и вопросов больше нет. 😁 

Link to post
Share on other sites
  • 3 months later...

Доброго времени суток.
столкнулся с такой проблемой:
купил плату BIGTREE SKR PRO она на STM32

скачал https://github.com/bigtreetech прошивку и пробовал уже и через Atom и Visual Studio Code скомпилировать прошивку и не в какую
даже пробовал чистый код что у них на сайте все равно ни как(((

можете подсказать в чем я лох?)

заранее благодарен за ответ  

image.png

image.png

Link to post
Share on other sites

Жёлтый цвет обычно используется для рекомендаций,  а ошибки красным.  У вас на скринах видно только жёлтые возможно есть красным цветом (прокрутите в  окне терминала)  . У меня нет этой платы (есть только SKR V1.3) 

Link to post
Share on other sites

@Vladimir-alpha на первом скрине первая строчка желтьім и на втором скрине последняя перед ошибкой просит установить Gitclient и указьівает по какому адресу можно его скачать. 

На момент написания статьи ставить  клиент бьіло не обязательно. По возможности дополню статью. 

Link to post
Share on other sites

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

image.thumb.png.c5ce9f670ecb8fdb8afe1a54d44a56f2.png  image.thumb.png.10ac8d1ca1671102c0c9b112a5036915.png

Edited by Vladimir-alpha
Link to post
Share on other sites

@Vladimir-alpha на втором скрине, первой строчкой, адрес по которому находится прошивка firmware.bin Очисти содержимое sd-картьі и ручками скопируй єтот файлик. Карту в плату и запустится прошивка. 

П. С. На предьідущих skr-ках нужно бьіло активировать оба серийньіх порта. 

П. П. С. А пробовал собирать через кнопку upload? 

Link to post
Share on other sites

Ну так а как тьі хотел загрузить прошивку на карту? 😁😁😁 

Как бьі build - собрать прошивку, а upload - собрать и загрузить. 

Link to post
Share on other sites
  • KomAndr changed the title to PlatformIO або як прошити Marlin 2.х в плати з 32біт контролерами.
  • KomAndr pinned this topic

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...