Олды-радиолюбители помнят, как когда-то делались печатные платы: цапон-лак, подкрашенный чернилами от шариковой ручки, стеклянный рейсфедр или просто заточенная спичка, банка с хлорным железом...
Потом была Лазерно-Утюжная Технология, испорченные утюги и пригоревшие бумажки.

В наше время, конечно, можно заказать фабричное изготовление - но это сроки.
Если периодически нужны штучные вещи, например, прототип какого-нибудь устройства, и срочно - буквально вот прям сегодня - все это можно сделать самому, и довольно просто.
Нет, ЛУТ это конечно тоже работает, но с нюансами. Гораздо лучше использовать фоторезист, особенно если отработать технологию.

Теория простая: готовим плату, распечатываем шаблон, наносим на заготовку платы фоторезист, засвечиваем его через шаблон, смываем незасвеченное, травим - плата готова.
Звучит просто, но именно тут начинаются вопросы по технологии этого процесса: какой фоторезист, как наносить, как делать фотошаблон, как засвечивать, чем смывать, чем травить...
Приведу пример одного из вариантов, как это можно делать.

Программное обеспечение

Ну понятно, должна быть программа для создания плат, например, у меня LibrePCB.
Конечно, тут у каждого свои предпочтения, но с точки зрения изготовления плат методом фоторезиста важно лишь, как именно потом печатать фотошаблоны.
Поэтому не буду останавливаться на том, в какой именно программе готовиться плата - я про сам принцип печати шаблона.
И поскольку у меня Linux - то и программы, соответственно, под Linux.

Важный момент: top side надо печатать в зеркальном отображении, bottom - в прямом (так как фотошаблон прикладывается к фоторезисту напечатанной стороной), дорожки должны быть белыми на черном фоне (чтобы они засвечивались), а паяльная маска должна быть черной на белом (чтобы площадки не засвечивались).

Самое очевидное решение для интерактивной графической программы - найти в меню что-то вроде Print, или Export во что-то печатаемое, типа pdf - но там такого может не быть, и скорее всего не будет нужных настроек: либо нет зеркалирования, либо нельзя инвертировать изображение, либо можно - но весь лист целиком.
Конечно, можно потом открыть сохраненную картинку в графическом редакторе, что-то выделить, что-то инвертировать, распечатать, соблюдая масштаб - но это дополнительная ручная работа, которая занимает лишнее время.

Но есть способ лучше:
Любая программа для создания плат имеет экспорт в gerber: именно эти файлы идут в заводское производство.
Это набор файлов определенного формата, описывающих различные слои: один описывает контур платы в целом, другой - дорожки на верхней стороне, третий - на нижней, и так далее.
Они могут называться по-разному, но общий принцип примерно такой: projectname_XXXXX, где XXXXX - название слоя, например _copperBottom.gbl или _COPPER-BOTTOM.gbr - у разных программ отличается.

При этом в Linux есть утилита gerbv, для просмотра gerber: она не только позволяет их просматривать,но и умеет в командном режиме экспортировать их в разные форматы.

apt install gerbv

Кроме того, в ней можно задать цвета фона и различных слоев - хотя тут для печати нужен простой черно-белый вариант.
К сожалению, по какой-то причине делает это она некорректно: белый цвет недостаточно белый, а черный - недостаточно черный.
На печати это выглядит как "оттенок серого", с добавлением черных или белых точек.

Зато в Linux есть пакет ImageMagick, который умеет конвертировать форматы картинок, в том числе преобразовывать картинки в строго черно-белые, а также зеркалить их и преобразовывать в pdf.
В этом же пакете - утилита display, для просмотра получающихся файлов.

apt install imagemagick

А стандартная для Linux система печати CUPS умеет сама распечатывать pdf-файлы.
Причем для этого не надо их в чем-то открывать и искать там какие-то пункты в меню - есть стандартные утилиты, известные еще со времен BSD UNIX, которые просто печатают заданный файл на заданный принтер.

apt install cups-bsd

