Я попытался изготовить PCB на CNC3018 под Linux. Всё оказалось сложнее, чем я думал

от автора

Введение

Меня зовут Иван, и я счастливый обладатель ЧПУ станка CNC3018. Точнее даже так: я уже два года счастливый обладатель набора для изготовления печатных плат на ЧПУ: CNC3018, модуль лазерной гравировки, свёрла, фрезы, хотя у меня был набор конкретных проектов плат, которые я хотел сделать. Но я собрал станок, доработал болгаркой лазерный модуль (он квадратный, а крепление — круглое). Попробовал запускать дома — шумно. Перенёс в мастерскую — всё ок, я теперь могу начинать его осваивать. Но дело не идёт. Я забыл уточнить, что основная ОС у меня Linux, и это оказалось больно.

Какой был план

Мой план был прост: есть проект печатной платы, который я могу открыть в EasyEDA или Kicad. Например сплит‑клавиатура Ergohaven K-03 или электронная гитара для токарного станка Nanoels‑H5. Я делаю экспорт в Gerber файл, готовлю GCode и делаю плату на CNC3018. Я беру Gerber файлы и технологию изготовления печатных плат с выжиганием краски лазером, сверлю, фрезерую, наношу маску, паяю и получаю продукт, который, может быть, не так красив, как заводские платы, но будет работать (а мне надо именно это).

K03-Keyboard-3D-render.png

Плата моей мечты 🙂

С чем я столкнулся

Candle

К Candle никаких вопросов нет, отличная вещь, всё что нужно делать — делает. Карта высот, сверловка — всё ок.

Flatcam

Flatcam-features-screenshot.png

Многообещающий список фич Flatcam

Я много раз встречал информацию, что это именно тот инструмент. Но, к своему стыду я не смог его завести на своей локальной машине. Как я понял, проект уже довольно давно не поддерживается. Пару вечеров я пытался запустить его в ubuntu + virtualenv, чтобы не портить глобальное окружение, но так ничего и не вышло. Активность проекта на сайте и форке в github создают ощущения, что он переживает не лучшие времена.

flatcam-github-commit-messages.png

Текущий статус одного из форков

bCNC

Эта программа, хоть и пугает своим интерфейсом, но вроде бы делает дело, сверловка и фрезеровка в ней у меня удались, но вот плагин для генерации GCode для выжигания — зависал и рабочего результата не дал. И да, сам проект тоже выглядит замороженным.

BCNC-left-pcb-lasercut.png

BCNC. LaserCut есть, но это про гравировку. Я же искал выжигание краски

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

Как резервный план для сверловки и работы не с печатными платами я bCNC держу в голове

pcb2gcode

Это утилита, как мне показалось, может решить мои проблемы — описываем файл проекта, запускаем генерацию — получаем набор GCode для работы на ЧПУ. Проект вроде живой, но я искал выжигание краски гравером. А тут только фрезеровка. И попрошествии какого‑то времени я смотрю на подготовленный конфиг и сгенерированные файлы я понимаю, что ничего не понимаю и нужно повторно тратить время на то чтобы разобраться. Но я помню, что подумал тогда: «Круто, можно будет сделать генерацию через Makefile», но не сделал.

Плагины Inkscape

Я пытался экспортировать платы в SVG, а потом конвертировать разными плагинами в Inkscape. Но каких-то успехов не добился. Расширений есть несколько. Они что-то делают. Но это что-то готовым решением я назвать не могу. Кроме того, у меня не очень укладывается в голове, что можно взять что-то из точного приложения (CAD) и поместить в графический редактор (хоть и векторный) и сохранить при этом точность.

Inkscape-gcode-extentions.png

Те расширения для Inkscape, которыми я пробовал генерировать GCode

LaserGRBL

