I'm curious about something. I'm an Eagle user, but I recently subscribed to this list out of curiosity. I've played with KiCAD for a few minutes, but not yet tackled any real projects with it. One of the main roadblocks has been the lack of libraries, though I recently found out you can convert Eagle Libraries which makes things easier.
Anyway, I have an idea for what I think would be a much better way to support part libraries, so I thought I'd throw it out and see what people think. In my experience, part libraries are a huge pain. You have to search for the correct part, which may or may not be listed as being present in a particular library. If you find it, you can't count on it having been done correctly, so you have to compare the part to the datasheet to double check. Even if you find a good part, there is a good chance that the schematic symbol is badly designed, etc. And if you manage to fix any of these problems in your local copies, you need to start over when a new version is released. Libraries are great if they are coming from a definitive source who does a good job assembling them (such as if Atmel released and maintained their own AVR library), but when they are OS, their are a ton of potential issues. Instead of having traditional monolithic libraries, it seems to me this is the ideal place for a web-based system. In this system, the part footprint would be separated from the part itself, so all TQFP32, .8mm pitch parts would use the same footprint (I think KiCAD already does this). Right there you eliminate a lot of potential issues. For the parts themselves, instead of having an AVR library (for example), each individual part would be available via a web-based service. Instead of downloading the AVR library, you would download the ATMega32 part. This makes it much easier to find your exact part, and also means that only one person ever needs to create a particular part. If that part is not already available, you create and submit it as normal, and it's available for the next guy, however it is marked as an untested part. Each part will have a 'trustworthy' rating, and until a certain number of people vote that the part is correct, it will remain flagged as suspect so people will know to double check the datasheet. If there are problems with a part, anyone can update the part to fix them, and their changes would automatically be shared. The parts are versioned Wiki-style, so the old version always remains available if changes are made. The user would be prompted that the new version is available and allowed to change or not, so this would not break existing designs due to minor corrections. Some other thoughts: * Though the footprint is standardized, the individual part does have the ability to override each layer of the standard part if necessary, so if a particular part has a specific solder mask requirement, for example, you can modify that layer while still using the standard footprint. * This allows people to easily share part documentation and tips, reference schematics, etc, since they can be easily attached to the part itself. * This would be web-based, but there would be a browser integrated into the library browser, so you could add any part directly from within the program. * This would not replace the existing library system, at least not at first. You can easily export the web-library for off-line usage. * The parts would still be organized into library-like categories, to make things easy to find. Parts could also be tagged to make things even easier. So any thoughts or comments?
