RuRAMPS4D, Due и TMC2130: переход с Marlin на Klipper

Подписаться на 3Dtoday
Andrico
Идет загрузка
Загрузка
15.11.18
2157
37
печатает на RepRap
Техничка
24
Статья относится к принтерам:
RepRap
Приветствую.

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-ошмётками.
744d0fe4547fd6241cf1fdf923e905fb.PNG
Конфиг предварительный составлен на базе старого марлиновского, пины моторов и драйверов прописаны. OctoPrint залит на флешку, Klipper установлен по инструкции с GitHub, контроллер прошит.

Далее как описание симптомов чисто:
Проверяю нагреватели/датчики - всё отлично, включение/выключение/температуры в порядке. Пробую покрутить моторами - тишина, хоуминг не работает - валит таймаутами срабатывания концевиков (оно и понятно, моторы не двигаются). Z при этом двигается нормально. Опрос регистров драйверов при каждом запуске выдаёт совершенно разные значения, что уже навевает подозрения в проблемах конфигурации драйверов по SPI.

Завёл issue 888 на гитхабе, за сутки разборок поимел кучу удовольствия - советы по скоростям и т.д. Пробовал менять настройки пинов - инвертирование, подтяжки, но нифига - не взлетали моторы и всё тут. Затем в какой-то момент после ребута контроллеров сам собой очнулся мотор X: голова стала ездить по диагонали. Подумал что мог попалить либо мотор второй, либо драйвер - зашил обратно Марлин и там всё работало нормально, вернулся к Klipper обратно - ни один мотор включая Z не двигается, но уже с другими симптомами - слышно изменение звука драйверов/моторов, но движения не происходит. Всё ближе подхожу к мысли, что проблема скорее всего софтовая и не связанная с коммутацией или нумерацией пинов - скорее всего не сконфигурированные по какой-то причине драйверы просто не выдают минимально необходимый для моторов ток, поэтому слышится только изменение звука без фактического движения - моторы пропускают полностью все шаги.

По ключевым словам 'SPI Due Klipper' нахожу другую issue 435, где разработчик предложил подкорректировать частоту SPI в скрипте - с предконфигурированных 40000000 до 100000.

Меняю конфиг, перезапускаю службу klipper. Вуаля - хоуминг работает, все оси ездят, значения регистров драйверов стабильны :) Пришлось немного подтюнить чувствительность stallguard, ну и pid'ы нагревателей. Если бы не проблема с SPI - переход занял бы от силы часа 2, рекомендую.
Подписаться на 3Dtoday
24
Комментарии к статье

Комментарии

