In my last post about the MCE Remote relay I was working on, I prototyped up the circuit and finalized the schematic in Eagle. After doing that, I worked on a PCB layout ( all related file can be found here ). It was a bit of a trick getting a suitable layout sorted out in Eagle, but I got it done. From there, I was able to generate transfers for the top layer (silkscreen), and the bottom layer (etch). They appear below;
Silkscreen layer (as output by Eagle) |
Etch layer (as output by Eagle) |
I strongly recommend making sure you put text on all layers somewhere, so you can easily identify if they are reversed or not. In order to do something useful with that, I decided to do something completely new to me - toner transfer PCB etching.
The principle with toner transfer etching is simple. Laser printer toner is plastic, and if transferred onto a copper PCB will protect the PCB from the etchant wherever it is. Since I'd just got hold of a laser printer, I thought I'd make use of the idea. I went to Jaycar and bought some Press 'n Peel toner transfer film.
This film is quite expensive per sheet. Many people do the same thing on magazine glossy paper, but I figured I'd go with the peel just to make things easy for my first go. I also bought a PCB etching kit which came with PCBs about the right size, a tray, tweezers, and sodium persulphate etchant.
Etch layer printed onto transfer film |
The prints that you do should be reversed onto the toner paper (so the silkscreen layer gets mirrored, but the etch layer is printed as is). One thing I discovered - don't turn up the toner density too much. I turned it up to maximum, and I got some of the smears you see there, and there wound out being way too much toner. In addition to that, I should have made my isolation distances a little bigger because the toner flattens out a bit and makes the traces wider than expected.
After doing that, you simply lay the film on top of the cleaned PCB and iron it with a hot domestic clothes iron (no steam!) for a few minutes, gently moving the iron to ensure even heat transfer. Afterwards, quench the board in cold water and peel off the film.
Toner transferred to PCB |
As you can see, there's a few spots where the tone squeezed out and made shorts on the tracks. Those are resolved easily with a sharp knife post-etching, but it would have been better if I'd made the isolations a bit further apart. I also filled in the (huge) pads of the 2.1mm power jack with an etch resist pen. Then, it's in the etchant, following the instructions. You'll notice that nearly nothing appears to happen, but then all the copper vanishes within a short period of time. That's because of the extremely high opacity of metals - the copper remains opaque until it's only a few atoms thick, and then it all appears to vanish in a rush. That's normal.
Post etch, toner layer still in place |
Removing the toner is as simple as giving it a wipe with acetone. After that, I ironed on the silkscreen layer transfer in the same way on the top, and then drilled all the holes. Most holes are 0.8mm, with the 2.1mm jack being 3mm.
Silkscreened Layer |
The horrible damage on the corners was my highly amateurish attempts at getting the damn board to fit into the jiffy box I got, which was only just big enough for the board. I'm sure I could have done a much better job of it, but it doesn't really matter.
And then finally, soldering all the parts on. The ironed on template on the top makes assembly much much easier, even though it's not lined up perfectly.
Populated Board |
Instead of soldering the infrared LEDs direct to the board, I soldered in female pin headers, so that I can use a cable for one of the LEDs if I want.
On powerup, I noticed immediately that the pin arrangement of the RGB led is different from the schematic! It doesn't matter though, I was able to take care of it with a software change (the blue and green pins are swapped). I also thought that the circuit didn't work and so wound out doing all sorts of ugly things to the transistor amplifying stage, but it turned out to be perfectly fine and it was simply that I uploaded a copy of the code using the bugged IRremote library instead of my fixed version. Doh!
Next up is to neatly cut out the jiffy box to suit, and I'm done!