Topics

Track and pads joined


ct1fgw
 

Hello,

I am stuck, again.

I am doing a dense board and have to pass tracks between IC pads (a thing I don’t like at all). I made the track quite thin, 0.2mm, where it goes close to the pads and get a clearance of between 0.3 and 0.4mm. I use a 0.2mm tool, but they join, both in the viewer and the board. I can make the pads smaller, but some pads, the round ones, become too small.

I am puzzled, if the clearance is larger than the tool, why doesn’t it work?

 

I am using Eagle 6.3.0 and pcb-gcode 3.6.2.4, isolation minimum: 0.1mm, maximum: 0.4mm, step: 0.2mm, tool: 0.2mm, code style: TurboCNC.

 

Talking about Turbo CNC, maybe Art can help me here. For a double sided board, I use one pin for reference at 0.0 and flip the board for the second side. My vacuum table is small and if the board is large, I have to move the reference pin. If I jog the machine to the new reference and zero the X axis, everything looks good, but on starting, the machine takes the old reference and forgets the new one. The way I go around this is restarting the program, but then I also lose the other coordinates (y and Z). Is there a more elegant way of doing this?

 

Best regards

João



Z P
 

When the solder side data is presented for milling is it flipped about a certain X or Y value?
Can You nominate that value?



On Monday, 2 June 2014 3:00 AM, "ct1fgw@... [pcb-gcode]" wrote:


 
Hello,
I am stuck, again.
I am doing a dense board and have to pass tracks between IC pads (a thing I don’t like at all). I made the track quite thin, 0.2mm, where it goes close to the pads and get a clearance of between 0.3 and 0.4mm. I use a 0.2mm tool, but they join, both in the viewer and the board. I can make the pads smaller, but some pads, the round ones, become too small.
I am puzzled, if the clearance is larger than the tool, why doesn’t it work?
 
I am using Eagle 6.3.0 and pcb-gcode 3.6.2.4, isolation minimum: 0.1mm, maximum: 0.4mm, step: 0.2mm, tool: 0.2mm, code style: TurboCNC.
 
Talking about Turbo CNC, maybe Art can help me here. For a double sided board, I use one pin for reference at 0.0 and flip the board for the second side. My vacuum table is small and if the board is large, I have to move the reference pin. If I jog the machine to the new reference and zero the X axis, everything looks good, but on starting, the machine takes the old reference and forgets the new one. The way I go around this is restarting the program, but then I also lose the other coordinates (y and Z). Is there a more elegant way of doing this?
 
Best regards
João




Art Eckstein
 

João
Just noticed your ref to me, sorry for the late reply.
I use different fixture offsets for the board
sides. For the bottom of the board, I use G55
with the origin (0,0) at the lower right corner
of the fixture and for the top of the board, I
use G54 with the origin at the lower left corner of the Fixture.
This way, the fixture pocket is approximately the
size of the board stock and I set the origins
when I milled the pocket out to provide the
necessary fences and then saved these offsets
for future usage. The fixture is permanently
mounted on the router and I have homing
switches. Standard operating procedure is to
power up the machine, home it, and then load the
offset table. Now the machine knows the offsets
for the fixture and where my touch off plate is (referenced in G53).

I have customized my "user-gcode.h" to
automatically handle the necessary inclusion of
G54, G55 for the top or bottom files and the
tool change routine (which only comes into play
in drilling and milling) to do a subroutine to
G53 for tool length measurement on the touch pad.
I don't worry about a tool change for etching as
I am using autoleveling and I found out the hard
way that tool change routines and autolevel don't
get along. This part is a work in progress as I
am constantly changing the way I do things. YMMV:})

HTH

Art
Country Bubba

At 01:00 PM 6/1/2014, you wrote:


Hello,

I am stuck, again.

I am doing a dense board and have to pass tracks between IC pads (a thing I don’t like at all).
I made the track quite thin, 0.2mm, where it
goes close to the pads and get a clearance of
between 0.3 and 0.4mm. I use a 0.2mm tool, but
they join, both in the viewer and the board. I
can make the pads smaller, but some pads, the round ones, become too small.

I am puzzled, if the clearance is larger than the tool, why doesn’t it work?



I am using Eagle 6.3.0 and pcb-gcode 3.6.2.4,
isolation minimum: 0.1mm, maximum: 0.4mm, step:
0.2mm, tool: 0.2mm, code style: TurboCNC.



Talking about Turbo CNC, maybe Art can help me
here. For a double sided board, I use one pin
for reference at 0.0 and flip the board for the
second side. My vacuum table is small and if the
board is large, I have to move the reference
pin. If I jog the machine to the new reference
and zero the X axis, everything looks good, but
on starting, the machine takes the old reference
and forgets the new one. The way I go around
this is restarting the program, but then I also
lose the other coordinates (y and Z). Is there a
more elegant way of doing this?



Best regards

João


John Johnson <john6060842@...>
 

João,

With a tool size of 0.2mm, and a min isolation of 0.1mm, the minimum between tracks and pads has to be > 0.6mm. This is based on the way Eagle creates the isolation polygon. The polygon is created 0.2mm+0.1mm [1] away from everything, so if two things are side by side, in order for there to be any polygon left, it has to be greater than 0.2mm+0.1mm.
The solution is to lower min isolation, tell pcb-gcode the tool is smaller, use restring to make the pads smaller, make the track narrower, or use a jumper wire :-)

[1] Could be (0.2mm÷2)+0.1mm, don't recall at the moment.

Regards,
JJ


On Sun, Jun 1, 2014 at 1:00 PM, ct1fgw@... [pcb-gcode] <pcb-gcode@...> wrote:
 

Hello,

I am stuck, again.

I am doing a dense board and have to pass tracks between IC pads (a thing I don’t like at all). I made the track quite thin, 0.2mm, where it goes close to the pads and get a clearance of between 0.3 and 0.4mm. I use a 0.2mm tool, but they join, both in the viewer and the board. I can make the pads smaller, but some pads, the round ones, become too small.

I am puzzled, if the clearance is larger than the tool, why doesn’t it work?

 

I am using Eagle 6.3.0 and pcb-gcode 3.6.2.4, isolation minimum: 0.1mm, maximum: 0.4mm, step: 0.2mm, tool: 0.2mm, code style: TurboCNC.

 

Talking about Turbo CNC, maybe Art can help me here. For a double sided board, I use one pin for reference at 0.0 and flip the board for the second side. My vacuum table is small and if the board is large, I have to move the reference pin. If I jog the machine to the new reference and zero the X axis, everything looks good, but on starting, the machine takes the old reference and forgets the new one. The way I go around this is restarting the program, but then I also lose the other coordinates (y and Z). Is there a more elegant way of doing this?

 

Best regards

João





--
Sent from a MacBook Pro


gamsga
 

Hi, 
i do a lot of double sided board even this weekend 6 Boards. 
my process is as follows. I use an vacuum table which has 6mm holes which are 10mm in square 
means if you do at x 7 y7 and 3mm drill and then at lets say x47 and y7 the 2nd drill you are fine 
i made 2 little pins which are 6mm drums which fit in the vacuum table (snug fit) and they have an 3mm 1mm high pin in the middle 
Preparation : 
- make sure table is flat (i milled it down and use Autolevveler) 
- i zero the z axis electrically 
- find exact (i mean exact) x0 y0 of the pcb from top side when using the steel pins as reverence i used an exact steel part and found mine electrically 

Start : 
1) Start with bottom means x0 y0 is far right because we use flipped
2) Find Z 0 
3) Start Bottom Etch (autolevveler in my case) 
4) Start Bottom Drill 
5) Clean Board 
6) Use the 2 Pins 
7) put board on the pins (use vacuum to get it flat as well ) 
8) Start Top Etch

looks like 
thomas 


ct1fgw
 

Hi Art,

 

First let me thank all of you guys that answered my plea for help. What a fantastic bunch of people. Sorry for the long delay but I have been out and only now have a chance to reply.

 

Art, I understand how you hold you boards but I have a question, ” do you always use a standard board size?” (to fit the carved out fixture).

 

You are losing me when you talk about G53, G54, G55. I thought that was the machine language, I only speak a higher level language.

Now seriously, I never tried to look at the G-codes. Too little time, too many irons in the fire... Even though I am sort of retired, I now and then still have calls to do odd jobs. To top it all, as a retired person, I thought I would get a lazy job and so, I got a farm. Let the nature grow things while you watch, drinking coffee or a beer, that sort of thing. Well, I was not all that wrong as nature grows all sorts of things whether you watch or not.

Then, I build all sorts of things, I am a HAM, and I embark in stupid things such as entire days on the roof of the house, installing photovoltaic panels as happened last week. Luckily I am only 72, but one of these days I am going to get old and this sort of thing is going to catch up with me.

 

It seems a very good idea to program the offset you get from your fixture, in the G-code. That, I think, would solve some of my problems. I never looked at the “user-gcode.h”, an example would be nice. You see, I thought I had it nailed. I made quite a few boards without a problem, then a friend asked me to do this board. It is very compact, double sided, with traces between IC pads and that’s when the …. hit the fan.

 

Now to JJ, what about including in your next release an option for the offset, so that the G-code is already generated with it? I don’t mind paying twice what I am paying at the moment for the software, as long as you acknowledge my contribution to the development and advancement of the program.

 

Best regards

João  


ct1fgw
 

Hi Thomas,

 

Interesting, I am trying the same sort of thing. I too have a vacuum table with 6mm holes 10mm apart. I also made a pin that fits the holes of the table and ends in a 2mm head for the board, but I only use one hole. I thought it would be tricky to make the two holes at exactly the right space, so I built an edge at one side of the vacuum table.

I drill a 2mm hole at one corner of the board, 10mm from one side. If the board is small, I fit the pin in the middle row of the table (my X0,Y0) and butt the board against the edge, do one side and Flip the board for the second side (same reference X0,Y0).

For larger boards I am making the 0,0 at one end of the table and move the 0,0 to the other end of the table for the second side of the board. Here would be nice if the G-code already came with the offset (difference of the two reference positions).

 

I would like to know more details of how do you set the reference point (0,0) as it is the critical part of a two sided board.

First I tried to use the cutting tool to align with the centre of the pin but because the tool is a V cutter, not symmetrical, it is very difficult. Now I made a 1mm hole in the centre of the pin and use a drill in the spindle, jogging the machine until the drill centers with 1mm hole of the pin. Not a very easy thing for my tired eyes. The Z axis I set electrically. You say you find the 0,0 electrically, can you give more details, please?

 

Best regards

João


ct1fgw
 

Hi JJ,

 

Thank you for your reply. I see I have a problem there. You see, this board is not my design; I already changed a lot of things as it is. I even thought I would let the pads and traces as they are and because they are just a few, I would separate them by hand at the end.

 

Entering a smaller size tool is going to make the traces and pads smaller, I think. The only option I see is making the pads smaller. I like to have the pads as large as possible, particularly for prototypes, as you may have to solder and de-solder a couple of times.

 

Best regards,

João


mlmcnc
 

Hi João,
You give most of the settings you use except the pad diameter you are trying to achieve and your DRC settings (very important). A quick glance at your values and I see that you have Isolation Min at 0.1 mm. This may be part of your problem. See below.

How to define the offset settings in Eagle / PCB-Gcode

In order to successfully cut a PCB, a few basic calculations are required.

Assuming the goal is to be able to at least be able to have a track pass through two pads at the standard 0.1” pitch, the considerations are as follows (see diagram) :-

 

Pad_Diameter = 2 x (Hole_Radius + Restring)


Pad_Spacing = Pad_Diameter + (2 x Clearance) + Track_Width


Track_Width – Each person must decide the minimum width of the track based upon their machines abilities. For me, I decided upon 16 mil. Set this in the Minimum Width box of the Eagle DRC Sizes tab


Clearance – This must obviously be greater than the tool kerf. Notice I say kerf and not diameter. Only on a machine with no vibration and zero runout would these two be equal. It is therefore essential that this value should be obtained for your own machine. To this end I found a useful web page by Poul-Henning Kamp (http://phk.freebsd.dk/CncPcb/calibrate.html) which gives the code to generate the eagle data to create a test pattern which makes it easier to define the configuration options.


I use a 0.2mm 30 degree V cutter and using the method above, the kerf on my machine is 0.32 mm (12.6 mil). I therefore set the clearance to 13 mil. I set all boxes to this value in the Eagle DRC Clearance tab.


Substituting these values in the formula above


Pad_Diameter = 100 – (2 x 13) -16 = 58 mil   This is therefore the maximum diameter the pad can be.


Now most components can be inserted into a 0.8 mm (31.5 mil) hole. Therefore:-

Restring = (58 – 31.5) / 2 = 13.25.    Set the minimum value in the top and bottom Pad in the Eagle DRC Restring tab to 13 mil


We are not quite there yet. We still have the relevant PCB-Gcode values to set.


In the PCB-Gcode/ Machine tab/Tool Dia box, set this to the KERF calculated above. For me this was 0.32mm.


Now a few words on PCB-Gcode Isolation.


Isolation Minimum

This is the minimum distance from the tool circumference to the copper edge. Therefore, if the track width in Eagle is 16 mil and the Isolation Min is 4 mil, then the track width will be 4+16+4=24 mil. I can see very little use for this. If I wanted a 24mil track I would have said so in Eagle. I set this to zero.


Isolation Maximum

This is supposed to be the maximum distance from the tool circumference to the copper edge. This is only true if Min is 0, otherwise the maximum may be Isolation Maximum + Isolation Minimum (depending on the value of Step Size).

Some people like to clear more copper. I prefer to minimize the cut time and tool wear and so I do not use this setting and select “Single Pass”


Step size

This is the amount the tool moves away from the copper edge at each step.


The formula PCB-Gcode actually uses to determine the number of passes is :-

ROUNDUP((Max-Min) / Step) + 1

 


Art Eckstein
 

João 
Hey, I understand the delays.  I also am in the same age bracket and some days more things get done and some days more things don't get done:}) As for growing stuff, I gave that one up as not only will it grow, but before I can get anything useful out of it, the deer, squirrels, armadillos, rabbits, etc get them first.   Don't like getting on the roof either!

Back to pcbs. No, the G5x offsets are NOT machine language, but just that. Offsets from a known point. I have attached a pdf file that I did sometime back that may help explain it. If I have explained it properly, you should be able to hopefully make sense of what I am saying.  If it does, great and if not, we will try again. Just let me know.

As to a standard sized board, yes right now I have a couple of different sizes that I use and if I need to make a new chuck, it is only a matter of a few minutes to make one up.  This is MY preferred way to do it.  There are many others out there that do it differently and nobody is wrong. It is just a matter of personal preference on how you go about it.

I have also included my existing user-gcode.h and realize it is a work in progress.  I really ought to go back and clean it up, but it is what it is. You can open this in any text editor with notepad++ being my favorite. By the way, this will automatically put the G5x offset that is necessary into the appropriate files. Again for reference, I use G53 (machine corrdinates) as that has the touch pad for doing tool length offsets after a tool change, G54 is used for the top side of the board and G55 is used for the bottom side of the board. If you study it long enough, you will see that Tool 0 in G53 has Z0 at the top of the Z travel while all other tools have Z at the top of either the touch pad or stock depending on which offset is being used.  This way, to do a tool change, I issue the following commands:

G53              ;change to machine coordinates
T0               ; Change to Tool 0
G0 Z-.5 ; Move the tool to near the top of the Z movement
G0 X.5 Y1       ; Go to my tool change location which happens to be directly over my touch pad
M6Tx             ; Do the tool change to my next tool and then jog down to just above the touch pad
G31 Z-4 F1      ; Do a probe to the touch pad
G92 Z0  ; Set the tool length offset so it knows where Zero is
G0 Z.0           ; Move the tool above the pad
G5x              ; Change to the appropriate offset for the next action be it 54 for a top or 55 for a bottom
........                 ; Just continue

Now, I use Turbocnc so the above commands for that. Different controllers may be different!  YMMV

HTH

Art
Country Bubba







At 01:57 PM 6/3/2014, you wrote:


Hi Art,

 

First let me thank all of you guys that answered my plea for help. What a fantastic bunch of people. Sorry for the long delay but I have been out and only now have a chance to reply.

 

Art, I understand how you hold you boards but I have a question, � do you always use a standard board size?� (to fit the carved out fixture).

 

You are losing me when you talk about G53, G54, G55. I thought that was the machine language, I only speak a higher level language.

Now seriously, I never tried to look at the G-codes. Too little time, too many irons in the fire... Even though I am sort of retired, I now and then still have calls to do odd jobs. To top it all, as a retired person, I thought I would get a lazy job and so, I got a farm. Let the nature grow things while you watch, drinking coffee or a , that sort of thing. Well, I was not all that wrong as nature grows all sorts of things whether you watch or not.

Then, I build all sorts of things, I am a HAM, and I embark in stupid things such as entire days on the roof of the house, installing photovoltaic panels as happened last week. Luckily I am only 72, but one of these days I am going to get old and this sort of thing is going to catch up with me.

 

It seems a very good idea to program the offset you get from your fixture, in the G-code. That, I think, would solve some of my problems. I never looked at the “user-gcode.hâ€�, an example would be nice. You see, I thought I had it nailed. I made quite a few boards without a problem, then a friend asked me to do this board. It is very compact, double sided, with traces between IC pads and that’s when the …. hit the fan.

 

Now to JJ, what about including in your next release an option for the offset, so that the G-code is already generated with it? I don’t mind paying twice what I am paying at the moment for the software, as long as you acknowledge my contribution to the development and advancement of the program.

 

Best regards

João 


John Johnson <john6060842@...>
 

Yes, there are sometimes trade offs between machinability and solderability.

X and Y Offsets are coming in a future release. I put them in for my own use a couple of weeks ago.

Regards,
JJ


On Tue, Jun 3, 2014 at 2:10 PM, ct1fgw@... [pcb-gcode] <pcb-gcode@...> wrote:
 

Hi JJ,

 

Thank you for your reply. I see I have a problem there. You see, this board is not my design; I already changed a lot of things as it is. I even thought I would let the pads and traces as they are and because they are just a few, I would separate them by hand at the end.

 

Entering a smaller size tool is going to make the traces and pads smaller, I think. The only option I see is making the pads smaller. I like to have the pads as large as possible, particularly for prototypes, as you may have to solder and de-solder a couple of times.

 

Best regards,

João




--
Sent from a MacBook Pro


gamsga
 

Hi, 
ok 
i played around with several of that methods also with 1 pin i say it is worth the effort to have 2 precise pins 
because with 1 pin i always had some misses in drills and traces. 

so my setup looks like (the pictures where for my ATC vendor where i had problems) 
so and i skipped the black layer to avoid drilling in the table not necessary and the problems you get is not worth the effort. 
so 
you see my act rack and the switch for 0 ing the tools. 
In ,y procedure i do as follows 

when i get a new engraving tool (i will from now on stay with gis ) 
make it tool 1 then i have a script which takes each tool and does the measuring so till next tool break i don't need to deal with length 

procedure to find 0,0 corner i use (whatever it is in english in german it is parallel interlace ) http://www.top-maschinen.de/media/parallelunterlagen-812860.jpg

 

 from my milling machine. 
i then put in an 6mm hardened steel post and touch that electrically using the G38.2 code. 
i because table is made of "plastic" i have one crocodile clamp on the copper and one at the "tool" in that case 6mm. 
then i touch the "parallelunterlage" in x subtract 3mm and have precise x0 same in y 
now in my drawing i use x7 y7 a 3mm drill hole in the board. and then (depends of the x distance of the board)  x147  y7 for instance

i normally combine bot etch and drill code 

procedure for etching 
put in 160x100mm pcb on the steel post 
(i already know where x0,y0 is ) 
no i do an G0 X160 y0  and Zero X axis. (i flipped the board as my pcb-gcode did 
then i hit the vacuum (do my magic acts and words ) 
use autolevveler and run etch and drill. 

i don't have an 3mm drill in the rack so i have to extend the 2 holes to 3mm 
flipping 
now i deburr the board 
i put in the pins on the exact locations x7y7 and 2nd in x147 y147 (whatever) 
now the board is mounted 
vacuum on 
and etch top 

finnished. 

i do have an "Calibration" board with 2 pin holes and 1 trace & drill on top and 1 on the bottom 

this i used first to streamline my process and be exact on my x0,y0 

An optimization could be 
have an code for the 3mm drills only and 
do also on bottom etch the pins 
but so far that was not needed. 
thomas 


ct1fgw
 

HI Martin,

You won the prize :-). Changing the MINIMUM from 0.1 to Zero solved the problem. Somehow I though this minimum being smaller than the tool,  it would not matter. I must study this thing properly, I went as far as printing the  manual, now I just have to read it (you can see I am taking this very seriously :-).
I too use a V tool 0.2mm and 30 degrees. In my case I think the "kerf" is very close to the tool size. I made a very sturdy spindle using roller and ball combination bearings (roller for radial and ball for axial) on both ends, with the idea of working metal with it. The thing is so tight that if I use a thicker oil, the poor motor labours (the motor is too small). If I specify a larger tool, I start to get thin slivers of copper in between the passes.

Now I am stragling with another problem. I use TurboCnc and for some reason I'm having problems with the Z axis. I lower it until it touches the board (electric probe) and then I zero it. the panel value goes to zero but when I start the file, it assumes a different value, (luckily always high). I don´t know what happened, I use this method for a long time without any problems.
I think it is to keep me on my toes.

Best Regards,

João


Art Eckstein
 

João

I am happy to hear you have that problem solved. In reference to the your zero problem, are you changing your tool number or fizture offset between the setting and operational modes???

It is also possible that an extraneous offset has gotten into your .tol table  (don't ask me how I know:})

Art
Country Bubba


At 05:00 PM 6/6/2014, you wrote:


HI Martin,

You won the prize . Changing the MINIMUM from 0.1 to Zero solved the problem. Somehow I though this minimum being smaller than the tool,  it would not matter. I must study this thing properly, I went as far as printing the  manual, now I just have to read it (you can see I am taking this very seriously .
I too use a V tool 0.2mm and 30 degrees. In my case I think the "kerf" is very close to the tool size. I made a very sturdy spindle using roller and ball combination bearings (roller for radial and ball for axial) on both ends, with the idea of working metal with it. The thing is so tight that if I use a thicker oil, the poor motor labours (the motor is too small). If I specify a larger tool, I start to get thin slivers of copper in between the passes.

Now I am stragling with another problem. I use TurboCnc and for some reason I'm having problems with the Z axis. I lower it until it touches the board (electric probe) and then I zero it. the panel value goes to zero but when I start the file, it assumes a different value, (luckily always high). I don´t know what happened, I use this method for a long time without any problems.
I think it is to keep me on my toes.

Best Regards,

João


ct1fgw
 

HI Art,

Thank you Art. No, it was not me I swear. I did nothing.

I looked for the file you mentioned, .tol but can not find it. I looked in the computer with the TurboCnc and in the one with Eagle. Where is it supposed to be?
I must say, TurboCnc now and then is behaving strange lately. I installed it a few years ago and never changed anything since. I do not make a lot of boards but I thought I had mastered this thing, I even bragged about it. Can not say the same thing about Eagle though, we clash a bit. I don't like it and it pays be back in kind.

Best regards,

João


ct1fgw
 

Me again, I made some tests and attached a bit of the file I'm trying to run.
The problem is as follows: I set everything to zero and start the file. The machine runs the Z up, goes to the starting point and starts to work but Z stays aprox. 8 or 8.5mm above the board. If I restart the file without changing any settings of the machine, it goes through the same moves and overs above the board, now at twice the height. Every time I restart the file it stays up another 8.5mm.
Can any of you guys with an eagle eye,spot the problem with this file?

Best regards
João