Here at SparkFun, our Eagle libraries are the epitome of our open source philosophy. Every device we’ve ever prototyped with and every package we’ve ever stuck on a red board lives somewhere in that collection of .lbr files. Unfortunately, so too does did a lot of garbage.
Over the past half-year or so, our internal DFM (Design for Manufacturability) team---Toni_K, MTaylor, .Brent., QCPete, and I---have been working to clean up those Eagle libraries. And yesterday we pushed those changes to the master branch of the GitHub repository!
We’ve been developing on and evolving our Eagle libraries for more than a decade(!). We sorted what was originally just one library---SparkFun.lbr---into multiple files and stuck them on GitHub almost five years ago. We’ve been collaboratively building on them since then. The repo recently surpassed 1,500 commits!
Over that time, though, a lot has changed---packages have been tweaked, and fixes have been made. And sometimes, after committing those fixes, we weren’t always good about cleaning up after ourselves. That’s why you may have seen parts like the ATmega32U4 in the library, with four variants of the same QFN44 package.
The libraries have also fallen victim to their age. Ten years leaves a lot of time for electronic components to die off. The old RF library, for example, was filled with parts like the GM862, the Lassen IQ and the nRF2401A---retired parts that no one in their right mind should design a project around, even if they’re able to get a hold of one.
In general, the libraries were in need of an audit. There were too many places where they were confusingly organized, poorly documented or full of dangerous end-of-life (EOL) traps.
In preparation for cleaning up the libraries, our crew first met to agree on common rules for our Eagle symbols, footprints and devices. Every component of the library was to have:
In addition, the cleanup was only performed on parts that were not EOL’ed. Parts that were retired long ago by manufacturers were axed entirely, and parts that were retired from the SparkFun catalog were moved to the SparkFun-Retired library.
We also further filtered parts into more granular libraries---specifically with regard to the IC libraries. Our new list of libraries is:
LilyPad-Wearables | Button holes, sewtabs and petals used on our LilyPad boards. | SparkFun-IC-Comms | Things that exist on wired busses – USB-to-serial, high-speed line drivers, level shifters, CAN transceivers, Ethernet PHY’s, etc. | |
SparkFun-Aesthetics | Non-functional items such as logos, build/ordering notes, frame blocks, etc. | SparkFun-IC-Conversion | IC’s that perform analog-to-digital or digital-to-analog conversion. | |
SparkFun-Batteries | Battery clips, connectors, and appropriately sized silk outlines for LiPo batteries. | SparkFun-IC-Logic | Parts which fit into the standard logic IC families. AND’s, OR’s, shift registers, etc. | |
SparkFun-Boards | Footprints for SparkFun breakout boards, microcontrollers (Arduino, Particle, Teensy, etc.), breadboards, non-RF modules, etc. | SparkFun-IC-Memory | Memory IC’s like Flash and EEPROM. | |
SparkFun-Capacitors | Capacitors | SparkFun-IC-Microcontrollers | Microcontrollers! | |
SparkFun-Clocks | Real-time clocks, oscillators, resonators, and crystals we use. | SparkFun-IC-Power | Anything that has to do with power delivery or making power supplies. | |
SparkFun-Coils | Magnetics - inductors, ferrite beads, | SparkFun-IC-Special-Function | Anything that doesn’t fit into the other "SparkFun-IC-X" libraries. 555’s, LED drivers, motor drivers, etc. | |
SparkFun-Connectors | Electrically functional connectors. | SparkFun-Jumpers | Solder jumpers, cut jumpers, or any other semi-permanent connection method. | |
SparkFun-DiscreteSemi | Diodes, optoisolators, TRIACs, MOSFETs, transistors, etc. | SparkFun-LED | Discrete LED’s, including seven-segment displays. | |
SparkFun-Displays | LCDs, OLEDs, etc. | SparkFun-PowerSymbols | Power and ground symbols – “3.3V”, “V_USB”, “GND”, “AGND”, etc. | |
SparkFun-Electromechanical | Electromechanical devices, like motors, speakers,servos, and relays. | SparkFun-Resistors | Resistors! | |
SparkFun-Fuses | Fuses, or fuse-like components such as PTCs. Reference designator F. | SparkFun-Retired | Footprints for any component that is no longer in use. | |
SparkFun-GPS | GPS modules, GPS antennas, etc. | SparkFun-RF | Devices that send or receive RF – cellular, Bluetooth, WiFi, etc. | |
SparkFun-Hardware | Board components that are not electrical in nature, such as stand-offs, magnets, and Actobotics. | SparkFun-Sensors | Accelerometers, gyroscopes, compasses, light sensors, temperature sensors, etc. | |
SparkFun-IC-Amplifiers | Analog amplifiers – operational amplifiers, headphone and audio amps, etc. | SparkFun-Switches | Switches, buttons, joysticks – anything that moves to create or disrupt an electrical connection. |
There are a lot of libraries to choose from, but hopefully it’ll be a little easier to narrow down your search. Don’t forget: in the add
dialog, you can use the asterisk (*
) as a wildcard, in case you don’t know the precise name of the part you’re looking for.
Now clone our repo and start creating boards of your own! You should feel comfortable knowing the parts you design around are accessible and documented, and the footprints are verified. If you encounter any bugs, feel free to submit a pull request or file an issue. And if you want to submit parts of your own, feel free to add them to our UserSubmitted library.
For even more Eagle resources, check out SparkFun.com/Eagle. We have tutorials there to help you get everywhere from setting up the software to generating Gerber files. Happy Eagle’ing!
Absolutely wonderful. I have been using sparkfun libraries for the better part of 10 years. Remeber the early days, early libraries? I still have those files. Before eagle went to xml. Anyways, enough nostalgia and smiling. I know these libraries will be beneficial to many. Again, thanks sparkfun. I know many people will find this VERY useful.
For people who want to submit parts to the UserSubmitted library, do you have your "common rules for our Eagle symbols" published anywhere publically accessible?
Also, do any of the engineers who dabble with KiCAD in their spare time maintain a KiCAD translation of your Eagle parts? (Obviously, unofficial back-channel...)
Great question! I added our Eagle rules to the GitHub repo's wiki: https://github.com/sparkfun/SparkFun-Eagle-Libraries/wiki.
I think I've heard tell of some Eagle-to-KiCAD library scripts, but haven't used one personally. (Maybe this might work?)
This is awesome! By the way, we'd be happy to convert Eagle to all formats we support (Kicad, OrCad, Altium, etc.) on SnapEDA. SnapEDA is a free parts library that translates to many formats. Just let me know and I'd be happy to get it up and running (natasha@snapeda.com). You can see an example here.
Thanx for the rules. (Call me old-guard, but I think THT footprints look odd if if pin1 isn't square... Note, I'm not advocating changing it after you have already put all the effort in to normalize all your parts. Just a comment.)
Well, the latest stable version (not to mention the innumerable bleeding-edge dailys) are supposed to be able to load Eagle 6.x libraries for footprints. I just confirmed that KiCAD thinks that it can import the footprints, but without the original reference I can't confirm that all of them imported properly. (I can confirm that some of the special silkscreen geometries didn't. Noticeable on some (not all) of the OSHW logos.)
Thanks for the confirmation! I ran some experiments the last time I used KiCAD and had some similar experiences. It's good to see that it still (somewhat) works.
My plan all along was to run the scripts after this library update was posted, and then to manually adjust whatever didn't work. I'm really fond of the way KiCAD manages objects in the library, especially how the footprints are controlled in a different place then the parts, so it should be interesting to see how it all comes up.
Stay tuned! I'll see what I can do.
Great. I look forward to your efforts. And, as mentioned in my OP, I'll treat the KiCAD variants as someone's extracurricular hobby, not as official SparkFun sanctioned and supported. :-D
Jimbo,
I don't know if you're still monitoring this thread, but what are SparkFun's plans regarding Eagle in consideration of Autodesk's recent announcement that they are moving to a subscription only pricing model (except for the free version...)?
We saw the announcement yesterday and are looking into it. We'll update everyone once we have our ducks in a row!