Немножко апну тему.
Напомню суть. Есть "китайский" лазерный гравёр, с "китайской" платой:
Плата на ESP32. Прошивка соответственно тоже "китайская", отображается как GRBL 1.5D. Скомпилирована скорее всего на базе GRBL_ESP32.
Суть проблемы:
Гравёр должен выжигать так, как на нижнем образце, но иногда выжигает так как на верхнем. То есть на некоторых участках лазер не выключается, или не включается и получаются полосы. Чаще чёрные, но иногда и белые. Для наглядности и лёгкости отслеживания причины образец сделан в однобитном формате, но и на оттенках происходит тоже самое.
Сначала я грешил на то, что нужно оптимизировать Г-код, собственно тема так и называется, но много провёл экспериментов и выяснил, что синтаксис написания кода заметного изменения не приносит.
Вот результат исследований:
На брак влияет - количество шагов на пиксель (или линии на мм), скорость на белых и чёрных участках и мощность.
Если уменьшаем количество шагов на пиксель, то нужно уменьшать и скорость выжигания.
Если на белом выключать лазер командой S0 то скорость можно поднять значительно. Если же поставить хотябы S20 (это мощность подсветки, минимальное значение на котором лазер начинает светиться), то скорость нужно уменьшать в 1,5-2раза. Собственно эта особенность и была причиной того, что я грешил на синтаксис г-кода. Сделал код в лазергрбл где мощность на белом поставил S0 и брака небыло, и был код из "выжигалки" на тех - же скоростях, но мощность на белом стояла S20 и были артефакты.
Тут как бы напрашивается вывод. Уменьшая количество шагов на пиксель мы уменьшаем время для расчётов и для внесения изменений. Увеличивая скорость - тоже уменьшаем время для расчётов и для внесения изменений. И задавая мощность отличную от нулевой увеличиваем расчёты. НО!
Есть одно НО! Если посмотреть на картинку с браком, то видно, что брак появляется на крайних участках картинки и практически отсутствует в центре. А ведь именно в центре количество белых и чёрных точек максимально, то есть расчётов больше, и времени на изменения меньше.
Можно предположить, что сам лазерный модуль Не успевает реагировать на изменения. Но опять таки, из за того что в центре брака почти нет это не похоже на правду. Точно отбросить этот вариант можно будет поставив другой модуль. И поэкспериментировав.
На сайте производителя станка есть возможность скачать другие версии прошивок. А скачал и установил версию GRBL 1.5С. И о чудо, все артефакты пропали при прочих равных условиях. Но особенность этой прошивки была в том, что частота ШИМ для управления лазераом была 5кГц. А на старой прошивке 1кГц.
Я засел за изучение мануалов для GRBL_ESP32 и оказалось что частоту ШИМ можно в ней менять не перепрошиваясь. Просто меняя параметр $33= и ставить значение. Поставив на этой прошивке частоту 1кГц все артефакты вернулись.
И в моём уравнении шаги на пиксель, скорость, мощность появилась ещё одна переменная - частота ШИМ. С увеличением частоты можно было увеличивать скорость.
Если на 7шагов на пиксель, на частоте 1кГц , на белом - S20 F10000 на чёрном S1000 F6000 я получал сплошной брак.
то на 7шагов на пиксель, на частоте 4кГц , на белом - S20 F20000 на чёрном S1000 F6000 я получил отличный результат. Заметьте скорость на белом я поднял до 20000мм\мин это 500об\мин двигателя.
Верхний глаз.
Эти участки связаны с плохой механикой для такой скорости и к текущей проблеме отношения не имеют.
Добавлю, все тесты производились на стекле покрытым краской из баллончика.
Итак, вопрос ко всем. Что может являться причиной данной проблемы.