[Jeff] set up version control for Eagle libraries and projects. He mentions that Eagle has become the standard for open source hardware projects and he’s absolutely right. We use it for our projects, and we’ve grown to expect that the posts we feature have Eagle files available in most cases.
But Eagle falls short in its library management. There is some amazing work from SparkFun to support a usable parts library, but who hasn’t added parts themselves? [Jeff] setup libraries using github so that changes and additions to the libraries can benefit all and cut the amount of time spent making custom footprints for new components and packages.
29 thoughts on “Version Control For Eagle”
This is a great idea. I actually was looking for the SF libraries the other day — the latest links on the wiki weren’t working — and it would have been wonderful to just check them out from github.
EagleCad is missing one important feature. A GPL license.
When they fix that bug I will start using it again. Until then I will use PCB Designer and gladly route on my own and build my own libraries.
This just made eagle even better. I was just thinking the other day that somethings like this would be good.
Kicad seems it would fit the dirty hippy stuff better?
This reminds me of something I was thinking about a few days ago. Why isn’t KiCad more popular with hobbyists?
We used KiCad to create an open source hardware project (a tap-tempo metronome, http://wayneandlayne.com/metronome/) and it worked great. We kept all our design files and libraries in our source code repository.
@Matt Kicad has a way to export an initial netlist/layout to use one of the free autorouters online, such as http://freerouting.net/. Worked nicely for our purposes.
Agree with Matt 100%. This is like relying upon MATLAB. Sure, it has a Linux version but that doesn’t mean we should rely upon that either. Closed-source software models are horrible 90% of the time. How would you go about fixing a bug (one that you researched on, with debuggers, etc) in Eagle? Technically it is against the license to modify the binary. Tell them about it? How much do they care for free loaders (people who use the free version for Linux)?
I like Eagle, and I think it is better than other routing/PCB design apps I’ve used. I especially like its lightweight-ness. But again, no GPL license and you can count me out most of the time.
I agree with the others stating non-GPL compliance. I personally haven’t been able to understand why the hobbyist would consider a tool that isn’t open and free? In the past I had used paid-for tools, but recently decided to look into being able to create a projects that utilize 100% free and open software to go from my idea to physical board (especially useful if I end up providing instructions to others for reproduction — they won’t then be reliant on some companies proprietary tool and said companies decision to charge 10 billion dollars for it, chop out functionality of the “free” versions, etc). I looked at eagle as there is a lot of people using it (granted it isn’t GPL as many have stated, but they do have a “limited” version). I couldn’t justify spending ANY amount of time trying to learn software that is intentionally limited in functionality, may not always be free and available, etc. It just isn’t logical.
When looking at EDA suites, I couldn’t avoid considering eagle due to the sheer number of projects that use it. If so many people use it, it must be that great, right? Why are all of these others using proprietary software instead of open source standards such as gEDA (primarily gschem and pcb). Is there something inherently wrong with gEDA? Is it severely lacking? Even considering this possibility, I decided to try gEDA out…and my results were a simple circuit that worked flawlessly, very few difficulties in using the tools, and the wonderful surprise of plain text schematics and footprints that can easily be parsed/modified/etc by custom scripts.
If you’re one of the eagle users, please give me some reasons as to why I would ever consider using it over the gEDA/pcb alternatives? The only thing I can think of is that some people already know it and continue to use it.
If you’re someone like myself, trying to pick a EDA suite, take the time to check out gEDA. You won’t be let down. (BTW, I am in no way affiliated with the gEDA project/etc).
@NonProprietary : There is no Windows version of gEDA.
I use Eagle because it’s just the most simple integrated package, and the most popular which means I can send the Eagle files directly to be manufactured.
@janin: Very good point about Windows. I hadn’t considered that. I’m sure that’s a very big reason so many people use it compared to open source alternatives.
Interesting that you can send the files to the manufacturer, though gerbers aren’t too hard to generate.
Thanks for the response.
Why is open source the only thing a hobbyist should use? I agree if there is good open source software it should be embraced. What we need to remember though is that eaglesoft still give a stuff about us hobbyists… not many commercial suppliers offer us anything for free, even if it has limitations. I am pretty happy with the limitations anyway – the board size and max 2 layers of copper is about right with what one can do at home anyway as far as board fabrication.
Eagle is also something that a lot of PCB fab houses provide rules for, and Eagle also produces useable output for gerbers, drills etc without any monkeying about necessary.
Don’t forget the big issue of work environment – changing a pcb cad program will mean time spent designing is instead spent learning a new interface. I guess a good example for me is gimp vs photoshop. I cannot justify the $ for photoshop, so I use GIMP at home. At work I have access to photoshop. I am much more at home and speedier with photoshop as I am familiar with it. I get frustrated and waste time with GIMP trying to accomplish the same things, while it is still a very good program I lose productivity. I guess it is like a tennis player having a few games of squash before a tennis tournament – it will ruin their game till they get back in the groove again.
A bonus for eagle is a pretty decent out of the box device library – something I got annoyed with with other cad apps which had very basic libraries.
The problem with using github or cvs or anything with Eagle libraries is that there is no way to diff them, merge them or do any sort of collaborative development. Unless the components are represented as text script files, there is no easy way to manage multiple users modifying the files.
@jacob I think part of the reason to suggest open apps is exactly what you complain about at the end, the lack of libraries. Cadsoft was just bought out by Farnell, so a lot of the work that people have put into making a popular app is becoming a benefit for Farnell.
What if they were to pull the free version and the rights to the user created content/library ?
Yes with eagle its easy to add them, but its not so easy to add other features.
I like Eagle too, its very hacker orientated i think.
Why people keep whining about GPL all of the time, this is really annoying. I love it when there’s an alternative, it’s great. But your cherished GPL tools are good for nothing. Just take courage and compare gEDA to any proprietary tool out there and find out that gEDA is good for nothing. And in the proprietary sector Eagle wins by pricing/features and they’re hobbyist friendly. Quit whining. You can use the free version with very generous limitations. You can purchase a license for the board layout only, which is really cheap. Your software will be good for 10 or 20 more years. Don’t waste these 20 years on gEDA. Do fun stuff instead (or write a new, decent CAD).
I keep my Eagle lbr’s here: http://code.google.com/p/svofski/source/browse/#hg/eagle/lbr/svo
I’ve tried to use Eagle before and found it extremely difficult going. The interface just seems really bad – sorry to those who like it. And of course not being able to find basic parts anywhere is a downer. Kicad, on the other hand, I found really easy, fast and intuitive by comparison. And it keeps getting better by leaps and bounds!
did you ever try to use (and understand the concept) of gEDA. Only because it is different to your beloved eagle it does not mean it is bad. I recently switched from eagle to gEDA and I’m happy with it.
If you compare it like text-editors I would say
eagle is MS-Word whereas gEDA is LaTeX.
Thus steep learning curve but nice pay off to be full in control of what is going on finally.
Just my two cents…
-kicad has no undo capabilities. I am not infallible.
-gEDA has poor support for the parts I want to use, no windows support
-Eagle provides forward and backward annotation on the fly.
KiCAD is the way to go. Eagle’s user interface is a nigitmare and you’re stuck to teensy-tiny boards unless you let Cadsoft connect a vacuum cleaner to your wallet. Did you know Cadsoft was recently purchased by Farnell-Newark? There’s a large and active KiCAD user group on (unfortunately) Yahoo Groups.
Why this GIT with Eagle post by hackaday exists perplexes me – you can use GIT with most anything. I might be mistaken, but the last time I looked at GIT, it seems to manage versioning via hashes.
I’m not new to weird interfaces. I can use vi, I make a bash script with sed and awk eery once in a while and I had been using Blender for many years, long before it got fancy menus. I don’t find Eagle interface weird at all. And I honestly tried to do something both in gEDA and KiCad. Maybe I’d try it one more time sometime, but I’m not motivated at all. I don’t see real projects made with those tools (okay, even your DIP-packaged 555 blinker, okay, fine, but even those don’t exist). I don’t see real people using them. I don’t see internets people using them. Why is that I wonder? Probably because those awesome tools are too good for us simple folks who just like to get their circuits done?
There is a GPL (albeit Windows-only) alternative to Eagle: TinyCAD (http://sourceforge.net/projects/tinycad/) Work has just restarted on a new version and I’m in charge of the libraries, so I’m looking into doing this Git-based distribution for it as well. I HAVE used it for real projects, even at work. I use it in combination with FreePCB and it works great. The only problem is collecting all of the library parts and making the footprints match FreePCB (then making sure FreePCB’s footprints are accurate… oy!).
We use Kicad, and Tim Hanson rewrote a lot of Kicad in OCAML, so that it was easier to modify. You can check out our project here:
The reason we, and others who would like to attract hobbyists and volunteers, use free software is that it lowers the barriers to participation. If there’s not a free (no cost) solution, then your already small potential user base may be even smaller. Yes, there are drawbacks, but you can make stuff that works with the free (of all kinds) stuff.
Tim’s Kicad OCAML stuff is here:
One other thing that bothers me about KiCad and gEDA is that I really can’t grasp the workflow. Eagle makes it simple: you install it, draw a schematic, press “PCB” and edit PCB, print PCB and ditto. Any changes you make in the schematic later reflect in PCB (as in traces rip and you have to reroute them, new components appear etc).
With gEDA I can’t help but feel completely lost. I painstakingly edited some schematic and then what? FreePCB? Why? It isn’t a part of gEDA? WTF, I want one complete tool, not a set of broken half-tools. What’s the use of a schematic entry program if you can’t make a PCB out of it? What’s the use of PCB editor if you can’t edit PCB from a schematic editor? Yeah, I know, they’re kind of interoperable. But there will be months wasted on fighting with this &*(^@# before I have anything done. Why can’t the OSS effort be more organized?
Re: KiCad.. I remember it looked much more promising last time when I tried it (which I admit was long time ago, 3 years?), but still too hard to use. Are there tutorials, videos, decent libraries of standard components, easy to use library editor, Eagle-to-KiCad library converter?
KiCAD is the way to go. The reason for this is simply that Eagle is *not* the way to go. Ask yourself what happens when Eagle changes their rules. No more free version? Too bad. Sorry about your projects that are locked-in to Eagle.
To the others complaining about gEDA and KiCAD- these projects are both alive. Submit bug reports and feature requests. If you are so smart to have spotted a deficiency in the software *tell someone*. Whining on Hack a Day won’t improve the software. *Using* the software and providing feedback will.
The project mentioned here is great, but really it benefits only Eagle. Doing the same thing with KiCAD benefits us all.
as for gEDA you might have to think in a Unix approach. One tool for one task.
1. Use gschem for creating a schematic. Save it. STOP. That’s it not more not less.
2. Use a text editor or gattrib to link symbols to parts (footprints). That’s much more flexible then using fixed libs. E.g. a resistor is a single symbol but it might have hundreds of different footprints.
3. Use pcb. To make pcb read in all parts from the schematic there exist a script which converts all the stuff into the pcb format. Again one task one tool. pcb has no idea about gschem and vice versa. This may sounds complicated but allow much more flexibility. E.g. why not convert your schematic to a pspice netlist for simulation or into some VHDL, Verilog stuff, or any other format.
Why should I not be able to import a pspice netlist into pcb to create a board ? Why not any other format ?
You see …. it is more a unix resp. Linux approach… whereas eagle and kicad are more the windows-IDE approach. Coming from Linux world small tools which does what have to be done and the user in the middle of all this always keeps control is my reason for using EDA.
However, I admit that it took me some weeks to understand and to come into the workflow of gEDA. Maybe that’s to much for some hobbiests.
As I said it is similar to MS Word resp. OpenOffice vs. LaTeX. The latter beats the first two in all ways but requires some learning from the users side.
@Tux-fan: thanks for putting it up in a concise way. It’s not that I don’t understand the Unix tradition of doing things through the rear entry. I appreciate the flexibility, but I simply don’t want to use it for certain things, like circuits.
Similarly one could argue that POVRay is better than Blender because POVRay allows you to edit model data in plain text, every finest detail. But alas, to create something complex, I need a modeler and I need to move my vertices and align textures interactively. I appreciate a possibility to alter data at low level, but normally I simply don’t want to care about such detail.
So getting back to our conversation.. Eagle provides sophisticated scripting language and there are scripts that export netlists and PCB data and what not. You’re not locked in as much as some alarmists tend to imagine. You can export netlist AND footprints and import them in a third-party router and continue your work from there on, for example.
I’d like to see more beginner info about both gEDA and KiCad in a practical context though. Or, even better, some “free yourself from the evil Eagle” guide, oriented to a long-time Eagle users.
Let me join the crowd of people saying that for open-source and open-hardware projects, developers should be (or should at least consider) using open-source EDA software more often, gEDA/gschem/PCB or Kicad being the two most common ones here.
Granted, luckily various “open” project are slowly beginning to see the light by properly licensing the firmware source code (and possibly PC-side helper applications) under proper open-source licenses (GPL, BSD, public domain, or similar). This was not really the case in the not too distant past; everybody just put some stuff online, without any mention of a license, without proper license headers in the source code files etc. etc.
You also have a wide variety of open development tools available on the PC side these days, including compilers and linkers (gcc for ARM, sdcc, avr-gcc, etc.), debuggers (gdb, or GUIs for it), JTAG and flashing tools (OpenOCD, urjtag, avrdude, …) and so on.
If you’re really lucky, you nowadays even see openly licensed schematics and PCB layouts (CC-BY-SA, GPL, BSD, public domain or whatever) published by many projects, which is great!
If you then also have a mailing list and some svn or git repository with the source code, where interested developers can easily contribute, you’re in Open-Source-and-Open-Hardware-heaven :-)
HOWEVER, it is beyond my imagination why anyone would want to spoil the whole nice open project by needlessly introducing a closed-source component into the “toolchain” of the project, namely the EDA tool, be it in the form of Eagle or Orcad or Protel or whatever.
I for one am reluctant (or plainly refuse) to contribute to “open” projects which don’t use open-source EDA tools. My spare time is too valuable to waste with closed-source software.
I’m admittedly a newbie in the field of electronics, but all my (small) projects I have done so far have been designed and implemented using open-source EDA software, gEDA/PCB in my case, and I’ve been very happy with the tools.
Here’s a small example project I am in the process of finishing up (some documentation, photos and source code still missing): usbflattiny, a small “capslocker”-inspired USB device based on an ATtiny45 and V-USB (previously AVR-USB).
I did the schematics in gschem, created two-layer PCBs in PCB, tracked all this development in git easily (including *.sch files and *.pcb files, as all of them are plain text files), sent the generated Gerber files to pcbcart.com and got my bunch of PCBs after a few days which work just fine. No questions asked by the PCB manufacturer, the default PCB Gerber output was happily accepted. All source code is of course GPL’d, schematics and PCBs are CC-BY-SA 3.0, all layout source files are in git, including new footprint I’ve drawn, etc. etc.
So yes, you can do small open-hardware projects as well as bigger “professional” open-hardware projects by using a fully open-sourced toolchain, including the EDA parts, without any issues. You just have to try it. Yes, there are differences to the tools you might be used to, and yes, there may be some quirks in the usability (nothing that can’t be fixed though, remember this is an open-source project).
But overall at least I personally am very happy with gEDA/PCB, and from what I’ve seen Kicad seems to be equally nice (though I haven’t used it for a real project, yet).
I can only urge developers working on open-hardware / open-source projects to try out gEDA/PCB or Kicad for future projects. I think if you’re willing to spend some time to get used to the tools, you won’t regret it!
Just my 2ct, Uwe.
“My spare time is too valuable to waste with closed-source software.”
My spare time is too valuable to waste on spending 30 mins getting all the dependencies set up only to find I have to draw my own library component because its not in an industry compatible format. 9/10 I want to bust out the circuit and have it etched and populated in a couple of hours, I don’t want to spend a month learning a new package.
Also I can’t code for toffee so if a feature is missing all I can do is whine about it on some hash up of a wiki that OSS seems to prefer over real documentation.
I am far happier working in Photoshop than GIMP, Inkscape over Illustrator, I prefer Firefox to IE and Songbird over iTunes (but still need to use it to fill my phone)
Sadly, OSS will never be accepted by the general populace until the holy wars have ended.
So Eagle is now the defacto standard for free PCB layout. Has the community also landed on a free SPICE implementation? There’s just so many it’s hard to choose where to start.
Is there a general trend to use LTSpice? B2? something else?
I find it ironic that the open source hardware movement is using closed source software.
Please be kind and respectful to help make the comments section excellent. (Comment Policy)