Ремикс на PRUSIA MMU2 (Часть 2: блок электроники и доработки)

SergeyDSI
Идет загрузка
Загрузка
01.02.2019
11965
22
Техничка

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

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

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

71
Итак, в качестве продолжения, первой части - новый этап моей эпопеи с созданием Prusa MMU2 на базе RAMPS/KLIPPER.
Какие неприятные моменты выявились на первом этапе:
  • Очень сильно выпирали соединительные муфты, оси экструдера и селектора филамента;
  • В оригинальной конструкции используется функционал драйверов TMC2130 позволяющий отказаться от концевиков;
  • Нужно было придумать куда и как будет крепится блок электроники;



Первая проблема была решена путем печати проставок под шаговики - внутри них спрятались муфты, а также повяилось дополнительное пространство для креплена блока электроники:
Так как ось селектора выхода филамента представляет из себя шпильку, а разорятся на TMC2130 во первых накладно, во вторых это не наш метод - решено было установить на нее концевик на кронштене, который крепится с помощью моторов:
Блок электроники расположил прямо над шаговиками - по моему вышло удачно и компактно по высоте:
Белая коробочка сверху - это феншуй))) внутри нее адаптер для 12В индукционного сенсора в виде двух резисторов, а также подтягивающий резистор для концевика и все это втыкается в штырьки endstop осей X,Y и имеет удобные выхода для подключения самих датчиков и концевиков.

Кнопки ручного выбора филамента, а также светодиоды будут располагаться на верхней крышке, там же будет 40мм кулер (если понадобится), который будет запитан от штатного разьема управления кулером на самой RAMPS. Кнопки и светодиоды планирую подключать к AUX-4 (разьем куда подключается дисплей - нужно 10 пинов)

Попутно набросал конфиг для KLIPPER - кто в теме, возможно будет интересно:

# ORIGINAL CONFIG:

[extruder]

step_pin: ar26

dir_pin: ar28

enable_pin: !ar24

step_distance: .002351646

nozzle_diameter: 0.400

filament_diameter: 1.750

heater_pin: ar10

sensor_type: EPCOS 100K B57560G104F

sensor_pin: analog13

control: pid

pid_Kp: 31.315

pid_Ki: 1.725

pid_Kd: 142.091

min_temp: 10

max_temp: 350

max_extrude_only_distance: 350.0

pressure_advance: 0.20

pressure_advance_lookahead_time: 0.010

max_extrude_cross_section: 65

#----- new entry 5.12.18 for retract

max_extrude_only_velocity: 100.0

max_extrude_only_accel: 6000.0

#additional

activate_gcode:

SET_PIN PIN=mmu_led1 VALUE=.5

MMU_SWITCH_FILAMENT 0

SET_PIN PIN=mmu_led1 VALUE=1

deactivate_gcode:

MMU_UNLOAD_FILAMENT

SET_PIN PIN=mmu_led1 VALUE=0

# ADDITIONAL MMU CONFIG ====================================================================

[mcu mmu]

serial: /dev/ttyUSB1

pin_map: arduino

[extruder1]

step_pin: ar26

dir_pin: ar28

enable_pin: !ar24

step_distance: .002351646

nozzle_diameter: 0.400

filament_diameter: 1.750

shared_heater: extruder

min_temp: 10

max_temp: 350

max_extrude_only_distance: 350.0

pressure_advance: 0.20

pressure_advance_lookahead_time: 0.010

max_extrude_cross_section: 65

max_extrude_only_velocity: 100.0

max_extrude_only_accel: 6000.0

activate_gcode:

SET_PIN PIN=mmu_led2 VALUE=.5

MMU_SWITCH_FILAMENT 1

SET_PIN PIN=mmu_led2 VALUE=1

deactivate_gcode:

MMU_UNLOAD_FILAMENT

SET_PIN PIN=mmu_led2 VALUE=0

[extruder2]

step_pin: ar26

dir_pin: ar28

enable_pin: !ar24

step_distance: .002351646

nozzle_diameter: 0.400

filament_diameter: 1.750

shared_heater: extruder

min_temp: 10

max_temp: 350

max_extrude_only_distance: 350.0

pressure_advance: 0.20

pressure_advance_lookahead_time: 0.010

max_extrude_cross_section: 65

max_extrude_only_velocity: 100.0

