Для Наны. Номера пинов в Уной совпадают.
http://www.cnc-club.ru/forum/download/file.php?id=81257&mode=viewС пина управления шпинделем (D12, Spidle Enable) летит ШИМ 1 кгц.
Нота бене! У 0.9 есть глючок - перед включением шпинделя кнопкой в программе (любой) надо ОБЯЗАТЕЛЬНО послать команду "Reset", можно кнопкой из той же программы.
Вообще-то уже есть GRBL 1.1, умеет много вкусного, работает много корректнее, в 0.9 есть пара ОЧЕНЬ неприятных глюков, как то внезапная остановка посреди программы с криками о неправильных форматах координат.
Для меня лично было великой радостью умение работы с лазером в режиме DirectStream, советую причаститься:
https://github.com/gnea/grbl/.Все дальнейшее фактически суть вольный перевод мануала GRBL с моими комментариями для облегчения понимания.
Команды контроллера вбиваются в терминале (в bCNC в верхнем правом углу), и начинаются с символа "$". Далее будут только команды, и их назначение.
$X - снятие Alarm Lock - в случае нештатного состояние (выход за лимиты, срабатывание датчика, etc) GRBL уходит в несознанку, и отказывается реагировать на внешние раздражители, дабы чего-нибудь не поломать. Эта команда выводит его из состояния испуга.
РЕГИСТРЫ$$ - вывод в терминал состояния регистров. Разобраться несложно.
Ввод значения регистров: $[регистр]=[значение]. Например:
$0=5, то есть в регистр 0 записывается значение 5.
Регистр 0 - Длина импульса step, отправляемого на контроллер, в микросекундах. У меня стоит 5, глюков не замечено.
Регистр 1 - Время, через которое погаснет сигнал разрешения работы драйверов (Stepper Enable) в миллисекундах, после того, как будет выполнена последняя команда на перемещение, в результате чего напряжение с двигателей будет снято. Советую поставить 255, чтобы двигатели не отпускало никогда, без питания двигатель с микрошага повернется к ближайшему полюсу, и уедут фактические координаты. Можно входы разрешения на драйверах приколотить к земле (или к плюсу, но это реже), что равнозначно.
Регистр 2 - битовая маска инвертирования уровней на портах Step: 00000XYZ. Если в бит записана единица, то порт инвертируется.
Если драйвера с оптикой, и общий оптронов на плюсе, то инвертируем все оси - в регистр пишем 7 (00000111), если нет (общий на минусе, или драйвер без развязки), то 0.
Регистр 3 - битовая маска инвертирования портов НАПРАВЛЕНИЯ (Tank, вот оно!!!). 00000XYZ. Если на какой-то из осей направление не совпадает, то в соответствующий бит пишем единицу. Например, если не в ту сторону едет ось Y, то в регистр надо записать двоичное 00000010. Если X - 00000100 (4). Если обе попутаны, то 00000110 (6).
Регистр 4 - битовый регистр инвертирования сигнала Stepper Enable, может принимать значения 0 и 1.
Регистр 5 - битовый регистр инвертирования сигналов с концевиков. Если при наличии оных станок при попытке сдвинуть портал ругается на хардлимиты - ставим в 1 (или наоборот)
Регистр 6 - битовый регистр инвертирования сигнала датчика нуля (Probe, об этом позже). Лучше записать 0.
Регистр 10 - битовая маска, что отвечать на запрос о состоянии. Оставляем, как есть.
Регистр 11 - Регистр для планировщика движения. Какие-то попугаи, из которых вычисляется скорость подачи "на поворотах". Чем больше значение, тем "круче" фреза будет проходить углы на траектории, но есть риск потери шагов. Зависит от массы портала и от мощности двигателей. Лучше не трогать, "из коробки" значение вполне оптимально.
Регистр 12 - сглаживание дуг. В g-code есть команды, формирующие траекторию по дуге. GRBL формирует дугу, составляя ее из отдельных прямолинейных сегментов. Чем меньше значение - тем короче будут сегменты, и тем плавнее будет арка. Значение по умолчанию по мне вполне оптимально, но на вкус и цвет...
Регистр 13 - Битовый. Формат возвращаемых контроллером координат: 1 - дюймы, 0 - миллиметры.
Регистр 20 - Битовый флаг, разрешение на использование софтлимитов (размеров рабочего поля, если угодно). Без хардлимитов (концевиков) - не работает. Если оных нет - ставим 0.
Регистр 21 - то же, что и 20, но для "железных" концевиков.
Регистр 22 - Битовый флаг, разрешает использование команды $H (референс координат по концевикам). Если датчиков нет - ставим 0.
Регистр 23 - Битовая маска направления поиска концевиков. 00000XYZ. По умолчанию датчики ищутся на верхнем положении шпинделя (ось Z), и дальнем правом углу рабочего поля. Если это не так (датчики стоят на других местах), то устанавливаем те биты, где датчики стоят с противоположной стороны. Например, у меня датчики XY стоят слева, и на ближнем крае соответственно, поэтому у меня в регистре 00000110 (6)
Регистр 24 - скорость подачи при поиске концевиков, мм/мин. ставим на свой вкус, зависит от возможностей станка, особенно - от способности быстро остановиться, не впечатавшись в пресловутый концевик со всей дури.
Регистр 25 - скорость подачи при отходе от найденного концевика (или от его останков). Чем меньше, тем лучше, но без фанатизма. У меня стоит 200
Регистр 26 - время антидребезга концевика в миллисекундах. Ставим по ситуации.
Регистр 27 - расстояние в миллиметрах, на которые надо отойти от концевиков после референса, чтобы не было ложных сработок - "место для маневра".
Регистр 30 - МАКСИМАЛЬНЫЕ обороты шпинделя. Те, которые он может выжать. Используется для вычисления скважности ШИМа при рулении оборотами (команда g-code S[xxxx])
Регистр 31 - МИНИМАЛЬНЫЕ обороты шпинделя. Те, на которых он еще может худо-бедно проворачивать инструмент.
Регистр 32 - битовый флаг включения режима лазерного гравера (мой любимый, ога

). О нем расскажу, если будет надобность. Ставим 0.
Дальше завтра, глаза уже даже спичками не держит
