• suicidaleggroll@lemmy.world
    link
    fedilink
    arrow-up
    8
    ·
    3 days ago

    Kicad should be great, but they’ve made a number of insane UX decisions that make it really unusable in practice. Horizon is actually based on the pretty good Kicad engine but it fixes most of the UX mess.

    Do you have an example? I use KiCAD pretty regularly, and while they do have some odd defaults for a lot of their tools and keybindings, I rarely run into one that can’t be changed/fixed in the settings.

    • FizzyOrange@programming.dev
      link
      fedilink
      arrow-up
      1
      ·
      3 days ago

      I haven’t used it for a very long time but IIRC if you drag a component in the schematic view, by default it leaves all the wires behind!

      I also recall they have a super confusing file format (a .pretty directory or something? Wtf is that?). I note that LibrePCB claims one of its features is a sane file format, presumably in response to that.

      • JustEnoughDucks@feddit.nl
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        14 hours ago

        That is true.

        However, the alternative is altium behavior where it drags all of the wire connections with you, so if you move anything attached to an IC or the IC itself, you get dozens of shorts immediately.

        They both have pros and cons. I actually prefer kicad’s way because it will never lead to unintended un-ERC-discoverable shorts.

        I have used both KiCAD and Altium regularly for years and there are many things that KiCAD simply does better but it is missing a ton of QoL things.

        The one thing that I don’t like about KiCAD is that some shortcuts don’t have an alternative right click or toolbar menu item, which makes them undiscoverable unless you browse shortcuts.

        I really like librePCBs approach to library management. Multiple pinouts for schematic symbols (meaning a BGA and QFN can have the same library item) and the categorization.

        Though I can’t tell if they have reusable footprints and are able to simply reference them to a schematic symbol which is one of the nice things in KiCAD over altium

        • FizzyOrange@programming.dev
          link
          fedilink
          arrow-up
          1
          ·
          13 hours ago

          I meant in the schematic. You can’t get shorts there.

          The one thing that I don’t like about KiCAD is that some shortcuts don’t have an alternative right click or toolbar menu item, which makes them undiscoverable unless you browse shortcuts.

          Yes this is exactly the sort of thing I mean. Unfortunately the developers are unwilling to accept that these UX issues are really issues.

          Though I can’t tell if they have reusable footprints and are able to simply reference them to a schematic symbol which is one of the nice things in KiCAD over altium

          Wow, I’ve never used Altium but surely you don’t need to remake the SOIC8 footprint (or whatever) for every SOIC8 component? Even Designspark PCB doesn’t make you do that. Or did you mean something else?

          • JustEnoughDucks@feddit.nl
            link
            fedilink
            arrow-up
            1
            ·
            edit-2
            11 hours ago

            Nope, I mean in schematics. You can absolutely short two lines together. It will just silently merge them into a single net so it won’t show up in ERC. If you have an IC with 8 pins on each schematic symbol side in altium and drag the component one unit down, 7 and 7 pins will be shorted together (as an example) silently and become two nets.

            As far as footprints:

            You don’t technically need to, but altium’s spaghetti code makes things break so often and my company had some troubles with that so they recommend making a duplicate every time.

            Not to mention that searching for the correct footprint is accomplished 3 different ways and each way is partially or fully broken so you pretty much need the exact sequential footprint symbol number to sort and scroll all the way to find it. It is horrific. No organization at all.

            • FizzyOrange@programming.dev
              link
              fedilink
              arrow-up
              1
              ·
              11 hours ago

              I mean in schematics. You can absolutely short two lines together.

              Ha ok well that’s crazy too. But obviously there’s a sane way to do it where wires do stay connected but nets don’t automatically merge just by moving components.

              • JustEnoughDucks@feddit.nl
                link
                fedilink
                arrow-up
                1
                ·
                9 hours ago

                True, but I have never seen an ECAD software that has implemented that because that opens up a whole other can of buggy worms of intentionally trying to connect nets and guessing the intention of the user. When do you push the net and when do you merge the net? Does dragging a net label connected to a net to intentionally attach it to a second net to connect the two not work due to pushing? When do you decide when dragging a net is an intentional connection vs not during the drag? When you drag a component, do all nets and connected components get dragged with it or do they push each other into a jumbled mess of traces jumping over each other like what sometimes happens with push behavior in layout routing? I think it is a pretty difficult problem to solve.

                That’s why I personally like KiCAD’s choice just to not pull nets with component moving, but to each their own.

                • FizzyOrange@programming.dev
                  link
                  fedilink
                  arrow-up
                  1
                  ·
                  7 hours ago

                  It’s been a while since I’ve made a PCB so I can’t remember what Horizon / Designspark PCB do, but this is a solved problem.

                  When do you push the net and when do you merge the net? Does dragging a net label connected to a net to intentionally attach it to a second net to connect the two not work due to pushing?

                  You merge nets when the user explicitly connects them (i.e. they are drawing a net and they click on another net).

                  I like how Simulink does this best - they fade wires when they cross without connecting - looks nice and makes connections obvious.

                  https://microcontrollerslab.com/wp-content/uploads/2019/01/20-single-scope.jpg