Я сдался и выбрал проект попроще. Потом сдался ещё раз и подключил к CNC3018 старый лаптоп жены с Win10. Поставил LaserGRBL — всё ок, я могу выжигать по краске (в проветриваемом помещении, с подачей воздуха в область реза!) печатные платы экспортированные из Kicad (Kicad -> SVG -> PNG -> LaserGRBL). Иду к цели (цель — двухсторонние печатные платы). Я научился совмещать ларный модуль и сверловку на двухсторонней плате. Но тут я столкнулся с тем, что LaserGRBL имеет какие-то проблемы с DPI и теряет размеры. Немного, но достаточно чтобы отверстия были уже не по центру пятаков. Я пробовал выжигать двухсторонние платы, переворачивая плату на установочных пинах — но, в LaserGRBL нужно «на глазок» совместить слои.

photo_2026-06-11_21-59-39.jpg

Совмещение лазерного модуля по пинам

Что я ожидал увидеть в 2026 году

Это всё интересно, но в 2026 году я ожидал, что я находясь в своей экосистеме (Linux) смогу:

  1. Экспортировать Gerber.

  2. Выбрать тип станка.

  3. Сгенерировать GCode.

  4. Изготовить плату.

Понятный такой workflow. Как с 3D печатью: модель → слайсер → octoprint → 3d‑принтер → готовый продукт (или борода).

А что на практике?

А на практике, после нескольких недель экспериментов,, получаем следующее:

  1. Генерация GCode: pcb2gode (я вижу, что это реально крутой проект, который может предоставить рабочий workflow, но он про фрезеровку, а хотел выжигать краску лазером), bCNC (тоже мощная штука, но опять же, лазер сделать не удалось). SVG → PNG → LaserGRBL (Windows) — работает, но есть проблемы. Flatcam у меня не получилось запустить.

  2. Выжигания краски: увы, сейчас это только LaserGRBL и только под Windows

  3. Сверловка: bCNC тут несомненно рулит

  4. Двухсторонняя плата — мои текущие попытки особым успехом не увенчались, но кажется я нащупал верный путь.

  5. Linux: вот тут печально. Приложения не обновляются. Придумать рабочий процесс — это целое дело.

Что хотелось

Что получилось

Gerber → GCode

pcb2gcode, bCNC

Linux workflow

заброшенные проекты (FlatCam)

Двухсторонние платы

ручное совмещение, с очень неточным позиционированием

Лазер

практически один рабочий вариант который я нашёл — LaserGRBL

Повторяемость результата

много ручной магии

Возможно, проблема во мне?

Возможно, опытные пользователи этих инструментов сейчас улыбаются и знают гораздо более короткий путь. Если это так — буду рад увидеть его в комментариях. Но как новичок в домашнем производстве PCB я ожидал намного более простого входа в эту область.

Выводы

Вот тут‑то я и прихожу к основному тезису статьи: Я так и не смог найти современный и понятный workflow для изготовления PCB на домашнем ЧПУ под Linux. То что есть — находится в плачевном состоянии. Есть технические средства (ЧПУ, лазерные граверы), но для того чтобы получить рабочий результат этого недостаточно.

Самое забавное, что когда я покупал CNC3018, мне казалось, что самая сложная часть проекта — нарисовать плату в KiCad. Спустя несколько недель экспериментов я понял, что спроектировать плату оказалось проще, чем изготовить её на собственном оборудовании. Плата в KiCad у меня уже есть. Теперь осталось понять, как её материализовать.

Возможно, я просто не нашёл правильный workflow. Если вы изготавливаете PCB на домашнем ЧПУ под Linux — расскажите, какие инструменты используете и как выглядит ваш процесс.

PS

Я никоим образом не хочу обидеть авторов упомянутых приложений. Уверен, что в какой‑то момент времени они (приложения) решали поставленные задачи. Возможно при должной сноровке они могут делать это и сейчас. Это opensource и авторы никому ничего не должны.

PS2

Я планирую продолжать изучение темы. Свои заметки буду вести в канале https://t.me/pcbathome и здесь на хабре.

ссылка на оригинал статьи https://habr.com/ru/articles/1047132/