Поэтому вместо мышевождения по экрану можно просто написать четыре скрипта, для подготовки к печати top copper, bottom copper, tom mask, bottom mask, и еще три для распечатки на А4, А5 и А6 листах, чтобы не вспоминать как оно там правильно запускается.

Для тех, кто привык к графике, это может показаться странным - неужели командная строка удобнее, чем увидеть глазами и ткнуть мышкой?
Но да, так и есть - это удобнее, потому что в разы быстрее, примерно так:

mk_top project
print_a6 out.pdf

и всё, ничего не надо открывать, выделять, выбирать и печатать, уже всё готово: подготовлен к печати верхний слой "меди" и результат отправляется на принтер.

Набор скриптов

Скрипты почти одинаковы: из предложенного имени файла выделяется название проекта, потом комбинируется нужный слой со слоем outlines, чтобы в результате получить соответствие с размерами платы.
Разница только в параметрах очернобеливания и в зеркалировании: (названия файлов адаптированы для LibrePCB)

mk_top
#!/bin/sh

if [ "x$1" != "x" ] ; then
  name=$( echo $1 | perl -lpe 's/^([^_]+)_.*/$1/')
  echo $name

  if [ -f "${name}_OUTLINES.gbr" ] ; then
    gerbv -x png --dpi=1200 \
      -o out.png \
      -b '#000000' -f '#ffffff' -f '#ffffff' \
      ${name}_COPPER-TOP.gbr ${name}_OUTLINES.gbr
    convert out.png -colorspace Gray -threshold 20% -density 1200 -flop out.pdf
    display out.pdf
  fi
else
  echo "Usage: $0 <filename>"
  echo
fi

exit
mk_bottom
#!/bin/sh

if [ "x$1" != "x" ] ; then
  name=$( echo $1 | perl -lpe 's/^([^_]+)_.*/$1/')
  echo $name

  if [ -f "${name}_OUTLINES.gbr" ] ; then
    gerbv -x png --dpi=1200 \
      -o out.png \
      -b '#000000' -f '#ffffff' -f '#ffffff' \
      ${name}_COPPER-BOTTOM.gbr ${name}_OUTLINES.gbr
    convert out.png -colorspace Gray -threshold 20% -density 1200 out.pdf
    display out.pdf
  fi
else
  echo "Usage: $0 <filename>"
  echo
fi

exit
mk_mask
#!/bin/sh

if [ "x$1" != "x" ] ; then
  name=$( echo $1 | perl -lpe 's/^([^_]+)_.*/$1/')
  echo $name

  if [ -f "${name}_OUTLINES.gbr" ] ; then
    gerbv -x png --dpi=1200 \
      -o out.png \
      -b '#ffffff' -f '#000000' -f '#000000' \
      ${name}_SOLDERMASK-TOP.gbr ${name}_OUTLINES.gbr
    convert out.png -colorspace Gray -threshold 80% -density 1200 -flop out.pdf
    display out.pdf
  fi
else
  echo "Usage: $0 <filename>"
  echo
fi

exit
mk_mask_bottom
#!/bin/sh

if [ "x$1" != "x" ] ; then
  name=$( echo $1 | perl -lpe 's/^([^_]+)_.*/$1/')
  echo $name

  if [ -f "${name}_OUTLINES.gbr" ] ; then
    gerbv -x png --dpi=1200 \
      -o out.png \
      -b '#ffffff' -f '#000000' -f '#000000' \
      ${name}_SOLDERMASK-BOTTOM.gbr ${name}_OUTLINES.gbr
    convert out.png -colorspace Gray -threshold 80% -density 1200 out.pdf
    display out.pdf
  fi
else
  echo "Usage: $0 <filename>"
  echo
fi

exit

На выходе получается файл pdf с заданным именем, который скрипт и показывает в конце, почти в натуральную величину.
Остается только отправить его на печать.

С печатью еще проще - там разница в указании размера бумаги для печати:

print_a6
#!/bin/sh

if [ -f "$1" ] ; then
  lp -o media=a6 -o print-quality=5 $1
