
KiCad: A commitment to freedom - cheiVia0
https://giving.web.cern.ch/content/kicad-development-1
======
adwn
> _Today, KiCad is considered a mature tool for the design of Printed Circuit
> Boards, featuring some capabilities that match or exceed those of costly
> proprietary alternatives._

Two weeks ago, we evaluated whether we ditch our current proprietary EDA tools
in favor of KiCad (my company designs and builds satellite electronics). We
liked the user interface (it's not good, but better than the "professional"
alternatives), the gradual learning curve, and the plain-text project files.
Plus, we're big fans of OSS.

But KiCad has a lot of conceptual baggage: The way tracks, vias and copper
zones are handled requires work-arounds and band-aids even for routine tasks
(this has been known for two years at least), with not simple fix in sight.

The PCB editor has three display modes: Legacy, OpenGL, and Cairo, with
different features (unrelated to graphical representation) available in
different modes, so you have to switch between them from time to time (this
also hints at a lack of separation between graphics and program logic).

There's a bug that prevents laying tracks closer than 0.2mm to each other
(only in OpenGL mode – Legacy mode doesn't care). The "Clean-up tracks and
vias" function deleted some definitely non-redundant tracks, which I only
noticed thanks to the DRC (though a DRC cannot and will not catch everything).

Our conclusion was that for hobby projects and very simple professional PCBs,
KiCad is a great tool, but it's just not enough for even slightly demanding
projects (and I'm not even talking about high-frequency design, EMI analysis,
and multi-person projects).

The developers seem to prefer working on interesting new features like the
push-and-shove router, instead of fixing the basics. Which is fine – it's an
open-source project and they're entitled to work on whatever they feel like.
But unfortunately, this is not how you get to a "mature tool". I wish them all
the best, and we'll take a look at KiCad again from time to time.

Preemptive reply to "why don't you contribute to it?": We thought about
donating to the project, but the amount of money we spend on professional EDA
tools per year would only buy us about 10 day of KiCad developer time (or in-
house developer time) – by far not enough to fix all show-stoppers.

~~~
jpcookie
Most of your post is Greek: tracks, vias, copper zones. I'm not sure how
anyone can make an abstract design for an entire circuit board from scratch,
it how to put one together.

~~~
adwn
> _Most of your post is Greek: tracks, vias, copper zones. I 'm not sure how
> anyone can make an abstract design for an entire circuit board from scratch,
> it how to put one together._

I do not understand what you're trying to say.

~~~
Animats
(Comment moved up in tree as requested.)

------
natashabaker
As someone who has been in the PCB industry for the past decade, it has been
fascinating to watch how quickly KiCad came out of nowhere and quickly gained
adoption as soon as CERN started contributing. After spending years in the
software development of capture/simulation/layout tools for PCBs, I have come
to see that these tools are not easy to create and maintain. Most products in
the market are the product of decades of work.

We added KiCad support for our libraries on SnapEDA about a year ago, and now
it's the 4th most popular tool on there with about 10% using it (after Altium,
Eagle, and OrCAD/Allegro). When we talk to KiCad users, many are startups.
However, I recently spoke with an engineer at a major defense contractor who
uses Mentor Expedition at work and KiCad outside of his job. This is a
sophisticated engineer who has chosen KiCad over the many free options
available in the market. I had the same experience with another engineer at a
medical device company using Allegro at work, and KiCad on the side. KiCad may
not be as fully featured as the others, but it's being chosen as the next best
alternative to these high-cost tools.

I agree that the UX is very quirky but EDA tools in general (other than
Altium) traditionally have quirky interfaces.

~~~
TD-Linux
Thank you for adding KiCad! I was really excited when I saw that SnapEDA added
support. Doing manual parts is always tedious in any tool, and KiCad is
lacking automated generators for some of these - previously, I had been using
an online PHP(?) tool to generate large pin count parts. The SnapEDA license
is also OSHW compatible, so it makes it a no-brainer.

I also first tried KiCad when I no longer had access to an Altium license for
personal projects, and it's been pretty smooth sailing. I imagine the choice
would be even more obvious for users coming from any of the other, worse
tools. One other advantage is that I don't need to run a Windows VM for it. I
even did a PCB design on a Novena, which I suppose made it second-generation
OSHW.

------
aylons
If you live in Brazil (or is willing to come), and want to contribute to
Kicad, São Paulo will host a Kicad hackaton as part of an Open Hardware
Summit:

