Archives for posts tagged ‘PCB fabrication’

LED lighting, part 1

I’m in the process of designing some new lighting for the house, which I’ll get into in detail later. For now I’m experimenting with Luxeon Rebel LEDs to evaluate the different colors and white temperatures. I started by getting a handful of “warm white” and red, green and blue Rebels. I expected the white ones to be too “cool” in temperature, so the R G and B ones could be individually adjusted to provide some warmth to compensate. I designed a simple PC board that takes three white LEDs and one red, one green and one blue one.

transfer sheet toner applied etch-resist layer

I designed the board in Illustrator and laid out several together on a page, then printed it onto a sheet of toner transfer paper (from Pulsar). I laminated it to a copper-clad board and ran it through again with a “white TRF foil” as an etch-resist layer, as the toner alone tends to be somewhat porous.

etching etched

I then etched the boards with ferric chloride in a Tupperware dish floating in hot tap water in the bathroom sink, agitating the dish continuously.

drilled & cleaned

After about 25 minutes in the etchant I rinsed the boards, drilled the holes, divided them up and removed the toner from the remaining copper with lacquer thinner and a scotch-brite pad. I soldered the LEDs onto the board, along with a female header to connect wires to. For testing purposes I connected two C batteries together and plugged them into the header.

Luxeon Rebels are designed to dissipate heat through a large “no connection” solder pad directly under the chip. There are specific guidelines for the design of the PCB to draw this heat away from the LED which include a multitude of plated vias to increase the copper surface area. I’m unable to create plated vias in my homemade boards, so my intent is to mount the board to an aluminum plate, using an aluminum machine screw to draw the heat through the hole in the middle of the board.

assembled board test run

I learned some important lessons from this first attempt. The main problem is hand-soldering these tiny surface-mount LEDs to such a large copper field, which resulted in a sloppy, lumpy mess of solder. I also realized that I may need to experiment with other combinations of LEDs to get the color right. This first try produced a pleasant white light (and yes, red, green, and blue light does combine into white…I know the theory is fundamental but seeing it happen before your eyes is pretty exciting!) but compared to incandescents and even some of the warm CFLs in my house it still looks very cold.

A good first effort, with room for improvement…

LED lighting, part 2

tin plated My first attempt at using the tiny Luxeon Rebel LEDs taught me several things, among them how difficult it is to hand-solder them. I also realized that I would need to experiment more with the different white LEDs that are available, or potentially using red green and blue LEDs to produce the white I’m looking for (or a combination thereof). So I designed two new PCBs… a new six-LED board with individual control over each of the LEDs, and a tiny single-Luxeon Rebel breakout board so I can mix-and-match different combinations quickly and easily. To both designs I also added very tiny dots at the corners of each LED location to help position the LEDs. These designs are two-sided, with the back side consisting of a large copper field to help transfer heat to the aluminum heat sink.

I made the boards the same way as before, except that I tin-plated the finished boards with Tinnit to protect the copper from tarnishing and to improve the solderability.

For this batch of boards I decided to finally try my hand at reflow soldering, using the skillet method described by the Sparkfun guys. I bought an inexpensive skillet at Target, an infrared thermometer at Lowes, and some no-clean solder paste. The solder paste came in a syringe package but didn’t come with any needles, so I squeezed a little paste onto a paper towel and carefully dabbed it onto the PCBs with a toothpick. Using a pair of tweezers I placed each LED into position and pressed it into the paste, which held the component fairly well.

Before trying any soldering I looked up the reflow profiles for both the solder paste and the LEDs, and experimented with the skillet to see what settings would yield the target temperatures. I may one day build an Arduino temperature control for the skillet to more precisely control the profile, but I think these reflow characteristics are pretty flexible and for now it’s working just fine.

reflow skillet reflowing

I put the PCBs into the middle of the skillet (I got wildly different temperature readings from different spots on the skillet) and turned it up to “LOW”, watching the temperature with the thermometer. As the temperature leveled off at around 165°C the boards began to smoke and I turned it up to “MED”. Within a minute or so the solder liquified and flowed nicely, in some cases shifting the LED into perfect alignment with the solder pads (apparently a result of the solder’s surface tension).

soldered assembled with headers

I made breakout boards of several different LEDs: “warm white“, “ANSI 2700K white” (an even warmer white), “amber“, and red, green and blue. After the skillet reflowing I hand-soldered on a couple of header pins for the breadboard.


This breadboard setup allows me to swap out different combinations of LEDs to evaluate the color of the light (here I have six 2700K Rebels installed). For this mock-up I used a 24VDC desktop power supply powering a BuckPuck LED driver, switched with a momentary pushbutton. I’m getting closer to the color temperature I want, but right now these are all on (full power) or all off. The next step will be PWM control over individual LEDs or groups of two or more to start precisely dialing in the settings.

controller box mounting arm

I don’t usually build as I go, without detailed planning or at least some sketches. But one Saturday a few weeks ago I had several hours to myself and I was itching to make some physical progress on the CNC conversion, so I took a quick inventory of my metal stock pile and just started building.

custom CNC controller box welded steel The mounting arm for the CNC controller box–that physically attaches the box to the mill–is a very simple part with well-defined parameters. The controller box has four mounting holes on the back side and the column of the mill is a thick iron casting that can be drilled & tapped basically anywhere. I knew approximately where I wanted the box to be, so it was a simple connect-the-dots part design. I had a 2′ length of square steel tube and some angle iron, so I started chopping it up and dry-fit it to the back of the controller box.

MIG welded steel

