Бюджетный usb-контроллер для mach3 - кому интересно присоединяйтесь.
Решил тут соорудить USB-контроллер для мача. Вернее железо сделал давно но как то забросил. Т.к. достройка собственного станка откладывается на весну решил пока покодить слегка чтоб из темы не выпадать (а то заброшу и будет полуЧПУ пылиться в уголке как половина бывших хобби ).
Основная рабочая часть кода написана и протестирована всеми доступными методами (пока только на соответствие траектории, повторюсь собственного ЧПУ нет).
Основные задачи контроллера:
- Уход от реалтайма с ПК (ну не люблю этого - чисто мой заскок, с другими мнениями спорить не буду).
- Расширение пинов ввода/вывода(например подключить полнофункциональную операторскою панель)
- И основное: “Сглаживание” шаговой последовательности.
Что касается последнего пункта - основная часть кода тратилась именно на него. В результате при достигнутой частоте степов всего 50Кгц дискретность формирователя временных интервалов - 16Мгц. В отличие от ЛПТ у которого дискретность равна частоте ядра - 100Кгц макс, т.е. шаговая последовательность не кратная 10мкс будет рваться. Пример, шаги 45кГц от ЛПТ и от контроллера - использовался один и тот же УП и настройки для мача:
Зачем создан этот пост:
Коммерческой цели не преследую, если есть энтузиасты кому интересно продолжение разработки - присоединяйтесь, проект можно сделать открытым.
P.S. Ссылками на готовые решения (SS, Kflop, ncPod, etc… ) и вопросами "А на зачем это надо? " просьба не заваливать. Мне иногда нравится покодить - если больше никому не интересно - закроем тему.
Интересно! Могу только как тестер поучаствовать, можно и финансами.
а плагин для Mach какой?
а камень какой стоит?
Интересно! Могу только как тестер поучаствовать, можно и финансами.
Собственно тестеры как раз нужны т.к. у меня не всегда есть время хорошо оттеснить какую-нить функцию, основное время уходит на написание кода, а баги вываливаются как всегда когда уже и забыл про написанный функционал.
Желательно разбираться в электронике хоть поверхностно, еще лучше - если человек сам сможет собрать девайс.
Если нет возможности самостоятельно собрать, а хочется поучаствовать как тестер уже готового девайса - могу делать по себестоимости - но, Вы должны понимать что это не готовое решение а только в процессе разработки.
а плагин для Mach какой? а камень какой стоит?
Плагин естественно пишу сам, для пользователя все прозрачно - никаких окон настройки, все через стандартные настройки мача, только номероа пинов можно задавать от 1 до 32 причем пин может работать как на ввод так и на вывод в зависимости от настройки мача.
Пины движков (всего 4 оси) - жесткие и в настройке не нуждаются, на вкладку мотороут можно не обращать внимание. Пины чержпамп и ШИМ тоже жесткие. Остальные 32 - настраиваются мачем.
Камень AT90USB1287, программатор не нужен, бутится по USB, новую версию всегда можно залить без проблем.
Желательно разбираться в электронике хоть поверхностно, еще лучше - если человек сам сможет собрать девайс. Если нет возможности самостоятельно собрать, а хочется поучаствовать как тестер уже готового девайса - могу делать по себестоимости - но, Вы должны понимать что это не готовое решение а только в процессе разработки.
Да , это дело без проблем, все есть, даже руки.
а на AT90USBKEY пойдет?
Да , это дело без проблем, все есть, даже руки.
ОК. Ближе к ночи выложу схему. Плату тоже могу выложить, но, она требует металлизации под компонентами. Разводка простая и вполне ляжет на одну сторону - если у кого-то есть желание переразвести, делалась на две стороны скорее по привычке.
К концу недели дошлифую кое-что из уже реализованного в прошивке и плагине и тоже выложу.
Пока реализовано:
- 4-оси, 50Кгц, активный уровень - низкий, пока не настраивается, но скоро будет.
- Движение по УП,
- ручные переезды с ПК или с внешних сигналов JOG.
- Отработка лимитов - датчики вешаются на любые из 32 пинов - настраиваются стандартно мачем.
- 32 линии ввода/вывода(работа линий на ввод) стандартно настраиваемые в маче - настраивал лимты, джоггинг, старт, фид-холд, стоп, выбор скорости, одиночный-мулти шаг, эмерженси и т.п. - все сразу и все работает.
- Переключение линий на вывод - работает, но пока линии на вывод не конфигурятся через мач (проверял вывод конфигуря линии в прошивке) - скоро будет конфигурация через мач
- ШИМ работает, но пока нормально не конфигурится - скоро
Не реализовано:
- Возврат на базу, пока только обнуление осей. Сейчас вожусь - основная головная боль.
- Сигналы энкодеров серв - не планирую вообще, ресурсов мало, только для ШД
- Сигналы MPG - планирую в будущем.
- Обратная связь от шпинделя (сигнал Index) - незнаю как подобраться, попробую дергать поддержку артсофт.
- THC для лазера - не знаю как работает и с чем едет, пока не разбирался.
- Charge Pump - вроде не проблема, но пока руки не дошли, планирую.
а на AT90USBKEY пойдет?
Сама прошивка естественно ляжет - но на плате много лишнего что подключено на IO - могут быть конфликты с датафлеш и т.п. , пока не смотрел в эту сторону, выложу схему посмотрите сами, если все выводы необходимые для железа выведены и ничего не мешает(в крайнем случае спаять) - то не вижу проблем,если есть AT90USBKEY.
“Лёд тронулся, господа присяжные…” Готов присоединиться. Станок есть. И есть пара вопросов:
AT90USB1287-AU- доступен ИМЕННО такой камень. Годится? Плату вручную сделать всё-таки можно?
AT90USB1287-AU- доступен ИМЕННО такой камень. Годится?
Ну так это он и есть.
Плату вручную сделать всё-таки можно?
Если один в один как на фото - я писал там два слоя и металлизация. Делать самому - зависит от качества достигнутой Вами технологии. Но как правило - хорошая домашняя металлизация пока еще скорее исключение. Хотя уже все больше любителей осваивают. Что касается самой трассировки - делается на ура левой ногой в домашних условиях. Я пользуюсь фотометодом, ЛУТ тоже должно получится.
Я все же рекомендую для домашнего изготовления переразвести на одну сторону, там трассировка простая, думаю на форуме найдется кто-то кто возьмется. Будет время разведу сам, может на выходных.
ОК. Ближе к ночи выложу схему. Плату тоже могу выложить, но, она требует металлизации под компонентами.
Ждем схему, и свою разводку выкладывай, лишним не будет.
Переходных отверстий не сильно много. Можно и проволочкой пропаять. Сама плата не сложная. Дома с фоторезистом получится без проблемм. Не совсем нравится идея с выходными разьемами на IO. Наверно лучше использовать разьемные соединения. Но это дело вкуса. В чем рисовали плату? Если в Altium Designer то выложите пожалуйста проект. Проще будет с разводкой ковыряться.
А в целом готов присоединится. Сделать плату и протестировать на станке смогу достаточно быстро. Я бы на выходе еще буфера поставил. Они дорого не стоят а вот пользы от них будет много.
Насколько я понял это своеобразный переходник USB-LPT? Или передаются команды G-кода, а девайс генерирует сигналы шаг/направление?
Для желающих начать прямо сейчас схему ждать не надо. Практически вся схема видна на фотке выше.
Leg, плату в pdf’е можно?
Ещё прошивочку МК и плагин под Масн осталось выложить… - хочется посмотреть, как в Масн это всё будет настраивается.
Без подключенного “железа” это возможно?
Насколько я понял это своеобразный переходник USB-LPT? Или передаются команды G-кода, а девайс генерирует сигналы шаг/направление?
Ни то и не другое.
С переходниками мач работать не будет, как и любое ПО использующее ЛПТ не для печати. По крайней мере о реализации нормального ЛПТ-переходника работающего как чистый ЛПТ я пока ничего не слышал.
ЛПТ драйвер при использовании плагина вообще отключен.
Что бы понимать как работает железка нужно представлять как устроен мач. Если коротко то так: Мач при загрузке УП делает вычисление этого УП и создает по нему траекторию, что-то типа растровой картинки - только каждый элемент это точка не на плоскости а во времени - фактически постоянная скорость движения по каждой оси в данный момент времени.
Этот массив в последствии передается драйверу который делает из него шаговую последовательность - в случае ЛПТ этим занимается лпт-драйвер, в моем случае железо.
Ну а остальные функции - интерфейс с оператором и станком, тут думаю и так все понятно.
…Ну а остальные функции - интерфейс с оператором и станком, тут думаю и так все понятно.
Т.е. какой ножке ЛПТ (в настройках Масн) будет соответсвовать определённая ножка AT90USB1287?