max_extrude_only_accel: 6000.0

activate_gcode:

SET_PIN PIN=mmu_led3 VALUE=.5

MMU_SWITCH_FILAMENT 2

SET_PIN PIN=mmu_led3 VALUE=1

deactivate_gcode:

MMU_UNLOAD_FILAMENT

SET_PIN PIN=mmu_led3 VALUE=0

[extruder3]

step_pin: ar26

dir_pin: ar28

enable_pin: !ar24

step_distance: .002351646

nozzle_diameter: 0.400

filament_diameter: 1.750

shared_heater: extruder

min_temp: 10

max_temp: 350

max_extrude_only_distance: 350.0

pressure_advance: 0.20

pressure_advance_lookahead_time: 0.010

max_extrude_cross_section: 65

max_extrude_only_velocity: 100.0

max_extrude_only_accel: 6000.0

activate_gcode:

SET_PIN PIN=mmu_led4 VALUE=.5

MMU_SWITCH_FILAMENT 3

SET_PIN PIN=mmu_led4 VALUE=1

deactivate_gcode:

MMU_UNLOAD_FILAMENT

SET_PIN PIN=mmu_led4 VALUE=0

[extruder4]

step_pin: ar26

dir_pin: ar28

enable_pin: !ar24

step_distance: .002351646

nozzle_diameter: 0.400

filament_diameter: 1.750

shared_heater: extruder

min_temp: 10

max_temp: 350

max_extrude_only_distance: 350.0

pressure_advance: 0.20

pressure_advance_lookahead_time: 0.010

max_extrude_cross_section: 65

max_extrude_only_velocity: 100.0

max_extrude_only_accel: 6000.0

activate_gcode:

SET_PIN PIN=mmu_led5 VALUE=.5

MMU_SWITCH_FILAMENT 4

SET_PIN PIN=mmu_led5 VALUE=1

deactivate_gcode:

MMU_UNLOAD_FILAMENT

SET_PIN PIN=mmu_led5 VALUE=0

[stepper_mmu_sel_filament]

#use stepper X on RAMPS

step_pin: mmu:ar54

dir_pin: mmu:ar55

enable_pin: !mmu:ar38

# for standart stepper nema17 and divider 1/16 with 8mm/2mm leadscrew = 1600 steps/mm or 1/1600

step_distance: .000625

endstop_pin: ^mmu:ar3

#offset from endstop to last filament pos in mm

position_endstop: 5

position_max: 150

homing_speed: 50

[stepper_mmu_select_extruder]

#use stepper Y on RAMPS

step_pin: mmu:ar60

dir_pin: !mmu:ar61

enable_pin: !mmu:ar56

#distant in grade 360 full loop * 16 / 200 = 8.888888 (1/8.888888)

step_distance: .1125

[stepper_mmu2_load_filament]

#use stepper E0 on RAMPS

step_pin: mmu:ar26

dir_pin: mmu:ar28

enable_pin: !mmu:ar24

#MK8 Effective diameter: 6.7mm circumference : 21mm

#Steps per mm: 152 approx. - tested with direct drive, 200 steps/rev and 1/16th. microstepping: 200 * 16 / 21 ~= 152 (1/152)

step_distance: .0065789473684211

[mmu]

#distance from hotend to extruder in mm

hotend_len: 50

#distance from extruder to mmu FINDA in mm

extruder_len: 300

#distance from FINDA to parking position in mm

parking_len: 40

#min temperature to chage filament

change_temp: 200

#distance X between filaments in mm (offset position setup in stepper_mmu_sel_filament as position_endstop)

dist_filament: 15

#buttons to manual select at AUX4 (pullup)

mmu_but1: !mmu:ar32

mmu_but2: !mmu:ar47

mmu_but3: !mmu:ar45

mmu_but4: !mmu:ar43

mmu_but5: !mmu:ar41

#leds for show selected at AUX4

[output_pin mmu_led1]

pin: mmu:ar39

pwm: True

#low speed for setup blinking mode if it need

cycle_time: 0.500

[output_pin mmu_led2]

pin: mmu:ar37

pwm: True

cycle_time: 0.500

[output_pin mmu_led3]

pin: mmu:ar35

pwm: True

cycle_time: 0.500

[output_pin mmu_led4]

pin: mmu:ar33

pwm: True