15.11.18 в 17:46
0
Полезно. Спасибо.
15.11.18 в 18:06
0
В планах прикрутить 3DTouch - руки сразу не дошли, но позже буду.
2130 с SPI уже в городе, на днях получу. 3DTouch в наличии есть.
Но вот думаю, а нужен ли он при наличии StallGuard2 на Z? Нельзя в клиппере настроить калибровку через виртуальный концевик?
15.11.18 в 20:12
0
хм...
На хомление будет работать, но как Точ не думаю. Хотя это Клипер может там и взлетит, но не думаю.
15.11.18 в 22:47
0
без натурных тестов я бы не был так уверен :) пока встречал только заверения, то с винтом без вариантов
15.11.18 в 23:01
1
хм...
Ну яж от натурных и толкаюсь), не только винт но и ремень...) отрабатывает по хомингу на ура, а если попытаться как точь то просто давит, мож там на него какой коэф редукции идёт как на хоминг, вроде весь репитер перелопатил за неделю изысканий и нифигулечки, еслиб можно было то рынок датчиков точей отмер бы сразу. Я потом нафиг вырубил и повесил обратно оптику, точность обратно вернулась по Z 146%, калибрую 1 раз в центре стола и потом только после смены сопла кубика и термобарьера, они у меня 3 шт, спецом оп и поменял по бырому!)
19.11.18 в 11:00
0
15.11.18 в 18:11
0
Но вот думаю, а нужен ли он при наличии StallGuard2 на Z? Нельзя в клиппере настроить калибровку через виртуальный концевик?
Проблема там не в клиппере - логически можете настроить. Вот только у меня винт-трапеция на Z стоит - никакой StallGuard не поможет: стол себе раздерёте или сопло запорете
15.11.18 в 20:19
0
хм...
Там не понятно что поможет, что то там гораздо глубже. Хомится в любую сторону по любой оси и можно даже настроить чтоб от пёрышка останавливалось, а когда дело касается Zprobe двиг не останавливается
15.11.18 в 19:15
0
принтер стал работать значительно тише на заполнении на высоких скоростях, таких как были раньше вибраций практически нет - очень плавно всё, корпус (фанера) больше не вибрирует.
Вот ведь... А я только забил болт на шум после установки марлина вместо смузи. Придется теперь в клиппере разбираться.
За инфу спасибо. Как раз скоро начну сборку ZAV mini. На нем и опробую.
16.11.18 в 04:44
0
принтер стал работать значительно тише на заполнении на высоких скоростях, таких как были раньше вибраций практически нет - очень плавно всё, корпус (фанера) больше не вибрирует.
Вот ведь... А я только забил болт на шум после установки марлина вместо смузи. Придется теперь в клиппере разбираться.
За инфу спасибо. Как раз скоро начну сборку ZAV mini. На нем и опробую.
Я Вам больше скажу: А4988 на ramps 1,6, перепаянный под DUE, последний клиппер (появились меню экрана и работает энкодер) В РАЗЫ тише стало, чем на марлине или repetier . Не знаю, что они там сделали, но тише :)
15.11.18 в 22:42
0
хм...
Другие частоты не пробовали? Может они не только на рабочее и не рабочее состояние влияют? Правильно ли я понимаю что в Клипер просто пины управления всем хозяйством перекидываются?
15.11.18 в 22:46
0
Другие частоты не пробовали? Может они не только на рабочее и не рабочее состояние влияют?
пробовал 20000000, но не очень стабильно оказалось - нужно исследовать, благо только свободное время для этого нужно :)
Правильно ли я понимаю что в Клипер просто пины управления всем хозяйством перекидываются?
да, просто у него другая схема именования - один раз нужно повозиться с трансляцией, ну или использовать совместимую схему - там в конфиге прописывается флаг 'arduino' и тогда нумерация та же, разве то аналоговые пины чуть иначе обозначаются. Но после этой разовой возни всё шоколадно и ужас как удобно! ) может завтра займусь 3дтачем, если время будет
15.11.18 в 23:13
0
хм...
Я как дойду до Клипера позадаю вопросов, если вы не против?
20.11.18 в 08:49
0
Другие частоты не пробовали?
В итоге завелось на 20000000, разработчику написал наблюдения в своей проблеме, но тот пока не отвечал.
20.11.18 в 08:54
0
хм...
Запросите вообще что за параметр.
Мельком глянув Клипера, правильно понимаю что туда просто пины ar (если ардуино) и цифра вбивать?
20.11.18 в 09:07
0
Запросите вообще что за параметр.
да это по сути просто частота SCK/CLK для работы с устройствами по SPI, конкретно с клиппером ни на что не влияет - SD-ридера у mcu своего не используется
глянув Клипера, правильно понимаю что туда просто пины ar (если ардуино) и цифра вбивать
для цифровых пинов да, для аналоговых пинов вместо ar прописывается analog и цифра.
15.11.18 в 23:14
0
Я как дойду до Клипера позадаю вопросов, если вы не против?
Разумеется. Пока свежо в памяти, обращайтесь - не вопрос.
09.12.18 в 16:07
0
хм...
Добрался до Клипера, и вот вопрос, вы как обзывали пины датчиков стола и хотенда? У вас как прописаны и какие задействованы физически?
09.12.18 в 22:00
0
вы как обзывали пины датчиков стола и хотенда? У вас как прописаны и какие задействованы физически?
в секции [extruder]:
heater_pin: PB27
sensor_pin: PA16

в секции [heater_bed]:
heater_pin: PC23
sensor_pin: PA6

в ардуиновой нумерации: цифровой 13 - PB27, цифровой 7 - PC23, аналоговый 0 - PA16, аналоговый 4 - PA6
10.12.18 в 00:20
0
хм...
Тут можно не много уточнений?) РВ РА РС видел в пинс Клиппера, но они просто перечисленны и не расписанно что за что. Может знаете где посмотреть? Пытаюсь раскидать пины и увы
10.12.18 в 07:10
0
10.12.18 в 07:20
0
хм...
Правильно ли я понимаю что это ваша раскладка пинов Рурампса относительно Клиппера?
10.12.18 в 07:21
0
Да, а как я её рисовал - в самом посте написано ;)
10.12.18 в 07:29
0
хм...
Это да, затыка у меня в том что у меня переделанный под Дуню Рампс и Клиппер гадина ругается на пины термодатчиков которые по идее 13 и 14 аналоговые МЕГИ (по разводке платы) а по ДУЕ это DAC1 и CANRX что вроде не отменяет их аналоговости но как их обозвать? и от какой раскладки пинов отталкивался Конор в Ардуино, ребус бл...
10.12.18 в 15:00
0
pins от марлина для своей платы сбросьте в лс
16.11.18 в 09:00
0
Понимаю, что может кому и глупым покажется предлодение, но:
можете сравнить реальное время (по секундомеру, без учета нагрева) печати одного и того же g-кода (где-нибудь 0,5-1 час) с вашим клипером и с марлином. И еще третье время - теоретическое, через пронтерфэйс или еще какую прогу, которая просчитывает время печати по коду.
16.11.18 в 12:13
0
предложение отличное и интересное: вот только, если честно, мне настолько не хочется даже временно шить Марлин :) изменения и в качестве печати (субъективно, разумеется) и в звуке
16.11.18 в 14:50
1
для тех у кого DUE + Ubuntu - есть баг ( на который я вчера наткнулся) https://github.com/KevinOConnor/klipper/issues/443
То есть оно собирается и успешно загружается, но не работает.
21.11.18 в 14:58
0
А ни кто из пользователей не настраивал tmc2208 на клипре какие есть подводные камни ? Почему то на распродаже выбор пал на них . А потом на гитхабе клипера с ними у многих проблема выбивает по перетоку. И говорят настраивать UART , а подробной инструкции нет.
22.11.18 в 22:09
1
  1. Снимаешь с RAMPS все джамперы/перемычки под драйвером.
  2. Запаиваешь джампер/перемычку PDN_UART снизу на драйвере.
  3. Перепаиваешь ногу PDN_UART чтоб торчала вверх.
  4. Соединяешь торчащую ногу PDN_UART проводком с любым доступным/свободным пином на RAMPS.
  5. В конфиге Klipper добавляешь соответствующую секцию для ТМС2208, в которой указываешь пин, подключенный в п.4. и другие пареметры напр.:

[tmc2208 extruder]
uart_pin = ar63
microsteps = 8
run_current = 0.8
Приведен минимум необходимых параметров. Остальное см. example-extras.cfg
23.11.18 в 13:40
0
Простите за глупый вопрос.
Если все вычисления делает Клиппер, то какая нужда для кручения моторчиков использовать более дорогую, 32 битную, Дую?
Ведь RURAMPS4D из коробки работает и с Мегой?

Не слишком расточительно?
23.11.18 в 13:51
1
Выше 150 мм/с на 0,9 моторе, 1/16 делителе, на одной Меге 2560 не получится разогнаться. Достигается предел по шагам в секунду:
Micro-controllerFastest step rate3 steppers active
16Mhz AVR151K100K
20Mhz AVR189K125K
Arduino Zero (ARM SAMD21)234K217K
STM32F103333K300K
Arduino Due (ARM SAM3X8E)410K397K
Smoothieboard (ARM LPC1768)487K487K
Smoothieboard (ARM LPC1769)584K584K
SAM4E8E ARM638K638K
Beaglebone PRU680K680K
23.11.18 в 13:55
1
Простите за глупый вопрос.
Если все вычисления делает Клиппер, то какая нужда для кручения моторчиков использовать более дорогую, 32 битную, Дую?
Ведь RURAMPS4D из коробки работает и с Мегой?

Не слишком расточительно?
Вопрос абсолютно разумный. Дело в том, что Due у меня уже была от Марлина. С мегой рурампс работает, но там немного надо подколхозить механически с пинами - иначе не поженятся... Но предел по частоте генерации импульсов никто не отменял - у меня моторы 0,9 и выше 150мм/с не прыгнуть на меге
24.11.18 в 13:33
0
Спасибо за ответы. Значит в моём случае хватит за глаза. :-)

p.s. Не представляю себе печать со скоростью 15 cм/с и тем более выше :-)
24.11.18 в 20:12
0
Есть еще холостые перемещения, а их тоже надо считать (у меня 300 мм/с.). Высокие скорости на холостых очень помогают при ретрактах.
24.11.18 в 21:50
0
Понимаю. Пустую голову так можно таскать, а двухголовый "директ" увы :-)

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

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

"Архивируем" модуль EEPROM для ArduinoDue

Обзор 3D-принтера Creality CR-X

Оптика на FDM 3D-принтере – как это делается

Технология обработки печатных изделий

RIZE представляет полноцветный настольный 3d-принтер XRIZE и новые материалы

Pixel tolerance