Thomas shares makes

2025-04-10

Laser engraved and etched circuit boards!

test

etch tank

Nowadays diode laser engravers are powerful enough to cut through a few millimeters of wood and you can get a fairly large one for under 200 euros.

Cutting wood into shapes always was a makerspace thing I loved to have in my home lab, but it didn't justify buying one.

A laser engraver can also make it easy to prepare bare circuit boards for etching at home though! I'll explain how I do this, and how it makes creating PCB's very easy if you have an etch tank in your lab.

Concept

Engraving wood and creating wooden boxes is nice. I love even more the idea of being able to create prototype PCB circuit boards at home quickly and easily.

test

Sculpfun S9 diode laser engraver.

I figured the engraving process can be used to burn away paint to expose it for etching, getting rid of the tedious photo-transfer or toner-transfer masking method which makes alignment for dual sided boards a chore. YouTube showed me several people had the same idea already, and I could learn a lot from them.

Being scared of sharks and lasers, but considering I already had some quality eye protection and a small room where I could set up a webcam to watch the engraving process with, I bought the thing!

One of these youtube videos shows a clever engraving fixture for the circuit board, making it easy to do two-sided boards.

Note

This is still a new project, and on the first attempt I had some issues with engraving accuracy which might be caused by belts not tight enough and the frame not being aligned correctly. I'll update the pictures when I solve these issues.

DIY PCB making comparison

There is always some work involved creating your own circuit boards. I think my method is however relatively convenient compared to other processes.


Process Advantages disadvantages
Photo transfer
  • cheap
  • 🖨 printer needed, transparencies
  • photo resist coated board needed
  • 🔦 UV exposure equipment
  • 🧪 developing step
  • 🧪 Chemical etching
  • 👀 manual alignment of layers
Toner transfer
  • cheap
  • single sided pcbs can use toner transfer as silkscreen
  • 🖨 Laser printer required
  • 🔥 Clothes iron needed
  • messy paper soaking
  • 🧪 Chemical etching
  • 👀 manual alignment of layers
Fiber laser
  • no need to etch, copper is vaporized completely
  • can laser away top coating to get soldermask effect
  • Expensive laser machine needed
Thouters.be method™
  • 👀 Easy alignment of front/back layers
  • no transparency mask needed for Soldermask UV exposure
  • easy Silkscreen solution
  • Diode laser machine needed + Lightburn license
  • 👓 be safe when using the LASER!
  • Two coats of paint needed (but feedstock can be prepared up front)
  • 🧪 Chemical etching

The process

Required tools

  • A saw or something else to cut the PCB's with; either a acryl cutting knife, plate shear or fine saw will do
  • If you want to do vias or through-hole components
    • PCB drills
    • some power tool to drill PCB holes with (a hand tool can also work for larger holes)
  • If you want to do vias
    • A riveting tool (a 4 euro center punch hole marker will work fine)
  • An etch tank
    • can be as simple as a plastic box/tray with water + iron-3-phosphate
    • (you can DIY) a more fancy device
    • have it as small as possible to minimize the amount of chemicals, and keep in mind that some chemicals need heating/air bubbling.

Required consumables

  • Blank (dual sided) copper clad FR4 board (I used 7cmx5cm PCB blanks from aliexpress, note they measured 71mmx51mm)
  • Etch Masking paint: matte black spray paint (I used the cheapest one I could find from the local home improvement store)
  • Solder Mask paint, either
    • industry standard UV curable soldermask paint + a piece of transparency or glass to press onto the paint
    • heat resistant (black) spray paint (I used the cheapest one I could find from the local home improvement store)
  • Silk screen paint: acrylic crafts paint (cheap one from a color assortment I had around).
  • If you want to do vias
    • through-hole 'via rivets' (length 2.5mm, m0.9 500pcs 3eur from Aliexpress)
  • To avoid via's
    • 1206 size 0Ohm smd resistors to jump across 2 traces
    • 0805 size 0Ohm smd resistors to jump across 1 track.
  • An etching chemical (I use sodium persulphate from reichelt - needs heating)

Painting the PCB stock