cycle_time: 0.500

[output_pin mmu_led5]

pin: mmu:ar31

pwm: True

cycle_time: 0.500

#END CONFIG


Электроника практически готова - приступаю к написанию кода под KLIPPER.

Спасибо всем кому интересно!

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

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

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

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

Комментарии

01.02.2019 в 15:09
1

Простите, пропустил. Проект будет в открытом доступе?

01.02.2019 в 15:39
13

безусловно!

По итогу:
1. выложу все модифицированные STL
2. на github - исходный код
3. ссылки на комплектуху (дабы знать что искать)

02.02.2019 в 11:16
1

Аплодисменты !!!  

ヽ༼⊙ل͜⊙༽ノ

01.02.2019 в 15:44
0

Очень Интересно!

Благодарю!

Предлагаю название:
MMU2, Russian BruteForce Edition, MegaRAMPS Version.

Ну или...
'Наш ответ чехам'.

* * *
Вопрос 1:
Вот уже второй пост на тему MMU2. но что-то я не увидел ни одного фото с лакреплённым лезвием,
формующим кромки филаментов, как у оригиналя Prusa Research.

Этот функционал - будет, или Вы его выкинули за ненадобностью?

* * *
Вопрос 2:
Будет ли реализован самотест Вашего MMU2, например - на предмет тестирования исправности всех 'введённых' концевиков.
В оригинале этого нет, Вы сами про это написали, раз заменили драйверы на другие.

ski
01.02.2019 в 16:18
1

Вот уже второй пост на тему MMU2. но что-то я не увидел ни одного фото с лакреплённым лезвием,
формующим кромки филаментов, как у оригиналя Prusa Research.
Да лезвие на месте - просто не вижу смысла акцентировать внимание - в оригинальном видео все четко представлено. Но как я понял оно там выполняет побочную функцию:
- изначально селектор паркуется вправо к мотору, лезвие стоит со смещением влево, затем идет отверстие подачи. Как я понял при выборе прутка - селектор движется влево и если на его пути будут остатки прутка он их обрежет.... резать по пути назад он не может такова конструкция ножа.
Будет ли реализован самотест Вашего MMU2, например - на предмет тестирования исправности всех 'введённых' концевиков.
В оригинале этого нет, Вы сами про это написали, раз заменили драйверы на другие.
Спасибо за наводку - не подумал об этом. Но думаю это несложно реализовать. В настоящий момент проект команд таков:

  • MMU_SWITCH_FILAMENT [0..4], [default False or True - ignore disabled state]
  • MMU_UNLOAD_FILAMENT
  • MMU_RESET
  • MMU_ENABLE
  • MMU_DISABLE
  • MMU_LEDS_BLINK
  • MMU_LEDS_OFF
  • MMU_STANDBY

01.02.2019 в 17:41
1

А чем не устраивает поддержка оригинального MMU в klipper?

01.02.2019 в 17:46
1

можно по подробнее?

01.02.2019 в 17:50
1

trevjonez  пилит код под оригинал mmu.

01.02.2019 в 17:54
1

Я кстати изначально так и собирался, но потом Kevin меня отговорили - предложив именно управление под KLIPPER

01.02.2019 в 17:53
1

Насколько я понял, речь идет об поддержке оригинального mmu, сторонним разработчиком, также в виде плагина. 
Ну в любом случае, у меня не оригинальный mmu а значит и поддержка будет другая. К тому же, я не хочу подключать данный модуль к принтеру - это  будет отдельное решение, под управлением klipper в режиме multi mcu....

01.02.2019 в 18:18
1

Вам результат или процесс? https://github.com/trevjonez/klipper/tree/tjones/mmu2_homing/klippy/extras/filament_selector Филамент селектор :-)
оригинальный мму тоже подразумевает использование мульти-мцу. под оригинал УЖЕ есть прошивка и вроде уже работает. PR в стадии вялотекущего обсуждения. Ваш мму от оригинала отличается только микроконтроллером

01.02.2019 в 18:28
1

оригинальный мму тоже подразумевает использование мульти-мцу. под оригинал УЖЕ есть прошивк
Вы сами себе противоречите. Если используется multi mcu то прошивка на обеих платах клиперовская - драйвер.

01.02.2019 в 18:33
1

