Price increase - "What's a gerber?"

lucky:
Hi Guys,

Why not only alow submition via the PHP DRC checker. Then the people that are submiting bad files will be rejected (with an automated constructive hint as to why and how to corect the problem). This way you will only receive good orders and the bad ones will be rejected before payment is taken.

You could also use the PHP to calculate the board size so that all the user has to do is select the files to send, and select the number of required boards. If the checks pass then payment is taken and the files are sent (from the PHP) to Ben.

I think the main problem is that the people that are making the mistakes (including me :oops: ) don’t realise that they are doing anything wrong. The above sugestion will educate people without costing you any time or effort.

People can then make as many submitions as they like and learn by the results from the DRC, and you will only receive the order if and when the user gets it rite.

All good, but the DRC is not 100% accurate. I was thinking of a system where the user gets a DRC Check Number which is logged in some way and has to be included when u submit an order. (In an attempt to get people to use it)

Also board size is very problematic, it is possibleish but it will require the silk screen files to be uploaded as well + a lot of processing for large files. (20k files are not big on space, but can contain thousands of lines which has to be examined char by char, split, identifed etc. etc. etc.)

Constructive hints will be included in the ‘final’ version, the system is in place (inc. a few known bugs) and should be ready as soon as i get things going.

All good, but the DRC is not 100% accurate.

One day it will / should be.

…but it will require the silk screen files to be uploaded as well…

Sparky reqires these anyway to make the PCB’s!

I undersatnd that it is more PHP work but I feel that it would be such a shame to have half a solution and not a complete fool prof system.

If you have to run the test then email the files seperately then there is still room for errors and there will still be some people that will ignor or skip the test. This will result in more work for Ben.

→ Just an Engineers view.

One day it will / should be.

Well its never been sold as it would do this, if so i would not be writing a text file analyser, but i would be making a graphical analyser using C++ or perl and a GD-like library and charging a couple (or more) hundred dollars for the work.

Here is one problem with PCB size estimating:

overhanging components, impossible to account for (hence the readme files)

The idea is to catch width, drill size, common file errors etc. If it cuts out 50% of problem files then thats good.

Whats even better is that people who make errors like line width (which i can check) often make mistakes with line spacing (which i cannot) etc. So a good tip system should help cut out even more problems.

Part of the problem is that hobbiests dont know how to do proper DRC / how to use Eagle (the most common program). I mean most might know how to make pours, but do not know that they have to change the defult line spacing from 4mill to 8mill (or even better 20mill).

Anyhow, steve is working on a program to download / check files, but is not due to be completed for some time. Hopefully mine should cut down 40 - 60% of problems!

Anyhow, steve is working on a program to download / check files, but is not due to be completed for some time.

I guess it's time I go public and tell you guys what I'm aiming for and invite some comments/criticisms.

First of all, I should explain that I’ve been thinking about exactly these issues since 1996 when I first started work at a PCB factory. Since I’m a programmer, I tend to think in terms of software solutions :wink:

Of course, there’s always a human element, but the fundamental problem for Sparkfun is the lack of a consistent standard for the files they receive from customers. Actually, the ‘big end of town’ has been working on this for a long time, and there is a significant ongoing effort to standardise PCB ordering. Search google for ODB++ and/or GenCam if you’re interested.

However, that’s for the big boys with the big bucks :wink: For the rest of us there’s Gerber and Excellon format. Every PCB package exports them, and every manufacturer will accept them. But, every PCB CAD program is different. There are different interpretations, old and new versions, plus different output options within each package which all together add up to hassles dealing with Gerber/Excellon orders.

A PCB manufacturer can afford the resources to deal with such things. Actually, where I work close to 100% of our orders come in as Protel files, so we generate the gerber/drill files ourselves, exactly how we want them.

Oops… I’m overcommunicating… Again…

Anyway, for a small company like SparkFun, the only real solution is to have the customer generate the gerber/excellon files exactly the way SparkFun wants them.

So, my aim is to create some PCB ordering software that allows the customer to import their gerber/drill files, have some basic checking done, then re-export properly formatted and ready to be sent to any manufacturer.

This places a small burden on the customer, but it’s a process they only need to learn once (unless they change their PCB software). And, as I said, the gerber/drill files that the ordering program outputs would be acceptable anywhere.

Comments are welcome.

Steve.

pittuck:
Part of the problem is that hobbiests dont know how to do proper DRC / how to use Eagle (the most common program). I mean most might know how to make pours, but do not know that they have to change the defult line spacing from 4mill to 8mill (or even better 20mill).

I created my own EAGLE DRC file (sfe.dru) from the default set based on information in this forum, the FAQ and tutorial on the SFE site. I changed all clearances from 8 to 10 mil and the drill hole distance from 8 to 10 mil. Is there anything else I should change? Maybe we could get a "standard" EAGLE .dru file posted with the tutorial.

Don

I am not sure if the distance between polygons and traces are checked by the eagle DRC, i can chack later :wink:

Steve - how’s it coming? Can we try out a dummy program of some sort?

-Nathan

For the past few days I’ve been busy on other things :frowning:

It’s Friday night here, and Monday is a holiday, so… I can have a program ready in a couple of days that will load any gerber file into appropriate data structures then free the memory and exit. Plus reporting basic syntax errors in gerber files.

As soon as that’s done I can start putting in some checking features, but they’ll be fairly basic, at least to begin with. Something like a DRC check is really best done in the Design software. To do a DRC in CAM software means first constructing a netlist, which doesn’t really shield against design errors very well. For example, if there was a short in the gerber files it would be assumed to be a valid net connection. However, at least it allows some clearance checks.

There is something useful I’ll do for you very quickly, though, and that is a program that can read any Excellon drill file including many with wierd formats. You’ll be able to easily change the coordinate format and reimport. So you could load any drill file with a few button clicks and then the only hassle you might have is to type in a few drill sizes. Then you just export it in any format you like.

I have to write this anyway to incorporate it into the main program, so it’s not any extra work to make it a standalone program. I also need to write a small program to experiment with a GUI toolkit I’m planning to use for the main check/order program.

How does that sound?

Steve.

Bring it on. We’d all like to have a look.

-Nathan

Just a thought…but why not make FreePCB the “standard” for all the newbies out there. I’m sure some ppl are using other commerical packages and others are using eaglecad. If anyone was like me I hated jumping through all the flaming hoops to use EagleCAD.

FreePCB is easy to use and will export the gerber files in two clicks. Additionally it does do some good design error checking.

BTW if there are developers on this forum FreePCB is open source and needs a little work. (IE print function)

Have you considered allowing tighter PCB specs for the $5 price? Like 5 mil traces and spacing.

That would cut down on DRC failures and at the same time allow us to use parts with 0.5 mm pitch. (The 8 mil spaces lets you use down to 0.65 mm pitch.)

Given a choice between the 2.50 and 5.00 with tighter specs, I’d probably choose the 5.00. That would give me a lot more flexibility in parts, and I’d probably end up with smaller boards.

-chris

problem is, people would go for the $2.50 option and it could take quite a while to get enough PCB’s for the $5 option!

anyhow, 8mill = 0.2032mm…

Personally I think that Eagle is wonderful for n00bs. For one thing, there is no disconnect between the schematics and the PCB design. I found this link invaluable! The only pain is when you have to export the files, and there is a complete, verbose, hand-holding tutorial for that.

I found dealing with netlists and exporting and all that crap to be a whole lot of unnecessary work, and any real product should just integrate the two solutions together, which Eagle does. Sure, it’s UI isn’t the most intuitive (OK, well maybe it’s not intuitive at all), but the integration between schematic and PCB is awesome.

Ray

pittuck:
problem is, people would go for the $2.50 option and it could take quite a while to get enough PCB’s for the $5 option!

yeah, i guess that’s probably true…

pittuck:
anyhow, 8mill = 0.2032mm…

right, but i’m talking about the lead pitch. with a 0.5mm pitch, the actual space between the leads is less than 8 mils. for example, an atmel at91r4008 100 pin tqfp, which has 0.5 mm pitch, the space between leads is 0.10 mm (according to the datasheet).

-chris

I think you’re reading the data sheet wrong. A 0.5mm pitch normally has 0.25mm wide pads, and 0.25mm wide spacing between the pads. 0.25mm is 9.84 mil which is larger than an 8 mil trace.

I’ve just got a board that has a 0.5mm pitch FFC connecter on it, and it’s routed fine with 8 mil traces. (You can’t route it at 10 mil though!)

m:
I think you’re reading the data sheet wrong. A 0.5mm pitch normally has 0.25mm wide pads, and 0.25mm wide spacing between the pads. 0.25mm is 9.84 mil which is larger than an 8 mil trace.

I’ve just got a board that has a 0.5mm pitch FFC connecter on it, and it’s routed fine with 8 mil traces. (You can’t route it at 10 mil though!)

Well, perhaps. But the main problem was that the SMD pads in my libraries for those parts have widths slightly greater than 0.25mm (0.32 and 0.3 in the two I checked). These are the default SMD packages in Eagle, for the most part.

Setting the pad width to no greater than 0.27mm passes DRC. Thanks for getting me to look at this!

Although, if given a choice, I would still prefer to have wider pads. Plus, I do still think lowering the tolerances would be helpful by letting more customers projects pass the first DRC.

-chris

Why not send all potential customers to the FreeDFM website offered by Advanced Circuits? www.freedfm.com customers cannot order until their files pass that inspection.

well that is what is planned for the DRC lam working on!

Should be ready in a couple of weeks hopefully sooner.

pittuck:
well that is what is planned for the DRC lam working on!

Should be ready in a couple of weeks hopefully sooner.

will the final version accept a zip file, or will it still be a file-by-file upload?

file by file checker, with a zip upload for the final order submission.