PCB design: first steps with KiCad

[Eagle vs KiCad part 5]

Having got as far as a complete schematic for my HexMonitor project with Eagle, it’s time to try the same thing with KiCad.

And just as I did with Eagle, my plan is to design my HexMonitor project that takes signals from one eight-bit and one 16-bit bus and display their values on a four-digit, seven-segment display, all through the magic of shift registers.

Also as with Eagle, I’m using a book to ease me into KiCad. Currently I’m reading KiCad Like a Pro by Peter Dalmaris. But I can’t say I’m impressed. It’s amateurishly written, poorly edited and doesn’t instil confidence. So I’m looking around for an alternative. In the meantime, though, it should at least give me some of the basics and it’s likely that I’ll get anything else I need from the interwebs.

FYI, Sparkfun has an introduction to KiCad that might be a better option if you want to know how to get set-up and started. As before, my main intention here isn’t to provide a tutorial but rather to focus on what it’s like to use the software, as the main objective is to decide where I’m going to invest my time and effort – Eagle or KiCad.

For the record, I’m using KiCad 4.0.2 from the stable branch.

A thing of many parts

Just like Eagle, KiCad’s main processes take place in separate windows. Indeed, to paraphrase an old joke from the aviation world, KiCad isn’t a solution so much as a collection of parts flying in close formation.

Most of your time will be spent in the Eeschema schematic layout program and the Pcbnew board layout tool. There’s also an essential footprint editor and a nice-to-have collection of calculators, along with a viewer for Gerber files and more.

All these tools are available from the main program, so there is some degree of integration. Nonetheless, there remains the impression of KiCad having been stitched together from disparate parts.

Here’s an example of that on macOS. Let’s say you’ve opened the main KiCad program, then a schematic in Eeschema and a board layout in Pcbnew. You do your work, save everything and decide to quit. You glance up at the top-left corner of the screen and see ‘KiCad’ in the menu bar. Great, a quick Cmd-Q and you’re done, right? Well no. This only shuts down the specific program you were in – Eeschema or Pcbnew, for example – and it may not be obvious which one that is. You actually have to shut down each program separately, and they all identify as ‘KiCad’ in the menu bar. It’s confusing and clumsy.

And it doesn’t end there. As I write this, for example, I have four windows open – the schematic library editor, the footprint editor (both of those for the same part), the main schematic editor and the main KiCad program. I can’t tell from glancing at the top-left corner of the screen which one is active because they all say ‘KiCad’. Nor does there seem to be any easy way of switching between them. In a proper macOS app I would at least expect a ‘Window’ menu item from which to select any of the windows opened by that app, and the ability to cycle through the windows with Cmd-`. But nope, none of that. This becomes frustrating.

This arises because, like Eagle, KiCad is not a native app. It’s written in C++ using wxWidgets to achieve cross-platform capability, which means that it looks and feels alien on pretty much all operating systems. Overall, the user interface feels somewhat more modern and slick than Eagle’s, but on my iMac there were occasional glitches, such as the text not fitting well in fields in dialogue boxes. What’s more, the icons are not Retina-compatible – I mean, seriously? In 2018? This gives the software a rather home-baked feel that you’ll find either endearingly folksy or annoyingly unprofessional. I haven’t decided yet but I’m inclined towards the latter.

The choice of icons seems limited too, leading to potential confusion. For instance, in the footprint editor, an icon of a open book is used for both ‘Select active library’ and ‘Create new library’. There are very small differences between the two that are easily missed. Similarly, ‘import footprint’ and ‘export footprint’ are nearly identical (one has an arrow on the left, the other on the right). You can work it out if you stop to think, or hover over the icon and wait for the hint to appear: but the whole point of good UI design (and icons, for that matter) is to speed up workflow, not slow it down.

Out of the box

So anyway, let’s get going and see what KiCad can offer me right out of the box. Immediately it was obvious that KiCard’s search facility is superior to Eagle’s, with proper look-ahead searching.

ATMEGA328P microcontroller? No problem. 74HC595N shift register? Present and correct. 75HC165N shift register? Nope, but the 74LS165N version is there and as it’s pin-compatible and functionally equivalent, that’ll do for now. Eurocard 64-pin connector using A & C rows? Yup, right there, although the schematic symbol for this has all the connections down one side, making it slightly too big to comfortably fit in the frame on an A4 layout. I’m going to want to change that.

What about the 4-digit, 7-segment LED display? Uh-oh. There is a similar common anode display in the default libraries, but with some pin incompatibility. It’ll provide a starting point, but I’ll need to edit this part too. That’ll be the subject of the next post.

Most of the parts placed, but some editing to do. (Actually, I’ve already edited the connector on the far right.)

With KiCad, when you drop a piece on to the schematic it places just the one item. The cursor doesn’t remain ‘loaded’ with that part the way Eagle does. Click a second time and the part selection dialogue box opens again, but with the last part selected in a ‘history’ list of the parts you’ve used. This makes KiCad ever so slightly slower than Eagle to plonk down multiple copies of the same part, but overall I prefer this approach – it’s less prone to unwanted parts, if you get my drift.

One oddity: in Eagle, the program makes a stab at naming parts for you automatically. For example, if you place three ICs on the schematic, they will be named IC1, IC2 and IC3. KiCad just has a question mark for the numbering (there’s a function to deal with this when you’re ready). The four shift controllers I placed all had ‘U?’ as the name, which is, apparently, the standard for ICs, although I tend to associate it more with microcontrollers. I prefer IC for chips. Actually, the ATMEGA328P microcontroller was named ‘IC?’. It’s not a big deal to rename components, but so far Eagle’s way of automating this works better to my taste.

Copying a component is quick and easy – just hover over it, press C and put the part where you need it. Kicad is modal to a degree, bot not nearly as much as Eagle. It achieves levels of intuitiveness commonly found on programs from the late-1990s, whereas Eagle still feels like it’s stuck in an age of prog-rock and male hairiness (that’s the 1970s, in case you didn’t know). So far, for me, Kicad’s user interface wins over Eagle’s, but that’s not saying much.

I’ve got as far as dropping most of the main parts on the schematic. But some need to be edited before I can go any further.

» See all Eagle vs KiCad posts »

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.