Prepare a piece of cardboard sheet with holes to fit several PCB's in to hold the PCB's when painting. I used the the array feature in lightburn to replicate a rectangle in a grid.

  • lightly sand with steel wool, clean with isopropyl alcohol
  • place the PCB's in the carboard sheet with holding squares. Put the cardboard in a cardboard box to catch excess paintdrops and to angle the sheet.
  • Spraypaint the PCB's on both sides
  • let dry, 15min in the sun will do.

Prepare the design for engraving

Design rules

Set the via and drill hole size to something you can drill and rivet.

  • minimum clearance: 0.3mm
  • minimum track width: 0.8mm

The minimum track with is a bit wider than SMD footprint pads for SOT-23 and SOT-8, but those can be used without issue.

Panellisation

Optionally, you can panellize several boards to etch several designs on one piece of feedstock. To do that:

  • Create a new separate kicad project.
  • open the board editor and choosing "Append board".
  • Group everything in the board (right click selection, group) and select 'create from selection' 'create array'.

Note

The array intervals should include the board size, so measure those first and add some inter-board spacing for sawing later on.

Generate SVG files

test

Kicad export settings

Generate bitmaps

I created this bash script I call prepare.sh that uses the ImageMagick 'convert' command line tool to do the boring work of inverting, mirroring and centering the design on the pcb feedstock. Somehow the svg's from KiCAD don't seem to render correctly in LightBurn.

#!/bin/bash
set -ex
echo "$1 board size x (mm)"
echo "$2 board size y (mm)"
echo $3 - input
echo $4 - output
border_cm=0.05
x_mm=$1
y_mm=$2
infile=$3
outfile=$4

echo "$cm - substrate size (rectangle)"
dpi=3000
echo $dpi - dpi
x_pixels=$(python -c "print(int(round($x_mm* 0.1* $dpi / 2.54)))")
y_pixels=$(python -c "print(int(round($y_mm* 0.1* $dpi / 2.54)))")
border_pixels=$(python -c "print(int(round($border_cm* 1.0* $dpi / 2.54)))")
echo pixels: $y_pixels $y_pixels

#render as bitmap
inkscape "$infile" --export-filename="exported.png" -d $dpi
#remove transparency
convert exported.png -format png -background white -alpha background -alpha off nontransparent.png

#invet colors
case $infile in
      (*_Cu*)
        echo image should be inverted
        convert nontransparent.png -channel RGB -negate inverted.png
      ;;
      *)
        #do nothing
        cp nontransparent.png inverted.png
      ;;
esac

convert inverted.png -gravity center -extent ${x_pixels}x${y_pixels} -background white "$outfile"
case $infile in
      (*-B_*)
        echo image should be mirrored
        convert "$outfile" -flop "$outfile"
      ;;
esac

#cleanup
rm exported.png
rm nontransparent.png
rm inverted.png

This wrapper script then calls the previous script for each svg file:

#!/bin/bash
set -ex
for file in *.svg
do
    ./prepare.sh 51 71 $file "${file%%.*}".png
done

Create a LightBurn project

  • Create a contour layer and draw a rectangle the size of the board
  • Set the contour coordinates
    • Important here is that you do this so that the laser head will move out of place when it is done so you can access the board area easily. I use x=80, y=110.
  • Create a handles layer with cutouts to grab under the board to remove it (note the half circles on my cardboard photos).
  • Switch to a new layer by clicking the colored layer numbers on the bottom side of the screen
  • Drag a png to the application canvas
  • In the image/layer settings
    • disable bidirectional scanning
    • set DPI to 300
    • set image mode to threshold
    • set speed to 10
    • set power to 100%
    • you can click set defaults to avoid setting these every time.
  • Repeat the steps for the png images for F_Cu and B_Cu (and F_Mask, B_Mask if you will use soldermask)
  • Align all layer images by setting the XPos and YPos to be consistent with the contour rectangle
test

lightburn layers

Prepare the machine for engraving

Warning

Always use adequate eye protection 👓 when working with LASER machines, or you WILL ruin your eyes, LASERs are not toys!

  • Cut a piece of cardboard
  • Fix the cardboard on the worksurface, I used these 3d printed pins enlarged in PrusaSlicer at 138% size to hold the cardboard onto my honeycomb bed.
  • Laser-cut out the shape of the PCB stock and handle holes out of the cardboard.

The copper layers

Engrave the board

  • Make sure that in the cuts/layers sidebar, the only output switch is the layer you want to cut/engrave
  • engrave side 1
  • flip the board
  • engrave side 2 (mirrored vertically by the script)

Note that with these settings, the example board of a few square centimeters takes ~20minutes. There is room for experimentation to optimize these settings.

test

lasering in progress

Etch the board

Warning

Always use adequate eye protection 👓 when working with ACID.

Drill a hole in the board to hang it in the etching tank.

test

etched front side

test

etched back side

The solder mask

Solder mask protects the copper traces from corrosion and heat.

  • Wipe the board with isopropyl alcohol to remove all etch mask paint.
  • Cover the board area with painters tape (the not very sticky kind).
test

board covered with tape (improvised picture with mismatching design files)

We will cut the contours of the copper areas that need to be clear of paint.

  • Add the soldermask image to the project if not done already, and make sure it is aligned.
  • right-click the image and select Trace image.
  • Use the 'offset shape' (Alt-O) function to add a 0.5mm clearance around the pad, check the 'delete original shape' box.
  • Set settings to 5mm/sec 20% power
  • Laser the image.
test

trace dialog

test

trace dialog

test

paint mask applied for the soldermask layer

test

heat resistant spraypaint applied

After the paint has dried I use a silicone seal kit set to wipe the extending pieces of tape off the board. Any firm but soft (so it does not scratch) piece of plastic can be used for this.

test

soldermask masking tape removed

It's a shame the PCB traces are not visible with this paint, I think I'll try some other paint in the future.

The silk screen

test

Silkscreen test result

Design rules

For text I used 1.5mm font size, 1.0mm was barely readable. If you want to make sure lines are readable, Use a 0.2mm width. If you use soldermask paint that hides tracks, it's best that you also export the 'Fab' layers which contains outlines of components. However the KICAD footprints overlay the lines on top of pads sometimes. You can try modifying the footprints and removing those if you tweak the footprint to make the lines thicker.

Lightburn design preparation

  • Add the silkscreen image to the project
  • Double check the design rules enforced that no silk screen got on the solder pads.
    • You could also use the 'boolean subtract' function to fix this in lightburn
  • right click the image and select Trace image.
  • On the Cuts/Layers sidebar, select 'Fill' mode for this layer
  • Double-click the layer in the Cuts/layers list to bring up the 'Cut settings editor'
    • Set speed to 5 mm/sec
    • Set Max Power to 30%
    • Disable bi-directional fill

Painting and drying

Apply painters paper tape to the board and engrave the image.

test

Applying paint

Next we add the acrylic paint, and spread it using a spatula.

test

Applying paint

I put it on my Prusa 3D printer heatbed at 85 degrees for 15minutes, but I'm not sure what the perfect drying process is.

The solderpaste stencil

Note

I'm experimenting with using a solderpaste stencil using the same paper tape method as used for the other non-copper layers, stay tuned!

The test project

I wanted to try this process out with a small PCB, and already had a simple project in mind. This small circuit drops 24V DC to 5V so a hobby motion sensor (which capacitors are not rated for 24V) can be powered from the house's domotics power supply. The motion sensor outputs a logic high level of 3v3 which needs to be translated to 24V, which is done with a pair of transistors. The motion sensor 2.54mm pin header is included, along with 5.08mm pitch screw terminals. A few via's are put onto the board, although they may not be functionally necessary.

For the via's brass rivets will be used, which i will solder, so i wanted some heat stops around the pads. To save time if this can be set in KICAD, I just added a few 2.54mm pin headers

The png output is shown here:

test

Simple project to try out the pcb fabbing process

test

The populated end result

test

B_Cu

test

F_Cu

test

B_MaskCu

test

F_Mask

Time to get creative!

Here is a picture of the second board design I etched, there is a hand drawn part as well, done with permanent marker. DIY etching opens up this possibility!

test

the morse crab


Liked something? Worked on something similar? Let me know what you think on Mastodon!
You can use your Mastodon account to reply to this post.

Reply to post

You can respond to this post with an account on the Fediverse or Mastodon. Since Mastodon is decentralized, you can use your existing account or create your account on a server of your choice.

Copy and paste this URL into the search field of your favourite Fediverse app or the web interface of your Mastodon server.

Learn how @carlschwan wrote the code that loads Mastodon posts into this webpage here.

Follow me on Mastodon!