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

plasmacut

МЕСТНЫЙ
ПРОВЕРЕННЫЙ
Регистрация
03.08.2020
Сообщения
48
Реакции
47
Баллы
38
Город
Одесса
В качестве исходной для фрезера-лазера на основе 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) не реагирует. Прошу знатоков Марлина поправить прилагаемую прошивку для устранения вышеуказанных проблем.
 

Вложения

  • Marlin-CNC_Mill_1.zip
    2.2 MB · Просмотры: 196
Вопрос немного не в тему, а repetier-ом никто прошивать не пробовал? Вроде даже в онлайн конфигураторе есть поддержка CNC станков с возможностью управления шпинделем, и выбором для него порта, (типа шпиндель можно вообще вместо экструдера или стола подключить) в старой (0,91) версии не все гладко было с измерением уровня поверхности стола, но сейчас то у них версия актуальная 1.0.4, думаю что с проблемой то за эту кучу промежуточных версий уже разобрались (эх давно я по 3д принтерным прошивкам не лазил)
 
Вопрос немного не в тему, а repetier-ом никто прошивать не пробовал?
Почему не в тему? Я с Репитера и начал. Как раз и привлекало меню конфигурации. Все бы хорошо, но когда попытался сделать ШИМ регулировку на пин.6 по командам с УП: M03 S125 ничего на этот пин не выводилось. Я написал на их форуме. В результате ответ был неутешительный. После этого нашел на HitHube аналогичные Репитеру конфигураторы для Marlin. Попытался сделать с ними прошивку для лазера-фрезера. Они ее формируют, но когда открываешь Arduino IDE их скетч, выдает ошибку при компиляции. В общем пока проблемы. Если можете, прошу глянуть прилагаемую в 1 посте прошивку. Что ей мешает управлять выходами D8 D9 из управляющей программы? Также с пином 6, как описано выше.
 
  • Последнее редактирование:
Последнее редактирование:
Почему не в тему? Я с Репитера и начал. Как раз и привлекало меню конфигурации. Все бы хорошо, но когда попытался сделать ШИМ регулировку на пин.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. Вообще довольно интересная задачка использование меги в качестве процессора, возможностей на порядок больше чем у уно, дуо вообще избыточна для станка с его скоростями, только вот нормальной прошивки я сам одно время не нашел, а сам с трудом понимаю что в стандартных прошивках менять нужно и зачем.
 
я разбираюсь на уровне чукчи, немного, ориентируясь на пролетарское чутье...
у Вас тип машины какой выставлен? в 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)
 
я разбираюсь на уровне чукчи, немного, ориентируясь на пролетарское чутье...
у Вас тип машины какой выставлен? в 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.
 
  • Последнее редактирование:
Последнее редактирование:
примеры(чисто мое видение):
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
 
  • Последнее редактирование:
Последнее редактирование:
Вышеописанная проблема решена. Прошивка выше вполне рабочая. На выводы D8 и D9 сигнал управления шпинделем и мотором охлаждения выводится нормально. Оказывается автор сделал одну хитрость: пока не сделаешь перед отработкой программы обнуление осей вручную из меню или в тексте программы G92 X0 Y0 Z0 , программа не включает шпиндель. Если выполнить обнуление, все идет как надо. Это хорошо, что я еще раз пересмотрел видео на Ютубе, где это показано, а то я уже все перебробовал, в том числе и о том, о чем вы писали выше. А вот как без детального описания работы с такими вещами разбираться? Я имею ввиду что предусмотрел автор в прошивке. Я в другой ветке еще спрашивал: не видел ли кто симулятора Ардуино для Протеуса? Здорово бы время отладки и тестирования сэкономил бы.
Буду с этой прошивкой разбираться далее. Меня интересует работа с Z-щупом. Прошу здесь написать какие его функции вы используете. Я имею ввиду делаете ли простейшую привязку к высоте стола в одной точке, или снимаете карту высот, которая в процессе работы учитывается при отработке программы?
 
завтра попробую на своем(у меня марлин2, но но я хоть и игрался в свое время с управлением шпинделем,но сейчас просто стоит отдельный блок питания с крутилкой), не замечал раньше такого.. хотя перед работой всегда даю команду хоум, может ее тоже достаточно.
карта высот - у мя имееться BLTOUCH, с его помощью снимаеться уровень кривизны стола (AUTO_BED_LEVELING_BILINEAR, команда G29 с кучей параметров), собств. это типа карта высот.. пользуюсь при фрезеровке кривых печатных плат.
 
завтра попробую на своем(у меня марлин2, но но я хоть и игрался в свое время с управлением шпинделем,но сейчас просто стоит отдельный блок питания с крутилкой), не замечал раньше такого.. хотя перед работой всегда даю команду хоум, может ее тоже достаточно.
карта высот - у мя имееться BLTOUCH, с его помощью снимаеться уровень кривизны стола (AUTO_BED_LEVELING_BILINEAR, команда G29 с кучей параметров), собств. это типа карта высот.. пользуюсь при фрезеровке кривых печатных плат.

прошивка что в первом посте отличается от других, которые мне попадались. Я пока не имею возможности проверить ее работу со станком, т.к. он разобран для модернизации. Проверял ее на столе с подключенными двигателями.
Что касается карты высот есть такие вопросы:
- какой датчик используете для снятия карты высот? Контактный (зажим крокодил на инструмент) или еще какой
- как выглядит процесс работы в этом режиме? Видел на видео, что программа перемещает картетку в нужную точку по X Y, а оператор двигает контактную пластину размещая ее под инструментом.
- куда (на какие пины) у вас подключен Z-щуп? На Хmin?
Как попробуете отпишите сюда.
Вы в каком режиме работаете на станке: от ЖКИ пульта с SD карты или от компьютера через программу хост?
 
  • Последнее редактирование:
Последнее редактирование:
BLTOUCH - достаточно частый на 3д принтерах механический Z датчик,крепиться рядом с соплом, шток с магнитиком и датчиком холла, вроде, точность пара соток, шток в неработающем положении втянут, гдет на сантиметр. В марлине, репитере, смузи поддержка встроена(как и автолевел с его помощью), отдельные пины выведены на моей плате(плата SKR1.3(32 бита), на РАМПс тоже можно но не цеплял). Z-щуп полагаю это касание фрезой детали, в случае BLTOUCH надо еще учесть высоту фрезы( или наоборот зажать фрезу когда она касаеться детали а каретка на расчетной высоте..). еще минусы - у меня шток не держиться втянутым при вибрациях, да и сантиметр выше фрезы- при высокой детали можно зацепить.... но для плат достаточно.
карта высот, точней на марлине я под платы пользую автолевел, это команда G29 с параметрами, задаем начало измерений, размеры прямоугольника от этого начала и на скоко точек замерять,( но это в марлине2.0, он на мегу2550 может и не встать, на первом марлине не делал).Посылаем команду, десяток точек меряеться автоматом пара минут, ну и все.. После чего шток втягиваеться, и можно подрегулировав смещение по Z (или перезатянув фрезу на нужную высоту) запускать УП.
если интересно - Bed Leveling (Automatic)
 
  • Последнее редактирование:
Последнее редактирование:
Попробывал повключать шпиндель... без проблемм, позиционировать, хоумиться, не надо, М3 и М4 с консоли работают(а также кнопки шпинделя в CNCjs), шим у меня не настроен. Марлин2,скачан с сайта марлина, под фрезер настроек не производилось(включил только гдето возможность управлять шпинделем), повесил затычки вместо термодатчиков и тревоги по температуре убрал.. Скрипт pcb-gcode в Eagle дает нормальный г-код, так что печатные платы только в путь.. Если надо через полчаса неспешно фрезер становиться 3д принтером, без перешивки....
да, там чтото задержка какаято включения - 5 сек от нажатия кнопки. не разбирался, мне удобней вручную рубильником от отдельного источника включать, да и помех на электроннику меньше.
 
Выкладываю рабочую Marlin.
Загрузочное меню не трогал, ибо исходники взяты оттуда, слегка доработана, есть щуп, обнуление осей. Работает с любой исходной точки, если через меню обнулиться.
Сам ещё тестю, устраивает полностью. Прошивка под SKR 1.3 и Full Graphic Smart Controller 128x64. Будут вопрсы-отвечу
 
Докладываю.....
Все прошло успешно, мне нравится, не более, чем по кнопкам в компе тыкать, уж лучше, чем TFT, да и марлин как то мягче работает. Жаль с танцами с бубном кату высот строить, так бы и домашний перевел бы. И кстати, с помехами на этой плате получше, есть у меня говно кабель, с ним постоянно помехи ловил, с этой платой не замечено. В любом случае я добился, чего хотел
 
Жаль с танцами с бубном кату высот строить
Так это ж самое самое в CNC!!!

Надеюсь, в след. докладе будет, что кабель (см. выше) выкинул в окно (никакая плата его не должна спасти)... :)

оффтоп
 
Сверху Снизу
Обнаружен блокировщик рекламы AdBlock

МЫ ДОГАДЫВАЕМСЯ, ЧТО РЕКЛАМА ВАС РАЗДРАЖАЕТ!

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

Спасибо за Ваше понимание!

Я отключил свой AdBlock    Нет, я не буду ничего отключать