Why do free CAD programs suck so hard?

Some years back, when I wanted to design my first pcb I had a look ad KiCAD and gEDA. I just wasn’t able to make a board. Not just the Interfaces suck but also tutorials were rare and not very helpful. Then I got Target 3001! from a C’T CD and got my first board made within two hours. By the recent stir about KiCAD by Chris Gammel and Dave Jones I thought I’d give it another try.

Well, same shit as 6 years ago. At least I thought so I asked myself maybe I, as a hobbyist am not the target of these packages. Okay but who should use it the when not hobbyists and small companies?
Right now I’ve decided to write down my complaints to get off some air. I just would love to use OSS and not be limited by wtf moments all the way to a simple power supply design.

1. Why cant a footprint be automatically linked to a certain element?
2. Why do I have to see a Netlist if I don’t want to?
3. Why isn’t there a button to switch from Schematic to Layout to 3d-mode and instead there are 3 totally inconsistend programs with no clear naming system?
4. Is KiCAD an anti-thesis to good user-interface design?
5. Am I the one idiot who does not get it?
6. Why are there still (totally inconsistent) libraries and not one big database instead?
7. Why is there an autorouter? Wasted programming time – if hobbyists are the target they will rarely design PC-mainboard-level complex boards.
8. Why is everything so inconsistent?
9. Why does my mouse not do what I expect? (left-click->select, left-drag->move, right-click->menu and so on)?
10. Why don’t I have the skills to make a PCB-CAD program myself?

Really why is that? Are all these projects so engineer-borne and they do not get, that the user-interface is straight out-of hell? All these tools have so many functions but they all got the basics wrong: consistency, clarity, straightforwardness. When I start up KiCad I have no idea what to do. I don’t say, that eagle is better, its more like the grumpy grandfather of those programs. It seems, that all of them follow some kind of late 80ties paradigm: the user has to take a weekend-seminar to get his work done. I have spent 4 hours with tutorials now and my learning experience was not “aha, that how its done” but “whaaaat? thats how its done?”.

So until this is fixed I am stuck with the not perfect, but orders of magnitude better Target 3001! from an C’T CD.

Sorry for the rant guys, I’m just a bit angry at the moment…

11 thoughts on “Why do free CAD programs suck so hard?

  1. Hi Claudio,

    I totally understand your frustration. I am a gEDA user since more than 15 years, and I’ve worked next to someone using KiCAD, but really I cheated and learned the most up-to-date stuff about KiCAD from Dave’s video blog.

    I think you identify several important issues for open source software in general and perhaps KiCAD and gEDA in particular.

    1. Why is everything so inconsistent?
    1. Why isn’t there a button to …
    1. Is KiCAD an anti-thesis to good user-interface design?
    1. Am I the one idiot who does not get it?
    1. Why does my mouse not do what I expect?
    1. Why don’t I have the skills to make a PCB-CAD program myself?
    The UI is inconsistent because many different people work on creating these applications without much if any orchestration or top-down guidance. This is extremely common in all open source projects. I think this is a point which Dave also doesn’t mention in his video blog, maybe because he is used to the reality of a commercial software producer where things work pretty much exactly the opposite – for good and bad!

    I list this question first, because the key thing to remember about open source software is that even if you can not fix the source code to do what you want, you and every other user can provide incredibly valuable feedback about what you would like and how things can be improved.

    So you actually do have the skills to help make a PCB-CAD program, because you know what you want it to work like! That’s all it takes.

    I do not have experience from the KiCAD community, but I hope that they realize how incredibly valuable feedback like that from Dave in his first impressions video blogs and what you yourself write in this blog post is! If you contact them and they reject your feedback, then I urge you to file bug reports in their bug tracker system for things that you feel are bad. If they behave badly then they do not deserve your help and I would request that you come join gEDA and help make it amazing instead. 🙂

    To me it as an outsider of the KiCAD project it is also obvious that there are things to improve. The same is of course equally true for gEDA where I am slightly more “on the inside” albeit not by much.

    The key to successful open source software is that users like yourself who want to use the programs will also help out, to shape the programs into excellence. It’s easy to get tunnel vision as a developer, and the user perspective is really all that matters for any program!

    2. Why cant a footprint be automatically linked to a certain element?
    2. Why are there still (totally inconsistent) libraries and not one big database instead?
    As you write, and as Dave points out, this requires a complex database, and there isn’t one either for gEDA or for KiCAD. There is support for linking elements to footprints in gEDA, as I understand also in KiCAD, but the simple reality is that designing this master database successfully requires a) a very specific software development skillset, and b) specific domain knowledge, ie. ideally a superset of every other existing solution, in order to avoid the mistakes done there.

    Realistically, it will take many years, perhaps decades, before the open source toolchains have such a database. Once they do, I also expect that it will be abstracted so that it can be shared by both gEDA and KiCAD. Meanwhile we have to do extra work, sometimes workarounds, in order to achieve the exact output we want.

    But I think a key point to remember here is that the fact that these tools are completely open is what makes it at all possible to do crazy things like write software to generate large repetitive footprints or elements.

    No doubt the real solution is one big public database on the internet with a CC-BY license for the content.

    Meanwhile, we can at least publish and share the symbols/elements and footprints that we have created amongst ourselves, in order to at least save some time.

    3. Why is there an autorouter?
    I think this is helpful sometimes. A board doesn’t have to be a PC mainboard for an autorouter to help. The real problem is of course that the vast majority of autorouter fans are beginners who do not understand the limits of the autorouter, but IMO that’s not a reason to leave the feature out.

    All the best

    //Peter

  2. I think you don’t need complex cad software to design pcb’s. I use a combination of MS Paint and InfraView. I create and save a .bmp image in MS Paint. This has the wrong DPI so I change it (to 50 DPI) using resize in InfraView. Then I open it again in MS Paint, where each pixel is now a 20mil*20mil square. After drawing my pcb and saving it, I open it again in InfraView where I have the option of printing out the image at it true size.

    • Really? I mean I did exactly that when I made my first pcb but I moved on. For a very simple project this can be okay but when I wanted to move a single transistor it would just take So long to redo the traces. But the bigger problem is, that no-one would be able to follow your design – there has to be both, a schematic and a layout. With a system to interact from both ends.

  3. Hopefully by now you’ve tried CadSoft Eagle. It’s cross-platform and all I’ve used for the past 7 years to make 50+ designs. Admittedly the UI isn’t great but…

    1. Why cant a footprint be automatically linked to a certain element?
    In Eagle, it is. You select the part and package together. When you switch to pcb design, there it is.

    2. Why do I have to see a Netlist if I don’t want to?
    No such concept to distract you in Eagle. (I assume this is some Spice-ism for simulation).

    3. Why isn’t there a button to switch from Schematic to Layout to 3d-mode and instead there are 3 totally inconsistend programs with no clear naming system?

    Eagle has a button to switch between PCB and Schematic view. All in the same program. There’s only one program.

    6. Why are there still (totally inconsistent) libraries and not one big database instead?

    Library management is probably similar in Eagle but at least there are eleventy-billion user supplied libraries and it’s easy to make your own parts. There’s an experimental cloud database for Altium/Eagle/Something-else parts that isn’t quite there yet but I hope some day we get to a point where we can just import this crap off the internet as needed instead of having to fiddle with this silly little files.

    7. Why is there an autorouter? Wasted programming time – if hobbyists are the target they will rarely design PC-mainboard-level complex boards.

    There’s an autorouter in Eagle which I stopped using years ago. Maybe the new versions are better. Occasionally if I’m really stuck I use it and it gives me a hint. Then I undo the mess it made and do it better. Mostly I consider routing as a fun puzzle.

    8. Why is everything so inconsistent?
    Personally, I’ve found the UI insane for various tools like this… Eagle is learnable but it’s doesn’t exactly flow. I just launched Blender and I can’t do *anything* –this from a guy who can usually figure out the basics of anything in minutes. Sketchup was designed by aliens and requires extensive tutorials to bend your mind into the SU way of “thinking”. TurboCad was just bizarre at first.

    9. Why does my mouse not do what I expect? (left-click->select, left-drag->move, right-click->menu and so on)?

    It does, mostly, in Eagle. Although I’d love a more fluid interface, like automatically selecting groups by click-n-drag, or moving things by click-drag, drawing lines/wires/nets similarly. But, it is usable after you get used to the oddness.

    10. Why don’t I have the skills to make a PCB-CAD program myself?

    Another couple of programs you might want to look at are Fritzing and Upverter. For simple stuff they may work out better, I don’t know.

    I’d love to take a crack at rolling my own some day but holy carp it’s a lot of work.

    Anyway HTH.

    Michael
    http://www.bot-thoughts.com

    • Hopefully by now you’ve tried CadSoft Eagle. It’s cross-platform and all I’ve used for the past 7 years to make 50+ designs. Admittedly the UI isn’t great but…

      Yea, I’ve tried it some years ago (I think even before I had broadband Internet :D), right now I use “Target 3001!” because they have no limit in boar-size in their free version, only in pincount (which is unfortunate too, but I’m okay with some limit in commercial software)

      1. Why cant a footprint be automatically linked to a certain element?
      In Eagle, it is. You select the part and package together. When you switch to pcb design, there it is.

      Cool!

      2. Why do I have to see a Netlist if I don’t want to?
      No such concept to distract you in Eagle. (I assume this is some Spice-ism for simulation).

      Yes I’ve even used it at one point, its more like I don’t want to bother with that doing a simple psu, only when doing a filter or something like that.

      3. Why isn’t there a button to switch from Schematic to Layout to 3d-mode and instead there are 3 totally inconsistend programs with no clear naming system?

      Eagle has a button to switch between PCB and Schematic view. All in the same program. There’s only one program.

      Awesome, thats like it should be.

      6. Why are there still (totally inconsistent) libraries and not one big database instead?

      Library management is probably similar in Eagle but at least there are eleventy-billion user supplied libraries and it’s easy to make your own parts. There’s an experimental cloud database for Altium/Eagle/Something-else parts that isn’t quite there yet but I hope some day we get to a point where we can just import this crap off the internet as needed instead of having to fiddle with this silly little files.

      Yes thats it, I want to do a simple “in-program-search” and be able to add other sources and import some selfmade xml (that can be added to a database too). I think target had their db online too, haven’t checked that feature in recent days tho.

      7. Why is there an autorouter? Wasted programming time – if hobbyists are the target they will rarely design PC-mainboard-level complex boards.

      There’s an autorouter in Eagle which I stopped using years ago. Maybe the new versions are better. Occasionally if I’m really stuck I use it and it gives me a hint. Then I undo the mess it made and do it better. Mostly I consider routing as a fun puzzle.

      Hehe yea just like me, I usually do it 3 times over to get rid of bridges, still its so much better than auto routed.

      8. Why is everything so inconsistent?
      Personally, I’ve found the UI insane for various tools like this… Eagle is learnable but it’s doesn’t exactly flow. I just launched Blender and I can’t do *anything* –this from a guy who can usually figure out the basics of anything in minutes. Sketchup was designed by aliens and requires extensive tutorials to bend your mind into the SU way of “thinking”. TurboCad was just bizarre at first.

      Yeah like the feeling I had with the Unreal editor in ’97. But its so strange, I mean 15 years have passed since then and still seem to be not enough UI designers around.

      9. Why does my mouse not do what I expect? (left-click->select, left-drag->move, right-click->menu and so on)?

      It does, mostly, in Eagle. Although I’d love a more fluid interface, like automatically selecting groups by click-n-drag, or moving things by click-drag, drawing lines/wires/nets similarly. But, it is usable after you get used to the oddness.

      Hmmm yeah one can probably get used to that, I just don’t get why (allmost all) CAD tools feel like a Plan9 installation.

      10. Why don’t I have the skills to make a PCB-CAD program myself?

      Another couple of programs you might want to look at are Fritzing and Upverter. For simple stuff they may work out better, I don’t know.

      Thanks for the hint! I’ll have a look

      I’d love to take a crack at rolling my own some day but holy carp it’s a lot of work.

      oh yeah 😀 I would probably end up with something done half the way

      Anyway HTH.

      Michael
      http://www.bot-thoughts.com

      nice page!
      73

  4. OrCAD is the best (If you have the money) but it’s harder to use than KiCad. Target3001 is just wrong (Why can’t you make a Layout connection without an existing Schematic connection?) . I used T3001 (at work) for 5 years and then switched to KiCad.

    • Not too much money in my bag for now 😀
      For me, Target is the “just works” solution right now, but I gotta give KiCad another try.

Leave a Reply

Your email address will not be published. Required fields are marked *

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Anti-spam image