Немного наводящих вопросов для изобретающих велосипед.
1. Сколько ядер и таймеров нужно для одной оси? Как atmega328 рулит сразу тремя осями на одном 16МГц ядре, а esp32 и stm32 (f103) умеет двигать сразу 6?
2. Почему мач3 работает на параллельном порту и только под winxp, а сигналы step/dir в атмеге под grbl должны быть строго на пинах в пределах одного порта (a,b,c)?
Замысел и идея у ТС, конечно, хороши и похвальны. Огорчает только, не столько отсутствие достаточного опыта в программировании, но и минимально структурированного понимания принципов взаимодействия всего того, на что замахнулся. В теме уже были здравые высказывания про изучение работы grbl и про то, что у fluidnc уже имеется весь необходимый функционал.
Немного ликбеза. Все, что делают все эти и огромное множество подобных программ, это отправляют текст команды по uart (usb-uart/telnet/websocket). На этом компетенции и возможности всего этого зоопарка чудо-софта, заканчиваются. Совершенно тот же результат можно получить с помощью командной строки:
echo X10Y10 > COM4
(естессно, с предварительным конфигурированием порта)
Поэтому, абсолютно не важно, от какой программы, или по какому каналу связи, прилела команда. Каждый раз она будет исполняться абсолютно одинаково.
Мач3 работает совершенно иначе. Структура взаимодействия там совсем иная, но импульсы step на выходе будут так же, абсолютно синхронны.
Если это кому-то было интересно, милости просим, вопросы можно задавать. Кроме всего, если кого-нибудь интересует мой порт Fluidnc 3.8.3 для контроллеров esp32-s3 (в основном, это платы mks ls-esp32-pro), можно стучаться в личку.