GRBL на BL-USBMach3 (от BlueSkyT)

Контроллеры, драйверы, датчики, управляющие устройства.
Аватара пользователя
zap
Новичок
Сообщения: 8
Зарегистрирован: 24 апр 2020, 01:21
Репутация: 10
Настоящее имя: Андрей
Контактная информация:

GRBL на BL-USBMach3 (от BlueSkyT)

Сообщение zap »

Всем привет!

Всем хорош GRBL на микроконтроллере ATMega, но уже не тянет он дальнейшего развития. Упёрся в потолок, всё на пределе - память, производительность.
Поэтому умные люди портировали GRBL на микроконтроллер STM32 в соседней теме.

Однако там есть другая засада: вместо того, чтобы купить за копейки готовую плату с ATMega32 и драйверами либо опторазвязанными выходами под драйвера для более серьёзных моторов, приходится городить скульптуру "Лаокоон, борющийся со змеями" из "blue pill" и кучи дополнительных самопальных решений, тут уж кто во что горазд.

В принципе, несложно за пару недель по вечерам развести всё это дело, заказать плату, спаять её и радоваться жизни.
Однако сколько ещё людей сумеет повторить эту конструкцию? Один? Трое? Стоит ли овчинка выделки?

Мне значительно более перспективным кажется следующий подход.
Вот есть на свете такая широко известная в узких кругах плата BL-USBMach3.
Вы скажете, она сделана для работы с Mach3? Да какая нам разница.
Вот давайте сравним готовую плату под GRBL (на такой крутится мой станок) с платой BL-USBMach3.
avr.jpg (3466 просмотров) <a class='original' href='./download/file.php?id=180717&sid=f88cb583001275d0399015adbdad2893&mode=view' target=_blank>Загрузить оригинал (159.53 КБ)</a>
stm32.jpg (3466 просмотров) <a class='original' href='./download/file.php?id=180718&sid=f88cb583001275d0399015adbdad2893&mode=view' target=_blank>Загрузить оригинал (50.54 КБ)</a>
Видите разницу?
С такого расстояния - одна и та же фигня. Даже разъёмы под драйверы шаговиков такие же.
Если посмотреть поближе - да всё равно почти одна и та же фигня.
  • На GRBL стоит слабенький 8-битный микроконтроллер с частотой 16 МГц, 32 кБ памяти программ и 2 кБ ОЗУ.
  • На USBMach3 стоит 32-битный микроконтроллер с тактовой частотой 72 МГц, 128 кБ памяти программ и 20 кБ ОЗУ.
Обе платы подключаются к компьютеру по USB
  • На GRBL стоит доп. микруха USB->UART CH431
  • На USBMach3 ничего не стоит, сам микроконтроллер изображает USB HID устройство (ну, типа, джойстик :-D - с такими устройствами в "ОС" "Уиндоус" можно работать без драйверов).
И там и там защищённые микросхемой цифрового буффера 74HC245 выводы на драйверы шаговиков.
  • На GRBL выводы под драйвера шаговиков на 3 оси (точнее 4 но одна дублируется под ось Y1 & Y2)
  • На USBMach3 пять независимых осей
  • а так одно и то же.
И там и там защищённые оптронами входы внешних датчиков ограничителей, кнопки STOP, PROBE и так далее.
  • На GRBL 5 защищённых оптронами входов.
  • На USBMach3 те же 5 защищённых оптронами входов.
И там и там есть ШИМ выход для подключения к лазеру или контроллера двигателя с управлением через ШИМ.
  • На GRBL есть дополнительно релюха для шпинделей без контроля оборотов.
  • Зато на USBMach3 есть активный фильтр 1го порядка на ОУ, который превращает ШИМ в линейное напряжение, для контроллеров бесщёточных двигателей с входом по уровню напряжения.
И это ещё не всё! Бонусом на USBMach3 имеются:
  • Дополнительно 4 защищённых буффером 74HC245 цифровых выхода для управления чем-нибудь дополнительным (ОЖ, туман, сирена...).
  • Дополнительно 10 (!) достаточно защищённых ввода на 12-штырьковом разъёме для подключения пульта (или, например, доп. кнопочек на передней панели). Они оптически не изолированы, но для кнопочек управления этого более чем хватит.
  • На плате есть 4 контакта под SWD разъём программирования. Программатор стоит 100 рублей на али.
При стоимости в районе 1000 рублей на али, по-моему, эта овчинка стоит выделки.
Я взял за 1300 вместе с пультом управления на 8 кнопок. Пульт не ахти, и одна кнопка вообще не работает.

Итак, план работы :bender: .
  1. Снять схему с платы.
  2. Распланировать использование разъёмов платы.
  3. Адаптировать прошивку GRBL/STM32 под неё. Придётся писать драйвер USB-UART непосредственно на STM32.
Проект буду вести по вечерам после работы (да-да, на "удалёнке" тоже приходится работать).
Даже если не доведу до конца, надеюсь, проведённая мной работа кому-то пригодится.
Да хотя бы та же схема BL-USBMach3.
Последний раз редактировалось zap 03 май 2020, 11:08, всего редактировалось 3 раза.
С уважением,
Андрей
Аватара пользователя
zap
Новичок
Сообщения: 8
Зарегистрирован: 24 апр 2020, 01:21
Репутация: 10
Настоящее имя: Андрей
Контактная информация:

