Hi guys,
   I'm toying with the idea of building a completely new set of 
libraries for Kicad (and possibly EAGLE as well). This all stems from 
the fact that no CAD package I've used thus far has had what I'd call a 
"decent" set of libraries, and IMHO it's gotten to the point where 
something really needs to be done...

   As I see it there are a few problems in common with most CAD libraries:
   - Bad design. Pads with impossible annular ring sizes, stupid drill 
sizes, SMD pads that are barely larger than the pad on the component 
itself (and thus utterly impossible, or at least very difficult to 
hand-solder).
   - Things not meeting PCB manufacturers' requirements. Differing ideas 
on whether the drillsize in the NC file is the final size after THP or 
the pre-THP size, design rules for pads and so on.
   - Silkscreen on top of pads. I mean, seriously. Scraping silkscreen 
off PCB pads is NOT fun, and soldering to a silkscreen-coated pad is 
close to impossible. The EAGLE libraries (even the Cadsoft-created ones) 
are especially guilty of this, but most CAD vendors appear to have done 
it at some point.

   What I was thinking about doing is writing a small-ish program that 
took a list of components to generate, like this:

-----

$DefaultUnit Inches;

// axial through-hole components (resistors, RF chokes)
AXIAL0.6     AxialThruHole(0.6)   // 0.6in spacing
AXIAL0.8     AxialThruHole(0.8)   // 0.8in spacing

// radial electrolytic, 0.2in pin spacing, 7.5mm diameter
C-ELEC-R-0.2-5   CapElectRadial(0.2, 7.5mm)

// very fat-pinned electrolytic
$PinDrill 1.2mm
C-ELEC-FAT-R-0.2-5   CapElectRadial(0.2, 7.5mm)
// revert to default drill radius
$PinDrill 0.8mm

// DIP, 100mil pin spacing 300mil between rows, 8 pins
DIP8  DualInLine(0.1, 0.3, 8)

------

... and use a set of templates for each component type to generate the 
component footprints. You still have to build the schematic symbols 
manually (it's hard for a computer to figure out where best to put the 
pins, unless they're just laid out in a grid on a rectangular outline) 
but the footprints are generated by computer, and thus the pin numbers, 
silkscreen and pad sizes/types can conform to IPC, ANSI, IEC or whatever 
standard or house style you like.

Bonus: if you're having your board made by a manufacturer who insists 
that the drillsize be the "pre-plating" size, or if they place 
restrictions on the drills you can use, then you can change the drill 
sizes in the script, regenerate the libraries and go from there. All 
without having to edit dozens of component footprints to meet your PCB 
maker's requirements. As long as you don't change the pin counts or 
numbering order (i.e. turn a component called DIP8 into a quad 
flatpack), you can carry on using the existing schematic libraries.

What I'm ultimately thinking of is a "basic" component library that 
covers 80% of use cases -- you're still going to have to tell Kicad what 
the PIC12F508 looks like on the schematic, but at least you can use the 
footprint generator to make the DIP8 package for it.

Another bonus would be that if you change CAD packages, and your CAD 
package has some form of text-import feature (like EAGLE's Script 
Import), you can effectively take your libraries with you.

Does anyone think this sounds like a good idea, or am I wasting my time?

Cheers,
-- 
Phil.
[email protected]
http://www.philpem.me.uk/

Reply via email to