惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Securelist
O
OpenAI News
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Threat Research - Cisco Blogs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Google Online Security Blog
Google Online Security Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
N
News and Events Feed by Topic
S
Security Affairs
SecWiki News
SecWiki News
Project Zero
Project Zero
L
Lohrmann on Cybersecurity
P
Proofpoint News Feed
P
Palo Alto Networks Blog
L
LINUX DO - 最新话题
H
Hacker News: Front Page
Recent Commits to openclaw:main
Recent Commits to openclaw:main
I
Intezer
Simon Willison's Weblog
Simon Willison's Weblog
W
WeLiveSecurity
T
The Exploit Database - CXSecurity.com
K
Kaspersky official blog
The GitHub Blog
The GitHub Blog
I
InfoQ
云风的 BLOG
云风的 BLOG
雷峰网
雷峰网
B
Blog
IT之家
IT之家
AWS News Blog
AWS News Blog
Jina AI
Jina AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Google DeepMind News
Google DeepMind News
Spread Privacy
Spread Privacy
N
News and Events Feed by Topic
Security Latest
Security Latest
美团技术团队
C
Check Point Blog
WordPress大学
WordPress大学
T
Tenable Blog
S
Security @ Cisco Blogs
Last Week in AI
Last Week in AI
博客园 - 聂微东
月光博客
月光博客
博客园 - 【当耐特】
S
Schneier on Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
Secure Thoughts
Schneier on Security
Schneier on Security
C
Cisco Blogs
Cyberwarzone
Cyberwarzone

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Кто решает судьбу вашего проекта? Разбираем заинтересованные стороны. BABOK #1 Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Я попытался изготовить PCB на CNC3018 под Linux. Всё оказалось сложнее, чем я думал
Шаврин Иван · 2026-06-13 · via Все публикации подряд на Хабре

Введение

Меня зовут Иван, и я счастливый обладатель ЧПУ станка 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 и здесь на хабре.