Re: GRBL на BL-USBMach3

Сообщение zap »

Схему с платы уже снял.
У меня BL-USBMach3 v2.1.
От версии 2.0 она отличается наличием дополнительного оптически защищённого (!) выхода FWD на колодке для подключения двигателя. Очевидно, предполагается с него управлять направлением вращения шпинделя. Выход дублирует состояние OUT1, однако OUT1 защищён только через буффер 74HC245.
В схеме есть три косяка (лист "Гальванически изолированные входы и выходы").
Во-первых, светодиод индикации напряжения 12-24В (для двигателя) забыли подключить к земле. То есть, он тупо не горит.
Во-вторых, один из конденсаторов в той же цепи 12-24В забыли подключить опять же к земле. Влияние от его отсутствия незначительное.
В-третьих, один из концов резистора R14 забыли подключить к земле. В результате, вывод AV (напряжение, пропорциональное заполнению ШИМ мотора) работать не будет.
Пофиксить эти косяки при желании несложно, как сделаю выложу инструкцию для перфекционистов.
Плата в целом (для просмотра содержимого нажмите на ссылку)
Не пугайтесь размера микрухи, такой символ я нашёл в предыдущей версии КиКада. Потом они исправились, но мне уже лень переделывать.
blusbmach3.png (3462 просмотра) <a class='original' href='./download/file.php?id=180719&sid=f88cb583001275d0399015adbdad2893&mode=view' target=_blank>Загрузить оригинал (269.42 КБ)</a>
Также прикрепляю схему в виде проекта KiCad (у меня версия 5.1.5).
Вложения
blusbmach3.zip
(20.65 КБ) 333 скачивания
С уважением,
Андрей
Аватара пользователя
zap
Новичок
Сообщения: 8
Зарегистрирован: 24 апр 2020, 01:21
Репутация: 10
Настоящее имя: Андрей
Контактная информация:

Re: GRBL на BL-USBMach3 (от BlueSkyT)

Сообщение zap »

Обновление статуса проекта.

Долго смотрел существующие проекты по переносу grbl на stm32. "Читал пейджер, много думал". В общем, не понравилось мне то, что я увидел. Решил портировать Grbl на STM32 ещё раз с нуля.

В рамках проекта grbl/stm32 обновил и опубликовал свою довольно старую библиотеку для низкоуровневой работы с микроконтроллерами серии stm32. Это очень тонкая прослойка между программой и заголовочными файлами CMSIS плюс небольшое количество полезных функций. Она будет использоваться в проекте вместо страшной, монстрообразной и глючной библиотеки STM32 CUBE.

Ещё четыре недели были потрачены на освоение шины USB и написание драйвера "USB UART" (использующего стандарт CDC ACM, т.е. для "ОС" "Уиндоус" можно будет использовать стандартный имеющийся драйвер). Так как карантин на работе для меня фактически закончился в середине мая, это заняло довольно много времени, зато результатом я доволен. В отличие от многих других протестированных мною прошивок, у меня нормально работает управление потоком (если прошивка не готова принимать данные, USB хост будет ждать сколь угодно долго), данные в канале не теряюся. Для станка надёжность - это главное.

В проекте есть приложение USBUART, которое превращает любую плату "STM32 Blue Pill" в USB-UART "свисток". Размер прошивки всего 5.3к, использует всего 1.5к ОЗУ.

Проект буду вести здесь: https://github.com/anpaza/ugears

Следующий шаг: склонировал дерево исходников grbl сюда: https://github.com/anpaza/grbl
Начинаю работу над ним. Постараюсь минимально трогать общий код, чтобы оставить возможность отслеживать дальнейшие изменения в "главном" дереве Grbl, хотя проект, похоже, практически заморожен. Возможно, если порт получится не очень "грязный", получится интегрировать мои изменения в главную ветку. На это надежды мало, но писать буду так, чтобы это было возможно.
С уважением,
Андрей
Пенёк
Новичок
Сообщения: 1
Зарегистрирован: 20 май 2021, 22:39
Репутация: 1
Настоящее имя: Игорь
Контактная информация:

Re: GRBL на BL-USBMach3 (от BlueSkyT)

Сообщение Пенёк »

извините, вопрос немного не по теме:
попытался запустить данную плату BL-usbmach3 с помощью собственно самого mach3 (wine)
но к сожалению, mach3 сообщает: No UsbMachBoard, Please plug it in!
сколько бы не жал reset
как если бы кабель не был подключен, однако всё то же самое в ос Уиндоус запускается без проблем
usb вроде бы просматривается https://i.imgur.com/1cyY1ez.png
kfmut
Мастер
Сообщения: 1249
Зарегистрирован: 30 янв 2021, 21:34
Репутация: 147
Настоящее имя: Максим
Откуда: г.Тверь
Контактная информация:

Re: GRBL на BL-USBMach3 (от BlueSkyT)

Сообщение kfmut »

Пенёк писал(а): mach3 (wine)
Э-э-э, неужели wine настолько прокачали чтобы он нормально работал с любой аппаратной шляпой?!
Ответить

Вернуться в «Электроника»