Вы в гитхаб умеете?  https://github.com/trevjonez/klipper/tree/tjones/mmu2-fw

01.02.2019 в 18:34
1

Вы в гитхаб умеете?
не понял вопроса

01.02.2019 в 18:34
1

PR в стадии вялотекущего обсуждения.
Я знаю что есть порт прошивки mmu2 на RAMPS. Но смотрите в оригинале идет связь MMU2 c платой принтера через последовательный порт и текстовые комманды. Половину функционала выполняет прошивка, в качестве которой надо еще разбираться.

Я хочу убрать эту нелепую прослойку вида KLIPPER -> принтер -> MMU2. 
А сделать независимо:  принтер <---> KLIPPER <---> MMU2

К тому же все будет оформлено в виде простого плагина под KLIPPER с его прошивкой MCU. Ведь если Вы посмотрите на 'вялотекущее' решение, там плагин достаточно сложен, только лишь для организации и парсинга комманд управление MMU. Мой же  лагиин будет значительно локаничнее - полностью управляем под клиепером и гибок в плане настройки конфигов или кода.

01.02.2019 в 18:54
1

попробуйте все же с  Trevor Jones пообщаться. ММУ составная система с ДВУМЯ моторами экструдера

Но смотрите в оригинале идет связь MMU2 c платой принтера через последовательный порт и текстовые комманды
Через USB с машиной на которой установлен слайсер

01.02.2019 в 21:16
1

Через USB с машиной на которой установлен слайсер
Вы что то совсем запутались... причем тут слайсер и машина на которой он стоит..... короче я ознакомился с проектом - это копия оригинала со всеми вытекающими недостатками. Я буду развивать свою версию - в ней я полностью уверен. А Трэвор пусть развивает свою)

01.02.2019 в 21:36
1

да. запутался с мму и юсби. видимо отложилась возможность прошивки MMU2 из Slic3r. В любом случае Вам большое спасибо за пластиковые детали.
А код Тревора собирается и заливается в 32u4 как положено в клиппере мульти-мцу. :-)

[TABLE][TR][TD][mcu mmu2][/TD][/TR][TR][TD][/TD][TD]serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00[/TD][/TR][TR][TD][/TD][TD] [/TD][/TR][TR][TD][/TD][TD][hc595 mmu2_sr][/TD][/TR][TR][TD][/TD][TD]mcu: mmu2[/TD][/TR][TR][TD][/TD][TD]data_pin: PB5[/TD][/TR][TR][TD][/TD][TD]latch_pin: PB6[/TD][/TR][TR][TD][/TD][TD]clock_pin: PC7[/TD][/TR][TR][TD][/TD][TD] [/TD][/TR][TR][TD][/TD][TD][mmu2][/TD][/TR][TR][TD][/TD][TD]mcu: mmu2[/TD][/TR][/TABLE]

01.02.2019 в 22:58
0

Вы код смотрели?

https://github.com/trevjonez/klipper/blob/tjones/mmu2-fw/klippy/extras/mmu2.py

либо это недописанная поделка, либо это не МЦУ.... ибо тут нет ничего!!!! я так понимаю чувак заварил кофе, открыл нотепад и залип в отладке или танках)

02.02.2019 в 10:31
0

Вы код смотрели?
Смотрел... и в отличии от Вас увидел рабочий репозитарий для написания прошивки клиппера под ММУ2 
https://github.com/trevjonez/klipper/commit/6d3b99e1567170ccca47d322e304bea528c4e514
либо это недописанная поделка
что-то должно этим фирварем дергать. mmu2.py и дергает. 
а так у Тревора всего шесть репо, в каждом из них тестируется  одна из частей всего комплекса

02.02.2019 в 16:44
1

За клиппер отдельный респект, щас для дельт bed_mesh в мастер добавят и буду наверно в этой затее участвовать, смелее стлки в сеть бросай и подключусь к колхозингу )

07.02.2019 в 16:32
1

Отличная задумка. Буду с удовольствием следить за ходом продвижения! Автору респект!

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

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

TriGorilla + Klipper + OLED SSD1306 I2C

Полка для поилки в клетку.

Пленка "Non FEP" от Epox для LCD-принтеров

Посиделки. Масштаб 1:43.

КИБЕРПОНЕДЕЛЬНИК 2020 - Стартуем 27 января в 00:00

Разборная сферическая форма