I MIG welded it together (still practicing that welding… getting better) and cleaned it up, then primed it with some Rustoleum, then did a quick test fit on the mill.

custom CNC controller box mounting arm

custom CNC controller box

A couple of coats of black lacquer and it’s good to go!

custom CNC controller box mounting arm

CNC milled PC board

One of my goals for the CNC mill has been to help fabricate PC boards, primarily in terms of cutting out the overall shape and drilling any through holes. For simple boards, however, it is possible to machine the circuit traces into the copper and avoid the entire photo-etching process altogether. I recently had a chance to try this process out, and the results were quite good.

This particular board needed to be circular, and needed to have a rectangular opening for a switch, so CNC routing the outline is really the way to go. The circuit is relatively simple, so it also lends itself well to routing the traces. If I were to etch this circuit the usual way with photoresist, developer, etchant, etc. etc. it would have taken three times as long.

PC board layout in Cadsoft's Eagle


The board was designed in Eagle as usual, but I then used an add-on to Eagle called PCB-gcode to generate gcode from the traces. There are a number of settings to specify depths, tool settings, speeds, etc. but it is fairly self-explanatory.

PCB-GCODE screenshot

I chose some pretty basic settings, which resulted in the following preview:

PC board layout in PCB-GCODE

I was never able to figure out how to generate the outlines using PCB-gcode, so I re-drew them in Mastercam and went from there. PCB-gcode is supposed to have that ability but there appear to be some bugs in the software that limit its ability to deal with circles and arcs. If anyone has made better progress than me I’d love to hear about it.

CNC machining a PCB on G0704 CNC mill Anyway the final product came out pretty good. I was pretty pleased with myself having tightened up the backlash to only .004″ per axis, but after machining .024″ wide traces I realized how bad that is. Under the right circumstances this is a good technique to save time, but I wouldn’t try to machine extremely fine traces or tight-pitched pads until I work those last few thousandths of backlash out of my machine.






My First Robot part 4 – Power Regulator PCB

With Adafruit’s lithium ion battery pack and USB/DC/Solar charger our power strategy is off to a good start. I chose those in part because I could easily add a solar panel later, but assuming the robot is running continuously, that would result in a possible output voltage range from 2.5V (the shutdown voltage of the LiIon battery pack) to 6V (the full-sun output of the solar panel). The Raspberry Pi (and ATMEGAs, which I’ll probably use as ‘standalone’ Arduinos) want a 5V supply, requiring either a buck or boost depending on the output voltage from the charger. I couldn’t find any turnkey solutions, but I did find this buck-boost DC-DC converter IC. The LTC3112 from Linear takes 2.7 – 15V in and provides 2.5 – 14V out, configurable with two resistors. Maximum current depends on Vout, at 3V in and 5V out I should get at least 1A. The documentation included some pretty thorough design guidelines, including a complete demo board schematic and layout, so I set about designing one of my own.


The design is pretty similar to the demo board. I removed a few things I didn’t need and added a bunch of output pads, and a second set of inputs so additional boards can be daisy chained. I’m told the component layout of boards like these is extremely sensitive, so I stayed as true to the demo board’s layout as possible.


I’ve been wanting to try outsourcing my PCB fabrication, and I think this finicky design was a good one to start with. The best value for this one seemed to be OSH-Park, and the process was really easy and smooth. They even take native Eagle files, so there was no messing with Gerbers, etc., and the instant preview made it easy to catch errors. Two weeks later I got three of these beauties in the mail. Ten bucks, delivered.

2014-04-26 21.54.47

Typically the next step for me would be dabbing tiny dots of solder paste onto the pads and mashing the components into them, but these boards look so nice and professional that I knew it was time to try a solder stencil. I recently gained access to a laser cutter, so I ordered some .004″ thick Mylar from McMaster and conducted a quick test.

I first exported the “Cream” and “Dimension” layers from Eagle as a 1200 dpi .png image, then brought that into Photoshop. I then selected all the pads (Select -> Color Range on black) and shrunk them down one pixel layer at a time using Select -> Modify -> Contract, Saving As every time until I had seven different versions, each one eroding the pads by about .0008″ all around. I cut these on the laser, using Raster settings of 30% power and 40% speed. Turns out the best one for this layout (with the fine pitch of that IC) was the “minus 4 pixels” version. By the way the fogginess of the Mylar there is the result of sanding off some very small ridges that had formed around all of the openings.

2014-04-24 13.53.30

Next I made a couple of fresh ones and cut a piece of 1/16″ acrylic to serve as a fixture to hold the board in alignment with the stencil.

2014-04-26 21.57.38

Here we go. First try, not bad! I made a little mess in the mounting holes, but generally the transfer was nice and clean.

2014-04-27 18.03.02I tweezered the components onto the board (my cheat sheet can be seen in the background) and fired up the reflow toaster oven.

2014-04-27 18.10.50About 6 minutes later…

2014-04-27 20.11.12

The inductor slid around a bit as the solder melted, but it’s still on its pads and not touching anything else. The IC looks perfect. You can see where R1 and R2 can be changed with thru-hole resistors to provide any output between 2.5 and 14V. The IOUT pad provides an analog voltage proportional to the current draw of the load, which I may end up using to monitor which systems are consuming the most power.

I works! 9V on the left, 3V on the right, identical output (and pretty darn close to 5V, too). I realized I had to hook up an LED to get a good output, probably because the multimeter was not drawing enough current and the IC went into a shutdown mode.


Robot is ready to go wireless!

UPDATE: Here’s the files and BOM to make your own:

OSH Park link

Eagle .sch and .brd files

Bill of Materials (Google Docs)