Порт прошивки 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.
Спасибо за внимание!
Еще больше интересных статей
Подсветка для Ender 3 и Sprite Extruder с обдувом K3D
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Попросили меня подробнее написать про подсветку на моем Ender 3....
Температура стола и пирометр.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Настраиваем прошивку Marlin и заливаем её в 3D принтер
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Комментарии и вопросы
Уважаемый jmz, подскажите, пож...
Круто
6Вт = 4,5*4,5/3,4.Это по какой...
Всем привет! Прошу, не кидайте...
Собственно и вопрос: Как в Ком...
Добрый день, принтер Creality...
На картинке видно что слой нем...