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. Т.е. даже не релизная версия.
Немного поразбиравшись в прошивке сделал следующие выводы:
- Сенсорный экран является отдельным и независимым устройством, осуществляющим коммуникацию с платой через один из доступных последовательных портов. Идея понравилась, есть потенциалИсходный код производителя тесно интегрирован в код Marlin
- Поломана функциональность команды G5 (кривые Безье), на этот код повешена функциональность потери питания
- Скорости, ускорения и т.п. настройки значительно ограничены прошивкой, поэтому все эксперименты с ускорениями 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 (даже не родной прошивке): принтер периодически зависал в произвольном месте печати. Пока что отказался от данной функции.
Ссылки
- Моя версия изменений для Marlin с поддержкой Anycubic Chiron - https://github.com/Landgraph/Marlin
- Официальная прошивка Marlin - https://github.com/MarlinFirmware/Marlin
- Репозиторий Anycubic с прошивкой Chiron v1.3.0 - https://github.com/ANYCUBIC-3D/ANYCUBIC_CHIRON_V1.3.0
- Кастомная прошивка на базе Marlin 1.1.9 - https://github.com/dkoch83/Marlin-1.1.9_Anycubic_Chiron
- Кастомная прошивка на базе Marlin 2.0 - https://github.com/coolio986/Marlin_2.0.x_Anycubic_Chiron
Еще больше интересных статей
Про мощность керамического нагревателя Qidi Q1 pro
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Некоторое время назад я менял керамический нагреватель на...
Светодиодная лампа с аккумуляторным блоком для фрезерного станка
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Настраиваем прошивку Marlin и заливаем её в 3D принтер
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Комментарии и вопросы
Да, если ещё и сопла пригорожу...
Ну из силикона я и сам могу из...
Я заказал здесь, если это то ч...
У меня самосборный 3д принтер,...
Ребятушки, какую защитную плен...
Столкнулся с проблемой на прин...
Добрый день! Создала деталь в...