Etching Printed Circuit Boards the Gootee Way

Semiconductor manufacturing is just a long series of deposit/mask/etch cycles, building up the parts of the circuit on a piece of silicon.

This is the “Gootee method” for garage printed circuit board (PCB) manufacturing. It uses an ordinary laser printout as an acid-etch mask on a copper-clad fiberglass board. It takes maybe half an hour to prepare a circuit board this way, plus a little more time to drill holes and solder on components. (This information is FYI on a personal hobby of mine–it will not appear on the test!)

Prepare the Mask

Draw your desired wiring patterns in any drawing program–everywhere you draw black, you’ll get toner, which will protect the copper. Unprotected copper will be eaten away by acid.

I use the free SVG vector drawing program Inkscape. You do have to flip the design backwards so it’s oriented properly once ironed on!

Mask Off Your Copper-Clad Board With Toner

Start with a manufactured copper-clad fiberglass board. I used “one-ounce” copper boards (one ounce of copper per square yard, which is a layer only 35um thick!).

Thin floppy boards are $0.95 for a 4″x8″ piece at Electronic Goldmine. Thicker, sturdier boards are a few dollars each. I can’t recommend the “phenolic” boards, which are more plasticky; fiberglass boards are stronger and better at repelling solder, herding it onto the copper.

Scour the PCB clean with Scotchbrite-style scouring pads–two passes, horizontal and vertical. Press hard! You’re both scraping off oxidation and adding some tooth to the surface. Try not to leave greasy fingerprints on the board from this point onward.

Wipe the PCB clean with acetone. Alcohol works too, but acetone seems to help the toner stick better.

Heat up the PCB with an electric iron on the hottest setting. The PCB should be quite hot for the next step.

Gently place the printed paper pattern toner-down onto the PCB. It should stick almost immediately. Iron the back of the pattern *firmly*. Too light and the pattern won’t stick. Too hard and the pattern will be squished outwards, filling in small holes (like dot gain, as in the example below). This step basically glues the toner pattern to the PCB.

Drop the paper-coated PCB in warm water. Wait a few minutes, and gently peel off the top few layers of paper.

Back in the water. Wait a few more minutes, and finally gently scrub away most of the remaining paper. You should now be down to bare copper where you want nonconducting fiberclass on your finished PCB, and toner (with a few stuck-on bits of paper) where you want conductive solderable copper. It’s not necessary to remove every particle of paper, since the acid will soak through the paper anyway.

Etch Away Unmasked Copper With Acid

Drop toner-coated PCB in acid. For a 1″ board, I used Gootee’s new formula of 100mL of hydrogen peroxide and 50mL of muriatic acid to take off exposed copper. Tie a monofilament fishing line through a hole in the board to make it easier to remove and jiggle around in the acid.

The hyrogen peroxide is just the ordinary 3% H2O2 you buy for disinfectant. It’s about $1 per quart. Without the hydrogen peroxide, the acid will work, but it’s way slower, and tends to eat the toner.

Muriatic acid is 28% Hydrochloric Acid. It’s about $10/gallon and sold at hardware stores for etching concrete. CAUTION: It’s acid! Be sure to ear eye protection and nitrile gloves!

The acid will etch away exposed copper, turning the copper a dull brown and the acid Cu2+ green. Fresh warm acid will only take about five minutes to eat through all the exposed areas on a small board. Overused or cold acid might take an hour or more and eat away at the toner, so change your acid every few parts. Since copper-bearing acid is denser and sinks, the top parts of the board will become visibly clean first.

I think it’s safe to dispose of small quantities of used acid by diluting with water, neutralizing with baking soda, and pouring down the sink (you do this with hydrogen peroxide when you rinse a cut, and muriatic acid is hosed off construction sites regularly). You could also neutralize and then dry in a pan to a powder. On a commercial scale, you’d have to comply with EPA rules.

Once clean, and all the traces of copper are gone from the non-tonered parts of the board, take the board out of the acid and rinse with cold water.

Wipe away the toner with acetone or lacquer thinner on a paper towel. You should have clear, bright copper underneath! If the copper is a dirty, spotty brown then the acid must have eaten into it; you might want to switch printers or toner brands.

Mount Components

Drill component mounting holes with *tiny* 20-45 thousandth drill bits (preferably about 30-40 thou; a 1/32″ drill bit is 31 thou). You can pretty easily drill four or five boards at once, although keeping them aligned is tricky. Carbide bits don’t get dull, but they shatter really easily. A drill press or good dremel tool is a big help. Pilot holes help keep a stack of boards aligned.

Push components in from non-copper side, and hot glue them down. This makes the components a lot easier to solder.

Solder the component leads to the copper. Soldering is really a breeze on a clean fiberglass board with bright copper. It’s really tricky if your holes are too big,or if the copper is oxidized from spending too long in the acid. Folding leads over so they lay flat is a bit stronger, and makes soldering even easier, but does take more time.

Digital vs. Analog Circuits: Not a Binary Choice!

Counting on your fingers uses “digits” in the computational sense; digital storage uses discrete values, like the fingers which are either up or down. A 25%-raised pinky finger does not represent one-quarter, it represents zero! This means your fingers can bounce around a bit, and you can still tell which number you’re on. Lots of systems are digital:

Counting on your fingers. (Individual fingers are either up or down.)

Stop lights. (Lights are either green, yellow, or red.)

The legal system. (You’re either guilty or not guilty.)

Computers. (It’s either 1 or 0.)

Digital radio (XM), digital audio, digital TV, digital cable (You either get a perfect noise-free signal, or you get nothing!)

