I’ve had a number of requests to revisit my old PCB etching technique and update it with things I’ve learned since then. This is as much for my benefit as anything. It should be constructive to gather and synthesize my thoughts on this subject. Let’s start with some pictures, because reading is hard.
The first board I ever etched. Not great, but it did work, and is still in use every day.
You've come a long way, baby! Here's the most recent board I etched (as of this writing).
As you can see, my precision and quality have improved considerably. My efficiency has as well. The latest board was etched in about half the time of the first, and is more than four times the surface area. It also uses smaller clearances and the result is much more robust. Many of the lessons I learned were things many of you probably already know if you’ve etched a board or two in your time. However, sometimes there’s just no substitute for making the mistakes yourself.
I’m going to go through my entire process, from Eagle schematic to finished board. There are a lot of great writeups out there for PCB etching, but the devil is really in the details for this process. I’ve never found a writeup that really covers it all (including my own previous attempt). Hopefully I can remedy this a bit. If you’d like more detail in an area, please let me know in the comments and I’ll update this. My goal is to be very complete here.
Once you get the hang of it, this entire process can be done in a couple of hours and costs a couple of bucks. This is going to seem really long and involved, but that’s just because of the detail I’m trying to provide. Most of these steps take longer to read about than to do, and it all goes very quickly after a couple of tries.
Part I: Layout
I’m not going to give a full tutorial on using Eagle’s PCB layout tool. That would be an entire article (or six) in itself. However, I’ll fill in some blanks that I think others overlook.
Read the Eagle manual. It’s a gold mine of power user tips that will make you much faster with Eagle. Seriously: RTFM.
Don’t bother with the autorouter. For small projects, you can easily outperform it (and trace routing is fun!)
Think about your pad sizes before you start. Larger pads give more margin for error when drilling and soldering. Smaller pads allow more complex layout. Pad sizes are set as a percentage of the drill size. I recommend using large pads when starting out. To set pad sizes:
Open the Design Rule Check settings, from the Tools menu (or type ‘drc’ on the command line)
Choose the Restring tab
Look at the Top and Bottom radii for Pads.
For small pads, leave them at the default of 25%
For large pads, set Top and Bottom to 50%From this point on, I will refer to those two setting options as the “small” and “large” pad size, respectively.
Use large vias. When placing vias, you can control their size using the Diameter combo box at the top of the window. I strongly recommend 0.07″
Use thick traces. When drawing traces, you can control the thickness with the Width combo box at the top of the window. I suggest using the largest traces possible, and do not go smaller than 0.01″. When starting out, I would use 0.024″ as a minimum.
Use smaller pads for complex boards. When routing, small pads will allow running a trace between component pins on a standard 0.1″ grid. This is a big advantage for routing, but makes etching more difficult. Large pads are better for simpler boards, and when learning this process.
Use a ground plane. This will dramatically speed up etching, and saves etching solution. Keep the copper on the board, not in the bowl. Ground planes also simplify routing. To make a ground plane:
When your board is nearly all routed, use the Polygon tool (not the Rectangle tool!) to draw a polygon around the edge of your board. You’ll see a dotted outline when you’re done. Before drawing, make sure the Layer is set to 16 – Bottom at the top of the window.
Choose the Info tool and select one of the corners of the polygon you drew.
Set the Isolate parameter to 0.05″. You can go as low as 0.04″ for complex boards, if needed. Click OK.
Choose the Name tool and click one of the corners of the polygon
Change the name to exactly GND
Click the Ratsnest tool. You should see copper (blue) filled in as much as possible around all your traces
Using a ground plane means you’re only etching enough copper to isolate the traces from each other. The more mass of copper you can leave on the board, the better.
Eagle will automatically connect the ground pins in your schematic to this plane when you hit Ratsnest. If you see ground pins that have airwires coming out of them, it means sections of your ground plane are not connected to each other. Your traces can chop up the ground plane into chunks, which need to be bridged with jumpers.
You can also draw traces directly to the ground plane just by starting and/or ending within one of the solid blue areas, then hitting Ratsnest. Sometimes Eagle gets confused when you do this, but it usually works.
Use jumpers. Let Eagle prevent you from connecting things wrong. You can specify your top-side jumper wires in the layout, and Eagle will keep track of them with airwires, and back-annotate to your schematic just like with traces. During assembly, you can use the Look tool to see where each jumper connects to. To make a jumper:
Place a Via using the Via tool near the start of the signal. Make sure the diameter is 0.07″. I prefer the Round shape, but it doesn’t matter much.
Using the Name tool, give the Via the same name as the signal you are jumping. If the pins being connected are both labelled “CLOCK”, then name the Via “CLOCK”. For ground plane jumpers, name it GND
Using the Copy tool, copy the Via you just named and move the new one near the end of the signal.
Hit Ratsnest. You’ll see Eagle has woven your new Vias into the airwire mesh.
Connect the Vias to each other with a trace. Set the Layer of this trace to 1-Top. It should be red. Connect the vias to each other before connecting them into the circuit.
Run normal 16-Bottom traces between the Vias and the rest of the circuit.
Routing on jumpers doesn’t matter. You can overlap or run them wherever you want. You can hide the Top layer if they are in your way during routing. I like to do jumpers last.
It’s worth noting that this jumper technique will make the Design Rule Checker very unhappy. If you use that tool, either run it before you make the jumpers, or manually approve all the interferences created by the jumpers. It’s tedious, but you only have to do it once.
Avoid 90° angles in your layout. Try to do everything with 45° angles or less. Sharp angles can collect crud during etching and cause problems.
Keep traces at least 0.05″ apart. Use the 0.05″ grid to help you with this. Don’t be afraid to use the Finest grid to move traces freehand if it helps get more space between them.
Hopefully, you now have something that looks a bit like this. The traces are spaced nicely, the ground plane is filling in all the cracks, and top-layer jumpers have been specified to eliminate all airwires.
Part II: Mask
Now we need to make a mask from that layout. The mask is an acetate sheet placed on a photo-sensitive PCB board. It controls which parts are exposed to the light. I make the mask at FedEx Office (the artist formerly known as Kinko’s) because it’s easy and very cheap. You can make a LOT of copies at FedEx Office for the cost of owning a printer. I’ll go through all my steps here from Eagle file to finished mask. It may seem convoluted, but I’ve found each of these steps is necessary. If you’re wondering why a step is needed, feel free to ask in the Comments below.
In Eagle, turn off the grid, and hide all layers except 16-Bottom, 17-Pads, 18-Vias, and 20-Dimension
Choose Print from the File menu. Do not use the Export Image tool. It makes low-resolution images.
Choose Print To File (PDF)
Set the Scale Factor to 1.03. FedEx’s printers (and possibly consumer ones as well) shrink the content slightly. I don’t know why.
Check the Black and Solid options. Leave all others unchecked.
Click OK and save the resulting PDF file somewhere.
Launch GIMP. I’m sure you could do this with Photoshop as well, but I know GIMP and it’s free, so I’ll describe it.
Open the PDF file in GIMP. In the Import dialog, set the Resolution to 600 pixels/inch.
At this point, you can make any tweaks to the image that you like. You could insert a logo, clean up rough edges, or whatever. Everything black will become copper.
Copy the entire board and paste it further down the page, so that you have two non-overlapping exact copies of the PCB image
At this point, you can open other PDFs and copy-paste them in here, if you want to etch lots of boards at once.
Choose Print in GIMP. In the printing options, select Print To File as the printer, with PDF output format.
In the Image Settings tab, select Ignore Page Margins, and set the X and Y Resolutions to 600 pixels/inch
Save this final PDF to a USB drive.
Go to the FedEx self-serve printers, and print the PDF from your USB drive. This costs a dime.
Take your printout, and put on the platen glass of the self-serve copier
Place an overhead transparency sheet in the Special Use Tray of the copier. The staff can help you if you’ve never used this feature. Tell them you want to copy your image onto the transparency sheet. Set the copier’s density to the darkest setting. If you need transparencies, FedEx sells them for 25 cents each. You can get them much cheaper online if you plan ahead.
You can also print directly to the transparency from your USB drive if you go up to the main counter. However, this costs a lot more than the self-serve printer/copiers. Copying to the acetate costs you another shiny Roosevelt.
You should now have an acetate that looks something like these. There should be two copies of each board you want to etch on the sheet. For small board, you can get lots on one page to save time and money.
Part III: Expose
Next we need to use this mask to expose the board. I use pre-sensitized PCB boards from Jameco. These have the fancy chemicals already applied, and are a joy to use. They cost a little more than plain copper boards, but they really, really simplify this process. Worth every penny. Most of this part needs to be done in a darkroom. Closing all the blinds is good enough- it doesn’t have to be totally pitch black if you work briskly. You can use a red light source such as some LEDs to see what you’re doing. In a pinch, here’s what I do- place a blanket over your head such that it covers your work area and seals out the light. Stick a red LED on a coin cell, and stick that in your mouth so you can see. It looks as ridiculous as it sounds, but it works. You only need darkroom conditions for about 30 seconds.
Cut out each image in your acetate, leaving about an inch of border around one copy, and half an inch around the other.
Place the two copies on top of each other, and line them up exactly on the desk. This step really matters– take your time. They should look like one perfect image, with no signs that there’s another image underneath. This doubling up is to compensate for any flaws in the printer’s output (like low toner or spotting). It really improves etching quality.
Get some blue painter’s tape and tape the two images together to hold them in position. Since one image has a wider border than the other, this is easy to do without disturbing the alignment.
Get an old picture frame, and tape your acetate stack to the glass, being careful that no tape is in the area of the image. Make sure the glass is clean on both sides.
In your darkroom (or hobbit blanket arrangement), peel the protective backing off the sensitized PCB
Center the PCB against the acetate image on the glass, with the chemical side to the acetate. Tape the board in place.
Place the backing on the picture frame to hold everything together tightly
You can crawl out of your darkroom/hobbit-hole now, and place the picture frame under a lamp. Place the lamp 6-8″ away. I use a daylight-spectrum CFL bulb, which is recommended. However, an incandescent desk lamp will work. You do not need a special UV bulb.
Let the board sit exposed to the light for twenty minutes. Use this time to set up the developing, in part IV.
Burn, baby, burn.
Part IV: Develop
Once the board has been exposed, you can remove it from the picture frame and peel off the acetate. Try not to expose it to light until you get it in the development process. A little is okay- I carry it from my desk to the kitchen with all the lights on without a problem. Shade it a bit with your hand, but don’t touch it! At this point the board looks like nothing has happened. It’s just… green. Don’t worry, we’re about to see magic.
NOTE: From this point forward, wear latex gloves and eye protection. It’s probably overkill (none of this process is very nasty), but why mess around? You don’t want to splash organic solvents in your eye if you can spend two seconds to prevent it.
In a plastic or glass tub (I use tupperware), mix one part positive developer and 10 parts room-temperature water. You need enough liquid volume to comfortably cover the board in your mixing tub, so use the smallest tub that will hold your board flat. The developer is a bit expensive, but this bottle will last you forever.
Drop in the exposed PCB (green side up), and slosh it around for one minute. You will see the copper pattern emerge before your eyes, like magic. This part is very exciting.
Once the board starts to develop, you don’t have to worry about light exposure any more.
Store the developer solution mix in a water-tight container. You can reuse it over, and over, and over. I’ve etched a dozen boards on my current batch.
Here's a board in the developer solution, ready to be taken out. Note that I didn't use a ground plane on this board (rookie mistake). You should see a lot more black area, and less copper. Everything copper that you see here will be etched away. Try not to scratch at the black parts- you need them.
Part V: Etch
Now we get to do the heavy lifting. This part is the most satisfying, but also can be a bit tedious. Start to finish, etching takes 20 minutes for small boards, or up to an hour for large ones. I listen to podcasts or read a book while doing this. This etching mixture is really benign, but it does smell a bit funky while etching. Open a window, in case it’s like… chlorine gas or something. Do I look like a chemist? What do I know.
In a plastic or glass tub (I use tupperware again) mix one part vinegar with one part hydrogen peroxide.
The vinegar is normal household white vinegar you can buy in any grocery store.
The peroxide is the standard 3% strength that you can buy in any drug store. Check the first-aid section.
You need enough solution to cover the board with about 1/2″ of liquid. Err on the side of more liquid- these ingredients are super cheap.
Add a couple good shakes (maybe 1 tsp?) of salt and stir it all up with a gloved finger.
Drop your board in the solution, copper side up. It should make some very fine bubbles. If you don’t see tiny fizzy bubbles, add a little more salt.
Within about 30 seconds, you should see the copper areas collect a yellowish brown layer of gunk.
Every 60 seconds, wipe the board off with a foam brush. Do not remove the board from the solution. Just stick the brush in there and wipe the brown gunk off. Wiping the gunk off every minute dramatically speeds up etching.
Every ten minutes or so, pull the board out (wearing latex gloves) and check on it. When it’s nearly finished, you’ll see patches of fiberglass PCB no copper on them.
As the board gets close to done, start checking it more often. The solution will turn darker and darker blue, which makes it hard to see. You want to etch the board until the excess copper has been removed, but not any longer. Etching for too long will start to damage the traces and pads. The photo-resist chemical can protect the copper for a long time, but eventually the etchant will get under it. If you’re using fine traces (0.01″), you need to be more vigilant about not over-etching.
Every so often, you can add a little salt, which seems to speed things along a bit. Add salt if you don’t see any tiny fizzy bubbles.
When etching is complete, rinse the board off with water
Using a cotton ball, wipe the board with nail polish remover (acetone). This will remove the black stuff protecting your traces. If you’re too much of a Real Man™ to buy nail polish remover at the drug store, you can buy big jugs at the hardware store also. A little goes a very very long way. Also, the girlie stuff smells like lemons. Why not treat yourself?
Here's a couple of boards etching. This layer of gunk is overdue to be wiped off with the foam brush. Note the cloudy fizzing- that's a sign the salt level is about right. There's plenty of wiggle room here. The salt ratio isn't critical. As long as there's some in there. Also, I don't really recommend etching multiple boards at once. I tried it here, but it was too tricky to do well.
I haven’t had much luck re-using the etching solution. Theoretically you can, but I don’t think it’s worth the trouble. Old solution etches slower, and does a messier job. Just make fresh stuff every time.
Now we get to the controversial part. Disposing of the etchant. There are a lot of opinions on this, and people are very, shall we say, passionate about it. In my opinion, you can either throw it in the trash or pour it down the drain. Yes, I know I will get raging hate mail for this. Be nice in the comments, or face the consequences. I’m polishing up my Moderation Hammer as we speak. Yes, I know copper salts are bad for fish. However, waste treatment plants treat household wastewater, and we’re talking incredibly minute quantities here. Putting it in a container and dumping it in the trash also seems fine, because then it will end up in a landfill, and those are sealed for just this sort of thing. Personally, I use the landfill approach.
Again, no raging in the comments about how I’m single-handledly destroying the planet with my half-cup of peroxide and copper precipitate. If you’d like to be constructive, tell me where to take it that doesn’t involve driving for an hour and contributing to climate change and air pollution in the process. If you’d like to write long angry screeds about what’s wrong with other people, go make your own blog and do it there.
Part V: Drill
This is the part which requires the most practice. If you made good decisions way back in the Layout stage, however, it is much easier. I use a Dremel rotary tool with the drill chuck attachment. It can hold tiny, tiny, tiny bits. You’ll also need a selection of tiny drill bits. I hold the Dremel freehand. I really don’t think you need the fancy drill-press-stand-thing that people always talk about.
Wear eye protection and a dust mask. The drilling is pretty tidy because the holes are so small, but again, why mess around? Just do it. Also, the Dremel is no joke. A slip up can really hurt you, so take your time and be careful. Sobriety is also recommended (ask me how I know).
The trick to the drilling is choosing the right bit for each case. My rules are as follows:
For standard component leads, use a #69 (tee-hee) bit
For IC sockets, or other large groups of pins that need to line up, go a little larger, say #67. Bigger holes make it easier to line up multi-pin components, but increase risk of damaging the pads.
For header pins, switches, and other things with larger pins, use a #67, but wobble it around a bit. Test fit, then redrill if needed. As a last resort, go to a larger bit.
The overall strategy is to use the smallest bit that you can get away with for each type of hole. If the bit is too large, you will mangle the pad and/or lift it off the PCB. If this happens, it’s not fatal. You can solder the lead in question to the nearest trace or repair the damage with a piece of wire. Still, it’s annoying to damage your otherwise perfect board.
When starting a drill hole, bring the bit down until it’s just touching the center of the pad, and let it sit for half a second before letting the weight of the Dremel finish the job. That pause allows the bit to center in the divet of missing copper in the middle of the pad. I also strongly recommend a lighted head-mounted magnifier. It really helps drill accurately, and makes you look like a mad scientist. Or a dentist. Possibly a dentist. Probably a dentist. Maybe a mad scientist dentist.
With a little practice, you can, in a pinch, drill pads as small as 0.05″. I don’t recommend this though- pads smaller than 0.07″ are very easy to mangle and lift off the board. Once in a while, however, a 0.05″ pad can save your bacon with a tough layout problem, so it’s worth the risk in some cases.
Take your time with the drilling step. Getting this right the first time makes assembly a lot more fun, and will make your project a lot more robust.
Once drilling is done, you can bust out the soldering iron and go to town. Once you have the hang of things, this whole process, from Eagle layout to drilled board takes about two hours. It’s much faster, and much cheaper than sending away to a board fab house. It’s also a lot of fun, and the end result is very satisfying.
Appendix: Custom Board Art
It’s cool and fun to put some custom artwork in the copper, but it’s a bit tricky to get right, and takes practice. Here’s the process I used to include the One Girl, One Laptop logo you see above.
Prepare a BMP file of the image you want. It should be a simple monochrome line drawing with heavy lines.
The lines that make up your art should be white. The background should be black
Using GIMP (or a similar tool), convert the image to Black and White, and Indexed Color.
Scale the image to a small size. The logo shown in the photo above is 300 x 220 pixels, and the board is about 4″x4″ (for scale comparison)
In Eagle, expand the User Language Programs section of the Control Panel.
Find import-bmp.ulp, right click on it, and choose Run In Board
Click OK on the “about” box, then choose your BMP file
It will ask you to “Select Colors”. Select only black
In the options, set the Start Layer to 200, and the Pixel Scale Factor to 2.
Click OK and tell it to run the script
It will chew on that for a while. When it’s done, your image will be converted to a huge pile of tiny objects in layer 200.
Hide all layers except 200, then use Group Select to select all the bits of your artwork. Move it to wherever you’d like.
Just before you’re ready to print the final acetate, Group Select everything in layer 200 (step 12), then use the Group Change command to change everything to layer 16-Bottom
Hit Ratsnest, and you should see your artwork carved out of the ground plane
Print the acetate, then close your PCB file without saving it. You don’t want to save the PCB with the thousand little art pieces in the Bottom layer, because it can be very hard to get them selected again later if you want to move it.
If that all sounds like too much trouble, you can also just modify the PCB art while you have it open in GIMP during step II(9) above. If you do it within Eagle, however, you can do some neat tricks like connecting traces to your artwork and making them part of the circuit, or having it auto-fill the ground plane around your artwork. It also makes you a hero at your local hackerspace… I assume.
Here's what the logo looks like after being moved to the bottom layer. It may look like a nice line drawing of my head, but it's actually a massive pile of tiny Eagle polygons. Of my head.
That’s all she wrote. And by “she”, I mean “me”. That’s all I wrote. I’m done. You are now free to not flame me in the comments about putting vinegar and copper in the landfill.