Introduction: How to 3D Print a Solder Stencil!

About: maker

This is a neat way to save a bit of money when you order boards. Normally you pay an extra $25-50 for a solder stencil, either a silkscreen or a sheet of metal with holes where the solder paste needs to go.

With a bit of effort and some open source tools you can 3D print one that's pretty good for a few cents worth of filament.

Disclaimers:

I've only tried this on my Mac, running Mavericks, using Eagle 6.5 and Inkscape 0.48.2, through Cura to an Ultimaker version 1. YMMV.

Step 1: Export the Mask From Your Circuit Design

First step is to open your board file in Eagle. Select the CAM Processor, you'll be creating your own job, then saving it for future use.

In the dropdown next to Device, select EPS. Scale should be left at 1. The Section name should be "Top Paste", and the filename should be "%N.top.eps" Deselect all the layers except 31, tCream. Select that one if it's not selected.

Now click the "Add" button in the lower right. Change the Section to "Bottom Paste" and the filename to "%N.bot.eps". Deselect tCream, and select layer 32, bCream.

Hit cmd-S or file->save, and save the job with a name like "solder paste.cam"

Then hit the "Process Job" button and note that there are now two EPS files in the same directory as your .brd file.

Step 2: Convert the EPS to PDF Format, Then PDF to DXF

This step will probably vary a bit from OS to OS. On OSX it's possible to open files with Preview and save them as PDFs that can be opened with Inkscape. Don't save as PNG, it won't work as well, you definitely want a vector format.

I believe LaTEX has a pstopdf utility that will do this on Linux, please comment if this doesn't work or there's a better way.

Now start Inkscape and open the PDF file. I set the precision to "very fine" but this may not be necessary. Set the units to mm or in, and verify that the dimensions are the same as your Eagle file's.

To convert to DXF, select all (ctrl-A) and object->ungroup. You may need to do this twice, make sure you see "nnn objects of type Path in layer …" on the bottom.

Now select the Node editing tool and hit ctrl-A again, the whole thing should light up with selected nodes. Click the "Make selected segments lines" to convert them to straight lines.

Save your file as DXF format. You can now close Inkscape, optionally saving your file in native svg format.

Step 3: OpenSCAD!

Start OpenSCAD and type in the following program:

difference() {
	cube([45,55,.3]);
	translate([-1.5,-3,0]) minkowski() {
		linear_extrude(.3) import("charlie heart_top_paste.dxf");
		cube(.1);
	}
}

Modify the program to change the name of the file in the import statement to the one you saved in the previous step, and the x and y values of the cube in the second line to the size of the board with a bit of extra room.

Press F5 and view the results. You may need to tweak the translate values and/or the cube size to make it fit and center it approximately. The second cube statement expands the holes just a little so things work better.

Then press F6 or Design->Compile and Render (CGAL) from the menu. If that looks good go back to the Design menu and select Export as STL.

Step 4: 3D Print!

The moment you've been waiting for, printing out the stencil!

Open the STL file in your favorite 3D printing program, I use Cura but Makerware is great too.

Whatever you use, you'll want to set the slowest printing speed your patience will allow, and the finest layer height. The idea is the holes need to be as precise as possible for the stencil to work well.

Have at it, and please comment with results or corrections!