Вопрос к специалистам Marlin

plasmacut

plasmacut

МЕСТНЫЙ
Регистрация
03.08.2020
Сообщения
44
Репутация
33
Баллы
18
Город
Одесса
В качестве исходной для фрезера-лазера на основе CNC3018 имею прилагаемую прошивку для комплекта Arduino Mega 2560 R3, 12864 RepRapDiscount Full Graphic Smart Controller, RAMPS 1.4. Детальную проверку функционала пока не делал, но уже есть такая проблема:
Пытаюсь включать из УП шпиндель и кулер, которые сконфигурированны на выходы D8 и D9 . Пробовал команды M3/M4/M5 и также например M106 P1 S128. От управляющей программы выводы D8 D9 не включаются этими командами. В то же время если включить шпиндель и кулер через меню на ЖКИ экране, то они включаются и регулируются от энкодера. Не понимаю какие изменения в прошивке нужно сделать, чтобы УП могла в процессе работы включать и регулировать обороты шпинделя и кулера аналогично ручной регулировке? Ведь при лазерной гравировке фотографий в УП идет постоянное управление мощностью лазера, значит оно должно работать из текста УП.

Еще пробовал управлять пинами 4, 5, 6. Если в УП написать: M42 P6 S120, то на 6 пине появляется ШИМ заданной длительности., а на обычные команды включения шпинделя (M3, M106) не реагирует. Прошу знатоков Марлина поправить прилагаемую прошивку для устранения вышеуказанных проблем.
 

Вложения

Efenia

Efenia

МЕСТНЫЙ СТАРОЖИЛА
Команда форума
НАШ ЧЕЛОВЕК
Регистрация
24.08.2018
Сообщения
4 057
Репутация
2 810
Баллы
150
Возраст
49
Город
Долгопрудный
Имя
Владимир
Плата
MKS DLC GRBL
Вопрос немного не в тему, а repetier-ом никто прошивать не пробовал? Вроде даже в онлайн конфигураторе есть поддержка CNC станков с возможностью управления шпинделем, и выбором для него порта, (типа шпиндель можно вообще вместо экструдера или стола подключить) в старой (0,91) версии не все гладко было с измерением уровня поверхности стола, но сейчас то у них версия актуальная 1.0.4, думаю что с проблемой то за эту кучу промежуточных версий уже разобрались (эх давно я по 3д принтерным прошивкам не лазил)
 

plasmacut

АВТОР
P

plasmacut

МЕСТНЫЙ
Регистрация
03.08.2020
Сообщения
44
Репутация
33
Баллы
18
Город
Одесса
Вопрос немного не в тему, а repetier-ом никто прошивать не пробовал?
Почему не в тему? Я с Репитера и начал. Как раз и привлекало меню конфигурации. Все бы хорошо, но когда попытался сделать ШИМ регулировку на пин.6 по командам с УП: M03 S125 ничего на этот пин не выводилось. Я написал на их форуме. В результате ответ был неутешительный. После этого нашел на HitHube аналогичные Репитеру конфигураторы для Marlin. Попытался сделать с ними прошивку для лазера-фрезера. Они ее формируют, но когда открываешь Arduino IDE их скетч, выдает ошибку при компиляции. В общем пока проблемы. Если можете, прошу глянуть прилагаемую в 1 посте прошивку. Что ей мешает управлять выходами D8 D9 из управляющей программы? Также с пином 6, как описано выше.
 

Efenia

Efenia

МЕСТНЫЙ СТАРОЖИЛА
Команда форума
НАШ ЧЕЛОВЕК
Регистрация
24.08.2018
Сообщения
4 057
Репутация
2 810
Баллы
150
Возраст
49
Город
Долгопрудный
Имя
Владимир
Плата
MKS DLC GRBL
Почему не в тему? Я с Репитера и начал. Как раз и привлекало меню конфигурации. Все бы хорошо, но когда попытался сделать ШИМ регулировку на пин.6 по командам с УП: M03 S125 ничего на этот пин не выводилось. Я написал на их форуме. В результате ответ был неутешительный. После этого нашел на HitHube аналогичные Репитеру конфигураторы для Marlin. Попытался сделать с ними прошивку для лазера-фрезера. Они ее формируют, но когда открываешь Arduino IDE их скетч, выдает ошибку при компиляции. В общем пока проблемы. Если можете, прошу глянуть прилагаемую в 1 посте прошивку. Что ей мешает управлять выходами D8 D9 из управляющей программы? Также с пином 6, как описано выше.
Если честно, не знаю, что там может мешать, читал что в марлине подключают шпиндель (скорее всего безколлектроный через частотник) на шим вентилятора, используют команду М106, но на этом мои познания заканчиваются, про репитиер написал потому что сам одно время искал что можно использовать для управления 4 той осью, а мега и рампс давно валялись без дела, остались после сборки 3х 3д принтеров. с Arduino IDE при прошивках 3д принтеров марлином были проблемы, при попытке записи большинство версий выдавало, что памяти не хватает, нашел старую версию 1.5 (простите по моему так, давно прошивками не баловался), так с этой версией проглатывались прошивки на ура,
Ваши сообщения автоматически объединены:

