PCB manufacturing tutorial

There comes a time in every maker’s career where solderless breadboards won’t do, perfboard becomes annoying, and deadbug is impossible. The solution is to manufacture a PCB, but there’s a learning curve. After learning a few tricks from [Scott]‘s awesome DIY PCB guide, it’s easy to make your own printed circuit boards.

There are a few basic steps to making a PCB. First is designing the board in Eagle or KiCad. The next step, putting the design into copper, has a lot of techniques to choose from. Photo transfer, direct printing, and CNC milling have huge benefits, but by far the most common means hobbyists produce boards is with toner transfer using a laminator.

Unless you’re doing SMD-only circuits, a drill is required. Most people can get away with a Dremel or other rotary tool, but Hackaday has a favorite drill press that is perfect for drilling holes in FR-4. In part two of [Scott]‘s tutorial, he goes over solder masks, silk screens before jumping into vias. These small bits of copper conducting electricity through a circuit board are extremely hard for the garage-bound builder to achieve on their own, but there are a few solutions – copper rivets (anyone have a US source for these?) and copper foil can be used, but sometimes the most effective solution is just hitting the board with a lot of solder and heat.

Thanks [Upgrayd] for the title pic.


  1. charliex says:

    the link on my blog is wrong, but these are super easy to use. there are a few places that carry them stateside.


    a dremel usually has too much slop to do small holes, and can break a lot of bits, it also might not be fast enough if you’re doing thru hole plating.

    sorry if this double posts :)

  2. Upgrayd says:

    Imagine my surprise when I see an image of a PCB board I made two years ago pop up in my RSS feed!

    Please give credit to where you pulled that image from. :)


  3. macona says:

    Or use the PCB service from Dorkbotpdx and get REALLY NICE boards for pretty cheap with a reasonable turn around time. I stopped even considering making my own boards since this has happened.

    • Chris C. says:

      Even the budget PCB services get expensive fast if you’re working with large components, like 28-pin socketed DIPs and screw terminals.

      Plus all the budget PCB services force you to buy 3-10 identical copies. If all you need is one, the other copies are just wasted material and money. The first to offer one larger copy at reduced price per square inch will get my respect and additional business.

      And while some may say everyone should be working with SMD, I’m darn glad to be working with large components this weekend; since my soldering iron’s thermocouple failed last night, and I’m only limping by with it plugged into a variac.

      • Pat says:

        The other 9 PCBs are wasted material. They’re not really wasted money. The majority of the cost of making a PCB is in the setup cost to change to a new design. It probably costs virtually exactly the same to make 10 PCBs as it does to make 1.

        Put another way: seeedstudio charges $9.90 for 10 5x5cm 2 layer PCBs. If you only wanted 1, it’d probably cost you $9.80.

        You can’t get around the setup costs.

      • Chris C. says:

        Pat, I agree that there is a fair minimum charge for producing any design.

        If I need a single 5cm x 5cm board from Seeed, I certainly don’t expect them to sell it for $1; that wouldn’t even be worth their time to package and ship it.

        But my real issue is with larger boards, like the one I made this week which is 7cm x 6cm. To get that from Seeed, I’d have to pay $25 for the 10cm x 10cm bracket. Does my design cost them significantly more to setup? Nope, it’s still only one design, and only marginally larger than a 5×5. The majority of the cost increase is due to greater board material and processing. If I could order only the one board I need, it’s actually cheaper for them to make than 10x 5×5 boards, since it’s only 17% of the area. Yet I’m still still paying $15 extra to get nine boards that will go in the trash.

        In cases like this, it really is wasted money for us, and pure profit for them.

    • Zmaster says:

      In my country PCB prototypes are not cheap. In the best service i have found you have to wait 10 days and you have no soldermask/silkscreen.
      While this may have sense for complex PCBs with a lot of vias i’m going to experiment with direct inkject printing to make simpler boards.

      • macona says:

        The dorkbotpdx service will ship internationally. Most of the time I just use the dorkbotpdx. Extra boards are not biggie. I did have a project where I needed one bigger board (over 3″ x 3″ and only needed one so I tried the sparkfun service. Cheaper, and a lot slower, but the boards were pretty nice.

        A lot of the stuff I end up doing involves higher power levels and I need plated through hole, or they are just to complex for the area and need a lot of vias so it is just not work making my own.

    • Abhi says:

      Please enlighten me, How would Dorkbotpdx service qualify as a Hack or DIY ? If not why on HaD ? Hacks are not only about doing something unique. It is also about doing something differently or cost effectively or fast/quick or atleast ‘doing it your self’
      You are happy with the ordering, no one is asking you to change, others are doing it on HaD.
      BTW, talking about cheap, a simple 4×4 PCB from Dorkbotpdx would cost $80+$5(intl shipping) = $85 minimum in India. That is > 4000 INR. Which is a lot of money. I can build many DIY PCBs (alongwith buying a cheap printer as well)

      • macona says:

        How is a circuit board any different than any other component you put on it. You are buying ICs, resistors, caps, etc and you are not complaining that people are not making those themselves.

        $80 for three quantity of a board is a pretty good price for double layer, gold plating, vias, double sided solder mask, and double sided silk screen.

        BatchPCB is even cheaper but slower.

  4. shesgottageek says:

    This guy has written up his process for DIY via rivets, here:

  5. jwcxz says:

    Really excellent article with good links. I can definitely attest to the power of a laminator. I also use a modified laminator to produce boards and I’ve been able to reliably produce 10 mil traces. With a little care, I can even go thinner than that. A laminator that applies a nice even coating of heat without applying too much pressure works fantastically. I typically use just generic glossy printing paper.

    Personally I have found that peeling works best when I immediately take the board out of the laminator and run over to the sink and put hot water on it. There are two main “layers” that will result. The top one will be a hard layer of paper which you can lightly break with your fingernail. Then, you can rub that off with ease. The next layer will be the layer that’s also attached to the toner, so you have be gentle when rubbing it.

    As for “vias,” a friend of mine found that the best thing to do is just create a “Z” wire. That is, take a wire, stick it through the hole, and bend it into a “Z” shape and solder to the pads.

    I’m going to try applying soldermask in the near future. I will write up about my experiences with that. Seeedstudio no longer sells DIY soldermask, but you can still find it on eBay.

  6. Panos Varelas says:

    +1 for the Z wires! I’ve been doing this for years with 100% success :D

    • Zmaster says:

      I’m going to do the same. You just have to keep in mind that you can only change layer using vias an not component pads because if you have say a cap you can’t solder it both on the bottom and top layer. With some components it is possible however.

  7. assimilat says:

    I always just used electrotyping to get my vias and it works great! I just drill my holes from my trace pattern, coat the holes with graphite, then i cover as much of the board as i can with packing tape to act as a resist, then i electrotype copper to the exposed graphite coated holes using a copper anode. it does cause some copper build up around the holes where i didnt mask but it has worked great so far.

    • Stan says:

      Just graphite or is it a graphite suspension? It does not wash off in the bath? How do you apply it? O jees so many questions I know :) but I had been wanting to attempt plated vias for a while now. A guy here on hackaday had some silver ink that also might serve as an activator.. I have been using the foil/tube method. it works but tedious as hell.. My 50x stereo microscope helps a lot though..

      • assimilat says:

        The stuff I started out with (If I remember correctly) was actually a weld though primer that was conductive. It was a pain though cause it was hard to get it thin enough where it would wick around the hole rather than just fill it while still being conductive enough. I gave up on that and moved to rustoleum cold galvanize spray which is 98% zinc I think…but it just washed off(still experimenting with it though. The stuff that gave me my glory moment was graphite paint that was made specifically for electro-forming (I got the idea when I saw some bronzed baby shoes.) I couldnt find a link to the stuff ive been using as ive had the jar for a while but this should be the same stuff http://www.sherrihaab-shop.com/graphite-conductive-paint.html its water based so its easy to thin too! Ive read where some people have had trouble with the copper just falling off of it so what I did to combat that was just leave a little resist off of the board around the holes so the pads get built up too. I think it kinda builds a tiny copper grommet that is actually electochemically attached to the board. Now having said that I will say that i was VERY delicate with all the boards ive done like this so I cannot really say how well it will hold up to a lot of wear but the way I see it is as long as it holds till i can get the pin soldered its golden! Hope that helps!

  8. Orpheus says:

    Though I have been a card-carrying member of the cult of Dremel for 30+ years, if you have access to compressed air (a compressor for pneumatic tools is a VERY worthy early addition to a hacking station), the inexpensive Harbor Freight #47869 1/8″ Micro Die Grinder is a faster (early versions claim up to 100K RPM), cleaner-cutting, almost vibration-free tool. Its tiny size, light weight, and hint of gyroscopic self-stabilization makes it makes a nice head for a DIY drill press. At top speeds, it really needs industr. surplus end mills as bits, not cheap Chinese Dremel generics (but FR4 quickly dulls cheap bits anyway, and end mills are cheap in bulk on eBay)


    For vias, I drop L-shaped bits of wire from one side of the PCB and immediately solder-tack them. Then I go to the other side and bend/trim all the protruding ends at once — much faster!

  9. HAD says:

    [A]nyone have a US source for these (copper rivets)

    I know these aren’t quite the type of rivets we are talking about to link FR4 boards together but they may be a viable source as they make tons of copper rivets:


  10. Anonymous says:

    Friendly tip: Remember that the smaller the drill bit, the faster and more precisely centered it needs to be.

    • macona says:

      And you need a more precise spindle. Runout in the spindle is a good way to snap the bit, especially if it is carbide.

      I have a spindle made by Fischer Precise that does 45krpm and has ABEC 7/9 bearings. Runout is in the 50 millionths range. You can pick them up on ebay for reasonable prices, bad thing is the collets are something like $250 a pop.

  11. Erich says:

    I have just learnt how to use the gEDA toolsuite under linux for PCB design.

    Open source, and free.

    A bit of a learning curve, but simply put:

    “gschem” lets you create your circuit diagram, where you can allocate footprints and names to the various components for export to the PCB tool, or not, if you just want to produce a nice schematic

    “gsch2pcb” will convert your gschem circuit into the necessary netlists and files in the PCB tool

    “PCB” can use the gsch2pcb output to place the various components and sort out the routing. “PCB” can also be used to freeform design a PCB, and create new footprints if required. You can export gerber, png, gif, eps and other formats. Supports solder mask, and multiple layers. Learn early to use escape, Z and shift Z for zoom, and U for undo. Look at the keybindings in the menus to learn the shortcuts.

    these packages are installed easily as the gEDA package in linux.

    there are good tutorials on the web

  12. charliex says:

    The rivets are useful to have for situations when you have vias under smd components. You can beat little pieces of wire flat and help them stay but usually you end up with a lump or worse the wire drops out in reflow or rework.

  13. robomonkey says:

    I find that drilling the holes for components PRIOR to etching the board yields better results. No matter the tool you use you’re less likely to bind up and destroy a trace.

  14. Rock-maninov says:

    I used to do this a lot until my hands got too shaky, now I have to get my PCB’s from http://www.pcb-solutions.com.

  15. Mr Sheesh says:

    Some time ago I tried a 1 pixel wide (1/600″) trace, 3 inches or so long, inside a ground grid – I couldn’t check it for continuity but (surprisingly) it looked perfectly conductive (some waviness on the edges.) I was using a GBC modified laminator, photo paper from the local paper store, and you HAVE to clean the PCB very well for toner transfer to work at all; Not a bad idea to very lightly etch the PCB before laminating it, but that’s not absolutely needed. I’d figured the trace would vanish, but it didn’t.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s