From remote control airplanes to military applications for rockets, CadSoft Eagle PCB design software is used widely among hobbyists and professionals for designing circuits.
Since its acquisition by electronic components distributor Premier Farnell in late 2009, CadSoft’s business has grown significantly; in their last fiscal year for example, the company reported a forty percent growth in sales.
This might come as a surprise, especially considering Eagle’s GUI tends to invoke nostalgic memories from the days of Microsoft DOS. But user-interface quirks aside, CadSoft is obviously doing something right. Let’s take a look at Version 6 and some of the new features that have been added to the schematic capture and PCB layout tool.
New Data Structure
Among the new features, the most notable is the porting of their data structure from binary to text-based XML, a strategic move that opens the doors for third-party developers to expand the feature set of Eagle and paves the way for greater interoperability with other CAD tools.
Eagle’s new data structure means that all board, schematic and library files are now saved in ASCII XML (see figure), a migration that took the company almost a year to complete and required a complete redesign of their source code.
The benefits of this change are far-reaching. First, the new format makes version control much easier. Designers can now keep track of revisions in the same way they would keep track of code, while making use of the diff functions in these tools.
More compelling though, is that the new format creates a platform upon which third-party developers can expand Eagle’s native feature set. One tool currently in development, for example, reads in two revisions of a schematic and then highlights the visual differences between them. Another use case is the ability to create conversion tools for interoperability between design environments, something that EDA tools, in general, notoriously lack.
For a small company that has a development staff of only three, this is a strategic move; the company is able to outsource feature development to the community, while they continue to focus on improving their core circuit design capabilities.
For example, 3D board features – such as being able to visualize mechanical clearances, or export to a mechanical drawing tool, such as AutoCAD or SolidWorks – are frequently requested by users. However, being more modeling features than circuit design features, they are not something that CadSoft is likely to invest in. Ed Robledo, the general manager of CadSoft, said it’s precisely these types of features that the company is hoping that a third party will implement for the benefit of the rest of their community.
“We’ve made the platform. The idea is for the online community or third parties to do something with it,” Robledo explained.
Although no specific tools have been released yet, there are several that are in active development, and according to the company, more to come as developers become familiar with the new XML schema.
The latest version of Eagle also incorporates a number of smaller usability improvements. On the layout side, Eagle now has differential pair routing, BGA escape routing, and meanders for the impedance matching of traces. There is also finer grid resolution (up to 1/64th of a mil), which makes it easier to find a common grid for a group of parts that has both metric and imperial pin spacing.
On the component side, it is now possible to connect symbol pins to multiple pads. There are many times when a device will have multiple ground or power pins connected internally, especially on ICs. Considering how common this is, it’s surprising that this feature wasn’t implemented until now, but nevertheless is a welcome addition to the tool.
Several smaller features—such as a dimensioning tool for layout, the ability to create irregularly shaped pads on components (for example, custom thermal pads), and the tracking of schematic and layout changes in a log—have also been added.
Eagle users are also now able to upload their completed designs to Element14, Premier Farnell’s online design community, for instant quotes on board production from assembly house Screaming Circuits and manufacturer Sunstone Circuits.
One thing to keep in mind is that if you decide to give Version 6 a try, make sure to backup your files. Once design files have been converted to the new XML format, they will no longer be compatible with older versions.
Although the new release has generally received a positive reception, there have been reports of various bugs, primarily related to stability. Initially, some users considered switching back to older versions of Eagle, and were upset to find out that their files—that had been converted to the new XML format—were not backwards compatible. Robledo attributes most of these issues to the fact that the code was completely rewritten in Version 6. He added that that company is quickly and aggressively addressing any issues that arise, and that their latest Beta, available for download on their website, contains fixes for most of the major issues that were initially reported.
But there are still issues that have gone unaddressed from previous versions. Their quirky non-standard user interface, for example, demands a learning curve with idiosyncrasies for even the most basic functions like copying and pasting (hint: look for the “two-in-one” button that simultaneously copies and pastes circuit elements).
Originally written for DOS, the software is now written for Linux and then ported over to the Windows and Mac operating systems. Robledo explained that the tool doesn’t comply to any GUI standards and doesn’t plan to. Part of the reason for this is to keep legacy users productive who have already invested the time required to learn the tool. Furthermore, one of the benefits of Eagle is the large volume of information online; any significant changes made to the GUI might render this content obsolete.
Eagle lacks some other basic features like hierarchical design, which is important for anyone doing larger designs especially if they want to repeat blocks of circuitry. Other functions, like autoplacing of parts, don’t exist in Eagle either. Fortunately, this is where Eagle’s User Language Programs (ULPs) can help out.
ULPs are C-like scripts that automate particular tasks in Eagle. These scripts can do things like autoplace parts or create via arrays, both of which are features that other tools provide natively, but which Eagle does not.
To solve Eagle’s lack of 3D board visualization, for example, one customer created EagleUP, a ULP that allows users to visualize designs created within Eagle in 3D in Google SketchUp. It is, however, more of a graphical tool for presentation purposes rather than one that can be used for mechanical fitting purposes, but is still a step in the right direction for users who want 3D features.
There are over a hundred ULPs available, for all types of functions, ranging from data import and export, simulation, board statistics, or for generating Gerbers or parts Centroid files. The company has a devoted developer on staff creating ULPs, and users are also able to make and share their own.
It should, however, be noted that not all ULPs are created equally—some require more work than others to get up and running, as should be expected since they’re created by a variety of different developers.
Robledo said that Eagle customers have been requesting SPICE simulation for a while now—primarily academic institutions, but also on the professional side. One of the next updates to Version 6, slated to be released later this year, will provide an interface to popular SPICE simulation program LTSpice.
With the LTSpice interface, which will be implemented as a ULP, users will be able to export their designs to LTSpice and then run their simulations in that environment. Currently there are also some other ULPs available for generating SPICE netlists from within Eagle, and to interface to simulators Beige Bag and WinSpice.
Robledo attributed Eagle’s growth over the past couple of years to its acquisition by Premier Farnell, the company that owns component distributor Newark. In particular, he cites the training of Newark’s sales force to promote and support Eagle in their regions. According to Robledo, it’s this combination of a sales force with a more marketing-minded strategy that has given Eagle more exposure than any time in its twenty year history.
Since its acquisition, Eagle also released a feature called DesignLink that Robledo said has attracted new users; the feature allows users to access Newark’s catalogue for information such as pricing and availability on the components used in their schematics.
The pricing structure for CadSoft Eagle makes it affordable for both hobbyists and professionals, with a freeware version for education and hobbyists, a "light" version coming in at $69, and their fully-featured professional version (layout/schematic/autorouter) priced at $1640 on the high-end. There are a variety of package options in between depending on board size and number of copper layers required. Their tech support is perpetual and does not require a yearly maintenance fee.
On the professional side, Eagle’s user base consists largely of military and government organizations, startups, and satellite R&D branches that use the tool for its simplicity, low-cost, free tech-support and large online community of support and resources.
Eagle’s development of this platform draws similarities to the OrCAD Capture Marketplace, in the sense that it also provides a platform for third parties to extend the functionality of OrCAD with apps.
It will be interesting to see how these tools, which perhaps haven’t had the greatest investment in terms of R&D over the past few years, will progress now that they have these new frameworks in place for third-party developers. Will users embrace even more third-party tools in their design flow? Only time will tell.