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/
