Verifying gerbers from eagle and seeed's CAM job

I’m working on a PCB that I plan to use Seeedstudio’s Fusion service to manufacture. I’ve designed the PCB in Eagle. Initially, I used Sparkfun’s CAM job to generate gerbers, which I viewed with Viewplot. They looked fine.

Now, I have downloaded Seeedstudio’s CAM job, generated a new set of gerbers, and it appears that the drill file doesn’t line up, but I might just be misconfiguring the viewer. I don’t want to send these gerbers off to Seeedstudio without some confirmation, though.

Can someone help? Maybe someone who has used Seeed’s CAM successfully?

Here’s a screenshot of part of the board from Eagle:

Here’s a screenshot of the top copper and drill layer in Viewplot, when using the Seeed CAM job:

Here’s the top copper and drill layer in Viewplot, when using the Sparkfun CAM job:

I configured drill file as 2:4 number format in the viewer, for both versions, since that seemed to give the most accurate results. But maybe that’s the part that’s wrong? And the file is actually valid? I can’t tell if the file is wrong, or if I’m just viewing it wrong. I’m about to break down and just look at the raw text in the files to see if I can figure it out that way.

If you can’t tell, I’m pretty new to this whole art of navigating gerber files, and it’s frustrating. Everyone seems to have their own version of the “standard.” The file names generated by Seeed’s CAM and Sparkfun’s CAM aren’t even the same for a given layer. Seeed calls the top copper “.tco” and SF calls it “.GTL”. And clearly there’s something “different” about how they generate the drill locations, and I’m probably making a foolish mistake in how I’m looking at them, or something.

It looks like the Sparkfun file is showing the hole centered at the point. The SEEED file looks like it is showing the hole with the upper, left corner of the square encompassing the hole located at the point.

If it was a matter of the actual point value in the file, I would expect the points to not demonstrate such a consistent shift.

I think you’re right. Here’s a section from the .txt file the Sparkfun CAM spit out:

T01
X7101Y3351
X7601Y3351
X8101Y3351
X8601Y3351
X9101Y3351
X9601Y3351
X7101Y12851
X6601Y12851
X6601Y13351
X6601Y13851
X6101Y13851
X6101Y13351
X5601Y13351
X5601Y13851
X5101Y13851
X5101Y13351
X6101Y12851
X3601Y17101
X3101Y18601
X11351Y14851
X16551Y13951

Here’s the same section from the .drd file the Seeed CAM spit out:

T01
X9500Y3250
X9000Y3250
X8500Y3250
X8000Y3250
X7500Y3250
X7000Y3250
X6500Y13250
X7000Y12750
X6500Y12750
X6000Y12750
X5000Y13250
X5500Y13250
X6000Y13250
X6500Y13750
X6000Y13750
X5500Y13750
X5000Y13750
X11250Y14750
X3000Y18500
X3500Y17000
X16450Y13850

Is one of these “more right?” Is there a config file somewhere that should specify if the hole position is centers or upper-right corners? Am I missing something?

In the end, all I want is some level of assurance that when I send these gerbers to seeedstudio, I’ll get the correct hole placement. Maybe I’m worrying too much, since I am using their CAM to generate them after all. I’d just like to know what’s going on here.

I actually expected to see the same values in both files. It looks like a matter of how the value is being interpreted. I don’t know how to help you.

Did anyone have anymore input on why the drill holes do not line up? I’m having the same problem when using the seeedstudio cam job.

I was interacting with Seeedstduio lately and I sent them my gerber files (generated with SFE’s CAM file). They didn’t take it and want my Eagle file. Interesting how their CAM file is doing to both your files. I’ll try it to see my luck.

This appears to be because the Seeedstudio CAM file has “positive coordinates” checked for all the steps EXCEPT the drill layer. Whether this is a problem or not depends on what level of manual or automatic adjustments they make before their machines start doing their thing.

This seems to result in an offset between the drills and the gerber layers even if there are no actual “things” with negative coordinates in the board; apparently “positive coordinates” renormalizes everything so that “something” shows up at 0,0…

Thanks for trying it. It is very strange. Sparkfun’s that lines up right is wrong, and seeedstudio’s that doesn’t line up is right. Figure that one out.

BTW, in case you don’t know, seeedstudio’s cam file is still on their site on the product page. It’s just inside the design rule check zip file on that page.

I see what you mean. I wonder if they have a pcb fab house specific program they check the gerbers with. I don’t see any options in viewplot that correct the issue.

Has anyone used the seeedstudio cam job, submitted files, and received proper boards?

I imagine that the drill machine has a setting to “zero” its location on some reference spot. It’s probably even necessary to account for mechanical tolerances, panelization, and so on, anyway. And that probably explains why you frequently see holes slightly offset from the center of their pads…

BTW, you’re comparatively lucky. I tend to play a bit loose with the origin location in my boards, and the test board I tried the the seeed CAM job on had the holes MUCH further offset than your example…

I’ve run about 450 PCBs (maybe 15 designs) through Seeedstudio and used my own CAM job that’s probably pretty similar to the Sparkfun CAM job. I’ve always checked the Gerbers in Viewmate and the drill holes align perfectly, and I’ve always sent those same files to Seeedstudio and had no problems with any PCBs. But I realize that I might be OCD and align everything to 0,0 when the design is finished.

Well that’s the strange thing, the bottom left of the board outline is dead center. However, I did notice that the outline is not centered when viewing in viewplot.

After a bit of research it seems it is mostly accepted to be what you said westfw. Seems it is likely that “this” board house’s software requires all coordinates to be + and the drill file 0,0 is adjusted to the outline corner of the board in a later process.

Some people have reported that unchecking positive coordinates results in everything being at 0,0. Either way, a few people have posted that they did in fact submit their gerbers like this and had no issues.

the bottom left of the board outline is dead center.

well, clearly that will end up causing the silkscreen of your connectors to end up in negative territory, since it goes over the edge of the board outline. That explains horizontal shifting (note that the gerber viewer lines up the connector silkscreen with y=0 pretty exactly.)

I’m not sure what’s causing the vertical offset. It’s not obvious what layers EAGLE looks at when trying to figure out how to make sure that nothing has a negative coordinate. All the layers mentioned in the CAM job? All the layers that are TYPICAL in a CAM job? What about the edges of your polygons (which I normally put outside of my board outline)?