Saturday, 30 March 2019

Converting gerber to pcb layouts - improvements to translate2coralEDA

After getting around to long needed refactoring of translate2geda, the work in progress result is translate2coralEDA, which has cleaned up the code, as well as adding support for features that are not possible in either gEDA PCB or KiCad.

The code will be back-ported to translate2geda, with exported  elements subject to the limitations of the gEDA PCB footprint format which will be the default for translate2geda.

The default export format for translate2coralEDA is pcb-rnd (.lht), which supports padstacks, polygonal copper pad shapes, as well as arcs on copper within footprints, which are called subcircuits in pcb-rnd.

Perhaps the best example of the support for new features in the data model is the improved gerber importing code, which can create pads from arbitrary polygonal shapes - subject to sanity checks on size and geometry - and import copper arcs as copper features rather than pads, within footprints (subcircuits).

Here is an example of the top copper layer from a recently designed Raspberry Pi WSPR shield for the 2m band, converted by translate2coralEDA from the top copper layer gerber into a footprint (.a.k.a. .lht subcircuit) which has then been loaded into pcb-rnd





Gerber import is subject to a  number of caveats, namely, the data in a gerber file lacks logical grouping, and heuristics are used to try and identify pad or pin features. These heuristics will occasionally be fooled by islands of copper pour that are about the right size to be a pad or pin. These can easily be converted back into polygonal copper features within pcb-rnd however.

The most important caveat is that some EDA tools, like Eagle, paint the features with a raster of thin horizontal lines delineated by similar lines forming borders of copper shapes, making techniques such as this far less practical.

Accordingly, gerber conversion is a last resort and is really only for those keen to salvage design data, extract features, i.e. exotic footprints, or modify reference implementations for which only gerbers have been provided.

pcb-rnd can export to KiCad, Protel Autotrax and gEDA PCB formats, subject to the limitations of their respective data models.

For those wondering, the spiral inductor footprints were created with the SpiralInductorFootprintGenerator utility, also available on github.