posted by
janrinok
on Thursday February 26 2015, @05:31PM
from the open-data dept.

"gewg_" writes:

The computer-aided design software packages (ECADs) available to electronics folks for creating schematics and printed circuit board layouts have long been an aggravation when trying to share data with someone who uses a package produced by a different vendor--due to proprietary file formats that are (apparently, purposely) incompatible.

Many years ago, Cadsoft's EAGLE was available as a demo that would do very limited PCB creation but which had unlimited ability to view/print already-created files. It was also cross-platform. For a short time, EAGLE-compatible files became a quasi-standard for amateurs and pros on a budget.

In 2006, however, Cadsoft got greedy and DRM'd their stuff so that it would lock you out of your work product under certain circumstances, as described by Markus Zingg on October 24. Cadsoft quickly lost what little luster it had in the community. CERN engineers are hoping to produce a package that will do the same job - but better.

More down the page...

Now, Cian O'Luanaigh at CERN, the European Organization for Nuclear Research, reports

[...]so far, the engineers who design [printed circuit] boards often have had no option but to use proprietary tools.[1] That's about to change: CERN experts are adapting the open-source software KiCad to make it an efficient tool for designing open-source hardware. This Free Software makes it easier for electronics engineers to share their designs.

KiCad development began in 1992. The software--which runs on the computer-operating systems GNU/Linux, Windows, and Apple OS X--creates schematics for printed circuit boards with up to 32 copper layers with additional technical layers. Since 2013, experts in the CERN Beams department have made important contributions to KiCad as part of the Open Hardware Initiative (OHI), which provides a framework to facilitate knowledge exchange across the electronic design community.

"Our vision is to allow the hardware developers to share as easily as their software colleagues," says Javier Serrano, head of the BE-CO-HT section and OHI initiator. "Software sources are easily shared online because they are text files and everyone has access to editors and compilers that turn the sources into a program. On the other hand, in the case of hardware design, most of the time this is done using proprietary tools. Therefore, in order for people to modify the sources, they need to use those proprietary tools."

When [development on] the KiCAD project started at CERN, many free tools were already available to hardware designers but none was easy enough to use when designing a complex circuit. Among them, KiCad showed the best potential.

"We started by cleaning the basic code and introducing a new graphical engine," says Tomasz Wlostowski, a member of the BE-CO-HT section who, among other things, is in charge of supervising the development of new features for KiCad. "With our contribution, we aim to develop KiCad up to a point where it becomes the de facto standard for sharing, and more and more users, including corporate ones, start working with it."

Next week, the team is going to release two new features that many in the free/Open Source EDA community have been asking for: differential pair routing and trace-length matching.

"Thanks to the new differential pair routing, you can more easily design PCBs that support fast signals over a long distance and with less noise. This is particularly important for devices that deal with great amounts of data," says Wlostowski.

"The second tool--length matching--automatically ensures that two signals take exactly the same time to cross the PCB. When the feature is selected, the tool automatically adds meanders to adjust the delay. This is very useful when timing and synchronisation become important parameters to take into account."

[...]Raspberry Pi and Arduino have already donated to the CERN KiCad initiative. You can join the effort to enhance KiCad and make it an efficient tool for PCB design by making a donation via the CERN and Society website.

[1] This guy has a list of what he perceives as the shortcomings of the current KiCad package.

Related Stories

EAGLE, The Easily Applicable Graphical Layout Editor is an ECAD (electronic computer-aided design), proprietary software for creating printed circuit boards. Cadsoft, the company that created it, sold EAGLE to Autodesk in June.

Autodesk has announced that EAGLE is now only available for purchase as a subscription. [Previously], users purchased EAGLE once and [could use] the software indefinitely (often for years) before deciding to move to a new version with another one-time purchase. Now, they'll be paying Autodesk on a monthly or yearly basis.

Before Autodesk purchased EAGLE from Cadsoft, a Standard license would run you $69, paid once. [...] Standard will [now] cost $15/month or $100/year and gives similar functionality to the old Premium level, but with only 2 signal layers.

