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

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

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

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

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

2
Статья относится к принтерам:
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 !

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

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

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

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

Комментарии

05.03.2021 в 19:56
0

А не пробовал накатить RRF? Там вроде бы поддерживается программный ШИМ. Портированная на STM32 поддерживает SKR Pro и FLY-F407ZG, которые собраны на STM32F407ZGT6. Я в этом не разбираюсь, если что.

https://teamgloomy.github.io/supported_boards.html

05.03.2021 в 20:29
0

Нет, не пробовал. RRF или например Marlin просто так накатить не получится, придется портировать прошивку на эту материнскую плату со всеми вытекающими. Возможно, в будущем при достаточной мотивации я займусь и этим.

11.03.2021 в 00:39
0

Плата разве не FLY-F407ZG?

11.03.2021 в 10:17
0

На сколько мне известно, то нет. Контроллер на платах как я вижу STM32F407ZG, но на этом я думаю всё. Материнские платы у них свои и соответственно распиновка и периферия будут отличаться. На их официальном сайте можно посмотреть как выглядят материнские платы, например вот такая стоит в моем Dreamer NX ссылка.

07.03.2021 в 01:13
0

Проще плату сменить в этой китайской поделке. И туда хочешь машлю, хочешь rrf. 

10.03.2021 в 10:48
0

Отличная работа! Испытаю. Может тогда попробуете убрать ограничение на максимальную температуру в 248 град? Поставите, скажем, 270 град. А то приходится резистором термодатчик дурить.

11.03.2021 в 11:21
0

Спасибо!

Максимальную температуру поднял, можно использовать до 270 градусов ( для стола o_O и хотэндов ) . Для тех у кого стоковый хотэнд я не рекомендую поднимать температуру выше 250 градусов, так как в горле установлена PTFE трубка, которая может начать оплавляться. Температура устанавливается только посредством G-кода, из графического меню ограничения остаются прежними.

Теперь можно управлять ( включить/выключить ) вентилятором на корпусе принтера из G-кода. Например M106 P1 S255 - включить вентилятор корпуса, M107 P1 - выключить ( или M106 P1 S0 )

Расширен список принтеров:
DreamerNX, Dreamer, Creator Max, Guider, Finder, Inventor, Creator Pro 2

п.с: репозиторий обновлен

11.03.2021 в 12:29
0

Круто! Между тем, я проверил Вашу прошивку на своем Дримере. Работает. Есть один небольшой баг. Если во время печати отменить печать с панели принтера, то вентилятор обдува экструдера продолжает крутиться вечно с той же скоростью. Лечится перезагрузкой или запуском новой печати.

Кроме того, хочу обратить внимание владельцев, что китайцы тоже не роботы и ошибаются. У меня вентилятор обдува потрохов был подключен с завода в разъем, обозначенный красной стрелкой. Этот разъем и соседний с ним (обведены голубым) имеют сигнал выхода на вентилятор обдува экструдера. Поэтому когда обдув экструдера не используется, то потроха не охлаждаются. Правда за год работы ничего не сгорело. Этот вентилятор надо подключить в разъем, обозначенный зеленым, там всегда 24 В.


11.03.2021 в 13:20
0

>>Есть один небольшой баг. Если во время печати отменить печать с панели принтера, то вентилятор >>обдува экструдера продолжает крутиться вечно с той же скоростью. Лечится перезагрузкой или >>запуском новой печати.

Спасибо за обратную связь! Добавлю обработку принудительной остановки печати в следующем патче, что бы ШИМ тоже отключался. Еще можно выключить его через FlashPrint Control Panel ну или другим способом отправить M107 ^_^

11.03.2021 в 16:43
1

Может замахнетесь на вживление прошивки от Инвентора в Дример? Да еще с Вашими улучшениями. Плата же одна и та же.

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

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

Коротко на видео о сборке лазерной диодной головы на numb диоде

Действующие акции на пластик для 3D печати

Недельный Дайджест от Импринты №8

Мелки из Dark Souls

Пасхальный кролик Роберт и яичная тележка

Anycubic chiron. Обзор , сравнение с конкурентами, и ремонт. Часть 1