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
Еще больше интересных статей
Подсветка для Ender 3 и Sprite Extruder с обдувом K3D
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Попросили меня подробнее написать про подсветку на моем Ender 3....
Охлаждение мотора директа
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Blue Pill & SSD1306, ну очень маленькие.., но 32 бит!
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Решил я тут попробовать перейти с 8 бит на 32.
Готовы...
Комментарии и вопросы
Хорошее, чисто военное, зато н...
Что-то вы оборудования насчита...
Купил такой пластик (abs) от Н...
Купил двухсторонний коврик A и...
Возможно экструдер сносит дета...
Anet a8 после прошивки нагрев...
шестерня выглядит вот так, не...