karplus4arduino

2011 July 19

More on PC boards

I got back the results of the free check of the design rules from FreeDFM.com that I mentioned in my earlier post, and there are a lot of problems.

First, the sfe-gerb274x.cam script from SparkFun included the Dimension layer in the top copper, but this generates traces that are far too thin (0.1 mil) to be made.  The outline of the board does not belong on this layer.

Second, the Adafruit component for the Arduino, that labels the Arduino pins used 3 mil strokes, but the minimum stroke width for 4pcb.com’s silk screens is 5 mils, so there were 4103 violations.

I fixed the script that generated the top copper file so that it didn’t include the Dimension layer, and went through some of the libraries fixing the fonts so that the 0.04″ high letters has a stroke/height ratio of 13% and the 0.05″ high letters had a stroke/height ratio 10%, meeting the minimum silkscreen requirements. I resubmitted the design to FreeDFM and got

Congratulations!
No DFM problems were found on your board!

Show Stoppers
We Found None!
Problems Automatically Fixed by FreeDFM
We Found None!

They also provide some nice pictures of the layers as pdf files, so maybe I don’t need a Gerber file viewer after all (though the separate PDF files don’t give me any clues about possible misalignment).

I’ve not decided for certain whether I’ll go with 4pcb.com for my fabrication, but the fact that I was able pass their design rule checks (and the positive recommendation for them that I got from someone who supervises a lot of student PC board designs) is encouraging. The minimum order of $132 (which would give me 5 copies of the board) is a little daunting for a first attempt, as I’m sure I messed up something.

Yep, I sure did. In a comment on my earlier post Mylène gave me a pointer to a trace width calculator, which I used to figure out whether I had made my ground line fat enough.  The answer is “No!” If I use the cheapest fab lines, I get 1oz/ft2 of copper, which the calculator estimates would heat up 40ºC in the most constricted spot on my board.  So I guess I have to push things around until there is enough room for another ¼” of wire there.  Good to catch that now, rather than after fab!

Advanced Circuits does have a cheaper “bare bones” option, but it does not include a solder mask.  I don’t think I want to try soldering even 0.1″ spaced pads without a solder mask, as I’m clumsy enough to have trouble with solder bridges even when there is a mask.

I also looked at Olimex, which claims very low prices (30€ a board for 1–4 boards), but I was turned off somewhat by the low-quality of their web site and the big announcement:

Note: we are in summer vacation 1-31 of August.
ALL PCB files sent after July 26th will be proceed in September.

I didn’t do it justice here: the announcement fills the screen on their site.  Since I want to work on this primarily in August, I’m not willing to take a chance on their being shut down for the month when I need the boards.

Olimex does take Eagle board files directly, doing their own conversion to Gerber and drill files.  This could be a nice advantage for someone who doesn’t want to bother with the Gerber files.  Now that I have a script that does the right thing, though, it should not take me much effort to do the conversions myself, so this advantage is small.

Perhaps more important is that they release their design rules as Eagle dru files, so you can do your checking as you do your layout.  I downloaded both their rule sets (the 8-mil and the 10-mil) and found that my design fails both.  Again, the problem is with silkscreen stuff, but not the line thickness—the silkscreen outlines of some of the parts I use comes too close to the solder masks for them.  I had a few problems with that even using the default design rules, but I fixed those by editing the package outlines.  The Olimex rules require an even larger clearance, and there are too many different drawings involved, so I’m not willing to take the time to tweak everything to fit Olimex’s fussy rules, despite the low price.

Custom PCB offers low prices and takes Eagle files (or Gerber files, of course).  I think I could get 4 boards for $90 from them, including shipping from Malaysia, but I’m still waiting for the official quote. I think I may fail their design-rule check, though, as they specify a minimum of 6mils for silkscreen lines on their design-rule page.  I’d have to redo a lot of lines to meet that spec!  And I’d have to write (or find somewhere) a set of Eagle design rules that match their requirements, since they have slow turnaround on checking for manufacturability (a day).  They sent e-mail saying

“We have reviewed your design and it looks good for production.  Total cost for 4pcs with Soldermaks & Silkscreen is USD 72.00 + USD 15.50 shipping to USA.”

If they are willing to accept 5 mil silkscreen instead of 6mil, this may be the way to go!  I’ve sent them an e-mail query about their design review—whether they neglected to check the silkscreen or if their minimum acceptable line width has changed.

PCBExpress has a minimum price of $390 (for 2 boards this size).

PCB unlimited has a minimum of $230 (which would get 2 boards) for the “quickturn” pricing and $260–280 for their overseas fab (which would get 1–10 boards).

PCB Universe has $127 (including shipping) for a 4-board lot up to $229 for 10 boards (beyond that number, their standard pricing is supposedly cheaper).  They have 5mil minimum space and lines, which my design easily meets.  Their pricing is similar to 4pcb.com, but without the service of the free design-rule check.

Prototype PCB quoted me $229 for 3 boards.

 

Bottomline:  If CustomPCB can handle the 5mil lines on the silkscreen, then I think I’ll give them a try.  Otherwise I’ll probably go with 4pcb.com

Designing a printed-circuit board

One of my projects for this summer is to learn to do printed-circuit board design.

Some of my constraints:

  • The software must run under Mac OS X.  I’m not getting a Windows machine.
  • The software must be cheap (or free).  This is a hobby, not a profession, and I’m not willing to pay the sort of prices that tools like Cadence cost.
  • The printed-circuit boards have to be cheap.  There is not much point in designing something if I don’t get it made, and I don’t want to spend huge amounts on designs that may turn out to be awful.

After looking around for a while, it seems like there is really only one choice for Mac users: the Eagle software from CadSoft.  (There may be some other choices in a few years—but none of the other Mac products I found seemed to be widely accepted.) There is a slightly crippled freeware version of Eagle (only 2 layers and 8cm × 10cm max size) which should meet my needs fine.

For the past several days, I’ve been learning to use Eagle and laying out a board to have 6 motor channels, each with up to 2.5A at 12v.  Some of the design is overkill (I could go to 36v by replacing the capacitors with higher voltage ones, and I could deliver up to 5A per motor, as long as I don’t exceed 15A total).

Eagle has been a struggle to learn to use—the user interface feels like it was frozen in the 1980s, with really awkward multi-click actions for everything.  The software reminds me a lot of  Magic, the free VLSI layout software written around 1982, except that Magic had a much nicer user interface.

All the functionality seems to be there in Eagle, but is hard to find—you really need to consult the 327-page manual a lot. Normal actions are not done in normal ways.  For example, to operate on a group of objects, you have to click on the tool you want to use, then on the group tool, then click-and-drag to select the group, then right-click to perform the action on the group—about twice as many operations as on a modern interface, and in a non-intuitive order.

When I say “all the functionality seems to be there”, I’m using a rather generous definition.  For example, if you make a mistake when defining a new packaging variant for a part in the library, there is no way to undo it.  You can start over from a backup file or create a new part with a different name and do all the work over.  There is no universal “delete” option (say by right-clicking to pop up a menu) that works for variants, and the command-line commands don’t allow removing packages from devices.

Copying subcircuits is possible (something I needed to do to make 6 identical H-bridge circuits), but you have to be careful—if you name any of the nets, it will short the nets together, since it has no way to generate unique names other than the automatic ones it generates.

It would probably cost a lot to redo the user interface into something like a modern program, and the number of engineers and hobbyists using PCB-layout programs is probably not a big enough market to justify the cost.  I am glad that it was a free version, though, as I would have felt really annoyed if I’d paid money for such an incredibly awful interface.

Despite the struggles to learn Eagle, I think I have finally gotten a design done.  It uses the whole 8cm × 10cm area.  At first, I had an incredibly difficult time packing everything in (and the freeware version of  Eagle doesn’t let you unplace things once they’ve been placed). After making some circuit design changes (removing the superfluous freewheeling diodes, for example, since they are included in the H-bridge chips I chose) and some packaging changes (using 3.5mm pitch screw terminal blocks, instead of 5mm pitch ones), managed to end up with room to spare.

At first I did tried doing all the routing by hand, then discovered the follow-me single-net router, then the autorouter.  It turns out that autorouter had no trouble completing, but I ended up hand-routing all the high-current wires anyway.  I didn’t see any way to tell Eagle which parts of the GND net needed to be fat wires and which could be skinny wires, for example.  A net has only one width, and the design-rule checker checks that width throughout.

Some little gotchas included that the default drill size for vias is smaller than the default minimum drill size for the design rule check.  Luckily I did a design-rule check very early, before I’d done much routing, so I could increase the drill size for the vias without having to rip everything up and start over.

Actually, I ended up doing the whole design almost from beginning to end three times, because of design modifications (getting rid of the freewheeling diodes, for example, or deciding to add headers for servo outputs).

My design now meets the default design rule checks provided by CadSoft, so it is time to see about getting it fabricated.  I looked into a few different PC board houses.  The one that the “PCB Quote” button in the software connects you to is ridiculously expensive (so I’m not even going to provide a link to them).  One that I’ve had recommended to me is Advanced Circuits at  http://www.4pcb.com, which has very low pricing, but does not accept Eagle files.  You have generate Gerber RS247X files for each layer and Excellon drilling files.

Eagle is capable of doing this, but once again the interface is incredibly clunky—luckily there are some scripts that automate the process, if you can figure out how to make them work.  I started working with one from SparkFun, described in the SparkFun Eagle tutorial, but it turned out not to work with the latest version of Eagle.  I had to compare it with the “cam” scripts provided with Eagle to see that the output now needs to include “%N” to generate the file names.

Once I got that sorted out, I could change the layers that were specified for the top silkscreen (I had designed the board to use tPlace, tNames, and tValues, while SparkFun just used tPlace) and generate the Gerber and Excellon files.

I’ve not yet figured out what Mac OS X tools there are for viewing Gerber files, to check to see if the conversion worked, but Advanced Circuits has a Free File Check option.  I submitted the files there and expect to get a feedback email either in half an hour or tomorrow.

 

Create a free website or blog at WordPress.com.