Why Choose KiCad over Eagle?


The input and display of coordinates should be selectable by the user, with the intended origin (and maybe the coordinate orientation) stored in the board file.

I want to be able to send my board files to fab houses and not worry that they don’t have the latest patches. That means keeping the file format backwards compatible, so no changes to the coordinate system saved in the files. Nor would I change the internal representation to avoid cascading breakage.

It’s the user display and input interfaces that would have to change. Anything that reports a coordinate to the user, or accepts a coordinate from the user, should go through a common class. That class applies whatever transformations are required between internal and external representations. The default behavior uses the base class transformation, which results in the current behavior. Want polar coordinate input? Extend the class.

What I haven’t done is dig around in the code to see whether the basics of this already exist, and how painful it would be to make this happen.

BTW, while I’m a hobbyist in electronics and PCB design, “in real life” I’m a professional C/C++ programmer with well over 30 years experience. This isn’t my first time making changes in production code. If I can find time to do this I’ll do it right so it integrates nicely.


And, as the OP, I say, “WINNER!” As the only quirk I HATE about KiCad is the inverted Y- Axis.

Joan, I don’t understand why just changing the display data is such a big deal; everything stays in the same spot, you just LIE to the user that up really means down. The only quirk I can think of is that any interface that allows manual placement, that section of code needs to know which way is up at that point in time.

At the moment, I can’t see how changing the display of the numbers alone causes major problems.

I don’t mind this bit of Off-Topic as it was the main point of contention for an Eagle user that posted that they still won’t budge.


Well, I guess you are going to Kill the Eagle if you do this…



I love Eagle. I’ve used it for 17 years, and I’m used to its quirks. My next hobby project requires a board measuring 6.5 x 6.0 inches (165.1 x 152.4 mm), which I can’t do with the limitations of my paid hobbyist license (160 x 100 mm). Originally I figured I’d do this with KiCad as a one-off. With the change in licensing I could pay Autodesk $65/mo for a month or two while I work on it, but if I wanted to go back to it again I’d have to pay more.

I decided I’d rather make a clean break now. If that means contributing some hours to fix the burrs under my saddle, then I’ll make an attempt. The question is whether I have the time.


You will send Gerber files to the fab house. Yes, there are cheap Chinese fabs which accept EAGLE files or other CAD programs’ native files, but in the professional world we send only Gerbers. I suppose the question is, “do you really want to send original design files to a cheap Chinese fab?”

That said, it is important that the Gerber generation function isn’t screwed up when you change the coordinate system. Generating correct Gerbers is the highest priority of any PCB design program.







In my industry they say “Real programmers write in FORTRAN. And Manly programmers write in Assembly.” Been there, done both. I prefer modern high-level languages.

I’ve had PCBs fabbed from Gerbers I’ve produced. I understand that that process works. It’s important, but not the only way to do things.

Just as there are benefits in working in higher level languages, there are benefits from submitting the native format of the CAD tool to the fab. PCB-Pool (European) takes .kicad_pcb files and they produce gorgeous PCBs with an 8-day turn. Osh Park (US-based, not Chinese) takes .kicad_pcb files and produces boards inexpensively with a 12-day turn.


All power to you. :+1:


That would be a nice thing to have, but someone has to do the work and decide how DXF layers must be named so that they’re processed into the appropriate kicad entities. Anyway, for now I think this thread is derailed enough.


Absolutely, as even the cheap fabs accept Gerber, why risk your layout being corrupted by a wrong software version or different library. Sending Gerbers also gives you some limited protection against your design getting copied.
While a fab could run KiCad, there is little point sending the pcb file instead of the Gerber plots


Have you checked to see that these are all addressed in launchpad/bugs?


So if I send Eagle boards (not Gerbers) to OSH Park that is non-professional? Not sure I agree. Isn’t this really a personal workflow issue?


As others already pointed out there are some drawbacks when sending design files.
The most important one for professional (commercial) designers is that they give away to much information to an untrusted third party. (Might be a problem if you either don’t want to give away knowledge or if your customer does not like it.)

The second problem is that you can not be sure that your board house has the same (eagle/kicad) version and settings. This can lead to many problems. (The least troublesome would be that they can not open your file. Much worse if they open it and something goes wrong without anybody noticing.)


To be fair, there have been several discussions recently about errors on PCBs due to old software reading Gerbers incorrectly. They’re not immune to this.


I would agree that this would definitely be non-professional, it has “hobbyist” written all over it.

Instead of sending them design documents, ie. schematic and PCB layout, you should be sending a proper set of manufacturing documents, ie. gerbers, drill files, etc. And any fab should be able to work with them even if they never heard of KiCad.



Didn’t send them a schematic, but a board file from which the gerbers came.

can’t I import gerbers into pcbnew?

if the fab never heard of kicad or eagle or whatever eda, then one would, of course, have to send gerbers.

Still don’t see the “nonprofessionalism” here.



If everybody agrees on gerbers as intermediate stage for manufacturing information exchange, errors and problems in the process will be good undertood and known.
Compare that to a workflow were the aggregator/fab needs to support a lot of different ECAD formats (even versions of them) with all the problems that those entail…

PDF or html has been widely successful for the same reason - standard interfaces.



somehow I sense you think that I am somehow against gerbers…yet I hope that is not the case. if however, a fab wants to accept eda board files as a convenience for their clients (and presumably they understand that version changes also need to be addressed) then I see that as an advantage for the eda users and potentially less error prone; fewer files needing to be generated, kept in sync and uploaded. I just don’t see the use of such an arrangement as somehow less than “professional”. again, it seems to me to be a part of getting a workflow that is comfortable and works reliably.


Keep in mind that 271 of those 1055 so called “open bugs” are in the state “fix comitted”… The “open bugs” category on launchpad also includes in progress bugs.

In addition you shall keep in mind that everyone can report bugs, which means that there are quite many “useless” bugs. Meaning that there are a lot of strange wishes to do lots of wierd strange things, most of then not closed becasue it could potentially be a good idea, even though it might not be feasible right now to implement in any maintainable way.


Why “should”? Because it’s the way “Real Engineers” do it, and therefore any other way is wrong? Heaven forbid anyone should be labeled a “hobbyist” *spit*.

I’ve had boards fabbed from Gerbers I produced. I’ve had board houses screw up boards where I sent them perfectly good Gerbers (they “forgot” to place SMD pads on a 100-pin TQFP mounted at a 45 degree rotation, even though they were clearly visible in every Gerber viewer I could find).