← Back to team overview

kicad-developers team mailing list archive

Re: Feedback on 5.1


Hi Wayne,

We have crash reporting code just about ready to merge so it will be
available in nightly builds as soon as it's merged.  I doubt that it
will make it into the 5.1 branch but it is possible.

Once it's considered good, I would encourage its inclusion; as I said, it should make bugs easier to find.

  3. Common: I am still frustrated that the key combinations for similar
     tasks are not the same. For example, to place a wire in schema, it's
     shift-W while in pcb it's shift-X.
We have so many accelerator and hot keys assigned that it's getting
difficult to make changes but we can take a look at this one. It
probably makes sense to unify these even though they are referred to as
different operations in the schematic (wire) and board (route) editors.

I have similar issues with the duplicate action, which is sometimes 'c', 'd', command-'d' and sometimes unavailable as a keystroke but present in the context menu.

My point about named shortcut/keymaps was aimed at making a unifying change easier; give the current keymap(s) a name - "Keycad 5" for example - and then make a new named "Kicad 6" keymap with the best bits of current but simplified and extended as appropriate. A simple keyap editor (would be surprised if that's not available open source somewhere) could then be used to adapt the shipped keymaps to the user's desire.

Thus someone who is used to the current setup doesn't have to change but can if they wish extend it as they desire. Someone coming in fresh, or ready to change, can try the new map and experiment.

  4. Common: I am still frustrated that some task combinations aren't
     possible: duplicate doesn't work on wires or connectors, drag
     doesn't work on graphic lines or components, etc.
I'm assuming you are referring to the schematic editor.  Most of this
will be addressed in version 6 with the new tool framework.  I'm not
sure what you mean by duplicate.  The repeat feature (Insert key) does
work with wires, symbols, and bus entries).
Yes, sorry, "common" wasn't right. However please be aware that most laptop users and many desktops don't have a usable Insert key.
  1. Kicad: I would love to see a setup kicad libraries action (probably
     not limited to an installer) which configures the library settings
     and installs libraries to match. The reason is that my understanding
     is that because the library files are being updated (great) that can
     make a given project dependent on a given issue of library (witness
     recent change of location of pin headers). I think it would be best
     therefore to not assume a user will have just one copy of the kicad
     library, but potentially several, maybe even one per major project.
     In this case, relying on a "system" library (as is true for
     /Libraries/Application Support/kicad on mac) makes no sense.
I'm not completely sure what you mean here but there is discussion about
implementing some type of library configuration tool of some type to
handle most of the issues you described above.


I want kicad to understand there are libraries which consist of schematics, footprints, 3d models and more, which should probably be handled as a triple rather than completely independently. I think it appropriate to give this triple a name, e.g. "Kicad 5.1", "Acme Corp", ... and probably have a last modified date and perhaps other things (copyright etc?) in metadata that is easily inspectable from the UI.

I want the user to be given the choice on install where to put the standard library (i.e. a select folder action) and for the paths to be set up appropriately from that point without the user having to understand path specs or the difference between file types.

I want a kicad user to be able to clearly inspect the source of a component (sch or pcb), and whether any components are using "out of triple" parts (i.e. a footprint from Kicad, a 3d model from Acme). Such wouldn't be an error, but might be and it should be easy to locate in a large project.

I want a kicad user to be able to define one or more library triples as the default to use, and for component pickers to make it easy to see which triple a part is being selected from - perhaps using colour.

I want a kicad user looking for a component that is not present in the current configuration for a project to find out whether the component exists in another available library. E.g. if you are intentionally using Kicad standard lib for this project, but have Acme Corp's library installed, then you could ask Kicad to discover components in the not-installed library; if found you would then have to do something else to use the component, should you chose.

I would like, but can see it's a "stretch goal" for kicad to have a web registry of components which people could plug into, in the manner of the registries used by "pip" or "composer" or "npm" tools. Preferably don't reinvent wheels for this!

I mentioned deleting library parts elsewhere: I was envisaging an action that, given a working kicad project, would pare down the libraries it was using to just those parts of the library used by the project, so as to make a minimal library configuration for that project. I was thinking of this because it would help with distributing projects such that the project files had no dependency on what if any library a kicad on another system was using. If the project files themselves will do this, then of course the library is not required. However, it might be helpful to have an "export components as library" to make a minimal library from a project.

  2. Kicad: A subsidiary to the above would be to have an action that
     prunes a given library install to those files required by the
     current project, rather than all files. Given we're using Git, the
     pruned files could be replaced with a suitable "git reset" command.
There is no git plugin for either symbol or footprint libraries although
it has been discussed many times.  Of course you can always remove
libraries from you global symbol library table.

I wasn't thinking of a git plugin, but my current config has kicad pointing at a git working tree of the kicad library. If this were the normal thing to do (perhaps with use of a shallow checkout) then, behind the scenes, a user can be offered "update library from net", "reset library to factory settings" and similar actions. I'm not suggesting anything automatic, or that git itself should be exposed, which are probably more confusing to most people than helpful. And of course the rest of Kicad knows nothing of this.

  2. Schema: Could we also have an unmake sheet action, which deletes the
     sheet after placing the content of the selected sheet into the
     current one as if "move" was selected, so the next thing is to click
     to place?
If by unmake you mean undo, this is a very difficult technical challenge
due to the way complex hierarchies are handled.  We are hoping to
implement this during v6.

I meant an action that, given a selected hierarchical schema, would copy all elements of that schema into the current schema, and then delete the sub schema. In other words, it is the opposite of "make schema from selected components".

This probably wouldn't be doable if the selected schema was itself one of multiple instances, in which case the action would be disabled.

  1. Pcb: Is there a concept of an "air wire" - a link to let the
     connected-ness calculations know a wire exists off-board (on another
     board, as an actual cable, or something else)? If not could we have one?
There is no concept of "air wires".  All nets must be on the board being
laid out.  Pcbnew does not support routing multiple boards in a single
project.  I'm sure we could we do this but I don't see a lot of utility
in it.  If we did, it would be something that would be way down the road.

A pity - you don't need multiple pcbs... just a need to use an actual wire on a pcb. Or even (as in my case) a design which connects to an SBC which supplies power to multiple pins of the bus connector; unless you can, on your own board, connect those multiple pins together, you will end up with "unconnected nets". On a two layer board such connections are not easy and there is strictly no need, so my design has 1 unconnected 3.3v net on it.

  4. Pcb: is there a chance of a smart snap - where the editor looks for
     things to line up the cursor with (e.g. while moving 1 wire it looks
     to see if there is another wire nearly in line with it, or while
     moving a component it checks to see when this component is 1/2 way
     between two other components?)
I'm not sure what you mean precisely mean by this.

A feature implemented in many graphic design tools to make aligning and distributing items quicker.

While moving a thing, the program is checking the placement of other things you might wish to align or distribute with, and offers visual feedback (often changes of colour, or dimension/arrow lines) to represent the fact that if you stopped moving "here" the thing would be distributed in the indicated way. So for example if you moved a component, when it was evenly spaced between two other components you would get two dimension arrows, one linking each side to the neighbouring box.

In the graphic design community it is a standard feature.



Follow ups