Почему не в тему? Я с Репитера и начал. Как раз и привлекало меню конфигурации. Все бы хорошо, но когда попытался сделать ШИМ регулировку на пин.6 по командам с УП: M03 S125 ничего на этот пин не выводилось. Я написал на их форуме. В результате ответ был неутешительный. После этого нашел на HitHube аналогичные Репитеру конфигураторы для Marlin. Попытался сделать с ними прошивку для лазера-фрезера. Они ее формируют, но когда открываешь Arduino IDE их скетч, выдает ошибку при компиляции. В общем пока проблемы. Если можете, прошу глянуть прилагаемую в 1 посте прошивку. Что ей мешает управлять выходами D8 D9 из управляющей программы? Также с пином 6, как описано выше.
Значит как я понял вы подключили все таки шпиндель? только не работает его управление оборотами? Вот отсюда поподробнее, обороты шпинделя я все равно регулирую вручную через внешний шим, так что это для меня не принципиально, мне главное включение и отключение по команде M3/M5. Вообще довольно интересная задачка использование меги в качестве процессора, возможностей на порядок больше чем у уно, дуо вообще избыточна для станка с его скоростями, только вот нормальной прошивки я сам одно время не нашел, а сам с трудом понимаю что в стандартных прошивках менять нужно и зачем.
 
Последнее редактирование:

d007q

d007q

НЕ ТОЛЬКО ЧИТАЕТ
Регистрация
29.01.2020
Сообщения
70
Репутация
24
Баллы
18
Город
обнинск
Имя
d.
я разбираюсь на уровне чукчи, немного, ориентируясь на пролетарское чутье...
у Вас тип машины какой выставлен? в configuration.h ... гдет строка 121....
в файле пинов вот расшифровка есть...
RAMPS_13_EFB (Extruder, Fan, Bed)
* RAMPS_13_EEB (Extruder, Extruder, Bed)
* RAMPS_13_EFF (Extruder, Fan, Fan)
* RAMPS_13_EEF (Extruder, Extruder, Fan)
* RAMPS_13_SF (Spindle, Controller Fan)
 

Efenia

Efenia

МЕСТНЫЙ СТАРОЖИЛА
Команда форума
НАШ ЧЕЛОВЕК
Регистрация
24.08.2018
Сообщения
4 057
Репутация
2 810
Баллы
150
Возраст
49
Город
Долгопрудный
Имя
Владимир
Плата
MKS DLC GRBL
я разбираюсь на уровне чукчи, немного, ориентируясь на пролетарское чутье...
у Вас тип машины какой выставлен? в configuration.h ... гдет строка 121....
в файле пинов вот расшифровка есть...
RAMPS_13_EFB (Extruder, Fan, Bed)
* RAMPS_13_EEB (Extruder, Extruder, Bed)
* RAMPS_13_EFF (Extruder, Fan, Fan)
* RAMPS_13_EEF (Extruder, Extruder, Fan)
* RAMPS_13_SF (Spindle, Controller Fan)
В принципе любой, если шпиндель подключать к разъёму fan, разъем экструдера (это разъем шд) разъем bed , затребует контроль температуры, и работать постоянно будет, если этот контроль отключить, заманчиво выглядит шпиндель , вентилятор платы (spindle,controller fan) но я не знаю на какой порт придет сигнал для запуска и регулировки шпинделя, по идее должен либо на разъем стола, либо на какой то из разъемов нагревателя hotend.
 

d007q

d007q

