New FAQ and online DRC Scripts

We’ve listened to what our customers have [saidand have tried to come up with a better $2.50 PCB scheme.

Namely, Martyn Pittuck is cranking away on some PHP scripts to do prelinary DRC. You can take a look at them here : http://www.sparkfun.com/~mpittuck/. I encourage everyone to throw their worst at these scripts. Please be aware that we are logging submissions to see how the scripts hold up.

There is still a long way to go, but we hope to have a much simpler system. Currently, there is still about half of customer submissions failing because of drill file problems and gerber file problems. Hopefully the DRCing will alleviate some of the problems.

Thanks goes to Martyn for building the scripts. We hope to see lots more good things from him!

We have also posted a very simple FAQ [here where we encourage all customers to first view their own designs in ViewMate or an equivalent gerber viewer before submitting to protopcb.

If anyone has any recommendations for the FAQ or for the php DRC routine, we’d love to hear it.

-Nathan](http://www.sparkfun.com/tutorial/PCB/Custom-PCB-FAQ.htm)](http://www.sparkfun.com/cgi-bin/phpbb/viewtopic.php?t=794)

Sparky, I’ve ordered PCB’s from you guys twice (and some breakout boards too) and am absolutely 100% totally satisfied… :D…the $2.50 service that you guys offer has been needed for a long time. Not just because the price is great (that’s just the gravy on it) but because the boards are good quality and Sparkfun’s service and customer relations are excellent. The steps you are taking now, to make it that much easier for new designers and guys doing it for a hobby, is about as good as it gets! Thanks. I will always use and recommend Sparkfun first!

John

Thanks! That means a ton. Especially when we have three or four other customers that are a little upset about how long our turn time is. We’re trying to move as quickly as possible, but this is a difficult service to provide.

Keep coming back, ok? :wink:

-Nathan

Hi,

Its me :smiley:

Just to explain the to-do list:

  • Check Oval Apertures

    Add FAQ texts (for the drill file checking the system is in place, its not yet implemented in the layer checking)

    Board Size Calculation (Gonna need another file uploaded, and will be a pain to de-bug)

    Line spacing (will check parallel line spacing, will use code from the board size calculation. So its on the to-do list)

    Better GUI (hehe)


  • So if u can try all the files you can find i will be very greatful. I should be told of any errors through files stored in non-web accessible parts of my sparkfun user account. But still post here as some explination of board may be required.

    Many thanks,

    • Martyn Pittuck

    ok, well a couple of bad files have come through:

    ClarkA1.sol

    is the main one (there was a drill file, but it looked binary…) Anyhow if this is yours, was it meant to fail/has it failed sparkfuns checking before?

    Regards,

    • Martyn

    Martyn,

    That Binary looking drill file might be in RS244 (paper tape) format rather than ASCII. If you send it, I’ll let you know.

    Or if you don’t want to send it, I can send you a conversion program I wrote.

    Steve.

    Actually… here’s the conversion table from the code.

    /* Convert EIA RS-244 text to ASCII (c) Steve Adam 2002

    char e2a[MAXEIA+1] = {

    0x00,0x31,0x32,0x00,0x34,0x00,0x00,0x37,

    0x38,0x00,0x00,0x25,0x00,0x00,0x00,0x00,

    0x20,0x00,0x00,0x33,0x00,0x35,0x36,0x00,

    0x00,0x39,0x00,0x00,0x00,0x00,0x00,0x00,

    0x30,0x00,0x00,0x54,0x00,0x56,0x57,0x00,

    0x00,0x5A,0x00,0x00,0x00,0x00,0x00,0x00,

    0x00,0x2F,0x53,0x00,0x55,0x00,0x00,0x58,

    0x59,0x00,0x00,0x2C,0x00,0x00,0x09,0x00,

    0x2D,0x00,0x00,0x4C,0x00,0x4E,0x4F,0x00,

    0x00,0x52,0x00,0x00,0x00,0x00,0x00,0x00,

    0x00,0x4A,0x4B,0x00,0x4D,0x00,0x00,0x50,

    0x51,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

    0x00,0x41,0x42,0x00,0x44,0x00,0x00,0x47,

    0x48,0x00,0x00,0x2E,0x00,0x00,0x00,0x00,

    0x2B,0x00,0x00,0x43,0x00,0x45,0x46,0x00,

    0x00,0x49,0x00,0x00,0x00,0x00,0x00,0x7F,

    0x0A

    };

    ok thanks,

    I dont think PHP will be able to handle binary data in this way. Considering getting it to do this has taken quite a few cups of coffee, i am not really up to writing/finding the libraries to read binary! lol

    Anyhow, i am not sure sparkfun can accept the binary files…

    Okay, had a great number of people trying the software. Not sure if it was nathan doing some testing or not. But if you do have problems (ie. a file that should pass does not, or one that should not doesn’t) pls post here.

    Thanks,

    • Martyn

    I tried out some gerbers, test1, test2, …

    and some drill files, dtest1, dtest 2, etc…

    I made them a little difficult, because that’s what testing is all about, eh?

    hehe…

    I tried some large files, which failed with ‘file not found’ messages.

    I also tried sending a METRIC drill file, which failed.

    I sent drill/gerber files with missing tool/aperture definitions.

    Finally, I sent some with tools/apertures which were very small, but were also unused withing the drill/gerber files and this didn’t need to generate errors.

    Steve.

    ok cool.

    metric files are a problem ATM, as i understand it there is no set way of doing it, either METRIC or IMPERIAL at top, or some G-Codes, or just a guess!

    I have ‘seen’ files which are metric, but dont contain any ‘This is metric’ data!

    Anyhow, checking metric’s can be done, if i can parse the top names then i can quite easily just change the min-number used for the size checks :wink:

    I tried some large files, which failed with ‘file not found’ messages.

    How big were they? at the moment i think 3mb is the limit, but there is also a 30second timeout problem (inherant PHP).

    I sent drill/gerber files with missing tool/aperture definitions.

    Missing apertures? Shall i add checking for them? Anyone ever seen a file with missing apertures? (Large files can take a lot of CPU power to process, but dont take long. BUT cutting out 40 lines of code will always help!)

    Finally, I sent some with tools/apertures which were very small

    All caught? (i am worried here)

    but were also unused withing the drill/gerber files and this didn’t need to generate errors.

    Reading files to see if drills/apertures are used would be difficult as i have not yet got reading drill data working yet. Although i ‘could’ write some search algorithms to see if the tool selection comes up, hummmm.

    Okies, a lot to think about!

    Cant do much till tuesday afternoon, but i will do some upgrades then!

    Thanks

    • Martyn

    metric files are a problem ATM, as i understand it there is no set way of doing it, either METRIC or IMPERIAL at top, or some G-Codes, or just a guess!

    Yeah… You can either put INCH or METRIC in the header section, or M72 or M71 in the body section.

    Importing drill files from different sources is a problem and I don’t know what to do about it. Every CAD vendor’s package has a different, usually wrong, interpretation of what’s supposed to be in the drill file. My best idea so far is to give the customers some software they can use to check/fix problems themselves. The free gerber viewers aren’t much help if files need to be saved.

    I’ll keep thinking about it :wink:

    I’m developing some useful ideas, I reckon :slight_smile:

    Steve.

    well, if the checker works to the rs274X format then its the CAD software vendors problem!

    lol, the specs are everywhere!

    Well… It’s the drill files that are the problem, not the gerbers.

    Check out the online manual from Excellon.

    http://www.excellon.com/applicationengi … rogram.htm

    With a spec like that perhaps it’s no wonder everyone gets it wrong :wink:

    It can certainly take a long time to figure out that about 98% of Excellon format is irrelevant to drill output from a CAD package. The format is designed for controlling a CNC machine, after all, rather than for data transfer.

    Of course, it’s still the CAD vendor’s problem. But knowing that doesn’t help.

    Steve.

    Hi Steve - you’ve met Martyn. Just so you know, you are both working on PCB DRC software. Steve with a stand-alone software and Martyn with the online approach.

    I think there may be a nice junction here. Obviously, the online quick PHP check is exactly that - a quick check. I think it will be able to check and correctly diagnose many of the drill file problems and simple gerber issues, and at the rate Martyn is hacking at it, we should see this functionality soon.

    Steve is taking on the very complex gerber checking problem. SFE hopes to use his software to check incoming customer gerbers for better automation.

    To re-iterate: SFE only accepts NC Drill files in 2.3 trailing format. We must have all drill size info in the drill file itself. We must have all location data inside the file itself. Binary files are currently rejected out right.

    -Nathan

    Ok the next version will contain the following features:

  • - Elliptical Pad size checking
    • Inch / Metric allowance

    • Comment line removal in drl files

    • Improved drill tool parse (need to allow for cnc info)

    • No apperture errors


    Todo:

  • - Appertures not used not to generate errors
    • FAQ’s

    • Gui

    • Other :wink:


    Okies, me off to college in a bit. Luckily no homework for tomorrow, so i can sit down and work on this over some brittish pork pie’s + salad while watching blade trinity. Ahhh, nice.

  • thats not at college BTW, when i get home :smiley: :lol:

    okies,

    steve can u check the no apertures file.

    also oval apertures are now checked.

    metric / imperial is not yet in as i have had to restore a webserver this afternoon from a HD with no automated backup/restore files present.

    comments should not trouble the drill tool files, drill tool parseing has not been improved. will so soon tho.

    Hi Martyn,

    So far so good… A gerber file with no apertures at all failed as it was supposed to. It would be nice if a file with one or two missing apertures also failed :wink:

    What’s the issue with oval apertures?

    Steve.

    i had not put them in before :wink:

    just had not got around to it! the widths (overall and wall [for ones with centres cut out]) are checked and the sizes of inside hole are checked.

    Missing apertures are on the todo list :wink:

    You can probably ignore the centre holes in apertures. I’ve viewed thousands of gerber files and never seen anyone use that feature. The only time I’ve seen it used was when I created some test data myself to test a gerber rasteriser program.

    Steve.[/img]