Кремень КД Реклама
Кремень КМ Реклама

Добавляем управление обдувом в принтерах FlashForge

moonglow
Идет загрузка
Загрузка
05.03.2021
2596
10
Техничка

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

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

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

3
Статья относится к принтерам:
Flashforge Dreamer NX FLASHFORGE Dreamer

По какой-то неведомой мне причине принтеры FlashForge не поддерживают плавное управление обдувом, аргумент S в команде M106 просто игнорируется, соответственно мы можем либо включить его на полную ( M106 ) либо выключить ( M107 ) при этом принтер умеет играть мелодии в конце печати, умеет изменять RGB подсветку и другие возможности, которые на первый взгляд и не нужны. В данном случае я рассматриваю принтеры на материнской плате на базе микроконтроллера STM32F407ZG, такие как Dreamer, Dreamer NX и другие. Если ваша материнская плата на базе этого микроконтроллера, то потенциально прошивка вашего принтера тоже может быть модифицирована аналогично.

Основные проблемы:

1. Так-как модифицировать плату принтера вряд ли кто будет, то необходимо модифицировать оригинальную прошивку принтера так, что бы получить необходимый функционал.

2. По умолчанию прошивка зашифрована, поэтому перед началом анализа бинарного кода ее необходимо расшифровать, а после модификации зашифровать обратно для возможности штатного обновления принтера, но для этого можно использовать мою утилиту отсюда.

3. Ножка на которую выходит управление обдувом ( PF5 ) не имеет возможности аппаратного вывода ШИМ.

Существующие решения:

1. Добавление внешнего регулятора обдува ,который позволяет регулировать обдув вручную.

2. Модифицировать G-код и использовать команды управления пищалкой которую слушает внешний микрофон и таким образом преобразует звуковые последовательности в сигналы управления внешним контроллером обдува, как это реализовано тут.

Мое решение заключается в том, что бы разместить специальный код в свободное место оригинальной прошивки, который будет реализовывать программный ШИМ ( через два ( сравнение и переполнение ) прерывания свободного таймера, в данном случае Timer9 )  и перехватывать соответственно обработчик G-кода в местах разбора команд M106 для добавления обработки S параметра и M107 для выключения обдува.  Частота ШИМа была выбрала ~100Гц, в моем случае этого достаточного для нормального управления обдувом. Регулировку ШИМ я ограничил в диапазоне от 15% до 90%, все что ниже будет считаться выключенным состоянием, а все, что выше включенным.

Результат в виде подготовленных для обновления принтера прошивок можно скачать ТУТ. Для обновления модифицированной прошивкой достаточно заменить оригинальную прошивку на мою ( имя должно совпадать ) и после чего произвести стандартное обновление через FlashPrint ( для пользователей Windows прошивки обычно хранятся тут: :\Program Files\FlashForge\FlashPrint\firmware ) . Проверить регулировку обдува можно через telnet подключившись к принтеру по сети если используется соединение по Wi-Fi ( для пользователей Linux не забываем включить завершение строк в telnet как crlf командой 'toggle crlf' ) :

~M601 S1 - получить управление

~M106 S127 - установить 50% ШИМ на обдуве

~M106 S0 - выключить обдув

~M107 - выключить обдув

В данный момент прошивка вполне успешно работает на моем FlashForge Dreamer NX. К сожалению, FlashPrint не позволяет выбирать стратегию изменения обдува и если необходимо его чуть уменьшить, то приходится править результирующий файл руками, но более продвинутые слайсеры которые поддерживают наши принтеры ( например Simplify3D ) могут генерировать нужный код сразу. В ближайшем будущем я планирую расширить список модифицированных прошивок и другими принтерами на базе этой материнской платы, а также опубликовать исходный код патча для последующей модификации всеми желающими.

п.с: хотелось бы выразить особую благодарность пользователю Ikbarinov за переставленную практически даром материнскую плату от своего FlashForge Dreamer !

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

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

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

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