[...] The next level up was Premium, at $820, paid once. [...] If you [now] need more [than 2] layers or more than 160 [sq.cm] of board space, you'll need the new Premium level, at $65/month or $500/year.New Subscription Pricing Table for Eagle

[...] The [freeware] version still exists, but, for anyone using Eagle for commercial purposes (from Tindie sellers to engineering firms), this is a big change. Even if you agree with the new pricing, a subscription model means you never actually own the software. This model will require licensing software that needs to phone home periodically and can be killed remotely. If you need to look back at a design a few years from now, you better hope that your subscription is valid, that Autodesk is still running the license server, and that you have an active internet connection.

The page has well over 100 comments, with many saying the equivalent of "Goodbye, EAGLE; Hello, KiCAD".KiCAD is gratis and libre, cross-platform, has been adopted as a software development project by nerds at CERN, and has seen marked improvement in recent years.

[...] five years ago, if you wanted to design a printed circuit board, your best option was [Cadsoft's Easily Applicable Graphical Layout Editor (EAGLE)]. [These days], EAGLE is an Autodesk property, the licensing model has changed, [...] and the Open Source EDA suite KiCAD is getting better and better. New developers are contributing to the project and, by some measures, KiCAD is now the most popular tool to develop Open [Design] hardware.

At FOSDEM last week, Wayne Stambaugh, project lead of KiCAD laid out what features are due in the upcoming release of version 5 [Video]. KiCAD just keeps improving, and these new features are really killer features that will make everyone [who is] annoyed with EAGLE's new licensing very happy.

Although recent versions of KiCAD have made improvements to the way part and footprint libraries are handled, the big upcoming change is that footprint libraries will be installed locally. The Github plugin for library management--a good idea in theory--is no longer the default.

SPICE [Simulation Program with Integrated Circuit Emphasis] is also coming to KiCAD. The best demo of the upcoming SPICE integration is this relatively old video demonstrating how KiCAD turns a schematic into graphs of voltage and current.

The biggest news, however, is the new ability to import EAGLE projects. Wayne demoed this live on stage, importing an EAGLE board and schematic of an Arduino Mega and turning it into a KiCAD board and schematic in a matter of seconds. It's not -quite- perfect yet, but it's close and very, very good.

There are, of course, other fancy features that make designing schematics and PCBs easier. Eeschema is getting a better configuration dialog, improved bus and wire dragging, and improved junction handling. Pcbnew is getting rounded rectangle and complex pad shape support, direct export to STEP files, and you'll soon be able to update the board from the schematic without updating the netlist file. Read that last feature again, slowly. It's the best news we've ever heard.

The author is tolerant of subtractive changes to proprietary licenses; other hardware hackers/tool users, in the comments there, not so much.

[...] If you've been using the old "stable" version of KiCad (from May 2013!), you've got a lot of catching-up to do.

The official part footprint libraries changed their format sometime in 2014, and are all now hosted on GitHub in separate ".pretty" folders for modularity and ease of updating. Unfortunately, this means that you'll need to be a little careful with your projects until you've switched all the parts over. The blow is softened by a "component rescue helper" but you're still going to need to be careful if you're still using old schematics with the new version.

The most interesting change, from a basic PCB-layout perspective, is the push-and-shove router. We're looking for a new demo video online, but this one from earlier this year will have to do for now. We've been using various "unstable" builds of KiCad for the last two years just because of this feature, so it's awesome to see it out in an actual release. The push-and-shove router still has some quirks and doesn't have all the functionality of the original routers, though, so we often find ourselves switching back and forth. But when you need the push-and-shove feature, it's awesome.

If you're doing a board where timing is critical, KiCad 4.0 has a bunch of differential trace and trace-length tuning options that are something far beyond the last release. The 3D board rendering has also greatly improved.

Indeed, there are so many improvements that have been made over the last two and a half years, that everybody we know has been using the nightly development builds of KiCad instead of the old stable version. If you've been doing the same, version 4.0 may not have all that much new for you. But if you're new to KiCad, now's a great time to jump in.

Cadsoft's Easily Applicable Graphical Layout Editor (EAGLE) is an ECAD (Electronic Computer-aided design), a software product for designing printed circuit boards. As that product has a demo/freeware version which is adequate for many users, as well as having a reasonable price structure for more-capable versions, and being cross-platform, it had considerable popularity.

A year ago, Autodesk acquired Cadsoft Computer GmbH and changed the licensing of the product to a subscription model. Since then, many users of EAGLE have been seeking a path away from that EULAware app. Many have moved to (FOSS) KiCAD, a project started by French academics which has gained developer support from personnel at CERN.

A sticking point for those wanting to transition to a new tool is the projects previously developed using the old tool and saved in the native format of that package.

There is a desire to port those innumerable Eagle board layouts and libraries to other PCB design packages. This tool does just that.

The tool is an extension of pcb-rnd, a FOSS tool for circuit board editing [itself, a fork of gEDA's "PCB" module], and this update massively extends support for Eagle boards and libraries.

As an example, VK5HSE loaded up an Eagle .brd file of a transceiver, selected a pin header, and exported that component to a KiCAD library. It worked the first time. For another experiment, the ever popular TV-B-Gone .brd file was exported directly to pcb-rnd.

This is a mostly-complete solution for Eagle-to-KiCAD, Eagle-to-Autotrax, and Eagle-to-gEDA-PCB, with a few minimal caveats relating to copper pours and silkscreen--nothing that can't be dealt with if you're not mindlessly using the tool.

While it must be noted that most Open Hardware projects fit inside a 80 [sq.cm] board area, and can therefore be opened and modified with the free-to-use version of Autodesk's Eagle, this is a very capable tool to turn Eagle boards and libraries into designs that can be built with FOSS tools.

Things are about to get interesting in the world of PCB design software for the open [...] hardware community. This week, Altium launched the open public beta for its new [CircuitMaker] software[1], and it's a major change from what we looked at previously. Everything is [gratis].

You heard that right, [gratis]. Unlimited board size and unlimited layers--all [gratis]. And this isn't some stripped-down, bare-bones software here. They've thrown in almost everything under the sun: a 3D viewer, team project collaboration, [Cadsoft EAGLE] and DFX import, integrated Octopart supplier and pricing information, no commercial usage limits, and project sharing. And if that isn't enough, the "engine" seems to be the exact same back-end that is used in the full $10,000 Altium Designer as well (with a bit easier to use user interface on top).

This is a major departure from the pre-beta we covered back in September. Altium was going [to] have board size and layer limits, with the ability to "upgrade" at a cost.

[...] there are a few gotchas[...]. The software uses cloud based storage for your project files and [it] is community based. It won't work without an Internet connection, there is no local storage, and it forces you to share your projects with the world. You do get two "Sandbox" designs that you can hide from the world before you generate your Gerber files, but after that, your project is online for the whole world to see.

[...] anyone with a doggy Internet connection is not going to enjoy using [CircuitMaker] (we're hoping they remove that limitation in the final product). [...]how many people will be willing to trust their designs to a free service that could be turned off on a whim?

[...] If you want to see in-depth review of [CircuitMaker], we highly recommend you watch the video[...]. Dave Jones of the eevblog, gives you a full rundown on the beta version. Dave's in a unique place to review this software: Not only has he been using Altium since the mid-80's as a professional engineer, he's also a former Altium employee.

[1] The CircuitMaker page contains a "Free" link, but it doesn't lead anywhere--especially not to source code (even after allowing the 8 scripts that the page wants to push at you). There is some vague gibberish about GPL at the bottom of the CircuitMaker page but, again, no mention of actual source code. It appears that although the Hackaday submitter used the term "open source", that is used incorrectly.

In addition, the Download link doesn't lead anywhere for me--again, even after allowing the 8 scripts. Justice_099 in the comments says "Downloading requires a CircuitMaker account and I don't see any way to create an account there." (This really looks like amateur night.)

There is also no mention of operating systems, so I'm assuming this is Windows-only. (imroy264 in the comments says that is so and Anonymous below him says it fails via WINE).

majost in the comments says "My biggest issue with CircuitMaker is you cannot import manufacturer or third-party supplied parts libraries, and the Ciiva Library is lacking quite a few parts."

The comments also contain numerous mentions of (GPL'd, zero-restriction) KiCAD.

Fritzing isn't really used to make production products. I only have limited experience with it, but based on its "breadboard view", it seems a bit unprofessional.

Kicad, on the other hand, is quite professional, and I've used it to make several products. I've personally used Kicad to make 13 hobby projects at home, and 9 test fixtures at work (but no professional products, since my boss requires me to use buggy Orcad software for that). Most of the complaints on the head-fi site are either usability issues that I disagree with, bugs that have been fixed, or features that he could ask for that I've never even considered.

Doesn't do simulationDoesn't do simulation(Score: 1, Informative) by Anonymous Coward on Thursday February 26 2015, @07:31PM

Yeah. On that count, I wondered why they didn't pick the gEDA "suite" as their base toolset.

Going in a different direction, Mike Engelhardt of Linear Technology has made sure for over a decade that LTspice is always WINE-compliant. [google.com]It's not FOSS, but it's gratis and it has pretty much become the standard.

Re:Doesn't do simulation(Score: 2, Informative) by terryk30 on Friday February 27 2015, @08:21AM

I wondered why they didn't pick the gEDA "suite" as their base toolset.

Me too. I've been able to do some nice work in that. For those unfamiliar with gEDA, here's the project's homepage [geda-project.org]. For a quick impression, the tutorial [geda-project.org]. BTW gerbv [geda-project.org] (which you may be using to sanity-check your designs from elsewhere) is affiliated with gEDA.

Re:In case you actually want to use KiCAD...Re:In case you actually want to use KiCAD...(Score: 2, Informative) by tftp on Thursday February 26 2015, @07:40PM

Doesn't look very advanced, though. It's more like rewritten Eagle UI, with all its deficiencies. Potentially it could be a good software to have; but my concern is that it is so far behind the modern PCB CADs that it won't get much traction. At the same time incumbents like PADS also have their share of issues - the cost is just one of them.

It's pretty difficult to design a good autorouter, though. The best ones out there exist for 20 years, being incrementally improved for all this time. You cannot route a modern board by hand - unless you have infinite time and infinite patience. Most traces do not require special attention. But other traces are length-controlled, and via-controlled, and layer-restricted, and have width on per-layer basis. Some footprints require this or that escape pattern and escape widths; some areas of the board may have different clearance rules. It's a lot of work, and most of it is complex math.

Re:In case you actually want to use KiCAD...Re:In case you actually want to use KiCAD...(Score: 2) by iwoloschin on Thursday February 26 2015, @10:11PM

Does it need to be advanced? I mean, maybe you're doing very cool things, but for my uses, KiCAD is great. Sure, it's not as polished, but the UI is pretty intuitive, and it's got a very active developer group who seem responsive to ideas, and to help!

For all of my home projects KiCAD is plenty sufficient. Once differential pairs and trace length matching are working, I suspect it will be sufficient for most of my work projects as well. Though, to be fair, part of me just doesn't want to have to deal with a VM to run Windows to run OrCAD/PADS/etc.

Re:In case you actually want to use KiCAD...(Score: 3, Informative) by tftp on Thursday February 26 2015, @10:37PM

It depends on what you are doing. If your signals are limited to 100 kHz (for example) then perhaps nothing else is needed. However in practice you need to align lengths of pin pairs, not just nets; and you need to specify routing topologies. That's typical for DDR routing. I sometimes need blind / buried vias, and via-in-pad is pretty common (with epoxy fill and plating over.) So it all depends; you can make a simple doorbell by writing Gerbers by hand. But if you have some complicated, fine pitch packages then you need reliable verification algorithms that make sure that all the design requirements (clearances, trace widths) are met. As a single, 10-layer PCB in small quantity may cost you $3K each, saving money on a $2K Altium does not look like a smart move. And, as I said, the autorouter is always a work of art. You can always route by hand, but that is extremely expensive. Absolute beginners may want to use entry-level, free, web-based products that some PCB houses offer.

"all of my home projects"(Score: 0) by Anonymous Coward on Friday February 27 2015, @01:14AM

What is needed is an equivalent of ODF (OpenDocument Format) for schematics and board layouts.Unless this package (and its native file formats) are sufficiently sophisticated to serve -ALL- users, it won't achieve the goal--which is interoperability between -ANY- 2 users.

If the file format becomes wildly successful, ALL ECAD vendors will have to support it or be left out in the cold. Great punchline. [xkcd.com]

KiCAD becoming wonderful while being gratis and libre is secondary to the actual goal--though it seems to be a necessary part of the process.

N.B. I've always thought that way back at the start of CAD, the National Bureau of Standards should have specified a file format and said "If you want to interact with the US Gov't, your documents must be in this format".

I saw this on their website the other day and I was very happy to see it. I use KiCad regularly and I prefer it over Eagle. To me, the layout makes a lot of sense and is easier to understand. With just a quick browse of a tutorial I was up and running in a few days. Eagle felt clumsy and its design flow seemed out of order. You did your schematic capture and along the way assigned foot prints and place them as you go. Why people like that design flow is beyond me. I prefer: schematic capture -> check & double check schematic -> BOM generation -> foot print assignment -> board layout. But it has its quirks and annoyances. The branch they call old_stable is from 2012 and is quite stable but is missing a lot of useful features. Old-stable is the version that is in most Linux repositories so people downloading it might feel as if the project is dead as the version dates back to 2012. To make things worse, the download page is called "installing kicad" and the builds are hosted on fugazy looking servers that are absurdly slow (took me over an hour to grab the latest build).

My gripes:They need to revamp the 2D CAD portions of their software to enable better mechanical layout of board edges, component design, placement, layering, grouping etc. When I want to ensure a board edge is in fact 100 mm then I should be able to click the line, and view its length. If I need to change it, I should be able to edit its actual length and easily drag it around and snap it to another edge. Another annoying limitation is you cant have any mechanical board edge at angles other than 90 or 45 degrees. Drawing arcs is beyond idiotic, they need to use a real 2D CAD program to get an idea of how it should be done. Worst part: you are limited to grid spacing. If you have to flip between in/mm good luck getting edges to meet up as they are stuck on a grid. You wind up nudging line coordinates which is a real backwards way of doing things. Real CAD lets you arbitrarily connect lines on or off a grid.The creation of pads is also lacking. It should allow for simple via-in pad placement, odd shaped pads, pads with multiple holes, etc. But it simply doesn't offer that. They need to gut their CAD engine and make something sane. Presently any line segment is shown as a set of coordinates start points for X, Y and end points for X and Y. I just want the damn length and be able to easily adjust it. You have to do math to figure out line length or use the so-so measuring tool. Working around these limitations forces you to develop a convoluted layout strategy that is incredibly inefficient.

Here is an example of the lame 2D CAD engine:I have a DC-DC through hole power supply from CUI. I download the datasheet and open it on my second monitor. You have a grid with an origin and the ability to switch between in/mm on the fly. The power supply is lets say 15mmx30mm and the pins are on 0.1"/2.54mm centers (standard). Its easy to lay out the pads. But then you want to add the outline of the case so you know its physical size on the board or you want to make it part of the silk screen. Good luck. I often find myself tediously drawing things on paper breaking out the calculator, etc just to figure out how to place the lines relative to the pads so everything is aligned. I normally work from zero and then draw my lines. But the insanity doesn't end there. If I now need to measure the distance of pads to edges, I cant. There is no friggen measuring tool. I have to draw a line and right click on it a few times until the dumb cursor realizes its on a line and check its properties which are just coordinates. Then work from there.

I use a 2D CAD program called Graphite, made by Ashlar Vellum*, for most of my layout and mechanical drawings. I wish I could draw foot prints, export a DXF and import them because I can bang out a footprint using Graphite in minutes vs an hour. They appear to be working on it as it shows up in the File menu but is grayed out. If the KiCad team took a page from Graphite then KiCad would kick some serious ass. If they used a Graphite like 2D CAD engine then you would cut design time down to less than half. Seriously.

The latest build is much more robust and they have bought the footprint and component editor to the main launcher which is how you manage a project. In old-stable you had to launch the PCB layout editor and open the foot print editor from there. Quite annoying. But it is still lacking in some very basic features and still includes the same awful default component library that has friggen silk screen marking over pads. What a blunder.

I have been very tempted to clean up the entire library and submit it back to the project. Many of those foot prints are also poorly named; e.g. R1 is a name of a footprint. WTF is an R1? And since most of the devs are French, you have a sprinkling of French in some of the descriptions and names.

What they really need is an online repository for people to submit footprints and components. So if I want to place a Phoneix Contact combicon terminal block, I can search the repository from within KiCad and load it into my project directly. If no such component exists for my part, I can create it, verify it and submit it. Though, I see that a community submission system can quickly become flooded with shite footprints. I have my own library I have built up over time and it can be tedious to constantly download data sheets, figure out dimensions from sub-par drawings. If someone else did the dirty work, awesome (and mfg's have some crap drawings in their documents). And none of that half-assed eagle -> kicad conversions that are often broken or incomplete.

I just finished a board design a few weeks back and sent it out to Futurlec (Decent quality, dirt cheap, but sloooooow turn around and poor communication. ) The majority of the time spent was creating foot prints. The actual layout, routing and schematic capture was only a few hours. I hope CERN gives it the shot in the arm it needs.

Eagle felt clumsy and its design flow seemed out of order. You did your schematic capture and along the way assigned foot prints and place them as you go. Why people like that design flow is beyond me. I prefer: schematic capture -> check & double check schematic -> BOM generation -> foot print assignment -> board layout.

Most workflows start from the central library. You build your schematic with known good components; each of them consists of a schematic symbol, a footprint, and a link to the ordering system (usually a company-specific component code.)

I am unsure how you could draw the schematic first and then, at a later step, assign footprints - not only this has to be an endless source of mistakes; it also creates confusion, as a 8-pin symbol, for example, can be used (unintentionally) with a 8+1 pad footprint - and then you end up with an unconnected bottom paddle. The library workflow prevents this mistake because each part that you insert into the schematic is valid and self-contained.

I am unsure how you could draw the schematic first and then, at a later step, assign footprints - not only this has to be an endless source of mistakes; it also creates confusion, as a 8-pin symbol, for example, can be used (unintentionally) with a 8+1 pad footprint - and then you end up with an unconnected bottom paddle.

I agree that it can really come back to screw you. It did happen to me. But that was because the KiCad DRC (design rules check) is severely flawed. I can for instance drop a transistor into my schematic and then assign it a DIP 8 foot print. In reality I should have the freedom to do so as you could be using a DIP transistor array. In schematic capture, unconnected pins must be designated as so by placing a no connect on them (basically an X). If you fail to denote unconnected pins as unconnected, it fails the schematic capture DRC.

BUT here is where KiCad needs to get its shit together. If I assign a DIP 8 to a 3 pin transistor symbol on the schematic, the layout tool DRC does not list the remaining five unconnected pads as an error. That should be reported to the user. And there should also be a method of selecting that foot print and then place the same NO-CONNECT X on them to bypass the DRC for special cases.

I believe this design flow stems from the fact that in reality PCB schematic capture and layout is nothing more than a list of connections from one component to another. And many of those devices share the same foot prints (DIP, SOIC, QFP etc.) So a small ARM u-c can re-use the same footprint as a CPLD or another 100 pin QFP device. So they decided to unbundle components from foot prints. It makes sense to large degree for a small project to start simple and allow easy footprint sharing. But it also can come back to haunt you if you are not extra careful.

KiCad does have a footprint filter that can be used to assign one or more foot prints to a device which helps users ensure they have the right foot print. But being an OSS project, they don't have that as a priority. And to top it off the component to footprint assignment program is very, very broken in its latest release.

I just checked their latest build. They must be non-functional alcoholics as there is no way the new footprint names are in any way intuitive. They are asinine and overly verbose for no reason. They are also STILL lacking a search tool for foot print names. I hope someone puts a stop to this pathetic permanent beta phase. IMHO they need new project leadership.

The author of the article hit the nail on the head with this line: The project is stuck in permanent beta. I am not moving from old-stable until they fix this mess.