Как компилировать Marlin 2 с помощью PlatformIO CORE. Более простой способ для людей, хотя бы слегка знакомых с командной строкой.

dallas9
Идет загрузка
Загрузка
29.01.2020
1632
25
печатает на RepRap
Личные дневники

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

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

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

6

Везде описан способ компиляции Marlin 2 c помощью VSCode, Atom или SublimeText, но на самом деле все эти программы лишние и добавляют свои собственные глюки в процесс сборки, реально необходим всего лишь PlatformIO Core, который запускается из командной строки.

Если уже стоит что-то из этих "лишних" программ и PlatformIO IDE, то дополнительно устанавливать ничего не требуется, надо всего лишь найти pio.exe и убедиться, что он находится в PATH.

1. PlatformIO Core написан на Python, поэтому нам необходимо поставить Python. Лучше стабильную версию.

При установке pip обязателен, так же нужно добавить в PATH

Полезно убрать лимит на длинну пути.

2. Установить PlatformIO Core (не путать с PlatformIO IDE), что делается командой

pip install platformio

3. Берем Marlin bugfix-2.0 (релиз 2.0.2 на данный момент сломан, такое вот качество релизов в Марлине...), распаковываем куда-нибудь, редактируем конфигурацию Марлина и в platformio.ini прописываем нужную платформу. Редактировать можно чем угодно, хоть Notepad. Я использую Far Manager.

4. Запускаем в каталоге с platformio.ini команду

pio run

после чего начнется установка нужных компонентов и сборка прошивки

Если все в порядке с конфигурацией и Marlin в очередной раз не поломали, то получаем собранную прошивку в .pio\build\<название платформы>

У кого одна плата, далее не читать.

Для тех, у кого плат много и используется Marlin разных версий для них, есть более интересный вариант:

А) Вместо пункта 2 выполняем команду

pip install virtualenv

Б) В каждом каталоге с Marlin (где находится platformio.ini) выполняем команду

virtualenv --system-site-packages platformio

создастся виртуальное окружение python, отдельное для каждого Марлина,

в каталоге platformio

В) В каждом каталоге с Marlin выполняем команду

platformio\Scripts\pip install platformio

таким образом в каждое виртуальное окружение будет установлен свой PlatformIO Core. можно даже разных версий.

Г) В каждом каталоге с Marlin редактируем platformio.ini, в секцию [platformio] (она находится в самом верху) прописываем настройку

core_dir     = platformio/pio-core

здесь будут храниться компоненты PlatformIO, иначе они будут в общей куче, в %USERPROFILE%\.pio

Д) Запускаем сборку командой

platformio\Scripts\pio run

Для чего это нужно: если есть большой зоопарк версий Marlin и разных плат, возможны конфликты между компонентами PlatformIO. А так мы даем каждой плате и каждому Марлину свое PlatformIO со своими собственными компонентами, между собой они не будут никак связаны, не будут внезапно обновляться.

В Linux все работает аналогично, будут только небольшие отличия в путях, например platformio/bin вместо platformio\Scripts

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

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

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

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

Комментарии

29.01.2020 в 07:54
0

кстати релиз Marlin 2.0.2 лечится удалением файлов:

Marlin-2.0.x/Marlin/src/Marlin.cpp
Marlin-2.0.x/Marlin/src/Marlin.h


более подробно по ссылке
https://github.com/MarlinFirmware/Marlin/issues/16691

29.01.2020 в 10:37
0

И прописыванием дефолтных зависимостей в конфиг платы

29.01.2020 в 08:38
1

Интересная статейка, я у себя по другому сделал роставил Githab локальный скопировал репозиторий марлина и каждую конфигурацию раскидал по разным бранчам, удобство в том что можно просмотреть какие изменения делались в коде и самим собой, легкий откат изменений и обновлений с основного репозитория

29.01.2020 в 10:11
0

использование git не избавит от конфликтов внешних компонентов PlatformIO, потому что разрабы марлина ленятся указывать конкретные версии компонентов

29.01.2020 в 10:53
1

Не понятно. а чем плоха сборка Марлина через Virtual Studio Code ?  Вроде все собирается отлаживается и работает. И удобно графически. 

29.01.2020 в 12:05
1

Любят люди делать такие вещи руками - это даёт ощущение контроля.

29.01.2020 в 12:24
0

типа ты в VSCode кнопку ногами нажимаешь?

когда ты жмешь кнопку Build в VSCode, запустится тот же самый pio run, только через много лишних, скрытых от тебя, операций.

29.01.2020 в 13:44
0

>типа ты в VSCode кнопку ногами нажимаешь?

Не ты, а вы.

Я нажимаю руками. Но только не заморачиваюсь установкой РУКАМИ длинного списка зависимостей, если достаточно скачать vscode и склонить репу из гитхаба. Мне нафиг не нужно знать как оно внутри устроено - мне нужно скомпилить прошивку, залить в принтер и юзать этот самый принтер. 

