В этой статье я хотел бы поделиться своим способом изготовления односторонних печатных плат на ЧПУ-станке CNC3018.
Подготовка
Для изготовления нам понадобится:
- односторонний стеклотекстолит
- односторонний стеклотекстолит
- подложка под стеклотекстолит
- двухсторонний скотч
- набор сверл различного диаметра
- коническая гравировальная фреза 0.2 мм
- рашпильная фреза диаметром 2 мм (так называемая «кукуруза»)
- Z-щуп

В качестве подложки подойдет любой материал, который не жалко испортить и который легко поддается механической обработке. Я использую кусочек ХДФ-плиты, которая применяется для изготовления мебели. Подойдет также, например, кусочек ламината. Подложка необходима для того, чтобы не повредить координатный столик.
С помощью двухстороннего скотча приклеиваем стеклотекстолит к подложке и закрепляем заготовку на координатном столике. Стараемся расположить ее как можно ровнее, чтобы не было перерасхода стеклотекстолита.
После того, как закрепили стеклотекстолит, необходимо припаять провод так называемого Z-щупа. Обычно Z-щуп представляет собой некий концевой выключатель, помогающий контроллеру станка определить координату поверхности заготовки. В нашем случае медная фольга является проводником и подсоединив один провод к ней, а второй – на вал электродвигателя мы и получаем такой своеобразный выключатель. Во время касания фрезой поверхности стеклотекстолита между ними возникает электрический контакт и контроллер станка таким образом может определять координату нулевой точки по оси Z. Провода необходимо подключить к разъему PROBE на плате управления:

Устанавливаем гравировальную фрезу. Я использую конические фрезы диаметром 0.2 мм фирмы Xcan:

На этом подготовительные работы окончены. Далее переходим к созданию файлов фрезеровки печатной платы.
Создание файлов фрезеровки
Перед фрезеровкой необходимо выполнять ряд действий для преобразования рисунка печатной платы в так называемый G-код. G-код — это такой файл, содержащий набор команд для станка ЧПУ по перемещению фрезы по координатам XYZ. Рассмотрим создание файлов G-коде на примере платы, нарисованной в программе DipTrace.

Фрезеровать будем только нижний слой печатной платы (в программе он отмечен красным цветом). Первое, что необходимо сделать – это получить Gerber-файл нижнего слоя печатной платы. Для этого переходим в меню Файл – Экспорт – Gerber… В появившемся окне выбираем слой Нижний. Из объектов должны быть выбраны только: Трассы, Выводы, Переходы. Единицы измерения выбираем мм. Отмечаем, что рисунок должен располагаться Зеркально. И также в качестве начала координат отмечаем Использовать координаты проекта. В моем случае начало координат совпадает с левым нижним углом печатной платы.

Нажимаем Предпросмотр и убеждаемся, что все правильно.
Нажимаем Экспорт слоя и сохраняем файл под осмысленным названием, например bottom.
Следующим шагом будет создание Gerber-файла контура платы. Он пригодится нам в дальнейшем для обрезки. Алгоритм действий будет таким же как и для создания Gerber-файла нижнего слоя платы. Разница лишь в том, что сейчас мы выбираем слой Плата. Сохраняем слой под именем border.
И последнее, что осталось сделать в программе DipTrace — создать файл сверловки. Для этого переходим в меню Файл – Экспорт – N/C Drill… В открывшемся окне мы видим, что выбраны оба слоя: Верхний и Нижний. В данной случае можно так и оставить, потому что отверстия сквозные. В поле Инструменты программа вывела список всех имеющихся диаметров отверстий. Мы можем здесь дать наименование инструментам, с помощью которых будем производить сверловку, но на самом деле на данном этапе нам нужно получить лишь координаты центров отверстий. Поэтому нажимаем кнопку Авто и программа создаст произвольные названия. Не забываем выбрать Зеркальное расположение отверстий (т.к. нижний слой у нас тоже был отзеркален). В поле Смещение отмечаем Использовать координаты проекта. Единицы измерения здесь выбираем дюймы! Это важно, потому что программа FlatCAM, о которой будет сказано дальше, неправильно импортирует файл сверловки (либо программа DipTrace неправильно его экспортирует). Нажимаем Экспорт и даем файлу название drill.drl. Важно указать расширение drl — это понадобится для того, чтобы другие программы могли увидеть файл.