НЕ ТОЛЬКО ЧИТАЕТ
Регистрация
29.01.2020
Сообщения
70
Репутация
24
Баллы
18
Город
обнинск
Имя
d.
примеры(чисто мое видение):
RAMPS_13_EFB (Extruder, Fan, Bed) - например, мне кажеться, Extruder, Fan, Bed будут выведены соответств. на d10, d9 и d8, а при SF функции шпинделя будут выведены на d9, вентилятор на d8, вот кусок с разными вариантами из pins_ramps.h:



#if ENABLED(IS_RAMPS_EFB) // Hotend, Fan, Bed
#define FAN_PIN RAMPS_D9_PIN
#define HEATER_BED_PIN RAMPS_D8_PIN
#elif ENABLED(IS_RAMPS_EEF) // Hotend, Hotend, Fan
#define HEATER_1_PIN RAMPS_D9_PIN
#define FAN_PIN RAMPS_D8_PIN
#elif ENABLED(IS_RAMPS_EEB) // Hotend, Hotend, Bed
#define HEATER_1_PIN RAMPS_D9_PIN
#define HEATER_BED_PIN RAMPS_D8_PIN
#elif ENABLED(IS_RAMPS_EFF) // Hotend, Fan, Fan
#define FAN_PIN RAMPS_D9_PIN
#define FAN1_PIN RAMPS_D8_PIN
#define HEATER_1_PIN RAMPS_D10_PIN
#elif ENABLED(IS_RAMPS_SF) // Spindle, Fan
#define FAN_PIN RAMPS_D8_PIN
#define HEATER_1_PIN RAMPS_D9_PIN -----выход шпинделя, несмотря на название HEATER скорее всего к данной функции в этом варианте отношения не имеет.
#else // Non-specific are "EFB" (i.e., "EFBF" or "EFBE")
#define FAN_PIN RAMPS_D9_PIN
#define HEATER_BED_PIN RAMPS_D8_PIN
#if HOTENDS == 1
#define FAN1_PIN MOSFET_D_PIN
#else
#define HEATER_1_PIN MOSFET_D_PIN
#endif

для внешнего контроллера управляемого по пинам 4,5,6 надо глянуть конфликты с другими включеными функциями, которые могут перехватить нужные пины:

//
#if ENABLED(SPINDLE_LASER_ENABLE) && !PIN_EXISTS(SPINDLE_LASER_ENABLE)
#if !defined(NUM_SERVOS) || NUM_SERVOS == 0 // try to use servo connector first ---если включено серво, то пины уйдут туда приорететно
#define SPINDLE_LASER_ENABLE_PIN 4 // Pin should have a pullup/pulldown!
#define SPINDLE_LASER_PWM_PIN 6 // MUST BE HARDWARE PWM
#define SPINDLE_DIR_PIN 5
#elif !(ENABLED(ULTRA_LCD) && ENABLED(NEWPANEL) \
&& (ENABLED(PANEL_ONE) || ENABLED(VIKI2) || ENABLED(miniVIKI) || ENABLED(MINIPANEL) || ENABLED(REPRAPWORLD_KEYPAD:)) // try to use AUX 2 - если включено ченить из перечисленного, то пины уезжают на 40,44, 65
#define SPINDLE_LASER_ENABLE_PIN 40 // Pin should have a pullup/pulldown!
#define SPINDLE_LASER_PWM_PIN 44 // MUST BE HARDWARE PWM
#define SPINDLE_DIR_PIN 65
#endif
#endif
 
Последнее редактирование:

plasmacut

АВТОР
P

plasmacut

МЕСТНЫЙ
Регистрация
03.08.2020
Сообщения
44
Репутация
33
Баллы
18
Город
Одесса
Вышеописанная проблема решена. Прошивка выше вполне рабочая. На выводы D8 и D9 сигнал управления шпинделем и мотором охлаждения выводится нормально. Оказывается автор сделал одну хитрость: пока не сделаешь перед отработкой программы обнуление осей вручную из меню или в тексте программы G92 X0 Y0 Z0 , программа не включает шпиндель. Если выполнить обнуление, все идет как надо. Это хорошо, что я еще раз пересмотрел видео на Ютубе, где это показано, а то я уже все перебробовал, в том числе и о том, о чем вы писали выше. А вот как без детального описания работы с такими вещами разбираться? Я имею ввиду что предусмотрел автор в прошивке. Я в другой ветке еще спрашивал: не видел ли кто симулятора Ардуино для Протеуса? Здорово бы время отладки и тестирования сэкономил бы.
Буду с этой прошивкой разбираться далее. Меня интересует работа с Z-щупом. Прошу здесь написать какие его функции вы используете. Я имею ввиду делаете ли простейшую привязку к высоте стола в одной точке, или снимаете карту высот, которая в процессе работы учитывается при отработке программы?
 
