For a while now I’ve been designing my own PCBs for various projects and using board houses in China to fabricate them. The results were excellent however there’s a few issues I want to talk about.
When I was working on my first board a couple of years ago (the TZX Cassette which I should post about) I was VERY excited to have the first delivery of the boards from China. After building the first one I totted up a list of 19 “problems” that I needed to fix. Everything from the wrong footprint, to some outright incorrect wiring. Having fixed these I sent off another order - and waited. Waited for 21 days in fact. I had to repeat this a couple of times to get to a board I was mostly happy with.
All of these times waiting around really kills iteration on a project. You pick it up, put it down, pick it up, and so on - losing momentum each time.
Each iteration produces waste, too. Do I really need 5 boards when I’m prototyping? I have oodles of the “dead” prototype boards kicking around that have no purpose any more. They’ll never get built - never get used, they’re literally waste.
The costs add up too. Whilst the boards themselves are $5 for a batch of 5, the delivery soon totted up. I’ve tried the most basic $11 slow & cheap delivery to the $35 DHL fast delivery methods (which still took nearly 3 weeks to the UK). It all adds up and is a non-trivial cost in relation to the board. There’s also an environmental consideration here; a small batch of boards being shipped half way around the world just doesn’t feel sustainable, especially if they end up as scrap.
To sum up:
- Slow iteration (21 days wait)
- Wasted boards (who needs 5?)
- Expensive delivery
- Environmental concerns
If none of these drawbacks affect you then great, keep doing your thing!
I often want to iterate on my circuits so the time between design to receiving the board is just too long. Coupled with the postage costs, mistakes are really expensive in both time, money and e-waste. I’d be more than happy using these services for boards I know work, but for protoyping? Not so much.
I took a look at more local board houses with an eye to reduce the delivery time, but found that small batches have really long lead times and are easily 10x the cost of the Chinese board houses. Note; if anyone ever set up a reasonably cheap UK PCB fab with < 7 day lead times, I’d be your biggest fan.
What would be great would be if there was a decent way of making your prototypes at home and iteratively fail fast, then decide if you wanted to get the validated board fabricated at one of the more professional outfits.
So what options do we have for making our own PCBs at home? It’s something people have been doing since the 70’s, so there are tried and tested solutions out there.
This blog is about my experiences in various methods that I’ve tried.
Off the shelf methods
First up, let’s talk about the “off the shelf” methods. These are things you can go out and buy from most electronics suppliers.
Breadboards
Solderless breadboards are the staple of every new electronics hobbyist and is an extremely rapid prototyping method.
The board is arranged as a series of electronically isolated rows with each column being electronically connected.
There’s often an airgap in the middle to create an isolation of the columns which is handy for DIP packages. Most solderless breadboards also have top and bottom power rails which run as a contiguous pair of rows.
Connections are made with little jumper wires between rows; the most common type are male dupont connectors, but people can (and do) create their own wires as it’s tidier (I’m looking at you, Ben Eater).
Breadboards are great for quick prototypes, but they have their drawbacks:
- They’re non-permanent - not something you’d want to try and keep forever
- Connection issues are common - loose wires, bad connections
- Noisy boards - the wires become antennas and there’s impedance mismatches all over the place
- Wire spaghetti - as the board complexity grows, the mess of wires really starts to add up making faults difficult to find and fix
- Space is limited - I find that I run out of space really quickly, meaning I need to start connecting many boards together with long, trailing wires
- SMD parts need adapters - not a huge issue, but is becoming more common now that DIP packages are classed as obsolete
Stripboard
Stripboard/Veroboard is probably the next step up. It consists of a board with a side that has many long strips of copper that are isolated from each other. The board has regular holes which can be used for through hole components. Components are soldered to the underside of the board.
In order to isolate the components from each other you need to cut the copper, either with a knife or by using a drill type tool that completely removes copper from one of the holes.
Stripboard is a useful tool but has a few drawbacks:
- Isolating components is a pain - DIP packages need a lot of traces to be cut in order to isolate both sides of the package. It’s really easy to leave tiny bridges behind which cause shorts
- Hard to design - There’s a couple of stripboard layout tools out there, but they’re not attached to schematics, eg like KiCad. I often find that just designing and tracing a stripboard layout can be tricky
- Manhattan routing - Most of the time you need to use single, straight jumper wires on the top of the board to connect traces. You can use other wire, but I’ve found it gets a little messy. Designing in this way can be difficult.
- Non-plated through holes - not a major problem for ICs, but it can make soldering wires a pain.
Perfboard / Matrixboard
Perfboard is basically a board made of hundreds of plated through holes without any connections between them. As a result, they bypass the need to isolate any traces as they are all isolated to begin with.
You make connections in any way you can, from using wires, to jumpers all the way down to solder bridges (if you use enough solder). I’ve found that Perfboard is much faster to work with than strip board as you don’t have to route it as strictly, nor do you need to cut tracks, but that is at the cost of needing to solder a lot more things in place.
There’s a few drawback to these:
- Everything has to be wired - there’s no connections, so even things adjacent to each other need wiring. You end up in wire spaghetti quickly if you’re not careful
- Creating big continuous power traces is hard - each hole is isolated from each other, so creating bridges can be troublesome. Some people solder down large pieces of metal to create their power traces, which can work
- Similar to strip board, the design software isn’t there for this type of layout, so it can be a problem when turning your ideas into reality
Wire wrapping
This is a technique I’ve just started experimenting with, so don’t have a great deal of experience - but I can talk about what I’ve done so far.
The idea is that you take a Matrix board and use special wire-wrapping sockets with super long legs for your components. Connections are made using a special wire wrapping tool that can cut and twist wire onto the legs of the sockets.
Wire wrapping is a solderless solution; you don’t have to solder anything together. As a result you can remove components by unwinding the wire via the other end of the winding tool. The wire wrapping method leads to really good connections to the socket legs; with the wire apparently becoming mechanically bonded to the legs themselves. This leads to them being a semi-permanent method; the boards will stay put as long as you need them but at the same time you can rapidly strip them back to nothing.
Layout for wire wrap is like breadboarding on steroids, just without the layout restrictions of the breadboards themselves. In my experience, the act of wire wrapping is much faster than dealing with creating wire bridges on perfboard or matrix board. From my limited experience it’s a pretty nice method. There are drawbacks though:
- The cost of the special sockets is pretty high. From what I’ve seen they’re easily $1-$2 per socket. When a project needs lots of sockets this can mount up quickly. The SIL sockets for things like resistors and other passives seem to be in short supply and also cost a fair bit
- Wire spaghetti is a potential hazard, although careful use of colours can really help out. The connections will be shorter than the dupont wires used on breadboards and you likely won’t get as much noise as a result
- Power lines not included. You’ll need to find your own solution to this; but from what I’ve seen people actually solder on large power links for +5 and ground instead of wrapping them
- Wire wrapped boards have huge pins hanging off them, so they don’t lay flat. You will need some kind of case or stand for the board to be mounted on
- No layout tools; but this is not really a problem as you can go from schematic to reality as fast as you can cut and wrap the wires
I believe you can buy boards which have various connectors and power lines already laid down as copper. It’s not something I’ve looked too much into.
DIY PCBs
The biggest theme to the off-the-shelf solutions is that they’re not really supported by CAD tools for layout purposes. For one-off prototypes this isn’t an issue, but maybe you do want to get the board fabricated somewhere, so have an additional risk of layout and footprint issues creeping in.
I’ve made my own PCBs at home using a few methods. There’s two approaches I have used:
- Manual - these approaches usually involve etching a copper board after applying an etch resist. This etch resist is applied in a manual way. Drilling is also a manual process, with no machine assist.
- Machined - these approaches usually involve using a CNC machine to perform some or all of the steps in the process.
Regardless of the approach you will need some single- or double-sided copper board; copper is then removed from this via the process to leave the traces for your circuit.
Manual: Marker Pen & Etch
Quite simple, draw on your copper with a marker pen and then etch it.
Pros:
- Cheap & fast
- Only a few special things needed
- You can get that “classic” hand layout style
Cons:
- Finding a good marker can be a problem; tends to get eaten by the etch fluid
- Not really viable for double sided boards
- Only suited for small boards
- Good luck with drawing the footprints for ICs and header pins
Manual: Toner Transfer & Etch
This is probably my current preferred method of making boards. You use a laser printer to print out a mirror image of your board on either photo paper or glossy magazine paper and then use heat & pressure to transfer it onto a copper board.
Once the toner is transferred to the copper board, use water to remove the paper and then etch. Once etching is complete, drill it and remove any remaining toner using acetone.
For the actual transfer, I’ve found that using a cheap laminator is the best - just run it through 20-30 times and you get a really nice transfer.
Using this method I can reliably get ~0.4mm traces without much of an issue, although sometimes you do end up with problems. I’ve found that you need a reasonable spacing for adjacent traces, otherwise it can result in etching that leaves a bridge. Most of the time these can be fixed with a knife.
Pros:
- Cheap
- Can be done with a few common materials
- Can layout in KiCad or any PCB design tool
Cons:
- Really easy to forget to print the mirror image and result in a bad board
- Toner can transfer irregularly, leaving gaps or breaks in the traces
- Drilling holes in big boards can be a pain
- Aligning double sided boards is tricky, but can be done
- No through holes, which can make vias and layer transfer tricky
A two-sided board has to be routed with a set of restrictions that normally wouldn’t apply to a professionally fabricated board; unless you have a method of plating the through holes yourself (or use rivets).
The lack of through holes actually has a big impact on your PCB design; for example you have to part route traces on one layer and then provide some form of via/layer transfer wire to move between the layers. You can’t start a trace on one side of the board, and then move it up the layer when it meets a component, for example - it’s unlikely that the solder will contact both sides unless you completely food it (and even then, the board is a solder resist).
Machined: CNC Isolation Milling
This method involves taking your Gerber file and generating an “isolation” routed version of it in some CAM software. Isolation routing cuts around your traces, leaving them intact. The result can be a little weird looking if you’re not used to it.
My only experience to date is using a cheap Chinese CNC (CCC) in the form of a $150 30cm x 18cm desktop engraver (3018) that is driven by an Arduino running Grbl. You take your Gerber file from KiCad, use FlatCam
to create the gcode and then something like bCNC
or Unviseral GCode Sender
to drive the machine.
I have sunk many hours into this method and honestly cannot recommend it.
Here’s a list of the issues I’ve found to date:
- Levelling issues - even after board levelling I’ve found that the cut depth is unpredictable/unreliable. I don’t know if it’s the software, or the machine itself but the milling can go from barely scraping the surface to gouging the crap out of the board and overcutting the traces
- Unreliable bits - I’m not sure if it’s related to the levelling issues, but I’ve not found a bit that cuts well yet. Those that do end up getting blunted half way through the process
- Two-sided is really hard - I have tried a dozen times and have never been able to get a board aligned. There’s always been some issue where the holes didn’t match up. I’ve tried making jigs, using guide holes - the lot and have never had a good result
- Only good for small boards - there’s loads of videos out there talking about how easy it is to use these methods to make a board and it does work, to a point. I’ve found that going from tiny board (like you see in the videos) to something more complex can lead to a lot of wasted copper
- The software sucks - I’m sorry to all those people who have contributed to the tools, but they’re slow, clunky and unreliable. I’m not sure if it’s the firmware or the software itself, but I’ve destroyed both boards and milling bits because I stopped a process and the machine decided to travel to some random place without lifting the bit
- Milling time - even a reasonably complex PCB can take several hours to mill all the passes
- Trace width / spacing - You have to have at least 0.4mm trace widths and leave a similar amount of spacing between traces to make sure they don’t get ripped up. I’ve managed to machine smaller traces (~0.3mm) but they’re really fragile and do come up easily if the bit has a bad day
If you, like me, saw these cheap machines as nice ways of making PCBs then I’d say proceed with caution. You can get several hours into the process and then have something go wrong, resulting in scrap. The main plus point on this is that the drilling is faster than doing it yourself with a drill press; you can also cut out some nice outlines and mounting holes pretty nicely.
Having said that, there are some “better” machines out there than the CCC mills that are supposed to do a good job. I am very tempted to build my own “The Ant CNC” which has a more stable design and better z control than the 3018 machine, but I’m skeptical after wasting so many hours on the machine I have. Other, more professional, machines are available to buy but their price tag of $3000-$8000 just aren’t viable for the average hobby PCB maker.
Proceed with caution if you think a cheap $150 machine will help you out.
Machined: Laser ablation & etch
For this method I used a 500mW blue diode laser to ablate an etch resist and then etched the boards. The etch resist is then removed and the board can be drilled and soldered.
The process was performed on the CCC 3018 machine I have, using KiCad, FlatCam
and then Lasergrbl
for driving the laser.
For the etch resist, I’ve tried a few approaches:
- Sharpie marker - fuses to the board and won’t etch
- Screen-printing ink - Not an etch resist, gets eaten by the etching fluid
- Spray paint - fantastic result, but extremely noxious and leaves a sticky residue
I achieved a fantastic result from this process and was able to achieve really fine traces, something like 0.2mm - 0.25mm; even suitable for some SMD components. Using the laser totally removed all the levelling issues I had with milling. I would use this technique every day if not for four major drawbacks:
- Using a laser to burn acrylic paint kicks out a lot of noxious fumes. Seriously, breathing this stuff left my lungs feeling like fire for a week
- The paint leaves a sticky residue when removed; this can resist the etching (creating bridged traces) and even stick around when using acetone to remove the paint from the board
- Lots of chemicals. Paint, etch resist, acetone. Not good for you or the environment
- Lots of set up time and steps. Spray the board, wait a day for it to dry, laser both sides, etch, drill - adds up.
The other main problem I had was still down to the alignment of the board for double sided lasering and/or drilling. Picking up and moving the board in between the stages can create errors in the alignment for the next stage; and ultimately this is what led me to stop trying this technique. I got very close to some great boards, but always fell over when I’d drilled and realised the sides didn’t line up. That sort of error is extremely expensive in terms of time and it really gets you down when it happens over and over.
Machined: Laser exposure & etch
I haven’t actually tried this but I am tempted to give it a go. It ultimately boils down to applying a light-exposed photo-resist film to the copper board and using the laser to expose the traces. The photo-resist film is then developed to harden it (aka, leaving the actual resist behind) and then the board is etched.
The results of this approach should be pretty good; if the process isn’t too problematic. The boards will not be isolation milled, so they should come out exactly as a PCB should look.
The main concerns I have with this approach is if the laser I have will expose the film properly; and then whether I have the correct environment for developing the film.
The process should be achievable at relatively low cost, perhaps it’s worth a shot.
DIY Fabrication Summary
Of all the methods I’ve talked about here, I’ve not really ended up with great results from the DIY fabricated PCBs. I’ve had great potential from the laser ablated paint on the CNC, but getting a decent alignment on a two-sided board always caused me problems.
The boards I have manually created via toner-transfer and etching have been the most successful; it’s faster and more reliable than the CNC approaches, but the result is cruder. I’ve had difficulty with two-sided boards here too, but the problems seem faster and easier to rectify than the CNC-based approaches.
The main issues with DIY boards is that two-sided boards are harder. If you can get the alignment down, then you still have to figure out a solution to the lack of vias and through holes. For the vias, tiny bits of wire an help, and through holes could be achieved by using a set of small rivets. I’ve tried this to mixed results, albeit on a very small scale.
I’m currently unsure of where to go next for DIY fabrication. I don’t think I’ll persist with the CCC 3018 machine, I don’t think I’ll ever end up with a good result from that. That said, using the laser to expose the blue photo film could be a great technique.
As I mentioned, I’m skeptical about building another more dedicated machine just in case it still sucks. Paying $4000+ for a professional machine is not really in reach or doesn’t make a lot of economic sense.
I think I’ll keep aiming to perfect the two-sided toner transfer method. I have been wondering if a mix of a toner-transferred single-sided board with some long (~12mm) header pins for wire wrapping on the top layer could be a nice mid-ground.