Лазерная установка для засветки фоторезиста — система прямого лазерного экспонирования (Laser Direct Imaging) для изготовления печатных плат: лазер засвечивает рисунок прямо на фоторезисте, без фотошаблонов. Этот репозиторий содержит программу для ПК и прошивку контроллера установки в одном проекте.
Проект создан на основе разработки энтузиастов с форума radiokot.ru. Автор оригинальной установки, прошивки и ПО — AlphaCrow:
- тема на форуме: https://www.radiokot.ru/forum/viewtopic.php?t=119089
- telegram: https://t.me/+NOX32LwJiS83MWQy
Оригинальная программа для ПК была написана на Forth (Win32), а прошивка контроллера — на C для STM32F103. Данный репозиторий портирует и то, и другое в современный кроссплатформенный и поддерживаемый вид, сохраняя протокол обмена и поведение управления точно соответствующими оригиналу.
HLDI/
├── pc-software/ Программа для ПК (Python + PySide6)
│ └── hldi/ ядро (протокол, gerber, экспонирование) · hardware · gui
├── firmware/ Прошивка контроллера (Arduino)
│ ├── HLDI_Firmware/ STM32F103 «Blue Pill» — точный порт (STM32duino)
│ ├── HLDI_Firmware_AVR/ Arduino Uno/Nano/Mega — упрощённый вариант
│ └── HLDI_Firmware_ESP32/ ESP32 — беспроводная связь (WiFi + BLE) + поиск
└── docs/
└── PROTOCOL.md спецификация общего протокола обмена и обнаружения
Десктопное приложение на PySide6, которое:
- разбирает файлы Gerber (RS-274X, включая апертурные макросы) и сверловки Excellon;
- растрирует изображение и выполняет построчное лазерное экспонирование;
- управляет контроллером по протоколу обмена (есть встроенный бэкенд-симулятор, поэтому работает и без оборудования) и подключается через USB, WiFi или Bluetooth — устройства WiFi и BLE находятся автоматически;
- предоставляет полный интерфейс оператора: просмотрщик Gerber, камера совмещения, ручное перемещение/позиционирование, экспонирование с регулировкой мощности и скорости «на лету», окна смещений и настройки ПИД, меню и горячие клавиши.
cd pc-software
pip install -r requirements.txt
python run.pyПодробности — в pc-software/README.md.
Arduino-порт прошивки контроллера STM32F103 в трёх вариантах:
HLDI_Firmware/— точный порт для STM32F103C8 «Blue Pill» (STM32duino): бинарный командный протокол, ПИД-регулятор двигателя каретки с обратной связью по квадратурному энкодеру, шаговый двигатель стола с таблицей разгона и ШИМ лазера с попиксельной засветкой из буфера ОЗУ.HLDI_Firmware_AVR/— упрощённая сборка для Arduino Uno / Nano / Mega: тот же протокол обмена, оси по STEP/DIR без обратной связи и лазер черезanalogWrite; для стендовой проверки и простых задач (не замена прошивке STM32).HLDI_Firmware_ESP32/— беспроводная сборка для ESP32: тот же протокол поверх WiFi (TCP) и Bluetooth (BLE), с автоматическим обнаружением устройства (UDP-маяк, отвечающий на широковещательные запросы), настройкой WiFi через USB, приёмным буфером и автоматическим переподключением к WiFi.
Оригинальная прошивка — это STM32F103, а не AVR. Поэтому точный Arduino-таргет — STM32F103C8 «Blue Pill» на ядре STM32duino, тот же микроконтроллер, что и в оригинале. 8-битный AVR не способен воспроизвести связку аппаратных таймеров, на которой держится конструкция, — поэтому AVR-сборка является осознанно упрощённым функциональным подмножеством.
Карта модулей и инструкции по сборке (Arduino IDE или PlatformIO) — в
firmware/README.md.
Прошивка и программа для ПК используют один протокол, описанный в
docs/PROTOCOL.md. Обе реализации проверены на
побайтовое совпадение кадров (например, CMD_MVX с аргументом -12345
кодируется в D6 07 C7 CF FF FF 0A 7B 04 E7 с обеих сторон).
В ходе портирования заголовок прошивки (hldi.h) раскрыл истинные константы
протокола — маркеры кадра 0xD6/0xE7 и последовательные идентификаторы
команд 0–17 — и protocol.py на стороне ПК был исправлен под точное
соответствие.
- Программа для ПК: рабочий прототип, запускается на симуляторе и на реальном оборудовании.
- Прошивка: полный Arduino/STM32duino-порт, структурированный по модулям оригинала.
Самый требовательный к реальному времени элемент тракта экспонирования (синхронизированная с энкодером попиксельная засветка лазера) сохраняет явные точки расширения, чтобы на реальном оборудовании можно было включить исходную тесную связку через прерывания с прямой настройкой регистров STM32.
Лазерная установка для засветки фоторезиста, её прошивка и программа для ПК разработаны энтузиастами с форума radiokot.ru; автор — AlphaCrow. Данный репозиторий является портом и модернизацией этой работы.
См. файл LICENSE.