Теперь Gerber-файлы нам необходимо перевести в файлы G-кода. В этом нам поможет программа FlatCAM. Я использую версию 8.5 и все дальнейшие инструкции будут приведены именно для этой версии программы. Скачать программу можно по ссылке FlatCAM 8.5 Сразу же после запуска программы нужно на вкладке Options выбрать единицы измерения mm.

Переходим на вкладку Project и открываем Gerber-файл нижнего слоя платы: File – Open Gerber …
Выбираем открывшийся файл bottom.gbr и переходим на вкладку Selected. Здесь нас интересует группа параметров под названием Isolation Routing. В поле Tool dia задаем диаметр гравера, который в нашем случае равен 0.2 мм. В поле Width (# passes) задаем количество проходов фрезы. Для более чистой обработки рекомендую выбирать 3-4 прохода. В поле Pass overlap задается ширина перекрытия прохода в процентном соотношении, где 1 означает 100%. Оптимальное значение 0.3, что соответствует 30%. Это значит, что фреза, делая новый проход, будет захватывать предыдущий проход на 30%. Такое наложение проходов улучшает качество обработки. Также следует понимать, что не везде будет произведено такое количество проходов, которое задано в поле Width, если ширина между дорожками платы будет меньше суммарной ширины проходов.
Комбинируем все проходы, отмечая Combine Passes. Это уменьшит время обработки и позволит избежать холостых перемещений фрезы в воздухе. Нажимаем Generate Geometry.

Возвращаемся на вкладку Project, выбираем файл bottom.gbr_iso и снова переходим на вкладку Selected. Здесь мы будем настраивать группу параметров Create CNC Job. Параметр Cut Z задает глубину погружения фрезы в заготовку. Практически для всех типов стеклотекстолита вполне достаточно будет глубины погружения -0.1 мм. Параметр Travel Z определяет высоту подъема фрезы над заготовкой в момент холостого перемещения на новые координаты. Я задаю значение 1 мм. В поле Feed Rate задается скорость перемещения фрезы в заготовке. Опытным путем установлена оптимальная скорость 70. Tool dia — как и в предыдущем пункте это диаметр фрезы, равный 0.2 мм. И последний параметр Spindle Speed задает скорость вращения шпинделя. Устанавливаем максимальное значение равное 10000 об/мин.
Все необходимые параметры заданы — нажимает кнопку Generate.

Возвращаемся на вкладку Project, выбираем файл bottom.gbr_iso_cnc и снова переходим на вкладку Selected. Здесь просто нажимаем кнопку Export G-Code и сохраняем файл под именем bottom.nc.
Далее я предлагаю создать файл керновки отверстий. Это улучшит точность позиционирования при сверлении отверстий и уменьшит износ сверл. Керновка будет производиться все той же конической гравировальной фрезой.
Возвращаемся на вкладку Project и открываем файл сверловки drill.drl через меню File – Open Excellon … Выбираем открытый файл и переходим на вкладку Selected. Здесь в списке Tools мы видим все диаметры отверстий, которые имеются на плате. Удерживая клавишу Shift выбираем все элементы списка. Затем необходимо определить группу параметров Create CNC Job. Здесь задаются такие же настройки как и для фрезеровки дорожек. Нажимаем кнопку Generate.

На вкладке Project выбираем файл drill.drl_cnc, переходим на вкладку Selected и создаем G-код нажав на кнопку Export G-Code. Даём файлу название kern.nc.
Теперь создадим G-код для сверловки отверстий. Возвращаемся на вкладку Project и снова выбираем файл сверловки drill.drl. Переходим на вкладку Selected и в списке Tools выбираем диаметр 0.8 мм. Задаем глубину погружения сверла Cut Z равную -2 мм. Этого достаточно практически для всех видов стеклотекстолита. К тому же у нас имеется подложка, которая не даст просверлить координатный столик. Высоту подъем сверла Travel Z зададим равной 1 мм. Скорость погружения сверла в стеклотекстолит Feed Rate необходимо установить равной 40. Это оптимальная скорость, определенная опытным путем. Скорость вращения шпинделя Spindle Speed устанавливаем на максимум, т.е. 10000 об/мин. И нажимаем Generate. На вкладке Project выбираем файл drill.drl_cnc_1 и переводим его в G-код на вкладке Selected. Назовем файл drill_08.nc.

Аналогичные действия необходимо выполнить для группы отверстий диаметром 1 мм. Файл G-кода назовем drill_10.nc.
Основные файлы фрезеровки готовы. Осталось создать файл обрезки платы по контуру. К сожалению для этих целей программа FlatCAM не подходит, потому что она не позволяет обрезать плату полностью по периметру и оставляет специальные мостики, удерживающие ее в заготовке. Так как стеклотекстолит надежно закреплен с помощью двустороннего скотча, в этом нет необходимости.
Для создания G-кода обрезки платы я использую программу Gerber2Gcode (версия Jan 12 2022). Скачать программу можно по ссылке Gerber2Gcode.
Первое, что нужно сделать при запуске программы — это настроить Параметры G-кода. Здесь главное Толщина платы (1.8 мм) и Толщина меди (0.1 мм). Задав однажды эти настройки, их не придется каждый раз вводить вручную при создании файлов фрезеровки.

Через меню Файл – Открыть открываем сначала Gerber-файл нижнего слоя печатной платы bottom.gbr, а затем файл обрезки платы border.gbr

Важно убедиться, что размеры обоих слоев соответствуют друг другу. Теперь в Базу инструментов необходимо добавить рашпильную фрезу (кукурузу). Для этого переходим в меню Инструменты – База инструментов. Нажимаем Новый инструмент и заполняем все параметры инструмента, как показано на рисунке ниже.

Выбираем Тип Фреза. Даем название Фреза (Ø2 мм). Задаем диаметр фрезы. Глубина — это параметр, определяющий на сколько погружается фреза в стеклотекстолит за один проход. Ее лучше установить равной 0.2 мм. Отступ — это величина, указывающая процент перекрытия одного прохода фрезы другим в горизонтальной плоскости. Для обрезки платы параметр не актуален, но все же я его задаю равным 50%. Падачу на оборот лучше оставить такой, какой ее определила программа, т.е. 10% или 0.2 мм. Скорость шпинделя в данной программе не соответствует реальной. Опытным путем было установлено, что максимальной скорости оборотов соответствует значение 1000 об/мин. Скорость подачи — это скорость горизонтального перемещения фрезы в заготовке. Устанавливаем ее значение равным 1,5 мм/с, чтобы не перегружать станок. Скорость погружения также устанавливаем равной 1,5 мм/с. Сохраняем настройки и переходим в меню УП – Профиль. Устанавливаем параметр Глубина в положение П, что соответствует ранее заданной толщине печатной платы, равной 1.8 мм. Выбираем только что созданный инструмент Фреза (Ø2 мм). Далее выбираем файл border.gbr и выделяем его щелчком мыши. Остальные параметры оставляем без изменений. Задаем название будущего файла фрезеровки cutout и нажимаем Создать. Должно получится что-то примерно такое:

Выбираем в списке файлов созданный УП и сохраняем его через меню Файл – Сохранить выбранные УП. Дадим ему название, предложенное программой cutout_M-D2MM_TS.tap.
Теперь все файлы фрезеровки готовы. Переходим к программе управления ЧПУ-станком
Работа в программе Candle
Для работы c ЧПУ-станком я использую программу Grblcontrol версии 1.1.7. Скачать программу можно по ссылке Grblcontrol 1.1.7. Первое, что необходимо сделать после того, как вы подключили станок к компьютеру и подали питание – это в настройках задать правильный COM-порт. Все остальные настройки лучше оставить по умолчанию.

Если порт выбран правильно, то в поле Status вы должны увидеть надпиcь Idle. Если появилась надпись Alarm, то просто нажмите на кнопку с замком для разблокировки.
Итак, связь со станком ЧПУ установлена. Можем переходить к определению начала координат. С помощью кнопок ручного управления в поле Jog подводим фрезу в левый нижний угол стеклотекстолита с небольшим смещением внутрь по X и Y. Далее нам нужно открыть файл фрезеровки нижнего слоя печатной платы. Делаем это с помощью меню File – Open и выбираем созданный ранее файл bottom.nc

В окне предварительного просмотра мы видим, что начало координат платы находится в правом нижнем углу. Потому перемещаем фрезу вправо на ширину платы. В данной случае на 35 мм.
Начальная точка задана. После этого можно обнулить координаты XY с помощью кнопки Zero XY.
Далее нужно определить нулевую точку по оси Z. Для этого нам и понадобится наш Z-щуп. Цепляем второй провод щупа на вал электродвигателя и запускаем поиск нулевой точки Z нажатием на кнопку Z-probe. После того, как координата нуля Z определена, обнуляем ее нажатием на кнопку Zero Z. Все три координаты теперь у нас равны 0.
Так как поверхность стеклотекстолита не идеально ровная, нужно просканировать ее и составить карту высот. Далее эта карта будет использоваться программой для корректировки координат погружения фрезы в заготовку. Для создания карты нажимаем кнопку Create в области параметров Heightmap. В группе Border нажимаем кнопку Auto для автоматического определения ширины и высоты платы. В группе Probe Grid задаем количество точек сканирования по осям X и Y. Количество лучше выбрать пропорционально размерам платы. У меня это 3 и 5 соответственно. В группе Interpolation Grid нужно задать размер сетки. Задаю величины пропорциональные размеру платы: 35 и 70 соответственно. Нажимаем кнопку Probe и дожидаемся окончания процесса сканирования. Должна получиться примерно такая карта:

Сохраняем ее через меню File – Save в файл heatmap.map и возвращаемся в режим управления нажав кнопку Edit mode. Устанавливаем галочку напротив Use heightmap для использования карты поверхности. Снимаем провод Z-щупа с вала электродвигателя! Запускаем процесс фрезерования кнопкой Send. По окончанию фрезеровки станок вернет фрезу в нулевую точку. Теперь необходимо произвести керновку отверстий. Для этого загружаем ранее созданный файл kern.nc и запускаем фрезеровку.

Теперь переходим к сверлению отверстий. Меняем оснастку: устанавливаем сверло диаметром 0.8 мм. Для сверления я использую сверла из набора фирмы Xcan:

Загружаем файл drill_08.nc. Так как у нас изменилась нулевая координата оси Z, то необходимо заново запустить процесс поиска нулевой точки Z-probe. Не забудьте обнулить координату Z по окончанию поиска кнопкой Zero Z и снять провод с вала электродвигателя

Аналогично выполняем процедуру сверления отверстий диаметром 1 мм.

Осталось обрезать печатную плату по контуру. Устанавливаем рашпильную фрезу (кукурузу)

Производим калибровку нулевой точки Z, загружаем файл cutout_M-D2MM_TS.tap и запускаем процесс фрезеровки.

По окончанию процесса обрезки отклеиваем готовую печатную плату от подложки, удаляем остатки двустороннего скотча и радуемся полученному результату:

Устройство, для которого изготавливалась данная плата, можно увидеть здесь: бюджетная альтернатива Makerfabs ESP32 UWB. Все необходимые для самостоятельного изготовления файлы доступны для скачивания по ссылке ESP32UWB
Также весь процесс изготовления печатной платы на станке CNC3018 можно увидеть на видео: Изготовление печатных плат на ЧПУ-станке CNC3018
На этом, пожалуй, все. Напишите в комментариях свое мнение о получившейся плате.