The other major way to represent values is in analog. Analog allows continuous variation, which initially sounds a lot better than the jumpy lumpy digital approach. For example, you could represent the total weight of sand in a pile by raising your pinky by 10% per pound. So 8.7 pounds of sand would just by an 87% raised pinky. 8.6548 pounds of sand would be an 86.548% raised pinky. Lots of systems are also analog:

Note that in theory, one pinky can represent weight with any desired degree of precision, but in practice, there’s no way to hold your pinky that steady, or to read off the pinky-height that accurately. Sadly, it’s not much easier to build a precise electronic circuit than it is to build a more-precise pinky.

In other words, the problem with analog systems is that they are precision-limited. To store a more precise weight, your storage device must be made more precise. Precision stinks. The real world is messy, and that messiness screws up electrical circuits like it screws up everything else (ever hear of clogged pipes, fuel injectors, or arteries?). Messiness includes noise and the gross term “nonlinearity”, which just means input-vs-output is not a straight line–so the system’s output isn’t the same as its input.

Yes, it’s always possible to make your system more precise. The only problem is cost. For example, here’s a review of some excellent, shielded, quality AC power cables for audio equipment. These cables supposedly pick up less noise than ordinary 50-cent AC plug. But the price tag starts at $2500–for a 3-foot length!

Note in many cases the desired output is indeed highly nonlinear–the output isn’t simply proportional to the input. If you’re designing an analog audio amplification circuit, nonlinearity is considered “bad”, because it means the output isn’t a precise duplicate of the input, and the circuit has lost signal quality (think of the rattling base thumping down the street!). But most computations are nonlinear, so an analog circuit to do those computations should also be nonlinear. Such analog computers, without any digital logic, have actually been built! In some sense, the best possible simulation of a mechanical system is the system itself, which can be considered a mechanical analog computer simulating… a mechanical analog computer. The downside of such a “simulation” is noise, repeatability, and design and fabrication cost.

Luckily, digital systems can be made extraordinarily complex without encountering noise problems. Digital systems scale better because to gain precision in a digital system, you don’t have to make your digits better, you just add more digits. This quantity-instead-of-quality approach seems to be the dominant way we build hardware today. But be aware that analog computers might make a comeback in a power-limited world–considering that a single transistor can add, multiply, and divide, digital logic might not be able to compete! Also, there are potential computability differences between digital and analog computers.

How many levels?

OK. So digital computation divides the analog world into discrete levels, which gives you noise immunity, which lets you build more capable hardware for less money. The question still remains: how many of these discrete levels should we choose to use?

An analog system uses an infinite number of signal levels (a continuously varying signal)

The Y axis is voltage, with zero thorough five volts shown. The X axis is time, as the input voltage sweeps along. Two curves are shown: the straight line is the input voltage, smoothly increasing from slightly negative to close to 5 volts. The “output” curve is high, over 4v for input voltages below 1v; then drops to near 0v output for input voltages above 1.3v. High voltage is a “1”; low voltage is a “0”. So this circuit “inverts” a signal, flipping zero to one and vice versa. Here’s the digital input vs output for this chip:

Input

Output

0

1

1

0

Here’s the trace of another chip of the same type. Note the curve isn’t exactly the same!

These two chips don’t behave in exactly the same way, at least seen from the analog perspective of “how many volts is it sending out?”. But seen from the digital perspective, 0 or 1 output for 0 or 1 input, they’re identical!

Announcements

HW9 is available on NetRun, and due at midnight on Monday, December 11, 2006.

The Final Exam will be held in-class on Thursday, December 14 at 3:15pm in the usual room, Chapman 106. The format will be typical: closed-book, closed-notes, comprehensive coverage with focus on the more recent stuff. See the Lecture Notes for the complete coverage, but you should know about general performance stuff (code rearrangement, pipelining, caching, and parallelism), funky flow control (switch, computed jump, function pointers, dynamic binary translation, and threads), and the details of how to compile and link programs.

HW8 is available on NetRun, and due at midnight on Monday, November 20, 2006.

HW7 is available on NetRun, and due at midnight on Monday, November 13, 2006.

HW6 is available on NetRun, and due at midnight on Monday, November 6, 2006. I’ve also posted the little Beaker timing example.

Course Grades so far are posted on NetRun, now including midterm grades!

The midterm exam will be held at the usual class time (3:30pm) on Friday, October 20. To study, I suggest reading the lecture notes, reading chapters 1-3 of the textbook, and looking over your old homeworks. We’ll also hold a review session on Wednesday, October 18 at the usual class time.

HW5 is available on NetRun, and due at midnight on Friday, October 13, 2006. Trust me–you DON’T want to be coding on Friday the 13th, so get started early!

HW4 is available on NetRun, and due at midnight on Monday, October 2, 2006. It’s just normal x86 in 32 and 64-bit mode.

HW3 is available on NetRun, and due at midnight on Monday, September 25, 2006. It’s based on funk_emu.

HW2 is available on NetRun, and due at midnight on Monday, September 18, 2006. It’s another fast one, so get started early!

HW1 is available on NetRun. If you don’t see the string “HW1” at the bottom of this NetRun page, send me an email!

Blackboard is back in action. I’ll try to post a copy of major announcements there, but NetRun is actually the main thing to watch.

Links

NetRun is a network-accessible way to assemble and run code right from your web browser. You’ll need to activate your account and get a password from the NetRun Password Reset page. You’ll then be emailed a password so you can log in to NetRun.We’ll be using this for all the homeworks, so get an account and try the system out! NetRun Help. Send me bug reports!