Hacker News new | past | comments | ask | show | jobs | submit login
KiCad 4.0.0 is Out (kicad-pcb.org)
135 points by craigjb on Dec 4, 2015 | hide | past | favorite | 37 comments

I've designed a dozen or so boards using KiCAD, some in commercial production. You definitely have to get into its way of thinking, but once you do KiCAD works very well (as long as you only need design-rule checking and not more complex simulation). Using keyboard shortcuts allows you to work quickly once you learn what they are. I haven't tried the new version, but from the previous stable release the feedback I have is that it needs better component and footprint management. As an open source project it should be easy for users to not only use components (this needs work), but also to contribute new ones. If you make a component locally there should be an automatic offer to upload it to an online component repository. The other thing is that I wish I could edit component fields in something approximating a spreadsheet view. I always maintain a separate BOM spreadsheet to track things beyond reference number. I'd like to list component IDs directly in KiCAD, but some (especially passive components) have very long names that clutter the schematic and silkscreen. I'd like the ability for component names to have "display" and "full" views, with the schematic showing the former and a generated BOM showing the latter. Ideally more fields would be built in too, so it wouldn't be necessary to add keys for extra fields. Something like: description, chemistry / type, package, mfg, part number mfg, part number mouser, value, tolerance, qty, reference, unit ($), ext ($), 1k pricing ($), ext 1k ($), datasheet, note

This flowchart captures the KiCAD experience pretty well (though the "PCB Done" step is decidedly more time consuming than its symbol suggests):http://docs.kicad-pcb.org/en/getting_started_in_kicad.html#k...

Just a heads up, at least in the latest version you can add extra fields to components in eeschema. There are a handful of scripts out there that take these extra fields and generate more useful BOMs with them.