Последнее редактирование:

d007q

d007q

НЕ ТОЛЬКО ЧИТАЕТ
Регистрация
29.01.2020
Сообщения
70
Репутация
24
Баллы
18
Город
обнинск
Имя
d.
завтра попробую на своем(у меня марлин2, но но я хоть и игрался в свое время с управлением шпинделем,но сейчас просто стоит отдельный блок питания с крутилкой), не замечал раньше такого.. хотя перед работой всегда даю команду хоум, может ее тоже достаточно.
карта высот - у мя имееться BLTOUCH, с его помощью снимаеться уровень кривизны стола (AUTO_BED_LEVELING_BILINEAR, команда G29 с кучей параметров), собств. это типа карта высот.. пользуюсь при фрезеровке кривых печатных плат.
 

plasmacut

АВТОР
P

plasmacut

МЕСТНЫЙ
Регистрация
03.08.2020
Сообщения
44
Репутация
33
Баллы
18
Город
Одесса
завтра попробую на своем(у меня марлин2, но но я хоть и игрался в свое время с управлением шпинделем,но сейчас просто стоит отдельный блок питания с крутилкой), не замечал раньше такого.. хотя перед работой всегда даю команду хоум, может ее тоже достаточно.
карта высот - у мя имееться BLTOUCH, с его помощью снимаеться уровень кривизны стола (AUTO_BED_LEVELING_BILINEAR, команда G29 с кучей параметров), собств. это типа карта высот.. пользуюсь при фрезеровке кривых печатных плат.
прошивка что в первом посте отличается от других, которые мне попадались. Я пока не имею возможности проверить ее работу со станком, т.к. он разобран для модернизации. Проверял ее на столе с подключенными двигателями.
Что касается карты высот есть такие вопросы:
- какой датчик используете для снятия карты высот? Контактный (зажим крокодил на инструмент) или еще какой
- как выглядит процесс работы в этом режиме? Видел на видео, что программа перемещает картетку в нужную точку по X Y, а оператор двигает контактную пластину размещая ее под инструментом.
- куда (на какие пины) у вас подключен Z-щуп? На Хmin?
Как попробуете отпишите сюда.
Вы в каком режиме работаете на станке: от ЖКИ пульта с SD карты или от компьютера через программу хост?
 

d007q

d007q

НЕ ТОЛЬКО ЧИТАЕТ
Регистрация
29.01.2020
Сообщения
70
Репутация
24
Баллы
18
Город
обнинск
Имя
d.
BLTOUCH - достаточно частый на 3д принтерах механический Z датчик,крепиться рядом с соплом, шток с магнитиком и датчиком холла, вроде, точность пара соток, шток в неработающем положении втянут, гдет на сантиметр. В марлине, репитере, смузи поддержка встроена(как и автолевел с его помощью), отдельные пины выведены на моей плате(плата SKR1.3(32 бита), на РАМПс тоже можно но не цеплял). Z-щуп полагаю это касание фрезой детали, в случае BLTOUCH надо еще учесть высоту фрезы( или наоборот зажать фрезу когда она касаеться детали а каретка на расчетной высоте..). еще минусы - у меня шток не держиться втянутым при вибрациях, да и сантиметр выше фрезы- при высокой детали можно зацепить.... но для плат достаточно.
карта высот, точней на марлине я под платы пользую автолевел, это команда G29 с параметрами, задаем начало измерений, размеры прямоугольника от этого начала и на скоко точек замерять,( но это в марлине2.0, он на мегу2550 может и не встать, на первом марлине не делал).Посылаем команду, десяток точек меряеться автоматом пара минут, ну и все.. После чего шток втягиваеться, и можно подрегулировав смещение по Z (или перезатянув фрезу на нужную высоту) запускать УП.
если интересно - Bed Leveling (Automatic)
 
Последнее редактирование:
Сверху Снизу