GRBL на STM32 STM32F103C8T6 Blue pill.

Для станка ЧПУ мне понадобился контроллер с поддержкой USB. Держать компьютер с LPT портом мне надоело, к тому же таскать каждый раз системный блок на балкон, где у меня установлен станок – надоело еще больше.

Я давно уже видел на aliexpress различные расширители портов для ардуино, на всякие граверы, выжигатели, 3D принтеры, а значит должно существовать решение и для ЧПУ. И такое решение есть – библиотека GRBL.

И тут меня ждало небольшое разочарование.

-во первых скорость работы – у меня одна ось сделана на каленой шпильке из стали 45, но там метрическая резьба, и я получаю либо нормальную скорость, при свободном перемещении с полношаговым режимом шагового двигателя (и лишним шумом и резонансами) , либо низкую скорость, но зато более-менее тихую работу.

-во вторых библиотека это требует чип Atmega 328 , у меня же были только в наличии модули pro mini с atmega168

Ждать новые модули было лениво, и я стал искать. Для начала я нашел прошивку от древней версии GRBL (вроде это была версия 0,6) Но она оказалась глючная и практически все программы, отправляющие на нее G-код отказались от ее поддержки.

Я стал гуглить и наткнулся вот на этот вот форум http://www.cnc-club.ru/forum/viewtopic.php?f=41&t=21393&p=477776#p477776

И тут удача, STM32 STM32F103C8T6 Blue pill у меня были, и при этом GRBL доработали, и вместо трех осей он поддерживает аж цеых 5, благо у данного микроконтроллера ножек хватает.

STM32F103C8T6 Blue pill
GRBL на STM32

Об этой отладочной плате можно посмотреть информацию здесь http://wiki.stm32duino.com/index.php?title=Blue_Pill , у меня было несколько таких отладочных плат, ссылки на эти отладочные платы, а так же на метриалы, и то, чем можно все это дело прошить или отладить будут в конце статьи.

Стоит отметить, что за основы был взята портированая прошивка с этого проекта
https://github.com/usbcnc/grbl/wiki ,
GRBL 1.1f полностью перенесенный на stm32f103 с сохранением большей части исходного кода и даже комментариев от родного GRBL. Как и в оригинальной (под модули ардуино) прошивке имеем 3 оси, но уже, как утверждает автор переноса, частота возрастает, до 180кГц! На сколько это честно – не буду судить, но скорее всего реальная скорость будет ниже раза в полтора.

Эту прошивку я не рассматривал, и сразу скачал модернизированую на 5 осей версию с форума. Сам проект битает вот здесь https://github.com/robomechs/6-AXIS-USBCNC-GRBL

Проект этот собран под Atollic true studio , и что бы собрать прошивку, мне пришлось качать и компиллировать ее из исходников. Собранную и готовую прошивку вы найдете в конце статьи, ее можно просто залить, не ловя лишнего гемороя, в виде установки Atollic true studio и компилляции проекта, Но если руки чешутся, милости просим по ссылке выше.

Прошивку я заливал при помощи китайского клона st link, но вполне сгодится и переходник USB to COM,
( USART или иными словами RS232) ссылки на проверенный переходник так же в конце статьи.

заливка прошивки не составляет ни какого труда.

STM32 ST-LINK Utility
STM32 ST-LINK Utility

Для открытия файла с прошивкой необходимо выбрать File->OpenFile и выбрать файл для прошивки

STM32 ST-LINK Utility  с открытым файлом

STM32 ST-LINK Utility с открытым файлом

Что бы подключиться к контроллеру необходимо нажать эту кнопку. Думаю не стоит напоминать, что контроллер уже необходимо подключить к программатору, а программатор ST-Link подключить к USB порту. Драйвера на ST-Link искать не нужно, они автоматически ставятся с утилитой (по крайней мере у меня так было). ST-Link и Blue pill соединяются согласно маркировки. В Blue pill для этого специально выведены 4 отдельных с короткой стороны – именно сюда и подключается программатор. Выводы подписаны, сложности быть не должно. Самое главное не перепутать провода питания между собой, если напутаете в сигнальных – ничего страшного, контроллер просто не будет читаться, а если перепутаете полярность, то плату с вероятностью 99,99% можно будет выбрасывать.

STM32 ST-LINK Utility  подключение к микроконтроллеру

STM32 ST-LINK Utility подключение к микроконтроллеру

Для запуска процесса прошивки необходимо выбрать пункт Target->Program или Target->Program & Verufyty. Во втором случае процесс прошивки будет идти чуть дольше (секунд на 5-10) но программа проверит корректность залитой прошивки (сравнит их).

STM32 ST-LINK Utility  заливка прошивки

