I’ve used Altium Designer for all of my board designs for over a decade. Before that I used Mentor Pads in college, but I’ve basically been a big designer fan since my first job out of college. I think designer is pretty great, and would happily keep using it except for one thing: It’s very expensive! Lately, I don’t have anyone paying my license fee, so I’ve had to branch out and survey other options. I’ve tried Altium CircuitMaker, AutoDesk Eagle, and the open source KiCad, and this article is about my experiences and conclusions.
The TL;DR: I give a hard-pass to Circuit Maker, and I didn’t find a compelling reason to pay for Eagle instead of using the open-source KiCad. I’ve designed a couple of boards now with KiCad, and I plan to keep working with that for the time being. I have heard good things about DipTrace though, and may have to give it a try at some point.
Circuit Maker let me down
Since I have been a long time user of Altium, and they have recently released a free version targetted at maker users, I had high hopes for Circuit Maker. However, they were quickly dashed when I actually started using it.
Essentially, Circuit Maker is a version of Designer with as many quality-of-life features ripped out of it as they could manage, and no file system support; instead they force all your data to their cloud storage. I don’t have any problem with putting personal designs onto their site, but the way they’ve done it makes component/footprint management and version control a nightmare. Some specific shortcomings that I found frustrating:
- Many missing features, e.g. slicing routes.
- No custom hotkeys, and many commands I use regularly do not have hotkeys. For example, “Select physical connection” is super useful, but it has no hotkey, so to use this in circuit maker you have to go up to the ribbon and click a couple of times for every track you want to select. It’s infuriating.
- No spreadsheet view in schematic capture. So how am I supposed to manage all the mfg part numbers and such on my components? As far as I can tell, I have to open their properties one by one to see them.
The nail in the coffin for circuit maker was the terrible user experience of using the community vault. I love the idea of being able to find footprints, but in practice its difficult to navigate. I found the interface un-intuitive, but I can get used to the procedures for creating and committing parts with practice, so that’s OK. The real problems come from some basic limitations:
- There are no comments on revisions, so when I find an error in a footprint and release a new revision to the community, there’s no way to indicate WHAT was changed.
- The process for updating parts that are already in your schematic is basically broken. If the vault has a newer revision created by the same user as the revision in your schematic, then you can use the “update to latest” function to update it. But if the user is different, it fails with an ambiguous message. This means that if I drop a component from another user and then decided I need to change it, I have to delete the component – losing any property changes, designators, etc – and add the new version from the vault. If you have to do this with a lot of components…have fun keeping track of all of that.
- If you have a component on your schematic, there’s apparently no way to extract and edit it. They don’t let you pull components out of schematic/pcb files, because that would mean they’d have to support a library file to put it in. I would expect at least that you could somehow perform an “edit this component” command to find it in the vault, but that doesn’t appear to be the case. In fact, as far as I can tell, there’s no fool-proof way to figure out which component in the vault you have on your schematic. For many part numbers, there are multiple vault components, so you end up having to pick the right one based on eyeballing the thumbnails; there’s no real way to be sure that the part you are choosing to edit in the vault is the same one you have placed already on your schematic. It’s asinine, and a company with the EDA experience of Altium should have never released this.
Most of the time when I came across something I thought I should be able to do and went searching for it on the forums, I found posts from others with the same questions. Altium’s response was mostly a mix of, “we’ll consider that in the future” and, “that’s not really the focus of circuit maker”. Most of these posts were years old.
I designed two PCBs with circuitmaker, and I don’t intend to ever do another. With CircuitMaker, I constantly get the impression that Altium has actively gone out of their way to make my experience worse.
KiCad and Eagle
The next options I tried were KiCad and Eagle. Eagle is not free, but it is pretty affordable for basic boards with the $15/mo option.
Overall, I found KiCad and Eagle to be very similar, and both lacking some of the nice layout features of Designer; Altium Designer is just really good with things like bus routing, intelligent selection tools, snapping tracks to minimum spacing, slicing tracks, etc.
One big selling point for KiCad was the python interface, which allows a lot of flexibility: e.g. Programmatic layout. The cheap version of Eagle comes with board size and layer count restrictions that KiCad does not. They can both get the job done but all else equal I’d rather use the open source option.
I think there is some room for improvement still in KiCad. For example, I’d love to see a better method of associating 3D models with components, and a more user-friendly BOM export option1. None the less, it’s really an impressive open-source project and my hat is off to all the folks who have worked to make it so powerful.
Although I haven’t gotten too deep into it, I got the impression that eagle has better library management tools, which might make it more attractive to an organization. Working just myself on most things, I can be happy keeping my own personal library of components and re-using this as needed.
After I already decided to proceed with KiCad, someone suggested I should check out DipTrace, another reasonably priced commercial option that I hadn’t heard of. At some point I hope to give that a try as well.
KiCad BOM export is generally done by script, so there’s a huge amount of flexibility. But ideally I could simply pick which properties to export as columns in a GUI and be done. ↩