KiCost is one and bomtool (https://github.com/cpavlina/bomtool) is another.

bomtool has more of what you are looking for, where for passives you can specify a value, tolerance, package, etc it will just search digikey and pick a component that works.

The other things you mentioned I 100% agree with. more advanced DRC is something that a lot of people ask for. Not sure it will happen any time soon though.

You should turn that comment into a bunch of RFE's. That would be the quickest route to see these things realized.

Does anyone have a good resource for learning to design PCBs? I have a breadboard with some sensors that I want to make a PCB out of, just so the wires are tidy, but I watched an Eagle tutorial and it looked like there are tens of easy to make mistakes that will ruin your board. I'm not sure if that's true, but if it is, does anyone know of a resource that will at least teach me how to make this simple PCB avoiding the most common errors?

It's not really a tutorial, but there are some nice tips here: http://www.allaboutcircuits.com/technical-articles/practical...

For a prototype PCB fab, http://www.oshpark.com is my favorite.

This is actually a real good guide to go along with your link, which is also good -- it mentioned Kelvin sensing as the second item, haha -- for young players: http://physics111.lib.berkeley.edu/Physics111/BSC/Readings/O... Don't expect to be designing 6 layer stack-ups or anything but this + Horwitz might get someone up to speed fairly quickly

Has anyone here done Chris Gammell's Context Electronics? https://contextualelectronics.com/

I took his class and really enjoyed it. By the end of it you'll be confident with KiCAD and likely be working on your own collection of parts and footprints (e.g. https://github.com/pepaslabs/KiCADParts). He also gives beginners good insight into how to read datasheets, how to select parts on digikey, etc. Making boards like this will be easy for you: https://github.com/pepaslabs/ProgrammableLM317

Edit: Also, supporting any of his efforts makes you feel good, considering all he has contributed to the EE hobbyist community (contextualelectronics.com, kicad.info, the Amp Hour podcast, etc.). He and Dave Jones (EEVBlog) are the superstars of the hobbyist community.

Good advice here. I haven't used KiCad yet, though this thread might finally spur me to try it. I've been using a super simple program called FreePCB for really simple analog stuff that can be routed by hand.

The thing that gets sent to the board fab is a set of files in "Gerber" format. So, the Gerbers are your last chance to confirm that the boards will be what you want. I suggest using a Gerber viewing program and look carefully at all of the files to make sure that they agree with your conception of what you expect the board to look like.

Finally, whatever fab house you choose, read all of their instructions and design rules, both to confirm that your board has a chance of being made, and because it's educational.

I've been happy with www.pcbfabrication.com for several runs of boards. I know people who go to a different house for every order, shopping around for the best price, but that just adds one more level of effort and worry for me. So I'm loyal to a good supplier.

I'm not sure about resources for learning how to design PCBs; I was lucky and had direct instruction from a very experienced ECE. However, I would like to note that I had great experiences with 4pcb.com/Advanced Circuits for small (1-5 board) batch production. The prices are definitely not as cheap as outsourced PCBs but the turnaround time is great (a couple of days). I even called them up at 3:30 A.M. EST and reached an engineer on the manufacturing line that was eager to answer my questions! When I used them, their student discounts were very attractive. Even earlier than that, they used to hand out free pizza coupons to student customers! :)

This is a pretty good and quick read from Dave at the eevblog: http://www.smitselectronics.com/assets/files/Library/PCB%20D...

Thank you!

Would anyone use Kicad/Eagle these days if he/she has access to Altium Designer?

Would anyone use Altium, KiCad, or Eagle if they had access to OrCAD, Allegro, or PADS?

Having used all of those tools, I can say that KiCad and Eagle will remain relegated to the low layer count, and at most moderately populated PCBs. Altium still has issues with large designs, but it's got its advantages, it's very easy to work with industrial designers within the Altium ecosystem. Altium also supports some decent auto-routing and DFM tools but does not have a simulator of any kind.

Cadence's OrCAD and Allegro offerings, and Mentor Graphic's PADS suite have tools for everything from designing with microvia (laser etched single layer vias) to highly configurable constraint management tools that allow for configuring some very powerful auto-routers and interactive tools. The big two tools also have simulators like PSICE, and integration with RF design tools like Keysight ADS, Genesys, Momentum, Hyperlynx, and HFSS. If your design has any RF components or high speed buses like DDR, PCIe and USB, you need to run your designs through these tools to verify your design. Eagle, and KiCAD are great for breakout boards. Altium can be used for some pretty simple products. But I'd never use anything but Cadence or Mentor Graphics tools for anything that had a signal that operated at more than 50MHz.

I think your Altium experience might be a little stale. Microvias in Altium are really easy since at least three or four years ago. It also supports basic SPICE simulation, but I've never used it. I use external SPICE and RF tools for most of my simulation needs. I've had good success designing RF boards in Altium and the only reason I would want to use Mentor Graphics would be if I had some massive digital design with high speed buses everywhere. You get what you pay for, but Altium is a solid tool at a decent price.

KiCad also has support for microvias and blind/buried vias in this release. There are a few high speed design tools (trace length tuning and differential pair routing) that were added and I expect more RF support will come in the next release or two.

I recently switched from Altium Designer to KiCad, because while I do have access to Altium Designer, I wanted it to be more accessible.

KiCad is quite good, once you get the hang of it and the differences between Altium. I was able to put together reasonably complicated boards (OSH Park level tolerances) without a problem. If you want to do stuff like DDR routing and the like I don't think it's up to par, but most hobbyist projects (well, most projects in general) are very suited to KiCad.

I even designed an entire PCB on it from my Novena, which was pretty neat (2nd generation open source hardware!)

The oddest thing is that there's no built in standard part creation wizard, there's an online tool for it but it's a bit less than ideal.

As somebody doing this as a hobby, I'm not willing to sacrifice software Freedom for possible workflow efficiency improvements. Even if I was designing commercially I'd be reluctant to subject myself to the vendor lock-in of proprietary software. And for the kinds of boards I make, KiCad is more than powerful enough, especially with the new push/shove router.

In a word: yes. "Has access to" needs to be defined. Is it at work? At school? Your own purchase?

I like to think long-term and be independent. I'd hate losing access to an essential tool because I change jobs or finish school.

If I purchase something myself, I also think long-term. What if I progress to larger or more complex designs (EAGLE becomes expensive quickly)? What if I don't want to pay upgrade fees?

So yes, there are legitimate reasons to use KiCad even if you "have access" to a more mature commercial package. I don't think there are any reasons to use EAGLE, though.

> New s-expression based pcb format (.kicad_pcb)

Rock on KiCad

How does KiCad compare to Eagle?


Obviously, it's free and open source, with no board size / layer limitations. On the other hand, Eagle is still much more widely used in the DIY community, and most my-first-PCB-like tutorials are Eagle-based. Kicad has for years suffered from the binary release being really, really outdated. Kicad development feels pretty fast-paced.

It has most or all of Eagles features, and some nice advanced features Eagle doesn't have. Especially it's PCB routing support is much better. For example, it supports push shove routing[1] and automatic trace length matching. It also shows the netname on pads (in Eagle you have to use "show" all the time). On the schematic side, It has had hierarchical sheets for many years now, whereas Eagle only gained hierarchical design support earlier this year in version 7. Things like that.

There are minor workflow differences in some places. For example, it uses key combinations instead of typed commands. There's a netlist generation step between schematic editing and board editing, so going back and forth between the two isn't as straightforward as it is in Eagle.

[1] If you're used to Eagle, this may blow your mind: https://www.youtube.com/watch?v=C02D0_kNQeM

The hobbyist community has been switching over to KiCAD, to the point where I believe KiCAD has a significant majority over Eagle in OSHPark orders. A lot of people switched with the new Eagle licensing model, which they put on hold due to backlash.

I'm on support at OSH Park and we're still seeing a sizable majority of Eagle boards, but KiCad is definitely on the rise. I've got the impression that a lot of folks have been turned off by having to get the daily builds, so I'm incredibly excited to see the stable release. I'm expecting we'll see KiCad come to parity with Eagle over the next year or two.

We're also working on being able to take .kicad_pcb files directly, in the same way we take Eagle .brd files now. In the meantime, I wrote up a page with some KiCad screenshots and instructions for how to generate the gerbers and drill files we need. [1]

The major issues we see can be solved by checking the Protel naming format option so we can detect layers correctly, and by putting the board outline by itself on the Edge Cuts layer.

[1] http://docs.oshpark.com/design-tools/kicad/

Laen mentioned on the amp hour podcast a couple of years ago that kicad was the majority at the time. Later on he said that it was just a blip at the time for some reason and eagle became much more dominant.

I wish I could upvote your post more for the middle paragraph. Direct kicad_pcb input in to OSH Park will be fantastic!

Do you see a lot of cloud based boards (Upverter, Altium's cloud component, etc) coming through?

We do! They're way behind Eagle and KiCad, but they're a fair and growing number. Our current challenge is to keep expanding our ability to automatically detect the default gerber naming scheme so it doesn't matter which CAD package you're using. I know we've recently really nailed down the Altium variants (Designer, CircuitMaker) but I'm less sure about Upverter.

One of the downsides of accepting gerber files is that a lot of folks rename to match our suggested naming pattern to be sure the files work, so it can be tough to determine which CAD package was originally used. Plus, we still get gerbers from some rare ones like TraxMaker 2000 or Ranger 3.

FWIW the old lead dev had a philosophy of "everybody should just compile the most recent source" which is why there hasn't been a stable release in a long time.

The new lead dev wants to do stable releases much more often than in the past. We'll see how it goes. KiCad ended up in a "feature freeze" since ~May which slowed down dev for the last six months.

Can you comment on the situation with component libraries for kicad? How does it compare to Eagle?

I've recently tried Fritzing but keep finding that some components aren't available. Defining my own is kind of tedious.

I generally end up using an online tool [1] for high pin count parts. It's not the best though, someday I will write something better.

BTW, in most professional contexts, parts are all created by the engineer - vendor part libraries are pretty rare. I know Altium is trying to change that, maybe soon we will see something similar happen with KiCAD.

[1] http://kicad.rohrbacher.net/quicklib.php

Thanks for the link: very useful!

This release of kicad supports using eagle footprints, but not schematic symbols.

There are quite a handful of component libraries, but you'll probably have to do a bit of digging.

Worse in some ways, much better in others.

The UIs of both are pretty terrible so even on that point. The schematic tools are pretty similar in their capabilities. KiCad's pcb tool has some much more advanced features (mostly added by a group at CERN in the last year) such as a push and shove router, differential trace routing and length tuning which can auto add serpentines, etc. It is not 100% feature complete compared to the old pcb engine though.

KiCad also has some nice user scripts for importing/exporting 3d models for mechanical work now. (search kicad stepup)

All in all, they are close to the same level right now.

A lot of KiCad is in flux right now though because a lot of contributors have come on in the last couple of years. Much of the program is being rewritten/has been rewritten recently. It doesn't seem to be slowing down either.

full disclosure: I help develop KiCad a bit. I tried to be pretty balanced in this comparison though.

Neither tool has a good way to do matched-impedance traces. Both rely on scripting or a plugin to do this, and the feedback is not real-time nor can you make design rules on matched nets.

Also, neither tool integrates smoothly with simulation software yet. One of my pet ideas for a while has been to integrate EEScheme, the KiCad schematic capture tool, with ngspice, an open-source spice engine. The integration would include things like probing voltages and currents in the schematic to make graphs appear. Or, associating spice models with library components.

However, this would also require some way to create "simulation-only" versions of schematics. Typically, you only want to simulate a sub-section of the schematic at once. No other schematic tool, even the big ones (Cadence, Mentor), does this very well yet.

Having just switched from EAGLE to KiCad I think I'm qualified to offer an answer to that question.

The short answer: it is better. If you are considering switching, do not wait, just switch. I should have done this sooner.

The longer answer:

Both tools have drawbacks and the user interface is bizarre in many ways in both of them. That said, KiCad at least is being regularly improved. I got tired of waiting for EAGLE to fix even the most ridiculous UI flaws. It seemed just as if EAGLE wasn't really developed anymore, just stuck way back in the 90s.

My schematics look much better these days. Hierarchical sheets help, too.

The separation of symbols from footprints is a great idea. As a practical example, I already have a small library of Texas Instruments packages (DRC, DRV, etc), which means that I can often just draw a symbol and immediately assign a verified footprint to it. No copying, and the footprints are shared, so if you modify paste coverage once, all parts using that footprint can immediately benefit. This idea is a clear winner.

Routing boards takes significantly less time than in EAGLE. Mostly because of the push and shove router — I don't think I'd even take on some boards I'm making these days without it.

The layers seem to be better organized: you don't get a hundred layers with weird names, the set is clearly defined and it's easy to understand what they are used for.

3D visualization is really great. I didn't think it would be useful, but I can't live without it these days. All the components in my libraries now have 3d models attached, even if the model is a simple cube. This helps greatly when designing small stuff that is supposed to go into real enclosures. Exporting to decent CAD packages isn't quite there yet (you can do it, but it requires significant effort), but the ability to instantly visualize your board helps a lot already.

The library management is as bad as it was in EAGLE. Perhaps slightly better because you can use github repos as sources, but in general it's a crappy experience. I hope this will improve in the future.

Finally, price is an important consideration. EAGLE is not free. If you do anything commercial, EAGLE suddenly starts to be quite expensive, especially if you want 4-layer boards or larger boards. Other commercial packages are even more expensive. So if you are a serious hobbyist who wants to produce small 4-layer boards at OSHpark, KiCad is really the best option.

In general, I see no compelling reason to stick to EAGLE unless you have zero time for learning new things.

I completely agree, and I also wish I would have switched sooner.

The only thing I'd add is that anybody who's thinking of switching should treat it like picking up a new, very different programming language. It took me three weeks with several boards and a video tutorial series to finally get comfortable that I can use the tool without constantly looking up hotkeys and documentation (which is really good).

The thing I recommend is to never assume that the way KiCad is doing something is the only way, and to Google aggressively. A good example is the 'Move' tool vs the 'Grab' tool. I watched a guy nearly swear off KiCad because he only used Move and never Grab, so he was moving wire segments individually. If he'd read the documentation or searched for the answer, it would have been there. These tools are not particularly intuitive.

The best part of taking some dedicated time is that now I have 2-layer and 4-layer templates with my design rules, custom project settings, and a bunch of custom hotkeys. It makes all the difference.

Applications are open for YC Winter 2022

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact