Tim's PCB (Plotted Circuit Board)

by Palingenesis in Circuits > Electronics

9932 Views, 44 Favorites, 0 Comments

Tim's PCB (Plotted Circuit Board)

Top.png
Bottom.png

This is the process I use to create a custom Circuit Board for my projects.

To make the above:

I use my XY Plotter with a Scribe to remove an etchant resit film to expose the copper to the etchant.

I use my XY Plotter with a Laser to burn ink into the top surface.

I use my XY Plotter with a handcrafting drill to drill the holes. (0.8mm)

It's a Process

This is how I do it:
I am not going to go into detail of how to use the programs I use, instructions on how to use the programs can be found on there relevant sites. What I will be doing is explaining the Process, and any tips to aid in the programs. At first glance this may look a bit longwinded, but once done a few times, its just click click click …

Create a Circuit Board Using Your Prefired Editor

Capture282.jpg
Capture281.jpg

First I create the circuit in Fritzing. Fritzing is a good program if you want to prototype using a Breadboard or Perfboard.

Update: I have now started to use KiCad, this is a set of Open Source applications. KiCad boards can be imported into FreeCAD.

This is a small example board I made to show this process, it's a board I use to connect my Bluetooth Device to my Arduino. It shifts data 3.3v to 5v and 5v to 3.3v.

Export Relevant Files

Capture283.jpg

Then I Export the PCB in "Extended Gerber (RS-274X)" and "Etchable (SVG)" To my projects folder.

I now have files I can convert to something my plotter can use.

File for the Scribe

The first file I need is the one to scribe the copper traces on the copper side of the board. (Expose Etchable Areas)


To do this I use FlatCAM.

FlatCAM Step 1

Capture224.jpg

From the File menu, navigate to the project folder:

Open Gerber files: ???_contour.gm1 and ???_copperBottom.gbl

Open Excellon File: ???_drill.txt

FlatCAM Step 2

Capture225.jpg

These are viewed from above, so they need to be flipped. (I preferer to flip them horizontally)
Select Tool from the top menu, the choose Double-Sided PCB Tool.

FlatCAM Step 3

Capture226.jpg

In the Tools window set:
Mirror Axis to "Y", Axis Location to "Box" Pint/Box to ???_contour.gm1 (this is the size of the board, so it set the area to flip things)

Bottom Layer is the files to be flipped.

Choose: ???_copperBottom.gbl then click Mirror Object.

Choose: ???_drill.txt then click Mirror Object.

FlatCAM Step 4

Next is to create the geometry for the path the scribe will take.

I do both the copper traces and the holes. (The reason for doing the holes, is when they are etched, they act like pop marks for the drill bit )

FlatCAM Step 5

Capture242.jpg

So, in the "Project" Tab select: ???_copperBottom.gbl file, then select the "Selected" Tab.
Set the settings shown in red border and click "Generate Geometry" for Isolation Routing.

Notice that the Combine Passes is not ticked. (I will be combining things later)

FlatCAM Step 6

Capture243.jpg