else
  echo "Usage: $0 <filename>"
  echo
fi

exit

А теперь - изготовление платы на примере:

Это был аналоговый магнитный датчик, доработанный для "токовой петли" - сугубо технический проект, который сам по себе вряд ли кому-то еще нужен, поэтому принципиальную схему не привожу, тут будет чисто иллюстрация к процесу изготовления.

Разработка платы

Самый долгий этап, потому что требовалось уместить схему на минимально возможной площади.
Время тут "не считается", потому что ровно столько же потребуется для заказа платы на производстве.
В результате плата разработана, gerber экспортирован - можно изготавливать.

Печать фотошаблона

Поскольку используется SMD-монтаж - всё находится на верхнем слое, top.
Соответственно, печать фотошаблона выглядит буквально так:

mk_top project
print_a6 out.pdf

Принтер - самый обычный "офисный" Pantum.

Для фотошаблонов нужна либо тонкая листовая калька, "для рисования", либо даже простая "писчая" бумага - плотностью 30-40, которую можно найти в канцелярских магазинах.
Честно говоря, не знаю для чего она на самом деле сейчас предназначена - но вроде совсем не дефицит, и продается пачками по 500 листов.

На первый взгляд странный материал для фотошаблонов - серая, невзрачная бумажка типа газетной - секрет в том, что капля обычного подсолнечного масла превращает ее в полупрозрачную, а если вместо этой бумаги взять кальку "для рисования" - и вовсе в прозрачную пленку.

Есть небольшая проблема: тонкую бумагу плохо берет принтер, поэтому можно взять обычную офисную, сложить сверху "бортик" шириной 1 см, вложить туда внутрь край тонкой бумаги, и скормить этот бутерброд принтеру - он все напечатает на тонкой.

Время на это - секунд 5 + закладка листа бумаги.
В итоге получилось вот это:

Нанесение фоторезиста

С фоторезистом достаточно просто: продается китайский, в рулончиках - вот он прекрасно работает.
Главное, чтобы пленка была не мятая, и с равномерной заливкой.

Фоторезист боится УФ-излучения, то есть это не только специальные лампы, но и солнечный свет, а также достаточно яркие люминисцентные лампы или светодиоды, вопрос только во времени экспозиции.
А вот ламп накаливания он не боится, они его не засвечивают - при их свете можно не бояться, что что-то испортится.
Говорят, что хранить его следует при температуре не выше ХХХ, и не дольше чем YYY - похоже что это не так, лежит годами в тепле и не портится - достаточно просто держать его в темноте.

Итак, берем подходящий по размеру кусок стеклотекстолита или гетинакса, кладем его на кусок листа обычной офисной бумаги.
Вырезаем из рулона фоторезиста кусочек чуть больше куска платы, с расчетом на то, что лишние края приклеются к бумажной подложке.
Подложка нужна для фиксации фоторезиста и удобства протягивания через ламинатор.

С помощью кусочка малярного скотча, прилепленного на уголок фоторезиста снизу, аккуратно стягиваем нижнюю защитную пленку, одновременно "прилепляя" пальцем фоторезист к плате и к бумаге.
На плате не должно оставаться воздушных пузырей или мусора.

Полученную конструкцию прогоняем через горячий ламинатор - фоторезист прилипает и к плате, и к бумажной подложке.
Ничего экзотического, к примеру прекрасно подходит офисный типа Sigma. Ламинирующие валики у него подружинены, плата прекрасно проходит.

Времени это занимает - 1-2 минуты, в результате получаем:

Приладка фотошаблона

На заготовку капаем каплю обычного подсолнечного масла. Бумагу с распечатанным шаблоном также аккуратно смазываем маслом, и прикладываем стороной с тонером к заготовке.
После разглаживания (еще каплю масла можно добавить и с другой стороны) бумага плотно прилегает к заготовке, частично просвечивает (а калька и вовсе становится прозрачной).
Не требуются никакие приспособления для прижима.
Время - ну минута максимум.