[http://www.e-hal.org.br/](http://www.e-hal.org.br/) (english version:
[http://www.e-hal.org.br/en](http://www.e-hal.org.br/en))

Javier Serrano, the author of this post, will be there, as will Thomas and
Maciej, two Kicad developers from CERN. The Kicad Hackaton will not be the
only activity, there are lots of open hardware activities through the three
days of summit. And lots of fun!

~~~
dom96
Any similar events planned at CERN? :)

------
iuguy
Everyone who doesn't do PCB design will probably find this a great idea.

People who design PCBs will probably wonder when KiCad is going to fix the
horrific UX bugs, and go back to using Altium or Eagle in the meantime.

KiCad is the StarOffice of the PCB design world. I want to use it, but I can't
justify the time working around KiCad's UX issues.

~~~
aylons
I do PCB design, mostly in Altium, and I'll even add that some of my designs
are of relatively high complexity.

Saying that Kicad interface is horrendous compared with Eagle is, to say the
least, disingenuous. Eagle has a terrible interface, lots of limitations, and
a very strange mental model for design.

Kicad is still far from perfection, and I do believe that the UX must improve.
But even the best tool in this aspect - IMO, Altium - suffers from a lot of
other issues.

------
ENadyr
Have been using KiCad for PCB development for my hardware startup and overall
happy with the choice.

Yes, they have made questionable UX decisions in development but then I've not
tried an EDA tool that got the UX right. For those considering KiCad, but
struggling to do it by themselves, I suggest you either take a Udemy course to
show you the user flow. Or better yet, buy some tuition (with beer or whatnot)
from someone at the local hackspace or similar.

~~~
taneq
I think "decisions" is too strong a word. The UI is heinously inconsistent,
and feels like a bunch of similar tools were crowbarred into a box and called
an application. It's usable once you pick a semi-coherent subset of features
and then ignore the rest, but it takes a lot of trial and error to figure that
out.

Available features and even hotkeys change depending on what 'rendering
engine' you choose? What? Not to mention that the interface conventions
between parts editor, schematic editor, footprint editor, and layout editor
vary significantly for no good reason.

~~~
adwn
I agree 100%. That said, have you used Orcad? When I use it, it also "feels
like a bunch of similar tools were crowbarred into a box and called an
application". From what I heard, the reason for that is that different tools
where actually bought up and bundled together.

EDA tools are terrible across the board; I wonder why that is the case.

~~~
taneq
I think the problem is that it's rare to find skilled software developers who
are also skilled hardware designers (at the professional level, a lot of
hobbyists do both). So you don't get much quality dogfooding going on. Either
the tools are developed by hardware engineers, and the workflow is efficient
but the software is slow and buggy and the UI is inconsistent, or they're
developed by software engineers, and so it technically does what you need but
the workflow is terrible.

------
eb0la
For those interested, here's an interesting open hardware@cern from javier
serrano, the head of development for kikad in cern.

[https://www.slideshare.net/mobile/goshcommunity/open-
hardwar...](https://www.slideshare.net/mobile/goshcommunity/open-hardware-at-
cern-a-quick-introduction-by-javier-serrano)

------
curiousgal
Honest question that might come off as stupid but, doesn't CERN have a huge
budget? I imagine supporting this project can be a reasonable budget entry,
why are they asking for donations?

~~~
_pferreir_
CERN's budget is ~1B USD, which is 5% of NASA's, 25% of ESA's. And I won't
even get started with Silicon Valley big corps.

Considering you have to pay for an electricity bill equivalent to 1/3 of
Geneva and the salaries of >3000 people in one of Europe's most expensive
urban areas, I wouldn't say there's a lot of money left to invest in pretty
much anything.

Source: * [https://press.cern/facts-and-figures/budget-
overview](https://press.cern/facts-and-figures/budget-overview) *
[https://home.cern/about/engineering/powering-
cern](https://home.cern/about/engineering/powering-cern)

------
exabrial
Just used KiCad to design a guitar amplifier, really happy with it.

Now I'm designing a PCB, and what's lacking is good part placing and trace
routing. I feel like there should be a an algorithmic way to do what I'm doing
by hand. It sort of reminds me of the traveling salesman problem.

~~~
pdx
These are called autoplace and autoroute.

They exist, but NONE of the PCB designers I have worked with, all of who have
worked at multiple big name tech companies and still do, use these tools.

Do the work. Even something as simple at a guitar amplifier needs attention to
detail, to route ground currents away from where they can cause noise. Even
something as simple as a guitar amplifier needs attention to the current
handling needs of individual traces. Even something as simple as a guitar
amplifier needs attention to the detail of proper component placement to
minimize inductance where necessary between bypass caps and their associated
IC's. DO THE WORK!

~~~
exabrial
:) Thank you for the encouragement. That's good information to know. I've got
a hand wired prototype, and it seems to work ok, so my PCB is going to be
similar.

That's one nice about (tube) guitar amplifiers: max current is at the power
supply pin, about 72ma, despite transferring 27w or so. So your voltages are
pretty high , but your traces can be pretty thin. The big thing is leaving
plenty of space to prevent arcs.

~~~
nibnib
You also need to allow for failure conditions. If a power tube fails as a
short or low impedance, which will vaporise first: your thin tracks, or your
fuse?

------
andmarios
I visited the donation page and it costs about $500 for 1 developer to work on
KiCad for 1 day.

I do appreciate the transparency, but honestly I think my —small— donation
would be used better in other free software projects unless I had some kind of
vested interest in KiCad.

~~~
db48x
$500 a day is quite inexpensive for a competent developer. Perhaps you
overestimate how far your donation will go.

~~~
ricardobeat
10k/month is inexpensive? That's a SV engineer salary. With open source
software you can have extremely competent developers from _anywhere_ in the
world. Someone in Brazil for example would be thrilled to be paid
US$50-100/day, or even less, to work on OSS.

~~~
kxyvr
Not really. As a rule of thumb, a person at a moderately lean company costs
two times their salary. A person working for the government costs around three
times. The rest of that money goes to overhead, benefits, and taxes.

More specifically, say that $10k a month went directly to someone working at
home who files their taxes as a sole-proprietor. That income puts the high end
of their income in the 28% tax bracket, but most of it is in the 25% bracket.
Payroll tax (FICA) will take 15.3% off the top. State income tax varies, but I
live in one that's about 5%. Then, depending where you are, there's gross
receipts tax, which is about 7% where I live. Add that all together, that's
52% of that money lost. We'll round that to 50%, so now we're at $5k/month, or
$60k a year. Not bad, except we don't have insurance. Health insurance
premiums depend on a lot of factors, but I was seeing about $500/month or
$6000/year. Then, the out of pocket max was $3000, so we need to budget that
number. Note premimums are not tax deductible. That brings us down to $51k.
Also, we haven't saved for retirement. Reasonable companies contribute to 401k
at 10%, which would be $12k for our developer. Most people should probably put
in more, but that looks fine, so now we're at $39k. Yes, there's a tax
deduction for a 401k or IRA, which I ignored, but it doesn't affect these
numbers by a huge amount.

Now, let's take the person working for the company at that salary level.
Income tax still applies, but half the payroll tax goes to the company, so
we're at 25+15.3/2+5=38% rounding up, or $74.4k. We still pay health insurance
premiums, but the last place I worked had them at $100/month, that puts us at
$73,200, or $70,200 if we cover our out of pocket max. Also, the company pays
that portion of the retirement.

In total, $39k vs $73.2k, or almost half. That's a steal for a developer.

And, yes, this is overkill for a response, but I don't think many people
realize how much money independent contractors lose to expenses and overhead.
Yes, there are lifestyle perks and the potential to make more money. Most of
the time, you make far, far less even though your hourly rate makes it look
like you make far more.

tldr; Hiring a KiCAD developer for that amount is cheap and an amazing deal if
they know what they're doing.

------
carriger99
Fantastic initiative. It's amazing how much CERN has contributed back to
society over the years...

------
dbcurtis
gEDA the GNU EDA tools have bern around a lot longer and I use that. It is
worth checking out.

~~~
blackguardx
A long time ago, I used the GNU PCB tool to design a flex circuit. I ended up
having to hand edit the gerber files to get the project done because it didn't
support changing soldermask opening. I think they've changed it since then,
but it was rough for awhile.

~~~
dima55
I've used GNU PCB and gschem extensively. While there's a definite learning
curve, I've found them very usable and produced many boards with great
success. Like you say, maybe you hit some issues that have since been fixed,
but this is another datapoint. As for kicad, it came into existence after I
was relatively proficient with gEDA, and it there never were any compelling
reasons to switch.

~~~
dbcurtis
I'm pretty much in the same place. I have gEDA symbol and footprint libraries
that I like, and the cost of redoing those and climbing the learning curve for
KiCAD isn't justified. Many of my friends use KiCAD, and it seems both have
issues, just in different places. I've looked at the KiCAD footprint library
format, and it is a sad mess. Of course, gEDA's footprint library format also
has limitations of probably equal measure.

In any case, I've done many rigid PCBs and one flex PCB with gEDA and never
had to resort to hand-editing files. That said, I have written my own
footprint creation tools to get exactly what I want. That up-front cost is
part of getting either KiCAD or gEDA to yield the desired results.

As in many things about EDA, libraries are the speed bump that repeatedly jars
your brain case.

~~~
blackguardx
This was over 10 years ago.

~~~
dbcurtis
Yes, thungs have changed a lot in 10 years. Not enough, though. But it is
definately possible to do good work in either gEDA or KiCAD.

