Металл2024 Реклама
Метобр2024 Реклама

Marlin 1.1.* для Anycubic Chiron

Landgraph
Идет загрузка
Загрузка
01.06.2020
7980
28
Техничка

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

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

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

3
Статья относится к принтерам:
Anycubic Chiron

Marlin 1.1.* для Anycubic Chiron

Приветствую уважаемых участников сообщества!

Сомоизоляция выдалась относительно продуктивной в плане разных 3D-принтерных развлечений.

Дошли, наконец, руки до перепрошивки моего Anycubic Chiron. Особенно хотелось попробовать так широко разрекламированную везде функцию Linear Advance. Ну и заодно попробовать какие-нибудь ещё функции Марлина.

Не буду ходить вокруг да около, исходники лежат в репозитории на GitHub: Landgraph/Marlin

Конечно, возможно я плохо искал, но я не нашёл Marlin для Anycubic Chiron. Поймите меня правильно - да, я тоже нашёл кастомные прошивки для Anycubic Chiron на базе Marlin. Во-первых, не всегда прошивки предоставляются в виде исходных кодов (отдельная беда). Во-вторых, даже те прошивки, что удалось найти в исходных кодах - это один-два коммита, значительно отличающихся от базовой прошивки доступной в репозитории Anycubic Chiron 1.3.0 (ссылки будут в конце). И даже особо сравнить не получалось исходники между собой, чтобы понять что изменилось относительно базовой прошивки.

Собственно поэтому я решил собрать свой Marlin с необходимыми изменениями для работы на Anycubic Chiron (а также, полагаю, на Anycubic Mega, но нужны некоторые изменения и тесты). Кстати, недавно встречал подобные отзывы в одном из обзоров на ютюбе - автор также искал Marlin для тестов и, судя по контексту, не нашёл.

Итак, что я сделал?

Взяв исходную прошивку из репозитория Anycubic Chiron (v1.3.0) - нашёл коммит с минимальной, на мой взгляд, разницей с Marlin. У меня получилось, что прошивка для Chiron собрана на базе Marlin 1.1.0-RC8. Т.е. даже не релизная версия.

Немного поразбиравшись в прошивке сделал следующие выводы:

  1. Сенсорный экран является отдельным и независимым устройством, осуществляющим коммуникацию с платой через один из доступных последовательных портов. Идея понравилась, есть потенциалИсходный код производителя тесно интегрирован в код Marlin
  2. Поломана функциональность команды G5 (кривые Безье), на этот код повешена функциональность потери питания
  3. Скорости, ускорения и т.п. настройки значительно ограничены прошивкой, поэтому все эксперименты с ускорениями 1800, 500 и т.п. - были впустую

Далее я вынес крупные блоки кода производителя в отдельные файлы VendorCode.cpp и VendorCode.h.

После этого приступил к чистке исходного кода от вкраплений кода производителя. Где-то удалось вырезать функционал в файлы с кодом производителя, где-то пришлось изолировать код с помощью define'ов, вернув при этом на место исходный код Marlin.

После предварительной чистки кода удалось подготовить патч и перенести изменения производителя на новую версию Marlin. Как это было - можете посмотреть в истории изменений. Также теперь можно легко использовать diff для просмотра разницы между разными версиями кода.

Теперь же и ребейз изменений на новую версию исходного кода Marlin стал менее ресурсоёмким.

Таким образом у меня получился код Marlin с изменениями для Anycubic Chiron, а не прошивка для Anycubic Chiron на базе Marlin, для меня это важно.

Пока что работа над чисткой кода ещё не закончена, кому интересно - можете посмотреть на текущий результат и присоединиться к работе. На данный момент я уже почти месяц сижу на новой прошивке и не вижу принципиальной разницы с родной прошивкой - т.е. у меня нет дискомфорта от того, что что-то работало в заводской прошивке, а в новой не работает. За исключением калибровки поверхности - не могу проверить.

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

Также появилась возможность плавно перенести изменения в Marlin 2.0. Только, если честно, я пока не уверен стОит ли. На мой взгляд - Marlin 2.0 получил много архитектурных изменений для поддержки разного железа, а на счёт функционала - не уверен.

Также теперь можно пользоваться всеми возможностями последней версии Marlin 1.1.* на Anycubic Chiron (включая, но не ограничиваясь Linear Advance).

Планы на будущее

  • Продолжить чистку исходных кодов от кода производителя
  • Нормально переименовать файлы
  • Рассмотреть возможность выкинуть лишние файлы типа дополнительной поддержки последовательного порта
  • Улучшить начальные настройки принтера. Было бы классно скооперироваться с другими владельцами принтера и подобрать лучшие настройки на базе общего опыта
  • Добавить поддержку Marlin 2.0 (если найдётся достаточное основание этого, ну или кто-нибудь поможет в разработке в том же ключе)
  • Проверить/отладить калибровку датчиком (сам датчик забыл в другом городе, не могу протестировать)
  • Добавить поддержку других принтеров от Anycubic (судя по исходникам - добавить пару файликов с обозначениями пинов). Но тут проблема - мне не на чем это тестировать. В первую очередь я бы добавил поддержку Anycubic Mega

В качестве заключения

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

А также выяснились проблемы с работой кода G5 (даже не родной прошивке): принтер периодически зависал в произвольном месте печати. Пока что отказался от данной функции.

Ссылки

  1. Моя версия изменений для Marlin с поддержкой Anycubic Chiron - https://github.com/Landgraph/Marlin
  2. Официальная прошивка Marlin - https://github.com/MarlinFirmware/Marlin
  3. Репозиторий Anycubic с прошивкой Chiron v1.3.0 - https://github.com/ANYCUBIC-3D/ANYCUBIC_CHIRON_V1.3.0
  4. Кастомная прошивка на базе Marlin 1.1.9 - https://github.com/dkoch83/Marlin-1.1.9_Anycubic_Chiron
  5. Кастомная прошивка на базе Marlin 2.0 - https://github.com/coolio986/Marlin_2.0.x_Anycubic_Chiron

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

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

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

3
Комментарии к статье
Кремень КБ Реклама
Кремень КМ Реклама