2016-12-15

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!

Why the Cleanup?

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.

What We Did

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:

Standardized naming conventions

A templated description, including manufacturer part numbers and links to datasheets and example products

Production part numbers (sorry, that’s mostly for our internal use) and SparkFun SKU numbers where applicable

Uniform silkscreen markings, like outlines and polarity indicators

Uniform name and value labels, in case anyone wants to print them on the PCB

Uniform op-amp and logic symbols—amplifiers and logic gates should be gate-swappable

An approved international standard reference designator

Verified footprints!



What you can expect from the library’s device view. Descriptions, links, product IDs and standardized names.

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.

Use the wildcard (*) around your search term—and search descriptions(!)—for a better chance at finding your part.

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!

comments | comment feed

Show more