Передача gcode в плоттер

Имеется ноут с linux debian и плоттер на arduino uno + cnc shield. При передаче команд из консоли arduino IDE всё прекрасно работает (например, команда G91 X1 Y1 устанавливает относительную систему координат и двигает оси).

Но мне нужно передавать на плоттер набор команд из файла. И тут начинаются проблемы.

Порт плоттера представлен файлом /dev/ttyUSB0 (также есть файл сериал порта /dev/ttyS0, но любой ввод в него вызывает ошибку ввода/вывода). Устанавливаю скорость передачи 115200 следующий командой:

stty -F /dev/ttyUSB0 raw speed 115200

Всё ок. Проверяю плату коммандой:

cat /dev/ttyUSB0 

Выводится вeрсия grbl. Попытался отправить файл с текстом G91 X1 Y1 следующей командой:

sudo cat /puth/to/file.gcode > /dev/ttyUSB0

Она должна делать описанные в первом абзаце действия. Но она этого не делает, плоттер спустя секунды две после ввода команды немного вздрагивает и всё. Не помог ни знак ">>" вместо ">" ни команда chmod +777 /dev/ttyUSB0 и chmod +777 file.gcode

Подскажите, есть ли какие-то ещё тонкости с общением компа и плоттера через usb?

Ответы (1 шт):

Автор решения: Тим Муранов

Проблема оказалась в том, что, отправляя команды через cat, я не отлавливал ответ. А прошивка grbl на каждую команду отправляет статус выполнения или код ошибкии, который необходимо поймать. Иначе операции не выполняются.

Написал простую утилитку, отправляющую gcode и отлавливающую ответ - всё заработало.

→ Ссылка