‘KiCAD and Eagle CAD logos’

The title pretty much says it all. As I embark on a path to learn the fundamentals of circuit design and PCB layout, I started with Eagle CAD because it was in so many of the videos I was seeing and because I’ve been a huge fan of Fusion 360 (another AutoDesk product).

I was so frustrated with Eagle I nearly smashed my keyboard into my monitor – and that’s no hyperbole.

Eagle CAD seems well suited to a highly trained electronics engineer / one who has been doing their job for many years.

The problems started with the very first step – adding a component to my schematic. The search function is right out of the 1970’s. It is case sensitive, requires exact matches (or the explicit use of wildcard characters), and doesn’t use look-ahead or progressive matching. Lots of online comments make the same observations.

As a noob at circuit design, I add a few components, move them around, add some nets, and repeat. I often realize I need to move some components and makes adjustments. My circuits evolve.

Eagle works best when all the components are added and correctly placed first then all the nets are connected. It also works well when all the net labels are decided ahead of time and added in one go.

It’s unclear why Eagle has completely different user interactions to work with a single component vs a collection of components. Moving the latter is … well … an interesting process.

On the topic of “different user interactions” I really wish “left click” and “right click” was consistent in Eagle. Sometime left click selects and starts the correct action but sometimes it only selects. I have no idea why there is a difference and worse is I have no idea which behavior I’m going to get. The right mouse button seems appropriate to get to a context menu. Often it does. But under some situations the right click triggers some secondary behavior of the current operation. Since I don’t know what these secondary operations are, the behavior is always a surprise – and not a pleasant one.

Seasoned electronics developers may work this way. A hobbyist – at least this hobbyist – isn’t that skilled yet.

Eagle does excel at the integration of electrical circuit component, component footprints, and PCB layout. As long as both the circuit and the PCB windows are open, they effortlessly stay in sync.

PCB trace routing is another area where Eagle and I didn’t get along. Moving components, deleting and re-routing traces, and general editing the PCB was frustrating. (See keyboard / monitor integration, above.)

Moving footprints on the PCB should be easy. It’s not. It takes many clicks to select the footprint. Far too often, the selection gets some individual bit of a component rather than the whole thing. It really really needs an obvious way to filter selections so – during footprint placement – it always gets the whole thing. Switching quickly from moving to rotating a footprint (and back) needs to be as easy as hot-key so the mouse doesn’t have to leave its active position.

When I make some mistake, Eagle beeps. I don’t know what I did wrong. I just hear the beep … lots and lots of beeping. Lots of times the beep is because I’m trying to delete a part of a trace and Eagle thinks I’m trying to delete the circuit connection. FRAKK!! If I’m not allowed to delete the connection – which makes complete sense – then just ignore that and look for the thing I am allowed to delete!

Now, I’ll be quick to point out that KiCAD isn’t perfect.

I am not sure why moving a component and dragging a component are so unique. I expected – if I move a component which already has nets connected – the nets would stay attached during the move. I quickly learned that a drag had that behavior. For me, I pretty much use drag all the time.

Speaking of dragging a component with its nets attached – why is it that adding a net to a component defaults to nice orthogonal lines but dragging a components just lets the nets run however they need to in a direct line – at whatever angle occurs?

The workflow in KiCAD is also a bit more laborious. KiCAD components do not integrate the schematic symbol and footprint. This adds an extra step when going from the schematic to the PCB layout. Even more unexpected is the extra step of generating the netlist from the schematic and then importing it into the PCB layout process. It’s acrequired step so why isn’t it done automatically behind the scene. Clearly it is a vestige of the two steps in KiCAD being two separate tools (or products) at some point in history. There is not good reason the user is still required to do these manual tasks.

I’m sure my frustration with Eagle CAD is because I’m not a trained electrical engineer. I’m quick to admit I’m a noob and just learning. Perhaps, one day, when I’m skilled, I’ll switch to Eagle but right now, doing so would be very costly as I continually smash keyboards into monitors in frustration.

Side note: as a UX Designer I see so much potential for both products. I truly hope the respective companies will hire some UX and UI talent and make their products great. AutoDesk’s Fusion 360 is evidence that listening to customers and making small changes for big gains is possible.