KiCAD trial

AlexanderAlexander wrote 07/03/2018 at 04:16 • 8 min read • Like

I really love DipTrace. I’ve used it for a few years now, and I am so familiar with its inner workings that I can be very efficient while using it. The prices for the full version are reasonable, but I use the free non-profit version. While this doesn’t limit layers, it does limit the number of pins to 500. It’s fairly rare that I come even anywhere close to that, but with some projects I start to get worried that I’ll run out.

DipTrace, while professionally made and with a decent user base, is not one of the top CAD programs used in the EE industry. The most common ones you’ll find are Altium Designer (super $$$), Eagle (reasonably cheap), Mentor Graphics PADS, Cadence Allegro/OrCAD (also $$$),  and now, to a degree, KiCAD. While there have been a few attempts at open-source EDA software over the years, KiCAD is the first to have some widespread adoption. Helped by a team at CERN who not only started using it, but also assigned staff members to actively develop it, it has grown out of being a difficult to use, obtuse and frustrating tool into something that more and more designers are switching to. The fact that it is OSS means there are no restrictions on board size, number of layers (they go to 16), or pin count. The downside to every OSS project, of course, is that with so many developers all over the world working on a project, it can move more slowly and take longer to become a polished product. This was the #1 concern of many designers. Dave Jones of the EEVBlog mentioned on the Amp Hour many times that he had played with it and didn’t like it. He struggled with the installation process, the fast updates and constant version changes, and, naturally, the unfamiliarity.

Main window of Kicad

Many of these problems have been fixed over the last year or so. They now use a stable version, which is good for everyday use, while maintaining a nightly version which updates more frequently. They’ve also polished some of the rough edges, and made the UI a bit easier to use. The main window now has a more logical flow, and shows you all the tools available with a description of each. All your saved project appear on the left-hand side, using a traditional folder hierarchy format. This makes it easy to see all the things you’re working on. I find it interesting that KiCAD have chosen to go with very odd file extensions. For example, their PCB layout files had a .kicad_pcb file extension. This would prevent backwards compatibility with very old operating systems, though that’s not much of a concern these days. I guess it’s important to make sure you avoid extension collisions with other applications.

The Eeschema capture tool in KiCad

I was also pleasantly surprised with the schematic capture. It’s fairly easy to figure out without reading any introduction or tutorials, though it still retains some of the obtuse heritage of its early versions. The biggest example of this, which seems a very odd quirk to me, is that it does not number the component designators as you add components. So when you add an IC, it is labelled as U?. Resistors, R?. Same for all components. You actually have to run a separate tool once you’re finished doing schematic capture to enumerate all the designators. I cannot figure out why you would want to separate that process out. Most EDA software does allow you to do a renumbering if you don’t like the way things have been numbered, but they always have numbers by default. This makes it easier to manage netlists, especially if you have multiples of the same chip. I haven’t gotten into any advanced schematics yet, so I’m not sure how this will turn out in the long run, but besides that quirk the toolbars and UI is laid out quite nicely. Everything has a fairly logical flow.

One of the constant annoyances that I put up with for quite a while before somebody suggested how to fix it is the way KiCAD zooms and pans. In DipTrace, when you scroll the mouse wheel, it uses the position of the cursor on the screen as an anchor point, and zooms relative to that point. So for example, if the cursor is near the top left of the screen, and you zoom out, it will zoom out away from that point. The reverse is true for zooming in.

Uncheck “Center and warp cursor on zoom”

This is how I end up doing a lot of my panning in DipTrace — I just zoom away from one area, and zoom into another. You can always pan (with the right-click, in DipTrace) but it’s not often that I use it. KiCAD has this annoying default of centering the mouse pointer every time you zoom. It also, for some strange reason, has pan set to middle click. Clicking down the mouse wheel is usually reserved for actions not taken often. I know they wanted to keep the right button free for opening context menus, but most CAD softwares use it for panning. If you are used to using zooming as a panning tool, this is an extremely frustrating setting. It took me a while to find the culprit (mostly because the menus are still a bit obtuse) but if you go to Preferences -> Schematic Editor Options and uncheck Center and warp cursor on zoom, it ends up with a behaviour quite similar to DipTrace, which elicited a huge sigh of relief from me. EDIT: I just realized today that this option is not sticky – ie, every time you restart the software this will be checked again. However, you can use the Save Preferences option under Preferences, and this appears to save these options into the project file. Why on earth this isn’t saved as a global option… I have no idea.

Laying out a PCB in Pcbnew

So I laid out a basic Pic32MX dev board in the schematic capture tool, and then I wanted to try laying out the PCB. In DipTrace, there is a menu option for this — Convert to PCB. Simple, right? Well, in KiCAD, you have to not only enumerate the components (as outlined above) but then you have to export the netlist, open the PCB layout tool (Pcbnew) and import the netlist. I don’t understand why they don’t have these two processes just communicate with each other directly. What struck me as strange, though, is that the option to import the netlist is not under File -> Import. Instead, it’s a button on the toolbar labelled NET. It seems an odd placement for such an important step. However, things got worse from here. Things like changing the width of traces while routing is non-obvious. The actual routing algorithm is strange — when you click to add a point on the trace, it continues to move that node around while you route to the next node. In DipTrace, when you click, it locks that node in place. Why would I want it to keep moving? I’ve decided that this is where I want the trace to curve — just leave it there! If I make a mistake, I can edit it afterward. Or can I? I can’t seem to find the trace edit tool anywhere! Now granted, I haven’t spent a whole lot of time with KiCAD yet, and believe me — I really want to like it. The developers just need to do an overhaul of the interface, especially in the PCB layout tool. They should spend time using Eagle, DipTrace, Altium and gEDA, because I bet that’s where over 90% of their user base come from. If they do a few small things to make users feel familiar, it will go a long way to improving the user interface. One of the best suggestions I’ve heard is to add preset keybind maps that match the major EDA softwares. I know that Altium users in particular use a LOT of keyboard shortcuts. Having to re-learn a whole new set of shortcuts can be a real pain, especially if you are using both tools on different projects! I kept hitting keys by instinct, because my workflow in DipTrace has been drilled into my brain.

Overall, I find the software passable. I didn’t talk about the library editor, but it was actually quite good as well. I was told that, as with most EDA software, you really do need to use your own hand-made libraries. This is a major sticking point for a lot of designers — they’ve meticulously made component and footprint libraries for their tool of choice, and these are not compatible with any other software. So you end up duplicating a lot of work, which is never fun. The built-in library is poor to mediocre. Some of the categories are very well filled, while others have noticeable gaps. Many categories are confusing (why have microcontrollers as a separate category? Just put them under their manufacturers!) and incomplete. So I went and created the component symbol for the PIC32MX270F256. It’s a 44-pin QFP, which is a very common footprint, and of course they already had the footprint in the included library. This is nice because then you only have to do the schematic symbol, and not the painstaking work of creating PCB footprints!

If you’re looking for open-source EDA software, look no further. gEDA has and will probably always be for advanced users who have too much time on their hands, and all other major EDA software is proprietary and license fees can be high.

Me? I’ll be sticking to DipTrace.



Alexander wrote 07/03/2018 at 04:31 point

Disappointed with the image insertion tool! No matter what alignment I choose, they always end up in the centre with the captions misaligned.

  Are you sure? yes | no