Настройка Marlin; дополнительный вывод после перемещения G0/G1
Этот вопрос касается Anet A8 с настроенной прошивкой Marlin 1.1.9.
Мне нужно сгенерировать дополнительный цифровой выход, чтобы сигнализировать о завершении перемещения, чтобы запустить некоторый процесс сбора данных. Экструдер не подключен и планировал использовать эти выходы.
Какой раздел обрабатывает обработку G-кода и есть ли уже доступный вариант для выполнения этой работы?
В принципе, я пытаюсь использовать Anet A8 в качестве системы позиционирования с компьютерным управлением. Это включает в себя некоторые другие элементы, которые необходимо активировать в стационарном состоянии. Требование таково: G0 X10 Y10
после завершения: установите высокий и низкий пин после задержки 10 мс. это после каждого движения. Кроме того, если бы я мог добавить свой собственный G-код, чтобы сохранить исходную операцию, было бы идеально.
@Ahe, 👍3
1 ответ
Лучший ответ:
Какой раздел обрабатывает обработку G-кода?
В прошивке Marlin G-код обрабатывается процедурой void process_parsed_command()
в файле Marlin_main.cpp
Мне нужно сгенерировать дополнительный цифровой выход
G-код, который может задать значение порта, - это M42
.
Вы можете написать процедуру, которая планирует определенный порт после перемещения G0
или G1
, перекомпилировать и загрузить встроенное ПО.
- Сопло соскакивает со стола при использовании Marlin Mesh Desk Leveling
- Размер стола и смещение самонаведения сопла в прошивке Marlin 1.1.9
- Настройка пользовательских границ рабочего стола x/y для Anet A8/marlin
- Надо ли делать автонастройку PID с вентилятором на 100% (Anet A8)
- Anet A8 Откалиброван, но размеры печати неверны
- LCD-дисплей Anet A8 показывает данные о мусоре после завершения печати
- Массовая перегрузка после смены прошивки
- Белые блоки на экране после включения питания Anet A8
Если я отредактирую функцию gcode_G0_G1() в marlin_main.cpp и записывайте непосредственно в регистры AVR DDR и ПОРТ для переключения контактов, используемых для привода экструдера. Поскольку я не использую экструдер в системе, все будет в порядке? Что мне нужно, так это функция блокировки до завершения команд G0/G1 Достигнет ли этого добавление planner.synchronize(); в конец функции. Вместо отправки M400 следует команда., @Ahe
@Ahe Это, вероятно, не будет проблемой, так как вы их не используете. Но я не знаю, сбрасываются ли эти порты какой-либо функцией или около того. Вы могли бы прокомментировать назначение контакта экструдера в "pins_ANET_10.h", чтобы быть уверенным, но, пожалуйста, попробуйте, возможно, эти определения констант портов используются где-то в коде. Просто поищите в базе кода, я подозреваю, что у вас есть некоторый опыт программирования, чтобы разобраться в этом. Удачи!, @0scar
@Ahe, Возможно, вы захотите взглянуть на G-код "Финишные ходы" "M400". Если бы вы установили размер буфера G-кода равным 1 и вводили "M400" после каждой команды G1 / G0, вы могли бы переключить свой контакт, например, с помощью "M42 P123 S255 - > G4 P10 - > > M42 P123 S0", при этом 123-ваш цифровой контакт., @towe