И таких как я тут большинство))

29.01.2020 в 17:23
0

Не ты, а вы.

в Интернете только враги на ВЫ

Я нажимаю руками. Но только не заморачиваюсь установкой РУКАМИ длинного списка зависимостей, если достаточно скачать vscode и склонить репу из гитхаба. Мне нафиг не нужно знать как оно внутри устроено - мне нужно скомпилить прошивку, залить в принтер и юзать этот самый принтер. 

так и через командную строку тоже ничего вышеперечисленного не нужно. 

в обоих случаях все делает PlatformIO Core.

VSCode служит только для того, чтобы это можно было сделать жмаканьем мышки вместо выполнения одной команды )

29.01.2020 в 18:03
0

>в Интернете только враги на ВЫ

Элементарному уважению, я смотрю вас не учили.

29.01.2020 в 12:12
1

тем, что добавляются глюки от Visual Studio Code и прочих лишних прослоек. только не надо говорить что их нет, они даже кое-где в документации описаны ) сборку все равно будет осуществлять PlatformIO Core, но через минимум 2 лишних прослойки - VSCode и плагин PlatformIO IDE.


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


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


29.01.2020 в 13:47
0

>но гуемышевозилам да

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

29.01.2020 в 17:34
0

мышь командной строке не мешает.

гуемышевозилы это те, кто ВСЕ делает через мышу.

29.01.2020 в 12:03
2

Более простой способ:

  1. зайти сюда
  2. найти это
  3. скачать там
  4. запустить то
  5. указать это
  6. получить ошибки
  7. развернуть проект
  8. увидеть консоль
  9. удалить софт

Боле сложный способ:

  1. Поставил VisualCode
  2. Открыть проект
  3. Настроить конфиг под себя
  4. Нажать "Очистка" + "Сборка"

29.01.2020 в 12:31
0

в случае c VSCode произойдет все то же самое, что описано у меня, только скрытно. и поставится совершенно лишний монстроидальный VSCode (он не нужен, мы просто собираем прошивку, а не ведем ее разработку), в нем придется гуемышевозить чтобы поставить плагин PlatformIO IDE, потом оно еще с 1го раза собирать прошивку не станет, его нужно закрыть, открыть (аж в документации описано) и только со 2го раза оно соизволит собрать прошивку и то, только в том случае, если юзер не протуканил подтвердить запрос на изменение переменных окружения, иначе фейл.


мой вариант раза так в 3 быстрее и никаких открыл/закрыл. а у кого много плат, вообще без вариантов.

29.01.2020 в 12:47
1

Чтобы небыло проблем с непонятками сборок под зоопарк, ннада удалять каталоги формата „.pio“ как из проекта так и из профиля пользователя. Оно само скачает нужное под текущий проект.

Версия с „virtualenv“ для тех у кого много лишнего свободного места.

29.01.2020 в 12:54
0

Чтобы небыло проблем с непонятками сборок под зоопарк, ннада удалять каталоги формата „.pio“ как из проекта так и из профиля пользователя.

частично помогает. но не всегда

Версия с „virtualenv“ для тех у кого много лишнего свободного места.

там места не так уж много тратится

29.01.2020 в 16:08
0

Доеду до дома, посчитаю сколько набигает.

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

Обидно, что Репетир не хотеть портировать свой фирмварь на СТМ32.

29.01.2020 в 17:29
0

Доеду до дома, посчитаю сколько набигает.

от 200MB с AVR до 1 GB на STM32 лишнего. даже SSD забить сложновато будет ) не говоря уж про HDD

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

во 1х неинтересно

во 2х нереально, часть плат чужие и не я определяю какая будет плата

29.01.2020 в 13:16
1


29.01.2020 в 17:44
0

еще один идею не понял )

30.01.2020 в 10:28
0

в аудитории тоже никто не понял, кроме лектора конечно))))

30.01.2020 в 12:57
0

Через "сложный" способ с VSCode я ещё и конфиги марлина правлю. Пускай будет как альтернативный вариант. Разнообразие это хорошо.

msv
31.01.2020 в 04:31
0

ну как бы целую IDE ставить и запускать ради правки конфигов - это несколько избыточно ) достаточно штатного Notepad

04.02.2020 в 15:18
1

вещай, не слушай никого.

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

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

Помогите понять как устранить дефект печати фотополимером eSun PLA white

Обзор 3D-сканера Solutionix С500

Lerdge: TMC2208 - LV8729 туда и обратно (но уже с uart)..

Калибровочная модель для фотополимерника в ответах

Совет по очистке дисплея от затвердевшего фотополимера.

Улучшение 3D печати поддержек МАРКЕРОМ [Перевод статьи]