[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: SMT assembly and gerbv lilbro.mosquito.net.nz



Dave N6NZ wrote:
> John Griessen wrote:
>> Could gerbv be modified to generate lists of pads after finding where silk outline intersects
>> or encloses soldermask openings?
> 
> If all you need is a list of pads, can't that come from a paste layer? 
> I don't see how the silk adds anything to that part of the problem. 
[jg]  You need more than a list of pads, you need the centers of groups of pads that are plastic packaged parts,
so a pick and place vacuum chuck tip can go there.


area can go into a calculation of paste volume.  Lil Brother LLC, (LB), is now planning on stencils as
the only way to apply paste, no dispensing, no extra charge for stencils, low cost stencils.


>> They won't have anything but gerbers from most customers.
> 
> Nasty.  But reality.  As we think about gerber kludgery, we should think 
> about how to get pcb to generate the same (presumably higher quality) data .
[jg]Sure, but LB needs a method and is interested in what could be easily added to gerbv.

> 
>> That means there is no netlist associated, no pin 1 defined, only a mark on one corner of the silk outline
>> that you have to "see" somehow.
> 
> Well.... now the library problem has collided with a computer vision 
> problem.  
> 
> A. From lilbro's perspective, they want to recognize as much as possible 
> from the most commonly used libraries. So prioritize and code recognizers.
[jg]I am thinking of a fuzzy match program.  After you decide which pads are in a footprint group,
You get an origin mark and a pad drawing, and compare it to your known list of footprints to
reduce the number of stored footprints that correspond with
the vision machine's recognizing of actual parts through video.
Fuzzy match usually starts with rasterizing so that pixels are maybe 5 to minimum sized pad,
then pixel by pixel, they match or not, and are tallied,
and 97% match is "good enough".  Easier said than done...

> 
> B. From the perspective of a home-grown library user, just tell me what 
> you can easily recognize and I'll tweak my silks.  Actually, anybody 
> should be able to add a simple silk mark, no matter what package they 
> use. I think it's possible to sell the idea of doing a little extra silk 
> work to trade off against tweezer time.  I'm sold already. :)
[jg]I think this is a good approach.  When it fails, there is extra work to do, but
some recognizing of silk that works will save minutes, and make a process go.
Resistors won't need a mark, just silk that surrounds so a group is identified and centroid assigned.
Caps and diodes need a polarity mark.
> 
>> I can see a program that uses top copper
> 
> Why top copper?  Doesn't it contain a lot of distractions?
[jg]Right, I'm not sure it has anything that helps. paste or soldermask is likely all you need.
> 
>> and top silk and top soldermask and no others.
>>
>> to do list for centroid program:
>> 1.  Uses silk and soldermask to mostly identify which SMT pads are a group
> 
> Using a closed-figure detector, I presume?
[jg]Don't know.  Not all silk will be like the footprint "courtyard", some will have breaks.
	Perhaps an algorithm that just looks at proximity of pads and silk when silk is broken?
	Is a programmed closed-figure detector easy?

>> 2.  Figures out the orientation. (Has to come from silk -- varies from footprint to footprint,
>>          and varies from customer to customer.)  This is the hard part.
>>          the circuit pin numbers and orientation is gone when in gerber format.
>>          Not sure how to do.
> 
> I wonder how far you could get by simply looking for asymmetry? ie:
> a. vaguely rectangular
> b. Three straight sides
> c. one side has a discontinuity 
[jg]I think looking for a standard pin one mark is as much as I can imagine coding.
	Asymmetric parts are the kind that will need human intervention I bet.
	The three and five pad ones will get to be library footprints, and can be recognized
	by their pads, the rest will trigger human time used.

> Most two-pad parts aren't polarized, so it doesn't matter.
[jg]No, LB says that is the most important thing -- the biggest time drain....
caps and diodes.  They need to be in the XY list correctly mostly "on auto" or
the program is not worth running -- not enough time savings.


> 
>> 3.    Update the XY centroid list to also have a footprint name associated.
> 
> Where would you get the footprint name?
[jg]Autogenerated, then swapped out with a library name if matched.

>> Ideas?
> 
> Well, my general admonition about most CAD and AI programs is this: The 
> world would be a better place if all AI applications, instead of trying 
> to do everything automatically and leaving you with a mess when they 
> can't, is to instead create an intelligent interactive assistant.
> 
> So, I think this should be a GUI application (gerbv interactive 
> plugin?????) that takes it's best shot at automatically processing 
> things, and then lets you adjust interactively.  So I can see having a 
> "rotate" tool for places where the tool gets the pad collection and 
> centroid right, but rotates the package by 90 or 180 degrees.
[jg]Yes, right on.

   And a
> centroid tweaker,
[jg]Yep.

and a paste location and volume tweaker tool.
Paste is now a non-issue.  Dropped.
> 
> So now the user interaction becomes:
> 1) slurp in the gerber files top silk, top paste
> 2) run the auto-recognizer
> 3) visually scan the layout, applying tweaks as necessary
> 4) write the XY CAM file.

-- 
Ecosensory   Austin TX
tinyOS devel on:  ubuntu Linux;   tinyOS v2.0.2;   telosb ecosens1


_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user