The reason I did not combine passes, is because I want to remove the first pass. (the reason is a bit long winded, so I won't explain at this time.)

Go back to the "Projects" Tab and delete the first pass.

FlatCAM Step 7

Capture244.jpg

Select the remaining paths and select "Edit" from the main menu and chose "Join Geometry"

This creates a new file: "Combo".

FlatCAM Step 8

Capture245.jpg

So the original paths can be deleted.

FlatCAM Step 9

Capture249.jpg

I like to etch the holes to aid the drilling process, so paths are needed for the holes.

To do this, in the "Projects" Tab, select the ???_drill.txt file and then select the "Selected" Tab.

With the settings shown in the red border, click "Generate Geometry" for Mill Holes.

FlatCAM Step 10

Capture250.jpg

Before the next step both path files can be joined.

In the "Projects" Tab, select the 2 path files and select "Edit" from the main menu and choose "Join Geometry"

FlatCAM Step 11

Capture251.jpg

This creates a new file: "Combo_1".

So the original paths can be deleted.

FlatCAM Step 12

Capture253.jpg

Next, select that new combined path file (Combo_1) and select the "Selected" Tab.

Set the "Tool dia" as shown in the red boarder.(this is drawn in blue when "Generate" is pressed)

The other settings are plotter (machine) dependant.

They don't matter to me, as I am going to edit the final G-Code produced later.

Click the "Generate" button.

This creates a new CNC file.

FlatCAM Step 13

Capture254.jpg

Go to the "Projects" Tab and select it.

FlatCAM Step 14

Capture255.jpg

Go to the "Selected" Tab.

Here is where the file is exported to G-Code.

At this point commands can be prepended or appended to the code produced.

I add M18 to turn off the motors when finished.

Click "Export G-Code"

I give the file name the same as the ones produced in Fritzing with my own file type.

e.g. ???_copperBottom (with holes).tgc

If it is going to be used with a machine that runs CNC G-Code then use the file type .gcode

This file is the one used to control the scribe.

The XY Plotter I am using is one I have designed and built myself, so the firmware and software used is what I have written.

So I will be editing this file so that my firmware understands it. (it's still based on G-Code)

File for the Drill

Capture260.jpg

Next I need a file for the drill.

For this I use the ???_drill.txt again.

I delete every thing else from the "Project" Tab. (remember this one is a flipped one, so if you delete it and reload it, you must flip it again)

Select the ???_drill.txt file and select "Selected" Tab.

This time I create a CNC file.

Click "Generate" Button.

The settings here in the red boarder are plotter (machine) dependant.

They don't matter to me, as I am going to edit the final G-Code produced later.

FlatCAM Step 15

Capture261.jpg

Next select the "Project" Tab and select the new ???_cnc file

FlatCAM Step 16

Capture262.jpg

Then select the "Selected" Tab and export to a G-Code file as before.

This file will be named ???_drill.tgc (file type dependant on machine used)

This file is the one used to control the Drill. I will be editing this file so that my firmware understands it.

I also need a file to align my plotter when I turn over the PCB to draw the component locations on the top side.

I make another drill file as I have just done but with a reload one and don't Flip it.

I name it ???_drill (top).tgc (I will explain later).

I have now finished with FlatCam.

Currently I have produced 3 files:

???_copperBottom (with holes).tgc

???_drill.tgc

???_drill (top).tgc

File to Draw Component Locations

Next is creating a file for the top. (To draw the component locations)

To do this I use the ???_etch_silk_top.svg file in my project folder created by Fritzing.

This is a Scale Vector Graphics (SVG) file, so can be edited with any program that can handle this type of file.

e.g. Inkscape, I haven got the hang of layers in ink scape yet, so I use Corel Draw and export it.

This file contains several layers, I don't want to use them all, so I edit is to that it only contains what I want and save it as new file. (e.g. ???_etch_silk_top (modified).svg)

Edit SVG Step 1

Capture271.jpg

This is what the file looks like:

I have written a sub program in my software to convert SVG to G-Code (tgc) but there are addons for Inkscape that do it as well. (as I mentioned, I'm just showing my process of doing it)

Edit SVG Step 2

Capture272.jpg

My software can't handle multi-subgroups so I need to simplify the file.

First I ungroup every thing.

Edit SVG Step 3

Capture274.jpg

Then I make all objects "Hairline" and "No Fill".

Make the canvas the same size as the board. Make sure the board is aligned with the canvas.

Edit SVG Step 4

Capture275.jpg

Then remove every thing I don't want.

Edit SVG Step 5

Capture277.jpg

As I am using Corel Draw, I export it as a SVG.

My SVG to G-Code program uses true type fonts (TTF) so I set the settings accordingly.

Convert to G-Code Step 1

Capture280.jpg

Now that I have the SVG file I need, I can convert this one to G-Code (tgc) with my software.(Tim's XY Controller)

This file can be sent to my plotter as is.

Convert to G-Code Step 2

Those familiar with G-Code files will know you can get variations on the original.
To give an example:

CNC G-Code. Take a look here: Understanding Common Fanuc Style

3D Printer G-Code. Take a look here: 3D Printer

grbl G-Code. Take a look here: grbl

If you have been wondering why I give my files, the file type .tgc? It's "Tim's G Code". My modification of G-Code.

I assume what ever Plotter you use, you have read the manual.

I need to edit the other 3 files so that my plotter understands them.

They are small edits, mostly gramma. I have one plot and two drill files to edit.

To edit the files I just use Notepad. I use the Edit => Replace (replace all) tool.

File Edits Step 1

Plot File.png

First file: ???_copperBottom (with holes).tgc

1. This is a feed speed command. I need to a G00 in front and set what speed I want. (once only)

2. This is a move command, move Z to a position above zero. As I don't have Z movement as such, I have a servo or laser, I need to change it to a off/up command, I have used the code M05 for this, so all these commands need replacing. (click replace all)

3. I need to remove these at this point. (once only)

4. My Firmware needs a space in front of the "Y". (click replace all)

5. This is a move command, move Z to a position below zero. As I don't have Z movement as such, I have a servo or laser, I need to change it to a on/down command, I have used the code M03 for this, so all these commands need replacing. (click replace all)

File Edits Step 2

Capture267.jpg

After Editing.

The L700 in the command "M03 L700 (Pen Down)" is a level value, used to set the servo at a position or set the power of the laser.

Text in brackets are comments and are ignored by the firmware.

File Edits Step 3

Drill File.png

The drill files: ???_drill.tgc and ???_drill (top).tgc are a little different, there is a command to pause while the hole is drilled.

1. This is a feed speed command. I need to a G00 in front and set what speed I want. (once only)

2. This is a move command, move Z to a position above zero. As I don't have Z movement as such, I have a servo or laser, I need to change it to a off/up command, I have used the code M05 for this, so all these commands need replacing. (click replace all)

3. I need to remove these at this point. (once only)

4. My Firmware needs a space in front of the "Y". (click replace all)

5. This is a move command, move Z to a position below zero. As I don't have Z movement as such, I have a servo or laser, I need to change it to a on/down command, I have used the code M03 for this, so all these commands need replacing. (click replace all)

6. This is move Z to zero. I don't want this, I want it to wait while the hole is drilled. Here I replace it with the dwell command "G04 P5000 (Wait 5 seconds)". (click replace all)

File Edits Step 4

Capture270.jpg

After Editing

I now have 4 files to use with my XY Plotter.

PCB Holder

Capture285.jpg
Capture284.jpg

When scribing and drilling my PCB, I need something to hold it in place.

I have found that it is a good thing, if I can remove the PCB from the holder and replace it back in the same position it was removed from.

It also has to hold it above the bed, so that when drilling, the drill will not foul on anything.

I have come up with this design shown in the photos, I printed on my 3D printer.

I has 2 stops and support that are fixed, 1 stop with support and clamp that is adjusted along a guide to keep things parallel, 2 clamps with support that can be moved to many positions.
The nuts are M3 square nuts, the screws are M3x25mm hex head with grips fixed with 2 pack adhesive. It will take a board max size: 105mm X 75mm.

Here are the STL flies if you wish to make one:

Base.stl

Front Clamp Support.stl

Front Screw Stop.stl

Knob.stl

Side Back Stop.stl

Side Screw Stop.stl

Size the Board

IMAG0376.jpg
IMAG0379.jpg

Next Cut the Copper Clad Board to size.

To do this, I just score both sides with a crafting knife and snap it two.(some times its best to snap it over a straight edge)

I use the back side of the blade to score, I find it scores better and does not wander off as much.

I also have stuck foam pads to the underside of my rule, it stops it sliding about.

Prepare the Board

IMAG0312.jpg
IMAG0313.jpg

As I have stated, I am going to use a Scribe to remove an etchant resit film to expose the copper to the etchant.

The etchant resist is just ink from a Chisel Tipped Permanent Marker Pen. (a permanent marker is water resist, so it is also Ferric Chloride resist)

Coat the Copper Side of the Board with ink, using the Chisel Tipped Permanent Marker Pen. (I use a chisel tipped pen because it coats it easier)

Make a Scribe Step 1

Plotter Knife.png

There are no Scribes on the market that I know of, to do what I want to do, so I have had to make one.

There is however a knife on the market for cutting vinyl.

Make a Scribe Step 2

IMAG0306.jpg

I have made an attachment for this that fits on my XY Plotter.

I cannot use this as it stands. If I was to use a knife blade it would dig into the copper and possibly jam. I don't want this. I don't want to damage the copper.

One thing that is good about this process is:

If I realize I have made a mistake in the circuit before etching, all I have to do is coat the board in ink again and reuse the board.

So, I took an old knife and reshaped it into a scribe, it has a flat end so it just sits on top of the copper but has a square sharp face on its leading edge to scrape away the ink.

Make a Scribe Step 3

IMAG0304.jpg

Reshaping one of these blades is not easy by hand but is possible, I did it.

You will need a rotary tool with a diamond bit to do it, the knife blades are made of very hard stuff.

Make a Scribe Step 4

Capture220.jpg
Capture221.jpg
Capture222.jpg
Capture223.jpg

First picture is original shape, others are different views of the shape I made Scribe.

Scribe the Board Step 1

IMAG0316.jpg

Once I had made the Scribe, I set up my XY Plotter.

Scribe the Board Step 2

IMAG0318.jpg

The tool holder needs to be spring loaded. (using a fixed Z Axis will be difficult to adjust, as we are removing the thickness of ink)

Scribe the Board Step 3

IMAG0324.jpg
Tim's XY Plotter Scribe
IMAG0326.jpg

Put the Board in place and Set the Plotter Scribing.

(sorry about handshake and focus on the video, I use my old phone to do video)

Etch the Board

IMAG0331.jpg
IMAG0332.jpg
IMAG0333.jpg
IMAG0338.jpg

Next, dip it in Ferric Chloride for a while.

I just tape it to a plastic stick and use it like a spoon to stir up the Ferric Chloride from time to time, I feel stirring helps the etching process.

Clean the Board

IMAG0339.jpg
IMAG0346.jpg

Next rinse off the Ferric Chloride and remove the ink.

I have a small brass wire brush to start the removal, and finish of with a typical pan scrubber.

Drill the Board Step 1

IMAG0351.jpg

Next is to drill the board.

I drill the board from the copper side because I have a bit of wobble on my drill, and because I etch the holes, where the hole have be etched, act like a locater for the drill bit.

Also the etched holes aide in checking the alignment of the plot.

So setup my XY Plotter with a drilling tool and fit the board.

Drill the Board Step 2

Tim's PCB Drill Dry Run

I do a dry run of the plot first and make any required adjustments to the position.

(during the dry run I will turn the drill bit, because the fluting sometimes give the wrong appearance)

Drill the Board Step 3

Tim's Drilling a PCB
IMAG0354.jpg

When happy with adjustments I drill the board.

The 2 holes for the screw fixing of the board, I will enlarge my hand, using the holes drilled by the plotter as a pilot.

Draw Component Locations

Laser.jpg

The last step is to draw component locations on the top side of the board.

This could be done by hand or the plotter with a permanent marker, but I have not found a pen fine enough to do it.

So I use a laser, not an expensive one. I have one boosted to 15W and a cheep 5 volt 1 Watt one.

Although I could do it faster with the 15W one, it burns a thick line, the 1W is the one I use.

eBay search for: 1W laser It gives a fine line (not as fast but a better look)

I don't coat the top of the board with ink using a Whiteboard Marker yet I need to check the alignment of the board.

Laser Step 1

Tim's BCB Laser dry run

Because I have now turned the Board top face up.

This is where I use the ???_drill (top).tgc file. to align my XY Plotter with the board.

So I set up my Plotter with the laser and place the Board in the jig.

Run the ???_drill (top).tgc file to check alignment, adjust as required.

I just check a few holes, because the board is opaque (semi-transparent) the laser does nothing to the board.

The focal point of the laser did not show in the video, I tried putting the safety glasses in front of the camera but it didn't help.

I hope you understand what I was trying to show.

Laser Step 2

IMAG0359.jpg
IMAG0364.jpg

Once I happy that all is aligned correctly, it's time to coat the top of the board with ink using a Whiteboard Marker. (chisel tip best)

(don't mix up your pens)

Laser Step 3

Tim's PCB Laser etching

Place the board in the jig and etch the component locations with the laser.
(I'm sorry I make these videos with my old phone and sometimes it does not focus well close up)

The Finished Board

Tim's BCB the finished Board

The finished Board:

Hope you find something in the methods I use of help.
The Plotter I use is one I have designed and built my self, and wrote the Firmware and Software also.

I'm currently in the process of writing a blog on how I made the plotter here: Tim's XY Plotter I may convert it to an instructable here when I get around to finish the blog.

Some Other Boards

Controller PCB (ver 3) Bottom.png
Controller PCB (ver 3) Top.png
Controller PCB (ver 3) with Components.png
Trolley PCB Bottom.png
Trolley PCB Top.png
Trolley PCB Components.png
X End PCB Bottom.png
X End PCB Top.png
X End PCB with Components.png

Here are a few other boards I have made using this Process.