Skip to content

Latest commit

 

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HLDI — лазерная установка прямого экспонирования

Лазерная установка для засветки фоторезиста — система прямого лазерного экспонирования (Laser Direct Imaging) для изготовления печатных плат: лазер засвечивает рисунок прямо на фоторезисте, без фотошаблонов. Этот репозиторий содержит программу для ПК и прошивку контроллера установки в одном проекте.

Проект создан на основе разработки энтузиастов с форума radiokot.ru. Автор оригинальной установки, прошивки и ПО — AlphaCrow:

Оригинальная программа для ПК была написана на 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  спецификация общего протокола обмена и обнаружения

Программа для ПК (pc-software/)

Десктопное приложение на 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.

Прошивка (firmware/)

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.

About

HLDI — Laser Direct Imaging system

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages