# All the ways KiCad annoys me



## tangent

I recently started designing a new board. (Nothing on-topic for Head-Fi. Don't get excited.) I had a choice:
  
 1. Continue using my old EAGLE 5 license
  
 2. Upgrade to EAGLE 7
  
 3. Try KiCad
  
 I went with 3, because I'm a neophile.
  
 KiCad's been getting a lot of attention in the maker world lately. It feels like it's about to break out. It's already been pushing CadSoft to react, as with the move to the open XML file format in v6. Lots and lots of people are saying nice things about it.
  
 So, let's see what all the fuss is about.
  
 Oh, dear.  Oh, dear oh dearie me.  This thing blows.
  
 After a couple of weeks with KiCad, I'm re-reading all these KiCad reviews and such and they're like the comparisons between Gimp and Photoshop, or LibreOffice and MS Office. Comparisons written by people who have clearly not spent years using the program they're trashing.
  
 So here I go doing the same in reverse. 
  
 KiCad is very powerful, and it's possible to do professional-level work with it. In the same way that they used to lay out ICs using nothing but a light table and a roll of adhesive tape, there's nothing that stops you from using KiCad to make any PCB you can conceive of. Expend enough effort and you can certainly make it do anything you want. If your situation simply doesn't allow you to pay what CadSoft charges for EAGLE and you're unwilling to pirate a copy — good! — then KiCad is a fine choice.
  
 But let's be clear: If your time is worth money, EAGLE's a bargain. If you spend a solid work week or two a year doing PCBs, EAGLE will pay for itself.
  
 People look at the $1000+ cost of a Professional EAGLE license and freak out, but they're not really thinking things through. Major EAGLE updates come out only every 3 years or so, and it is practical to skip a major release or two. That amortizes to $100-300 per year. We're talking about coffee money, here. If your time is worth money, making up a few hundred dollars a year only requires saving a day or two of work. EAGLE does that.
  
 The primary way EAGLE saves you time is simply by being rock solid. I've been using EAGLE for about a dozen years now, and I don't remember _ever_ crashing the program. Not once. Granted, I'm not a full-time PCB designer, but I think I've given it a pretty fair workout.
  
 KiCad, now... I can not only crash that thing at will multiple ways, I've had a few days just in these past few weeks where I've crashed it half a dozen different ways.
  
 "Sounds like you're using an unstable build there, buddy," you say. Yes, well, they're _all_ unstable builds, because the KiCad people recommend building from the tip of the source code repository rather than use someone else's pre-built binaries. Then when you complain about all this instability, they tell you, "Hey, it's under active development, what did you expect?" It's like a permanent beta test.
  
 An exchange I had with the KiCad devs in the bug tracker yielded a claim that they will be trying to start releasing stable builds in about 6 months. We'll see about that. Meanwhile, CadSoft's been releasing stable builds since 1988.
  
 Software comparisons involving EAGLE often include some complaint about EAGLE's....nonstandard...interface. Oh, it's so hard to learn, they moan. Oh, it's so inconsistent. Oh, command line, how 1980.
  
 It's all just moaning. Yes, EAGLE's interface is a bit weird, but it's a small hump to climb, one that pays manifold benefits. Once you've got the interface down, you can _motor_ through EAGLE. Go watch my old EAGLE tutorials, then realize that a) I am not really an EAGLE expert; and b) I had to slow down to make the tutorials watch-able.
  
 Now let's compare with KiCad:
  

No button to toggle between schematic and board. Worse, on my platform of choice (OS X) you can't Cmd-Tab between the windows, either, because they're all children of the parent KiCad process, and they haven't bothered to hook up Opt-Tab, the standard key for cycling between windows of a single process. I end up having to close out of the PCB editor to go back to the schematic editor, then vice versa to return to the PCB.
When you do make that round trip, you have to manually export and then re-import the netlist. Lame!
If you change a component's footprint in the schematic editor, you have to manually _delete_ the component from the PCB, then re-import the netlist to force the PCB editor to re-check everything and realize the change. Lame squared.
There are at least four different ways of assigning a PCB footprint to a schematic component.
One of the major "pros" for KiCad in comparisons with EAGLE is that schematic components aren't bound to PCB footprints. You can pick from any pin-compatible footprint in the library. It sounds good on paper; I know I missed that when moving from ExpressPCB to EAGLE. The thing is, ExpressPCB had a relatively small part library, so it wasn't really a huge problem to find a suitable footprint. KiCad has a _huge_ library, so it has basically every common footprint under the sun and hundreds of uncommon ones, too. You end up digging through dozens or hundreds of footprints — most of which are incompatible — to find the one you actually need. Granted that EAGLE's way of doing things makes for a bit more work in the library creation process, but once done, you've got a library component that only presents the handful of options that actually exist.
No polygonal selection in the schematic editor, only rectangular. This means that if the parts you need to select aren't on a grid, with nothing extraneous intruding into that grid, you have to make multiple passes to rearrange blocks of parts.
The default behavior of the move tool breaks nets and traces. You have to hold down a modifier key or two to make it do what you _actually_ want, which is to stretch the trace/net out to let the part move. This is simply backwards.
There seems to be no way to change the bend style of a net/trace while drawing it, so if you need the bend to go the other direction from the default, you have to go back near the bend point, click to lay down an anchor point, then continue drawing. In EAGLE, getting the right bend is a few right-clicks away, and you can continue drawing from the point where you paused to reorient.
The Mac UI is still experimental. The Opt-Tab issue I brought up above is just one example. For another, hitting Cmd-C to copy some text in a dialog will close the dialog most of the time due to a bug in wxWidgets that's gone unfixed for over a year.
The inch/mm toggle on the toolbar resets to mm every time I restart the program. The grid resets, too. Clue to KiCad devs: I've got several _terabytes_ of disk space here. You're free to use some of it to, you know, _remember_ things. It's one of the things computers are good at.
Many things in KiCad require more clicks than in EAGLE. For just one example, updating a copper fill when a part moves. In EAGLE, it's already more work than it needs to be: you have to re-run the RATSNEST command, rather than EAGLE just doing this in the background with today's copious idle CPU power. But typing "RAT-Enter" is nothing next to what KiCad wants you to do: zoom out of where you're working, mouse over to the board edge, slow way down to make a precise mouse movement over the polygon's edge (a stark violation of Fitts' Law), right-click, disambiguate the choice of overlapping power and ground planes, go to Zones, and say Fill Zone. Now repeat all that for the _other_ power and ground planes on your board, because the edit you just made probably invalidates one or more of _those_ planes, too. Yeah, that EAGLE command line is looking pretty sweet right about now, isn't it?
Planes aren't on a separate layer, so the "Visibles" panel in KiCad doesn't give you a checkbox to turn them off. You have to use the "Show filled areas" toolbar button which toggles the visibility of _all_ of the copper pours. Want to see one of the pours in isolation? Can't do it in the PCB editor short of temporarily nuking all the overlapping planes, or exporting a set of Gerbers and launching gerbview.
Speaking of gerbview, what's up with all the component program names? EEschema, CVpcb, gerbview, Pcbnew, pcb_calculator...is there some sensible rule that ties all of these things together? I guess they were written and named by different people over the years, each with different naming conventions, and without any central Benevolent Dictator to force them into a common naming scheme. Yuck.
Oh, yes, let's talk about pcb_calculator. One of the few features KiCad has over EAGLE: a calculator that lets you work out trace resistances, among other things. How nice! Except that it won't take PCB trace thickness in ounces. You have to know the actual copper thickness. Seriously?!
That brings us to the other really big feature KiCad has over EAGLE: a built-in 3D mode, so you can see how the PCB footprints are interacting with each other, and the overall design. It's great, as long as someone else has gone and made all the 3D packages you need. They're not only missing some really common ones like SOT-23-6, but also everything uncommon, such as random connectors. And heaven help you if you want to make your own. On the face of it, EagleUp looks like a hassle relative to KiCad's built-in 3D support, but at least if EagleUp is missing a footprint for your part, its output is a SketchUp file, one of the easiest to use 3D modeling tools I know. There's no compatibility or interoperability problems because you're already inside the tool you need to use to create the missing footprint.
Another banner feature you hear about in EAGLE vs KiCad comparisons is CERN's recently-added real-time DRC-aware push-and-shove autorouter. Sounds neat, and it demos beautifully. But it only works in the OpenGL mode, which crashes the Mac build nearly instantly. I was in my most active phase of EAGLE use when CadSoft came out with its first Mac builds: they were flawless by comparison.
  
 Ah, that's enough griping.
  
 Let's have it. Am I just being a crotchety graybeard (get off my LAN!) or are others having as much trouble with KiCad as I've had?


----------



## tangent

Oooh, just thought of another one: when you first create a new PCB from a schematic netlist, it tosses all the parts on top of each other. You have to pick them apart, like some kind of electrical Gordian knot.
  
 Yes, I've seen the command that lets you make the PCB editor spread the parts around so they don't touch, like EAGLE does. The question is, why isn't that the _default_ behavior?


----------



## tangent

Now to say some more nice things about KiCad. Not to be "fair and balanced," but because there are some genuinely nice things about it, things I'll probably miss if I do go back to EAGLE:
  

Built-in Gerber viewer
You don't need to SMASH a part to move its labels around
If you delete the last of a part's labels in EAGLE, they all mysteriously come back; in KiCad, if you hide all of a footprint's labels, they flippin' well _stay_ hidden!
KiCad's bare-bones plain-text file formats look at lot easier to work with in a text editor than EAGLE's ugly XML dialect
Scriptable in Python, rather than EAGLE's proprietary and well-named ULP (that being the sound of one throwing up in one's mouth)
Temporary axis zeroing, so you can get relative distances directly from the status bar, rather than by doing arithmetic as with EAGLE's fixed origin; excellent for positioning PCB footprint pads relative to other reference points on the part!
Edit a part footprint directly from the PCB editor, then save the result out to a new local library. This is one of the true advantages of the separation between PCB footprint and schematic symbol. I just wish they'd add a way to attach a set of PCB footprints to a given schematic symbol, at least as sensible overridable defaults. I get why they can't do that with the resistor symbol, but when I'm making a TLE2426 library, trust me, there really are only 3 correct package footprints you can use here. I don't care that the symbol has 4 pins and SOT-143 is a 4-pin footprint, the part doesn't come in SOT-143 packages!
  
 And now to resume the beatings. 
  

You have to manually tag power and ground nets in the schematic editor with special symbols in order to pass ERC. Why?? In Eagle, the normal power and ground symbol parts from the library have the proper flags on them for this.
When you attach a custom 3D part to a PCB footprint, there's currently a bug that prevents the 3D viewer from finding it unless it's either stored among your standard library, so they're now tangled together, or using an absolute path, so you can't share the PCB file with anyone else, since they're not going to have the same home directory name as you, if nothing else. Or rather, you force them into manually fixing up all the paths to match their local filesystem layout.
Strangely slow UI updates in some cases; needs optimization
For some reason, the PCB editor keeps defaulting to drawing on the bottom layer, no matter what you clicked on previously, or whether it even makes _sense_ to draw on the bottom layer. Click on an airwire in EAGLE near a top-side SMT part, and the trace layer selector automatically switches to top-side copper. Do the same in KiCad and it stays on the bottom side, starting a new line that attaches to nothing. Why??


----------



## Avro_Arrow

All of that is why I keep coming back to EAGLE and recommend it to newbies.


----------



## dsavitsk

tangent said:


> [*] The inch/mm toggle on the toolbar resets to mm every time I restart the program. The grid resets, too. Clue to KiCad devs: I've got several _terabytes_ of disk space here. You're free to use some of it to, you know, _remember_ things. It's one of the things computers are good at.




To be fair, Eagle makes me resize the g** d*** Control Panel every time I start it which has come to drive me crazy of late as the project du jour is buried off screen in the list.

Thanks for the review. I have come to really like and appreciate Eagle's quirky interface, and I kind of wish other programs would be more similar. For instance, if Word would allow me to turn on "bold" and just touch everything I want to bold, it would be great.


----------



## PeteLearing

I just joined especially to reply to this. Oh how exciting...
  
 Quote:


> No button to toggle between schematic and board.


 
  

 Alt-Tab works fine on Windows.


  


> Worse, on my platform of choice (OS X) you can't Cmd-Tab between the windows, either, because they're all children of the parent KiCad process, and they haven't bothered to hook up Opt-Tab, the standard key for cycling between windows of a single process. I end up having to close out of the PCB editor to go back to the schematic editor, then vice versa to return to the PCB.


 

  
 OS X isn't particularly well catered for. None of the developers seem particularly interested in it. I wonder why?
    
 Quote:


> When you do make that round trip, you have to manually export and then re-import the netlist. Lame!


 
  
 That's actually the way many CADs have worked right back to day one. It's not my favourite way of doing things but I can live with it. In reality I hate software that changes things without me specifically telling it to. So maybe I do prefer it after all.

    
 Quote:


> If you change a component's footprint in the schematic editor, you have to manually _delete_ the component from the PCB, then re-import the netlist to force the PCB editor to re-check everything and realize the change. Lame squared


 
  
 Well it's not automatic, but you don't have to delete the footprint. You can just change it in the PCB editor. If you don't it will throw up an error. It won't just forget about it.

  


> There are at least four different ways of assigning a PCB footprint to a schematic component.


 
  
 Which is twice as good as only two ways of doing it.
   
 Quote:


> One of the major "pros" for KiCad in comparisons with EAGLE is that schematic components aren't bound to PCB footprints. You can pick from any pin-compatible footprint in the library. It sounds good on paper; I know I missed that when moving from ExpressPCB to EAGLE. The thing is, ExpressPCB had a relatively small part library, so it wasn't really a huge problem to find a suitable footprint. KiCad has a _huge_ library, so it has basically every common footprint under the sun and hundreds of uncommon ones, too. You end up digging through dozens or hundreds of footprints — most of which are incompatible — to find the one you actually need. Granted that EAGLE's way of doing things makes for a bit more work in the library creation process, but once done, you've got a library component that only presents the handful of options that actually exist.


 
  
 If you set it up properly it will only show the ones actually possible.
  


> No polygonal selection in the schematic editor, only rectangular. This means that if the parts you need to select aren't on a grid, with nothing extraneous intruding into that grid, you have to make multiple passes to rearrange blocks of parts.


 
  
 Granted. A valid gripe.
  




> The default behavior of the move tool breaks nets and traces. You have to hold down a modifier key or two to make it do what you _actually_ want, which is to stretch the trace/net out to let the part move. This is simply backwards.


 
  
 It might be what _you_ actually want to do. It doesn't mean everyone else wants to do it the same way. I prefer it the way it is. If they changed it, there would be just as many people grumbling about it being wrong the other way. Pressing a modifier key is hardly a difficult task.
  




> There seems to be no way to change the bend style of a net/trace while drawing it, so if you need the bend to go the other direction from the default, you have to go back near the bend point, click to lay down an anchor point, then continue drawing. In EAGLE, getting the right bend is a few right-clicks away, and you can continue drawing from the point where you paused to reorient.


 
  
 Press the slash key, like it tells you in the manual. Or right click and select "Switch track posture" - The one with the slash at the side of it 
  




> The Mac UI is still experimental. The Opt-Tab issue I brought up above is just one example. For another, hitting Cmd-C to copy some text in a dialog will close the dialog most of the time due to a bug in wxWidgets that's gone unfixed for over a year.


 
  
 It _is_ experimental. OS X is a bit of a lemon. Not much software does work on it and not many people are interested in making software that works on it
  




> The inch/mm toggle on the toolbar resets to mm every time I restart the program. The grid resets, too. Clue to KiCad devs: I've got several _terabytes_ of disk space here. You're free to use some of it to, you know, _remember_ things. It's one of the things computers are good at.


 
  
 Mine works fine.
  




> Many things in KiCad require more clicks than in EAGLE. For just one example, updating a copper fill when a part moves. In EAGLE, it's already more work than it needs to be: you have to re-run the RATSNEST command, rather than EAGLE just doing this in the background with today's copious idle CPU power. But typing "RAT-Enter" is nothing next to what KiCad wants you to do: zoom out of where you're working, mouse over to the board edge, slow way down to make a precise mouse movement over the polygon's edge (a stark violation of Fitts' Law), right-click, disambiguate the choice of overlapping power and ground planes, go to Zones, and say Fill Zone. Now repeat all that for the _other_ power and ground planes on your board, because the edit you just made probably invalidates one or more of _those_ planes, too. Yeah, that EAGLE command line is looking pretty sweet right about now, isn't it?


 
  
 Or you could do it the proper way: Select the zone tool (one mouse click). Right click in the drawing area (another mouse click), select "Fill all zones". Three mouse clicks total. Job done. For all planes. The latest version has a shortcut. Press B, job done. Or hit the DRC tool. That will also force a zone redraw.
  
 The Eagle method looks positively complex in comparison.
  


> Planes aren't on a separate layer, so the "Visibles" panel in KiCad doesn't give you a checkbox to turn them off. You have to use the "Show filled areas" toolbar button which toggles the visibility of _all_ of the copper pours. Want to see one of the pours in isolation? Can't do it in the PCB editor short of temporarily nuking all the overlapping planes, or exporting a set of Gerbers and launching gerbview.


 
  
 Or, again, you could do it the proper way. Make whichever plane layer you're interested in the active layer (click it in the layer selector). Right click and select "Hide all copper layers but active". You can now see your plane and no others. Three mouse clicks. No need to "nuke" anything.
  


> Speaking of gerbview, what's up with all the component program names? EEschema, CVpcb, gerbview, Pcbnew, pcb_calculator...is there some sensible rule that ties all of these things together? I guess they were written and named by different people over the years, each with different naming conventions, and without any central Benevolent Dictator to force them into a common naming scheme. Yuck.


 
  
 Is that even a serious gripe?
   
 Quote:


> Oh, yes, let's talk about pcb_calculator. One of the few features KiCad has over EAGLE: a calculator that lets you work out trace resistances, among other things. How nice! Except that it won't take PCB trace thickness in ounces. You have to know the actual copper thickness. Seriously?!


 
  
 Yes, seriously. Most of the developed world uses copper thickness in microns. Your preferred terminology looks positively 19th century to me. Ounces per square foot? Seriously?
  
 Most of those gripes are simply incorrect.
  


> Let's have it. Am I just being a crotchety graybeard (get off my LAN!)


 
 Yes.


----------



## tangent

petelearing said:


>





> I just joined especially to reply to this.


 
  
 Thank you.
  


> I hate software that changes things without me specifically telling it to.


 
  
 If you change something in the schematic, you _did_ tell it to change something. It's perfectly sensible that the board should immediately change as well.
  


> you don't have to delete the footprint. You can just change it in the PCB editor.


 
  
 This is why it's a problem for the same operation to be in four different places. It is especially bad when each of the places is an incomplete replacement for the other, so that they're not interchangeable. "Well, if you want to change the footprint in Case A, you want to do it over here, but in Case B you want to do it over there instead." It's confusing.
  
 I didn't initially assign the footprint in the PCB editor, so why should that now be the best place to re-assign it?
  


> > There are at least four different ways of assigning a PCB footprint to a schematic component.
> 
> 
> 
> ...


 
  
 So eighteen places to change the same setting would be even better, then?
  


> Quote:
> 
> 
> > ...You end up digging through dozens or hundreds of footprints — most of which are incompatible — to find the one you actually need..
> ...


 
  
 I just dropped an OP275 onto a new schematic.
  
 If I try to assign the footprint from the schematic editor's Component Properties window, I get the library browser, which just lets me choose from every footprint in every library. This is even worse than how I described it in the original post, since it isn't even filtering by pin count.
  
 If I run CvPcb from the schematic editor — which, by the way, is another gripe, since CvPcb is a major component of KiCad but is no longer one of the buttons on the project screen — I get 2,058 possible footprints in the rightmost pane by default. I have to tell it to filter by pin count, since it isn't doing that automatically. Now it drops to 55 pinouts, many of which are clearly wrong: DC-DC converters, XLR connectors, transformers... So apparently the KiCad stock libraries are not set up "properly."
  
 If I assign something random in CvPcb, then open the board in the PCB editor and re-load the netlist, then tell it I want to change the footprint from the PCB editor, I get a dialog box that just offers to let me type in the name of the footprint. Yeah, like I know the names of all 2,058 footprints.
  
 I was hand-waving when I said "four ways," but certainly one of those must be by editing the *.kicad_pcb file, which probably presents the same difficulty as editing from the PCBnew GUI.
  
 So, how do I set this component up "properly?"
  
 I looked at Analog Device's OP275 datasheet, and they only offer this part in two packages: SO-8 and DIP-8. I expect a solution to this problem to provide a choice of just those two footprints.
  


> > The default behavior of the move tool breaks nets and traces.
> 
> 
> 
> ...


 
  
 Really? More than half the time you move a schematic symbol or a PCB footprint, you want all the traces/nets connected to it to break?
  


> If they changed it, there would be just as many people grumbling about it being wrong the other way.


 
  
 Only if there is an even split of people who want moving a part to break all connections.
  
 I suspect there is a very _uneven_ split, so that while there may be some weirdos who grumble, they'd be in the minority.
  


> Pressing a modifier key is hardly a difficult task.


 
  
 The complaint is that the un-modified action should be the one most people want most of the time. I believe KiCad gets it wrong in this instance.
  


> right click and select "Switch track posture"


 
  
 Thank you for the tip. One of the reasons I posted this was to make use of Cunningham's Law: the quickest way to get the right answer on the Internet is to post the wrong answer. 
  
 However, KiCad still has a problem here. "Posture," really? I didn't know traces had a posture. I right-clicked and scanned through the hotkey list before posting my criticisms, many times. I never even had the slightest inkling that I had a problem with posture.
  
 Presence is not the same thing as visibility.
  


> OS X is a bit of a lemon. Not much software does work on it and not many people are interested in making software that works on it


 
  
 Are you trolling, or what?
  
 Nearly all software for Linux works on OS X, too. Since Linux is a major KiCad platform, and by all relevant measures is a _smaller_ desktop computing platform than OS X, why is it not "experimental," too?
  
 In addition to all the software that ports over smoothly from Linux and Unix, OS X also has a large dedicated software library. There are about 22,000 apps in the Mac App Store alone, plus a great many more available direct from their developers. (Source)
  
 Apple is the #3 PC maker in the US, by volume, and somewhere in the top 10 worldwide, as I recall. By any measure, it is a major player. Dismissing Apple is just plain ignorant.
  


> Select the zone tool (one mouse click). Right click in the drawing area (another mouse click), select "Fill all zones". Three mouse clicks total. Job done. For all planes


 
  
 Okay, yes, that's easier. It's still about as much work as "RAT-Enter," but at least it gets you into the ballpark.
  
 I question how discoverable this is, though. It isn't the "Zone Tool," it is the "Add filled zones" tool. I was supposed to guess that the first step toward re-filling my zones is to tell KiCad that I want to add another zone?
  


> Press B, job done.


 
  
 Now that's a genuine improvement over EAGLE.
  
 It should still re-fill all the planes whenever you move a component within them, though. We have plenty of CPU power these days that we can do this live.
  


> Make whichever plane layer you're interested in the active layer (click it in the layer selector). Right click and select "Hide all copper layers but active". You can now see your plane and no others.


 
  
 EAGLE lets you see the planes in isolation, without the traces.
  
 Hmmm, just thought of something else: I don't see a way to knock a hole in a plane in KiCad. In EAGLE, there is another set of drawing layers where anything drawn acts as a mask for the drawn plane in the corresponding layer. Does such a thing not exist in KiCad?
  
 If you don't know why you would want to do this, it's because the parasitic capacitance set up by a plane can be a problem to sensitive nodes in the circuit, such as around the inputs of an op-amp. It is often convenient to fill an entire layer of the board with copper except in a few key areas.
  


> Is that even a serious gripe?


 
  
 It is to someone who appreciates Macintoshes and OS X: we value consistency of purpose and clarity of design.
  
 It is sloppy to have so many different styles of program names in a single suite of programs. It's like submitting a handwritten report done in a mixture of pencil, black ink, and two different shades of blue ink. Argue that the information is all there, and that the grammar and spelling is perfect all you like, it's still pointlessly inconsistent.
  


> Most of the developed world uses copper thickness in microns.


 
  
 Wonderful for you.
  
 I guess you're just going to dismiss the entire US, the same way you dismissed OS X, too?
  
 I don't think I've _ever_ seen a US board house refer to copper thickness in microns.
  


> Most of those gripes are simply incorrect.


 
  
 I welcome your further corrections.


----------



## PeteLearing

> I welcome your further corrections.


 
  
 There is little point. I suspect you will now say whatever you think necessary in order to win an internet argument at any cost. The fact that you are wrong will not stop you.


----------



## jcx

there is no right vs wrong on "likes"
  
 but education on why/how examples given to support the opinions aren't technically correct help everybody
  
 I haven't tried Kicad in years but I didn't "get" its work flow then, still see from others comments evidence that it is unstable/immature
  
 no official stable release is to me evidence of project immaturity - only a toy for other programmers - shows lack of commitment to actual users with real world expectations, requirements 
  
  
  
 I don't like Eagle's UI assumptions that much either - but I did in a few hours see that I could work with it, then went from that cold start to a 300+ component 4 layer smt board layout that only required 2 cut/jumps in less than 2 weeks


----------



## PeteLearing

jcx said:


> there is no right vs wrong on "likes"


 
  
 Spot on, couldn't agree more.
  
 But there *is* right vs wrong when someone states categorically that a certain thing cannot be done, when in fact it can, or when they state that it takes about 15 complex/fiddly steps to do a certain simple task when in fact three mouse clicks will achieve it. I could go on, but you get my drift.
  
 I have the full Eagle licence, Altium and Proteus (all courtesy of work). I just happen to prefer the way KiCad works. That is a "like". A mere personal choice and no more right than anyone else's. But to say a software package cannot do something, when it clearly can, or that it is far more complex to achieve than it actually is, is not constructive, unfair to the developers, and unfair to anyone who was thinking of giving it a go.
  
 It's not perfect by any stretch of the imagination, but neither are any of the others.


----------



## tangent

petelearing said:


> But there *is* right vs wrong when someone states categorically that a certain thing cannot be done, when in fact it can, or when they state that it takes about 15 complex/fiddly steps to do a certain simple task when in fact three mouse clicks will achieve it. I could go on, but you get my drift.


 
  
 I am a long-time EAGLE user who went out and decided to try moving to KiCad. I wrote up my thoughts after two weeks of work with it. You came along and made some corrections. I acknowledged those corrections and thanked you for them, too. Why are you continuing to harp on those initial errors?
  
 Move on.
  
 If you disregard my postings because they may contain errors or opinions that don't match yours, you are doing KiCad a disservice. You should be viewing it as valuable intelligence: this is how a long-time EAGLE user perceives KiCad. If you think that has no bearing on KiCad's future development, you are basically telling us that you don't care what we think. That's no way to increase the KiCad user base.
  
 You seem to be emotionally invested in KiCad, whereas I have no skin in the game with EAGLE. I bought my EAGLE 5 license in 2008. I've _long_ since amortized its value to zero. That's why I went looking at KiCad in the first place.
  
 If you want to help out KiCad, it's far better to pass along tips and workflow ideas than to attack those who don't fall instantly in love with the thing.


----------



## dsavitsk

tangent said:


> I bought my EAGLE 5 license in 2008. I've _long_ since amortized its value to zero. That's why I went looking at KiCad in the first place.




Caring whether you have gotten your money's worth is an example of the sunk cost fallacy.


----------



## tangent

dsavitsk said:


> Caring whether you have gotten your money's worth is an example of the sunk cost fallacy.


 
  
 No, it isn't.
  
 The sunk cost fallacy talks about losing propositions, where the sucker keeps increasing his investment in the hopes of getting a payoff.
  
 If you buy a new EAGLE license today, then immediately switch to KiCad, that is simply foolish. You didn't get any value out of it first.
  
 My comment is the exact opposite of that situation: I bought my license so long ago and got so much use out of it that I no longer care about abandoning it. I do not need to worry about my prior investment. I am no longer invested in EAGLE.
  
 Oh, I guess I still have some custom libraries, but I can convert those. There's a fair chance I won't need to convert all the parts anyway, since I don't expect to keep using all the same parts in the future that I used in the past.
  
 An example of the sunk cost fallacy in this case would be if I _hated_ EAGLE, but decided that I _must_ upgrade despite the existence of better alternatives, purely because I bought a license once upon a time. Again, that's exactly the opposite of what's going on here. We started this whole thread with me looking into leaving EAGLE. Just because I have decided not to leave doesn't mean I am caught in a sunk cost fallacy. I have simply decided that KiCad is not a better alternative, at least for me.
  
 Another example of a sunk cost fallacy would be if I decided I must continue using KiCad because of my 2 week investment in it. The investment isn't paying off, so I am cutting and running. That is how you avoid falling victim to sunk cost fallacies.


----------



## dsavitsk

This isn't worth arguing as it was a friendly observation, but you gave one type -- where one throws good money after bad. The more subtle version is the idea that because one has invested, one must act upon that investment (essentially the good money being one's time). The standard example being that one has tickets to a play but would rather attend a dinner party, yet feels compelled to attend the play because one has sunk costs (I think that example is in Kahneman). Here, if Kicad were preferable yet you still used Eagle because it had not yet payed for itself, or you had not gotten your money's worth, it would be a sunk cost fallacy.


----------



## tangent

> This isn't worth arguing as it was a friendly observation


 
  
 Philosophy is always worth arguing. 
  
 Buying tickets to a play but doing something else instead is like my example of buying an EAGLE license and immediately abandoning it. You didn't get any value out of either purchase. The only way the abandonment makes sense is if the compensating value of doing the other thing is higher than the value you would reasonably expect to get out of the earlier purchase.
  
 If the point of the play vs. party tradeoff example is that a more pleasurable experience should always be chosen over a less pleasant one regardless of any associated costs, I'd say that sounds like hedonism, not wisdom. Presumably you expected to enjoy the play when you bought the tickets. It is perfectly sensible to consider their cost in deciding whether to abandon the purchase.
  
 To get back to CAD software, somewhere in the range between 0 days of use and my 6+ years of use is a tradeoff point that everyone will have to decide for themselves. As I wrote in the initial post, you might pay off your EAGLE investment in the first week of using it, if it saves you enough time. If you've gotten sufficient use out of your EAGLE license already, you should feel free to go looking for superior alternatives. You are not obligated to jump at the first decent alternative, however.


----------



## dsavitsk

tangent said:


> Philosophy is always worth arguing.




Is it worth arguing that this is not philosophy, but rather economics. 




tangent said:


> If the point of the play vs. party tradeoff example is that a more pleasurable experience should always be chosen over a less pleasant one regardless of any associated costs, I'd say that sounds like hedonism, not wisdom.




The point is not that one should do what is more pleasurable, but that already invested amounts (sunk costs) are immaterial to choices. That is the sunk cost fallacy in a nutshell. One does not have to live by that so long as one is comfortable being called irrational by economists.


----------



## oldAFGuy

tangent said:


> Temporary axis zeroing, so you can get relative distances directly from the status bar, rather than by doing arithmetic as with EAGLE's fixed origin; excellent for positioning PCB footprint pads relative to other reference points on the part!


 
  
  
 Eagle has the *Mark *command for temporary axis marking.  It shows distances from the marked point in XY and polar coordinates.  Very useful sometimes.
  
 You can also turn on all layers and group everything and drag it to some center point.  I do this sometimes with round PCBs so I can either be center oriented or bottom left corner oriented.
  
 One gripe I have with Eagle is that the default PCB outline corner is offset from 0,0.  I don't know why - some historical reason I guess.  I always instantly move it to 0,0 - unless I forget...


----------



## okiro

As an old Eagle user You probably know very well that missing functions, like PCBcalculator - well, chances are that there's an ULP for that. In this case it's called
 "length-freq-ri.ulp" and it:
     "Creates a list of all signals of a board, together with their maximum frequency, length, area, resistance, minimum and maximum width and maximum current."
 User Language Program - ULP means you can program just about any function you might like, and chances are that someone already has....
  
 Don't want to write your own program, just input a long list of commands ? Put 'em in a file with a .scr extension - that's called a script, and the file menu has an option to execute it. Very useful, especially for library maintenance: You can export a whole library to a script and just copy the parts you want for a symbol/ a pack/ a device. Open your own library and just paste into the command field. 
  
 Scripts and ULPs - couldn't live without 'em!
  
 OK


----------

