Порт прошивки Marlin под stm32 или еще один 32-ух битный контроллер.
Это мой первый пост. И т.к. я подумал, что история сборки очередного REPSTRAPа будет не особо интересной. Решил рассказать о своем опыте использования 32-ух битной электроники.
Начну сначала о том, зачем мне нужен 32-ух битный контроллер. В прошивке Marlin есть участок кода, который при достижении частоты STEP импульсов в 10кгц начинает выдавать по 2 или 4 импульса на прерывание. Это приводит к тому, что STEP импульсы следуют не через равный промежуток времени. При какой скорости достигается данная частота? Тут все просто скорость = частота / шаг/мм. Я использовал DRV8825 с микрошагом 1/32, ремень GT2, шкив на 20 зубов и шаговый двигатель с углом поворота 1.8 градуса на шаг. Получается, что в моем случае неравномерность STEP импульсов начинается на скорости -> 10000 = 160*скорость -> скорость = 62.5 мм/с. Это довольно низкая скорость, и т.к. неравномерность STEP импульсов могла сказаться на качестве печати, было принято решение о переходе на 32 битный мк.
Дальше я начал искать какие у меня есть варианты. А вариантов было несколько. Первый и самый простой покупка Arduino DUE. Следующий вариант Smoothie. Ну и последний адаптировать Marlin под другой мк. Smoothie довольно быстро отпал, т.к. информации по данной прошивке мало. Arduino DUE хороша, но за те же деньги можно было взять более производительный мк и поиграться с ним. В итоге выбор пал на мк stm32f4zet6. И за пару недель неспешной работы был написан порт Marlin.
Теперь что касается самого порта.
Что работает:
Двигатели, нагреватели, вентиляторы, USB, термодатчик (пока только один, т.к. мне сейчас больше не нужно, но это легко исправить).
Что точно не работает:
EEPROM( а точнее сохранение конфигурации после выключения питания, т.к. сам мк не имеет EEPROM), LCD дисплей, WI-FI, SD карат.
Что я не проверял:
Эндстопы, датчик нити, автокалибровку стола.
Что планируется в ближайшее время:
Добавить возможность сохранения настроек, починить чтение с SD карты,подключить к принтеру LCD дисплей, прикрутить автоуровень на тензодатчике.
В принципе с этим портом можно использовать любой мк от stm32 начиная с линейки M3, нужно будет только переопределить пины в файлах port.cpp и main.c.
Что касается работы самого принтера. Можно точно сказать, что он стал тише. Субъективно качество печати возросло, на поверхности стало меньше волн. Сравнение качества печати atmega2560 и своего порта я проведу, когда получу трапецеидальные винты.
Прошивка лежит тут https://yadi.sk/d/-Qxd3It33EK42H и в скором времени будет лежать тут https://github.com/Rejdok/STM32-Marlin-Port .
Если будет интересно, могу описать процесс компиляции и настройки данной прошивки, а также подключение мк к RAMPS 1.4.
Спасибо за внимание!
Еще больше интересных статей
Система автоматической смены столов Chitu Systems PlateCycler C1M для Bambu Lab A1 mini
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
(Не)большое улучшение сушилки Sunlu S2 для мягкой подачи филамента
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Настраиваем прошивку Marlin и заливаем её в 3D принтер
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.

Комментарии и вопросы
Вариантов решения куча, и в мо...
Привет, можно мне тоже STl фай...
И этому 50 ваттнику хватает св...
Запустил своего старичка на пе...
Всем привет. Помучился с китай...
Знакомый заколебался мен...
При печати головка как будто н...