Теперь фоторезист нужно засветить. В принципе, можно использовать любые лампы, способные давать УФ-излучение, но время и качество засветки может очень сильно отличаться:
например, так называемая лампа "черного света" может засвечивать это минут 15, что очень долго. Чем дольше этот процесс - тем больше паразитная засветка через тонер.
Гораздо лучше собрать специальный аппарат для засветки:

Приобрести светодиодную ленту УФ-светодиодов, таких прозрачных, без люминофора (не путать с фиолетовыми фитолампами красно-синего спектра), и использовать подходящую коробку типа старого планшетного сканера с крышкой, или микроволновки с дверцей - потому что смотреть глазами на работающие светодиоды не стоит.
Наклеить полоски ленты на крышку или "на потолок", под которым будет лежать плата, и желательно добавить какой-нибудь таймер, например на базе ардуино - потому что вот такой девайс способен засвечивать фоторезист где-то от 4 до 8 секунд, в зависимости от количества лент и плотности фотошаблона.
Время подбирается один раз экспериментально, и потом должно строго соблюдаться с точностью до секунды - для этого и нужен таймер.

Если такой аппарат есть - процесс засветки заключается в том, чтобы положить плату в коробку, установить таймер и нажать кнопку.
Через несколько секунд будет готово. Останется снять фотошаблон - вдруг еще понадобится.

Проявка платы

Теперь нужно смыть незасвеченный фоторезист. Аккуратно с края поддеть верхнюю защитную пленку фоторезиста и снять ее.
Оторвать заготовку от бумажной подложки (засвеченный фоторезист хрупкий и без защитных пленок легко ломается), и положить в емкость для смывки.
Реагент - раствор в воде "жидкого стекла", оно же "советский канцелярский клей", которое продается почти в любом строительном магазине литровыми банками: примерно 1:1 с водой. Потребуется лишь тонкий слой, чтобы чуть покрывал плату.

В принципе подойдет любой достаточно слабый раствор щелочи - просто "жидкое стекло" удачно подходит, не слишком едкое, не слишком слабое.

Одна минута покачивания емкости с платой и раствором - незасвеченный фоторезист размягчается. Вытаскиваем плату за края, осторожно промываем струей холодной воды - часть смывается.
Кладем обратно, и еще одна минута, потом еще одна промывка - в идеале незасвеченное должно смыться, оставив дорожки и чистую медь.
Третья минута - максимум, потом начнут смываться и дорожки. Не уложились в три минуты - плата была пересвечена, нужно уменьшать время засветки.

Травление

И снова - обычная бытовая химия: на 100мл медицинской 3% перекиси водорода 2 чайных ложки обычной столовой соли и 1 чайная ложка лимонной кислоты - как видите ничего специального-экзотического.
В отличии от традиционного хлорного железа - раствор одноразовый, но зато он не пачкает ни одежду, ни сантехнику в доме, и всегда можно купить в ближайшем магазине.
Травление занимает порядка 10 минут, процесс виден на глаз.

Смывка

Для смывки остатков фоторезиста подходит самый обычный "Крот", или иное средство для прочистки засоров, очистки плит и т.п., содержащее щелочь, гидроксид натрия.
Тут как раз нужна сильная щелочь.
В течении все тех же трех минут фоторезист должен побледнеть и сползти лохмотьями.

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

Для лужения используется паяльная паста - по сути флюс с порошком олова. Дорожки покрываются более-менее ровно пастой, затем паяльным феном на сильном обдуве олово расплавляется и покрывает все дорожки.
Остатки флюса смываются растворителем.

На посадочные места SMD-компонентов шприцом через иглу наносятся капли флюса, на них приклеиваются элементы, потом все это постепенно прогревается паяльным феном.
Расплавленный припой за счет поверхностного натяжения центрует элементы на их посадочных местах, флюс заставляет припой собираться в капли, не давая ему закоротить дорожки.
Останется только смыть остатки флюса.

Результат: работающее устройство, на плате, в тот же день как оно понадобилось, без ожидания.