SparkFun Forums 

Where electronics enthusiasts find answers.

Questions about the BatchPCB service

Moderator: robacarp

User avatar
By sparky
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 : 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.

By jrcfg
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!

User avatar
By sparky
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:

By pittuck

Its me :D

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
By pittuck
ok, well a couple of bad files have come through:


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?


- Martyn
By Steve

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.


Actually.... here's the conversion table from the code.

/* Convert EIA RS-244 text to ASCII (c) Steve Adam 2002
char e2a[MAXEIA+1] = {
By pittuck
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...
By pittuck
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.


- Martyn
By Steve
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?


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.

By pittuck
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 ;)
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!


- Martyn
By Steve
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 ;)
I'm developing some useful ideas, I reckon :)

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

lol, the specs are everywhere!
By Steve
Well... It's the drill files that are the problem, not the gerbers.

Check out the online manual from Excellon. ... rogram.htm

With a spec like that perhaps it's no wonder everyone gets it wrong ;)
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.

User avatar
By sparky
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.

By pittuck
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
  • - Appertures not used not to generate errors
    - FAQ's
    - Gui
    - Other ;)
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.