DIY SMD stencils made with a craft cutter

Unless you’d like to spend hours with a toothpick and a tub of solder paste, stencils are the way to go whenever you’re placing SMD parts. While most commercial and industrial SMD stencils are made out of laser cut stainless steel, [Peter] figured out a piece of plastic and a $300 craft cutter is equally well suited for the job.

[Peter] has spent some time making SMD stencils out of polyester film in the form of overhead transparency sheets. This turned out to be a wonderful material; it’s dimensionally stable, commonly available, and just the right thickness suggested for SMD stencils. The polyester film was cut on a Silhouette Cameo, basically a desktop-sized vinyl cutter aimed at the craft market.

Stock, the Silhouette Cameo rounds off corners, not something [Peter] wanted with features only fractions of a millimeter. He came up with a tool to convert the paste layer of a Gerber file into separately drawn line segments, allowing him to cut SMD stencils for 0.3 mm pitch components.

It’s a great piece of work to make very fine pitch stencils, but we’re wondering if this tool could be used on the much less expensive Cricut paper and vinyl cutter that is unfortunately locked down with some very restrictive software.

Regarding the Cricut: there’s software called Sure Cuts a Lot (requires purchasing) that will let the Cricut use files from Inkscape, etc. I’ve seen it adapted to draw a series of straight lines as in the example above, but didn’t get that far with my own experimenting.
I’d hoped to use the Cricut for cutting styrene, but it wasn’t up to the task in the thickness I needed, even making multiple shallow passes.

last time I looked (maybe a year ago) Sure Cuts a Lot had been forced to drop support for Cricut and you needed to try and find an old pirated download – which also needed to be compatible with the cricut firmware, iirc – is this no longer the case?

You appear to be quite correct. That’s a shame. I guess Cricut didn’t like anyone getting around the need for their overpriced cartridges. (interesting: the “George and Basic Shapes” cartridge that comes with the Cricut is nothing but a jumper internally. All the fonts, etc. for that cart. are built into the Cricut)

I’m most upset that the cricut people probably had no real legal grounds to shut down Sure Cuts a Lot, but they folded anyway. I believe internally the machine and the cartridges are atmega based with a fairly clear usb protocol to the pc. I remember somebody somewhere was working on an open source firmware. I would love to see that effort get more organized and take off.

@gxti You can copyright code. And there are pretty stupid definitions of “circumventing” “digital copyright protection” that would apply to you circumventing their software (by not using it) to talk directly to their hardware (their copyright protected code). It’s the software equivalent of a mod chip. It’s the same reasoning that PRIVATE Wow Servers are illegal, even with legit copies of Wow Clients.

The difference is that you are still using their firmware to do what you want. If you burn a open source firmware on their hardware, they can still sue but hopefully not win. If you circumvent their digital rights management software (not use their crap program/cartridges) then they still sue, and probably win.