STM32 ST-LINK Utility заливка прошивки
 
STM32 ST-LINK Utility  заливка прошивки -старт

STM32 ST-LINK Utility заливка прошивки -старт

Сама прошивка занимает 5-20 секунд.

STM32 ST-LINK Utility  процесс заливка прошивки


STM32 ST-LINK Utility процесс заливка прошивки

После успешной прошивки увидите вот эту надпись.

STM32 ST-LINK Utility  процесс заливка прошивки


STM32 ST-LINK Utility процесс заливка прошивки

После завершения прошивки платка подключается просто через микро USB разьем, ни каких переходников ей не надо. Для платки потребуется поставить драйвер,
чтобы конроллер определился операционной системой как COM порт https://www.st.com/en/development-tools/stsw-stm32102.html

Двигатели и остальное оборудование (Концевики, управление шпинделя, управление лазера) подключается согласно этой схемы.

распиновка  Blue pill для GRBL
распиновка Blue pill для GRBL

Остальная работа с модулем идентична работе с библиотекой GRBL на arduino.

Описание по работе с данной библиотекой я разместил здесь Настройки библиотеки GRBL 1.1f

Я пользуюсь программой
Universal Gcode Sender

Ну а теперь обещанные ссылки и прошивка.

Сам файл прошивки

Файл прошивки для заливки в контроллер
https://r13-project.ru/stm32grbl11/

Плата STM32F103C8T6 Blue pill

http://ali.pub/3h37sk,

http://ali.pub/3h3841,

http://ali.pub/3h386y

Плата Stlink ST-Link V2

http://ali.pub/3h38sc

http://ali.pub/3h390i

Драйвер шагового двигателя из видео

Я использовал драйвер на микросхеме TB6560 , но по этим микросхемам много противоречивых отзывов, поэтому рекомендую другой драйвер TB6600 (опять же по отзывам, хотя у меня и с этими дрйверами проблем не быо). Стоит учесть, что в первом дрйвере уже встроениа оптическая развязка, в случае аварии погорит только драйвер, не унеся с собой остальную электронику. Актуально было во времена управления через LPT порт компьютера, где это могло привести к выбрасыванию на помойку всего компа.

TB6560

http://ali.pub/4ilbdw

http://ali.pub/4ilbjj

http://ali.pub/4ilbo0

http://ali.pub/4ilbp6

TB6600

http://ali.pub/4ilbuf

http://ali.pub/4ilbzo

http://ali.pub/4ilc27

http://ali.pub/4ilc3y

Если не хотите приобретать отдельный программатор для STM32, тогда возьмите переходник USB to COM , им тоже можно прошить контроллер, программой FLASHER STM32 – STM32 Flash loader demonstrator

Я пользуюсь такими конверторами, и пока они меня не подводили.

http://ali.pub/3h3a28

http://ali.pub/3h3aiy

Подробнее про прошивку контроллера можно посмотреть в видео из этой статьи Настройка GRBL самодельного лазерного гравера на примере STM32 blue pill, там отдельно в видео показаны 2 способа прошить контроллер.

Подробнее о настройке библиотеки GRBL можете прочесть здесь: Настройки библиотеки GRBL 1.1f

Если возникнут вопросы пишите в комментарии или в  группе в контакте. https://vk.com/public179183134

Автор: Ryazanec13

10 комментариев для “GRBL на STM32 STM32F103C8T6 Blue pill.

  1. Здравствуйте.
    Спасибо, очень интересно. Буду изучать внимательно.
    Возможно появятся вопросы, могу надеяться на ответ дилетанту?

    Анатолий

    1. Я сам когда то был дилетантом. По мере возможности отвечу на вопросы. Если здесь не отвечаю, можно стукнуть в группу в ВК или коменты на ютьюбе – я там чаще появляюсь.

    1. Там тот же контроллер стоит, если память не изменяет, менять не надо, только уточнить распиновку (что куда подключать).

  2. Здравствуйте. Возможно как то привязать MKS TFT24 , к этой прошивке? Я новичек в этом деле. Как я понял 30-pa9 и 31-pa10 выводы платы STM32F103C8T6 не задействованы и на них можно подцепить uart- rx tx MKS TFT24 ? Но как сообразить не могу. Вы можете прописать в прошивке и отправить мне hex? Ваш труд оплачу.

    1. Сам модуль MKS TFT перепрошить надо, например вот так https://cncmasterkit.ru/viewtopic.php?f=3&t=5068, а дальше пересобрать прошивку в атолик студио изменив в: свойствах проекта -> C/C++ General -> Path and Symbols -> Symbols убрать USEUSB, тогда должен заработать UART1 но после этого оси B и С работать не будут!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *