Drill file problems

We are getting plagued with faulty customer PCB submissions. I’d like to start discussions on what to avoid and how to fix problems.

Namely, problems with the DRD generation of the drill file through eagle. Anyone know why Eagle would output a DRD file without the drill information?

-Nathan

Bad file:

%
T01
X149Y212
X543Y506
X705Y506
X705Y369
X1330Y494
T02
X1243Y706
X1243Y806
X1418Y806
X1418Y706
X1593Y706

Good file:

%
M48
M72
T01C0.0320
T02C0.0360
T03C0.0236
%
T01
X208Y147
X413Y247
X603Y247

Hey Sparky…

I did some testing and found that the drill data will NOT be included in the .drd file if the user runs the “drillcfg.ulp” on the board to generate an excellon rack file then selects “EXCELLON_RACK” as the output device and then selects the rack file (*.drl) generated by the ULP.

In the CAM processor drill data tab, select “EXCELLON” as the output device, NOT “EXCELLON_RACK” and ensure that there is NO rack file listed in the Rack field…the field should be clear. Then process the job and the drill data will be included in the .drd file.

Ahaaa :!: . So users must be running their own CAM files. Thank you jrcfg!!!

For all who run into this problem: Have you used the SFE_Special.cam and tutorial for Eagle?

Please follow the Eagle tutorial: http://www.sparkfun.com/tutorial/PCB/ea … torial.htm. It will make things much easier on everyone.

-Nathan

I tried running SFE-Special.cam and kept getting an error “No Rack File Specified”. Then I ran drillcfg.ulp before the CAM job (which is what I normally do for other board houses) and a subequent run of the CAM file generated all the output files (except the drill data had only tool names and not sizes).

My solution (I hope) was to put in the tool sizes manually…not too painful with only a couple of drills. Using http://www.excellon.com/applicationengi … rogram.htm

as a reference I added a header section in front of the drill position data as follows:

%

M48

M72

T01C0.020

T02C0.024

%

T01

X123Y456

.

.

.

T02

X321Y432

According to the reference at excellon.com, the M48 tells the CNC machine that this section is general header info about the job. The M72 sets the measurement units to inches (M71 would be for metric). Then the C# (not the language) is for setting the tool diameter for each tool.

So the simple example above uses two drills named T01 and T02 and their diameters in inches are 0.020 and 0.024 respectively.

I’m about to send my files to SparkFun again…hopefully this will be a not too painful workaround for other folks.

Kind regards,

Ryan.

I used the SFE-Special.cam to generate my board files and only got that specific error

… error “No Rack File Specified”

if I used "EXCELLON_RACK" as the output device *without* selecting the ulp generated .drl in the "RACK" field. When I did select the .drl file, I no longer received that message but the .drd file that was produced did not have drill info. The drill info was in the .drl file, however, and one could cut and paste this into the .drd.

When I chose “EXCELLON” and cleared the “RACK” field, I received no errors and the drill info was where it is supposed to be in the .drd file.

Go figure!?!

I am using Eagle V4.11r2…perhaps there is a problem with the latest version (V13r1 I believe).

:wink:

Hi jrcfg,

Just be careful, I’m not sure that the .drl info is in an appropriate format to simply cut and paste. I used the .drl file to get the drill sizes, but I think you need to have the M48 and M72 headers along with the tool sizes specified with the C# notation.

Check out the link from my previous post.

Good luck!

Ryan

Good point, Ryan.

I went back and looked at the .drl files and you are correct…they do not have the required headers as specified by your link.

Ignore my cut/paste unless you are familiar with Excellon programming…check out rsherry’s link to Excellon.com!

John

:oops:

I’ve had the same problem as above with the SFE-Special.cam, it won’t work without running the drlcfg.ULP.

I use eagle all the time for other board houses and have never run into this problem. Perhaps the problem is in the software that Sparkfun is using to read the files?? This is the first and only time I’ve heard of this problem out of 4 different board houses that I’ve used.

Just for notation, I use eagle version 4.09r2 on Windows 98se

-Dan Gates

We do a ‘Quick Import’ using Protel CAM software. I believe this scans all the files in the directory pulling the needed extensions. Works great for about 60% of the customers. Once we get this drill thing figured out, life will be much better.

-Nathan

I opened the excellon cam file from my Eagle directory in a text editor and found this statement:

“This CAM job can be used to generate data for drilling machines in Ecxellon format. Run drillcfg.ulp in the Layout Editor window to generate a rack file first, then start the CAM Processor and load this job. The board house needs two files: *.drl - rack file *.drd - drill data”

I don’t think there is a way to produce a single, all inclusive, drill file from Eagle.

-Dan

I don’t think there is a way to produce a single, all inclusive, drill file from Eagle.

That’s funny, 'cause the SparkFun SFE-Special cam processor did just that when I converted to Gerber for my board.

Explain… what do you mean by converted to gerber? Do you mean you changed the SFE program to processed your job using gerber rather than gerber274x? I’m not sure I understand what you mean by converted to gerber.

Also, what version of Eagle are you using? I’m wondering if that might have something to do with why it works for some and not for others.

I own the commercial version of Eagle 4.09 and am not ready to spend more for the upgrade just yet. However, if the new version solves the problem then for those using the free version it would be an easy fix.

-Dan

Sorry about the confusion Dan, when I converted my Eagle files to Gerber_274X…

What I did was this:

open the SFE-Special.cam processor

opened my Eagle .brd file

checked all of the correct layers were displayed in each section (top, pad, via layers for component side, etc)

checked Gerber_RS274X was the output device for all except drill data which was Excellon (not Excellon_Rack)

then hit the “Process Job” button.

I did not run drillcfg.ulp first. The .drd file included the drill information with the proper headers.

I am using Eagle V4.11.r2 lite with WinXP SP2 Home.

As I said in a previous post, the only way I could get the SFE_Special cam processor not to output a .drd file with all of the drill info was to run the drillcfg.ulp then select Excellon_Rack as the drill output device. and select the .drl file created by the .ulp in the “Rack” field. This produced a .drd without drill info.

Is everyone who is having problems using the SFE cam processor or one of the other processors that come with Eagle?

John

Ya, I tried it just like you described and it doesn’t work. It tells me that the DRL file is missing (the one that’s generated by the drillcnfg.ulp).

The option for excellon is defualt “Excellon” , it would have to be manually changed for Exellon_Rack which I’ve never done.

This is all using the SFE_Special.cam program as suggested on the Spark Fun site of course. I believe the problem is in the versions, I have a purchased older version and am running on a Win98 machine. I don’t plan to pay for the upgrade any time soon.

-Dan

OK Dan…the difference is in the versions. I checked the Cadsoft website for version changes and found the following changes from V10 on up…

1: The EXCELLON device in the CAM Processor now writes the actual drill sizes into the output file, so you no longer need to send the “drill rack” file to the board manufacturer. If you don’t like this, you can disable this feature by deleting or commenting out the line

DrillSize = “%sC%0.4f\n” ; (Tool code, tool size)

in the eagle.def file.

2: The EXCELLON device in the CAM Processor now automatically generates the drill size definitions according to the actual values used in the board, so you no longer need a drill rack file. If you don’t like this feature, you can disable it by deleting or commenting out the line

AutoDrill = “T%02d” ; (Tool number)

in the eagle.def file. Existing CAM jobs that have a drill rack file defined will continue to use that file.

3: The device EXCELLON_RACK has been introduced to still have the old functionality with user supplied rack file available.

4: The new drill station parameter BeginData can be used to define a string that is output before the actual drill data (the EXCELLON device now outputs a ‘%’ here).

5: Added M48 and M72 to the EXCELLON Init string.

So now we know the problem…How you perform the processing of your drill file depends on what version of Eagle you have. I hope this helps all who are following this thread.

John

Excellent - thanks for your help John!

-Nathan

Following what some customers have recommended, these are the results we’ve found.

We cannot edit or combine files for you.

You should really try to figure out how to get your specific software package to output combined excellon format. While I really do not recommend you alter the drill file by hand, for some people and their PCB software, this might be the only solution until a better one is found.

This customer uses TraxMaker/CircuitMaker. We used Notepad for the editing.

Before (project_name.txt):

M48
T01F00S00
T02F00S00
T03F00S00
%
T01
X0147Y0195
Y0185
Y0155

Before (project_name.tol):

----------------------------------
MicroCode Engineering, Inc. 
NcDrill Tool Loading Specification
PCB File : GERBER$.PCB
Date     : 2-1-2005
Time     : 22:0:20
----------------------------------
T01  37
T02 125
T03  50

Combined (project_name.txt):

% 
M48 
M72 
T01C0.037 
T02C0.125 
T03C0.050
%
T01
X0147Y0195
Y0185
Y0155

The original *.TOL file can be deleted - we cannot use it.

Notice the insertion of the C and the leading and padding 0s.

We do a quick visual check and the import bot will display any errors during the PCB import - of course we will let you know if any occur. But if you get the tool numbers mixed up, your aperatures will be all sorts of wrong.

Please! Do look into formatting the outfile correctly from your software (not by hand) - and let us know what you find.

-Nathan

Just as an update, I downloaded the latest Eagle (V13 r1) and it created all the correct files without error. I checked the drill file (.drd) and it had the correct formatting.

** I haven’t submitted it to SFE for actual manufacture ** but it at least appeared to go smoothly. Previously I was using v11 and having problems–specifically the “no rack file specified”.

I’m using XP Professional with SP1.

Very soon I’ll submit this for creation and see what happens.

-Jeff

I am trying to follow the instructions on how to export from Eagle and to check things and Double check things before submitting an order and a couple of things are failing.

Eagle running the special scripts from the howto page produces the desired output files but when I try to view everythin in Viewmate as suggested before sending in my order 2 things fail horribly.

First my drillfile looks good but when I look at it in Viewmate it’s scaled up by 900% or more. My other layers are all squished down to a tiny square while the drill points all look like they are right .

Secondly one of the files, the PLS file will not open in viewmate at all. when I try to force it to open it complains that there is no board dimensions in the file.

does anyone have any clues on how to fix this? is there updated CAM scripts to correct these issues?

I am running the latest Eaglecad freeware.

Ok I have been able to dig further. the one file that is causing problems, the bottom silk screen was freaking out because I had nothing on it, I added one word to satisfy it and that error went away. Moral of the story, be SURE to have something on every layer or the system barfs when exporting.

Further digging shows that my board that is 1.6 by 1 inch the drill file thinks it’s 16 by 10 inches.

WHY is the drillfile scaled by 10?? or is there a bug in viewmate when importing the drillfile and it’s simply leading me to believe it is wrong?

Ok after messing with several other Gerber viewers I have discovered that it was simply a “newbie” to viewmate error. hopefully this post will help others fighting with the files and trying to make 100% sure that they are submitting 100% right files .

when you import the drd file to view it make SURE you tell it there there are 3 places to the right of the decimal point and then click on the reload.

Now to figure out how it is missing the 8mil test in the php checking files when the closest I have anything is 10 mils.