Maybe the answer with the “Cricut paper and vinyl cutter” and similar “locked out” [pain in the posterior] software would be to ditch most of the hardware. Cut a few traces and patch in to the controllers allowing a nice friendly micro-controller to take over the job of telling the hardware what to do (:

The cricut’s software is very very restrictive. When I was doing research between the two a few years ago I found that the cricut only allowed you to cut preset shapes and use preset fonts that you had to buy separately. I’m guessing someone could hack together their own software or controller to make better use of it, but I haven’t seen that happen yet. I bought the Silhouette SD because I can draw whatever I want in illustrator and then import it into Silhouette software. It does take a bit to get used to it, but the new software update makes cutting fairly easy. The Silhouette SD cuts whatever you tell it to. It’s a pretty cool tool and this post breathed new life into it!

That really doesn’t look very good though since the cricut is blade based as opposed to laser and the instructable says 0805 and TQFP, which is useless for me as my designs have moved on to 0603 and HTSOP.

It seems like what might be more helpful would be a printer hack. Like a 3d printed “cartridge” that you could install in a monochrome printer. You could pop in a cutting laser diode and the cartridge would have a pcb that would interface with the printhead and say “Yes, i’m full of ink” then when it was supposed to print a black dot it would fire the diode. Of course there’s problems with that… the diode would have to be compact enough to fit in the cartridge, yet strong enough to blast a hole through some material as fast as the printer would be spraying ink. SO… maybe the answer would be a custom control board like was used in: http://hackaday.com/2012/12/22/an-even-more-useless-machine/ or http://hackaday.com/2012/12/13/converting-a-chinese-laser-cutter-to-work-with-mach3/ combined with a laser cutting printer cartridge.

Lately i’ve been working on a stellaris launchpad-based combined 3D Printer/CNC control board. One of the things i’ve really wanted to use it for (other than 3d printing) is PCB milling. Stenciling would be a really neat application too though.

So weird… I wrote a comment but it’s not showing up… So here I go again:

A few years ago I was doing research on the cricut vs the silhouette sd and I came to the conclusion that the cricut was NOT the machine to buy. The cricut relies on cartridges that have preset patterns, shapes, and fonts. This was a total deal breaker for me as I was planning on using the machine to cut out wedding invitations. The silhouette took a bit of getting used to and the software wasn’t helpful. They released a software update (a year ago now) that really made things easier. I design in Illustrator (inkscape works too but I come from an illustrator background) and simply open the file in the silhouette software. The software is pretty good at tracing illustrator’s paths.
This post has given me more ideas and has breathed new life into my little silhouette!

Indeed! Even the SD is overkill. A few years ago the original Silhouette was going for under $125 new on ebay and Overstock.com. I got one and it’s really handy. There’s lots of nice stuff you can do with Inkscape and a bit of contact paper!

I guess why there aren’t tons of Cricut hacks is because for not much more money there are several vinyl cutters that aren’t locked down and will cut anything you send to them.

The computer connectable Cricut models have software with all their designs and fonts, but to actually cut your designs you have to buy the expensive cartridges, which adds up to several thousand dollars for a complete library.

One way I can think of to hack it would be a dummy cartridge with its own USB connection to load designs into. I bet the computer software doesn’t have the designs and fonts in the same format as the Cricut cutter. That’d make it too easy to rip them from the software to load into a dummy cartridge. The software is only directing the cutter which designs and characters to use from a cartridge and position, rotation and scaling.

It’s quite like the old HP DeskJet 500 series printers with font and emulation cartridges for other printers. With a DOS word processing program, the software only sent the text and some formatting commands to the printer. The printer pulled the font data from its cartridges, following the software’s commands for placement, scaling and effects such as bold and underline.

That’d be a neat retro hack, a dummy cartridge for a DeskJet 500C to load fonts into for use with MS Word for DOS. Nevermind you could print a whole book on a current laser printer in the time it takes a 500C to churn out a couple of pages.

I have a CraftRobo (A Silhouette SD to be precise.) and I’ve been using it for all manner of thing. I tried using it for SMT stencils about a year ago…didn’t work too good, but then again my blade wasn’t very sharp at the time, I’ve got new ones now.

I just take the gerbers from Eagle convert them to SVG, and then turn them into usable art in Adobe Illustrator, which has a native CraftRobo plugin. Now that I’ve been working with silkscreening, I’m going to try using it to cut Rubylith for exposing my boards. (Or even better, exposing screens to print the boards!)

Here’s a blog post about how I used it to make the Rubylith film positive for a screen to print a logo on the canvas cover for my lathe. :D http://makecoolthings.com/?p=18

This inspired me to hunt down a Cricut! I found a broken Expression on Craigslist for 50 bucks. The solder work was appalling, so instead of trying to trace down the problem, I just reflowed all the joints on the bottom of the board and now it works. I ponied up for a mat and blades, so I’m in for a little over a 100 now, but I got it working with SVG and I’m happy so far, for three days work.

For those who are trying to pick up where Peter left off, you will need to have already installed “gerbv” and “pstoedit”. “pstoedit” also requires ghostscript to already be installed on your computer, and for windows, to have all the paths pre-setup. And as a Python newbie, gerber2graphtec seems to only work with Python 2.7, not Python3.3. So, I’m trying to get this to work under Windows, and I’m capturing the output file that should get sent to the Cameo. Anybody have any suggestions on how to send it to the Cameo? Windows shows a driver for “USB Printing Support” which is for the SilhouetteCameo, but it doesn’t show up as a printer, or as an lpt or comx port.

Ah, I wasn’t aware of the Python 3 compatibility problem with xrange(). I’ve checked in a fix, so I think it should be fine with either Python 2.x or Python 3.x now.

As for sending the file to the printer under Windows, I think the easiest way might be to use libusb from user space. There’s a Python binding, python-libusb1, that looks suitable. A small script could open the USB device using its vendor and product ID, then read from standard input and write to the USB device (using bulk transfers).

I can try this out on Mac OS X, and hopefully it will work from Windows as well.

Ok, I’ve added a file2graphtec script that writes a file out to the USB cutter device. Change the vendor and product IDs if your device is different than a Silhouette Cameo. Usage hints are in the README. I’ve tested it under Mac OS X; please let me know if it works under Windows, since for the moment I’m unable to test on that platform.

Thanks Peter!
I’m not exactly sure how, but I got it to work for me with windows. I messed with graphtec.py a bunch and modified emit(self, s) to use win23print.WritePrinter to send it directly to the printer port. Nothing worked at first, until I told windows to look for an updated driver. Initially windows installed a stock (written by microsoft) usb printer driver, but “Silhouette CAMEO” didn’t show up under Printers and Faxes, but the generic driver showed up under “Unspecified”. After asking it to look for a newer driver, Windows found somewhere on the web a driver written by Silhouette. When I get a break I’ll try to reproduce what I did and write up a description, but for now I need to put out a fire at work first. Then I’ll give your updates a try. I really don’t know Python, but it seems easy enough to hack around with…

and my last try:
C:\>C:\gerber2graphtec-master\gerber2graphtec.py test.gbr > result.txt
‘C:/Program’ is not recognized as an internal or external command,
operable program or batch file.

Problem during opening C:\Program Files\pstoedit\drvmagick.dll:The specified mod
ule could not be found.

Problem during opening of pstoedit driver plugin: C:\Program Files\pstoedit\drvm
agick.dll. This is no problem as long the driver in this library is not needed.
Possibly you need to install further libraries and/or extend the LD_LIBRARY_PATH
(*nix) or PATH (Windows) environment variables.
Could not open file _tmp_gerber.pdf for input
Traceback (most recent call last):
File “C:\gerber2graphtec-master\gerber2graphtec.py”, line 104, in
strokes = pic.read_pic(temp_pic)
File “C:\gerber2graphtec-master\pic.py”, line 5, in read_pic
f = open(filename,”r”)
IOError: [Errno 2] No such file or directory: ‘_tmp_gerber.pic’

At this point Im confused as to what the problem is? and the correct syntax??

Seems maybe the slahes worked (did something).. and now the problem is pstoedit?

It sounds like there’s something wrong with your python environment variable. I don’t know the paths to add off the top of my head but just search “python windows environment variable” The same probably needs to be done for all the plugins you’re using.

[b]*** in original post it was stated to use this: C:/Program Files (x86) this DOES NOT WORK?FIT with Windows XP pathing ***[/b]

This will get Python and GerbV running without any errors being given..

pstoedit changes:

Everytime I would run the command lines given above.. I would get error about the image_magik_.dll file.. and things would crash.

[quote]Problem during opening of pstoedit driver plugin: C:\Program Files\pstoedit\drvm
agick.dll. This is no problem as long the driver in this library is not needed.
Possibly you need to install further libraries and/or extend the LD_LIBRARY_PATH
(*nix) or PATH (Windows) environment variables.
Could not open file _tmp_gerber.pdf for input
Traceback (most recent call last):
File “C:\gerber2graphtec-master\gerber2graphtec.py”, line 105, in
strokes = pic.read_pic(temp_pic)
File “C:\gerber2graphtec-master\pic.py”, line 5, in read_pic
f = open(filename,”r”)
IOError: [Errno 2] No such file or directory: ‘_tmp_gerber.pic'[/quote]

*still not sure how to handle this.. but a google search returned a post from an INKSCAPE forum member with same errors… removed the .dll from the directory.. and no longer getting the error.. (is it needed?)

**note:

it looks like the script is looking for a .gbr file (I think it needs to be int he GerbtoGraphtec root directory…)

Based on your pcb design software.. (I use Eagle).. the CAM script you use will export and control the names of the gerber files (make sure you get a .gbr file exported)

I took my file.. changed extension from .gts to be .gbr.. and put in the root gerbertographtec folder in my C: drive..

called board.gbr

anyways.. moving forward.. I gave it a shot, using this as my command line..