RuRAMPS4D, Due и TMC2130: переход с Marlin на Klipper
Disclaimer: пост узконаправленный - больше для владельцев RuRAMPS4D в связке с Arduino Due, чисто при миграцию и одну сложность.
Подробного сравнения по качеству печати пока не производилось, ибо на качество влияет больше не фирмвара, а грамотная настройка техпроцесса на конкретном железе - тут я в себе не уверен :)
Железо: Fribot Z-Helix (coreXY), Arduino Due + RuRAMPS4D, TMC2130 на всех осях с настройкой через SPI, виртуальные концевики через StallGuard2.
Внизу много словоблудия, поэтому для экономии времени заранее напишу финал: Arduino Due для настройки TMC2130 через SPI требует изменения дефолтного значения SPI rate в соответствующем скрипте Klipper'а, без этого не взлетит и траблшутинг будет весёлым и непредсказуемым.
Из приятного и для меня важного: принтер стал работать значительно тише на заполнении на высоких скоростях, таких как были раньше вибраций практически нет - очень плавно всё, корпус (фанера) больше не вибрирует. Ну и интерфейс мне лично более удобный. В планах прикрутить 3DTouch - руки сразу не дошли, но позже буду.
Файлы с примером конфигурации и распиновку если нужно - пишите в ЛС, вышлю. Но в планах сделать пример конфига для ruramps4d для включения в дистрибутив на гитхабе.
----------------
Далее словоблудие:
После покупки RuRAMPS4D пришлось уехать с Marlin 1.1.9 на ещё довольно сырой 2.x, но признаться меня Marlin уже давно слегка подзадолбал необходимостью перешивать контроллер при малейших изменениях (EEPROM не трогаем, с ним всё понятно) и довольно нетривиальным траблшутингом в случае чего.
Бесхозная RPi3 с родной камерой уже имелась в запасниках, поэтому доп. затрат у меня не было, решил попробовать с Klipper. Благо, на случай неудачи был уже настроенный Marlin - с учётом отсутствия изменений в железной части перешивается обратно за 10 минут.
Заранее глянул на структуру конфига Klipper, основная сложность предполагалась в конвертации нумерации пинов Arduino в хардверные имена пинов, используемые Klipper'ом. Готового примера распиновки именно для Due+RuRAMPS4D не нашлось, поэтому пришлось делать практически с нуля. Для этого пришлось обратиться к распиновке в pins_RURAMPS4D_13.h Marlin и вспомогательной таблице https://www.arduino.cc/en/Hacking/PinMappingSAM3X (http://www.robgray.com/temp/Due-pinout-WEB.png тоже для удобства пользовал), после чего родилась самодельная табличка Excel (ниже чисто как пример) для последующего использования в процессе конфигурации. Да, Klipper может с небольшими доработками использовать нумерацию Arduino, но хотелось без костылей сделать сразу нормально с минимальными legacy-ошмётками.Конфиг предварительный составлен на базе старого марлиновского, пины моторов и драйверов прописаны. OctoPrint залит на флешку, Klipper установлен по инструкции с GitHub, контроллер прошит.
Далее как описание симптомов чисто:
Проверяю нагреватели/датчики - всё отлично, включение/выключение/температуры в порядке. Пробую покрутить моторами - тишина, хоуминг не работает - валит таймаутами срабатывания концевиков (оно и понятно, моторы не двигаются). Z при этом двигается нормально. Опрос регистров драйверов при каждом запуске выдаёт совершенно разные значения, что уже навевает подозрения в проблемах конфигурации драйверов по SPI.
Завёл issue 888 на гитхабе, за сутки разборок поимел кучу удовольствия - советы по скоростям и т.д. Пробовал менять настройки пинов - инвертирование, подтяжки, но нифига - не взлетали моторы и всё тут. Затем в какой-то момент после ребута контроллеров сам собой очнулся мотор X: голова стала ездить по диагонали. Подумал что мог попалить либо мотор второй, либо драйвер - зашил обратно Марлин и там всё работало нормально, вернулся к Klipper обратно - ни один мотор включая Z не двигается, но уже с другими симптомами - слышно изменение звука драйверов/моторов, но движения не происходит. Всё ближе подхожу к мысли, что проблема скорее всего софтовая и не связанная с коммутацией или нумерацией пинов - скорее всего не сконфигурированные по какой-то причине драйверы просто не выдают минимально необходимый для моторов ток, поэтому слышится только изменение звука без фактического движения - моторы пропускают полностью все шаги.
По ключевым словам 'SPI Due Klipper' нахожу другую issue 435, где разработчик предложил подкорректировать частоту SPI в скрипте - с предконфигурированных 40000000 до 100000.
Меняю конфиг, перезапускаю службу klipper. Вуаля - хоуминг работает, все оси ездят, значения регистров драйверов стабильны :) Пришлось немного подтюнить чувствительность stallguard, ну и pid'ы нагревателей. Если бы не проблема с SPI - переход занял бы от силы часа 2, рекомендую.
Еще больше интересных статей
Силиконовый носок для экструдера BIQU H2V2S Lite своими руками из доступных материалов
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Причина...
Терпение и труд... 3D Touch, смена прошивки и чуть-чуть про столы и мусор. Глава 3
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Руки чесались в конце концов подключить и запустить 3D Touch, за...
Сопла и сопли
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Сколько раз этот вопрос поднимался. Сколько тем...
Комментарии и вопросы
Люди очнитесь, сушилка для пла...
а шнековые экструдеры с выходн...
Имеете ввиду торец базы? Дейс...
Добрый день. Кто пользуется сл...
Здравствуйте Попытаюсь ма...
добрый день, столкнулся с тако...