Conversion tools and information ==================================== This file describes the process of converting the DFM guided SparkFun-Eagle-Libraries repo to kicad format, while maintaining DFM guidelines. ## Process **Make sure repo is in "C:\github\SparkFun-KiCad-Libraries"** This is the evolving breakdown of tasks required to transfer the full set of sparkfun libraries. * Convert bulk of libraries to Kicad *Manual operation* * Use "Out put new part for every foot print type" in lachlanA's ULP * Use .bat file to run script for all libraries (check paths within) * Use custom script to (for each Eagle .lbr): * Detag and copy descriptions to .dcm files * Add fields for PROD_ID for each KiCad part * Add PROD_ID keyword for each part * If not found, apply XXX-00000 for prod id * Scrub errant footprint filters by reference Footprint field * Report statistics to validate script operation * Load and save-as for all .mod files to convert to .pretty format. *Manual operation* * Combine all .mod files to a single .pretty folder. *Manual operation* * There will be duplicate file names (should be identical) * There will be similar footprint .mod files (should be identical) * Weed out (about 3) spare F8 commands that were not saved correctly in the lib files (KiCad will tell you they are broken) * Convert line graphics of .kicad_mod files to poly graphics using other bat * Output ends up in Export.pretty * When satisfied, overwrite Sparkfun.pretty with contents of Export.pretty ### Convert bulk of libraries/boards to Kicad This task is done from within eagle. Open each library and run the conversion .ulp file ../Tools/eagle-to-kicad_ulp/eagle-lbr2kicad-1.0.ulp. This is a modified version of lachlanA's script, from https://github.com/lachlanA/eagle-to-kicad-libs. During this stage, select * "Output a new part for every footprint type" * "Don't prefix the library name to the footprint name in module" for each library. When complete * move the log files to ../Tools/SparkFun-Eagle-Libraries_Conversion/EagleExportLogs * Copy .lib and .mod files to ../Libraries * Delete originals when you are happy ### Use batch files to convert internal part names and DFM stuff Run ../Tools/SparkFun-Eagle-Libraries_Conversion/Python/RunOnExportedLibs.bat. The following files will be made and placed within ../Libraries * name.lib files * name.dcm files * ConvertSFELibsLog.txt Move the log file to ../Tools/SparkFun-Eagle-Libraries_Conversion/PythonScriptLogs ### Load and save-as for all .mod files to convert to .pretty format. * Create a new project in KiCad named something like "import_n*. * Go into the footprint editor, manage libraries, and remove all. * With the library wizard, append exported .mod files to project (not global) * For each library, * Set library active * Save-as to location ../Footprints * Append with name (such as SparkFun-Aesthetics.mod) * Ex: C:\github\SparkFun-KiCad-Libraries\Footprints\Aesthetics.pretty Tip: copy base path to text doc for easy copy-paste. Also, browse .mod folder to copy paste names. This is truely the most painful part. ### Combine all .mod files to a single .pretty folder. Call this /Footprints/SparkFun.pretty When deciding which duplicated part name to use, ditch the most specific and keep the most generalized ### Weed out script failures Load libraries into test KiCad project (AKA import_n.pro) * Open schematic lib editor * Remove all libs from library manager * Add all .lib files from ../Libraries * Click brows components * Will report error in file and line number. Look for misplaced "F" commands * Move errant lines up to last "F" position, usually after F3 * Rename F8 to F4 Tip: Open all .libs in notepad++ and search "F8" in all open files. ### Convert polys Run ../Tools/SparkFun-Eagle-Libraries_Conversion/Python/ConvertLinesPolys.bat. Files will go to: C:\github\SparkFun-KiCad-Libraries\Tools\SparkFun-Eagle-Libraries_Conversion\Export.pretty Copy kicad_mod files back into SparkFun.pretty ## You are done enough! At this point, libs should be useable. Keepout is now on user layers, should be on other layer (script?)