First I will write something about myself.
Electronics, Linux from version 2 and programming. that’s what I do.
Currently mainly for embedded, previously also for Linux/Win, including the use of the GTK library
for 10 years, basically exclusively embedded for various microcontrollers, from 8-bit to large-core 32-bit.
I intend (hopefully) to join the KiCad development team.
I’m starting with usage and testing, and I’ll definitely try my hand at writing plugins
python to facilitate design, but for now I am testing and reporting the problems that I noticed at the beginning.
transparency of the data recording format and a human-readable form is great.
I solved many problems using the Notepad++ editor, but I found many problems,
which require a lot of fiddling around and could be easily and quickly solved at the level of the graphical interface if it weren’t for the little details
causing problems and increasing workload during design.
I don’t have much experience with KiCAD yet, I’m just starting out, but I have experience with other programs and I have some comparisons.
I have met programs that take up to 15 minutes to learn the basics and their philosophy is focused on default.
There are also all-in-one versions, although they are not necessarily transparent and require multiple projects to learn the details.
I am in favor of the default philosophy. And first, I have a few comments related to use.
My comments are subjective, so I would like to ask you to comment on whether you think they are right or what I suggest should be changed.
there is no critical error analysis system. The program crashed twice and there is not even something like coredump that allows you to recreate the cause of the program crash.
After pressing Ctrl+F1, keyboard shortcut help is displayed.
In my opinion, the list should be displayed collapsed.
It’s easier to expand the right group of shortcuts than to collapse all of them one by one to get to the right one.
In their current form, their order is inappropriate in my opinion.
The order should reflect frequency of use.
In my opinion, starting with 3D is a mistake.
the first should be shortcuts for the PCB/SDT editor.
Another problem is the small number of predefined shortcuts.
Many people switch from another software and prefer to define it according to their habits.
However, those who do not have such habits and are just starting to design PCBs will be confused.
I think it would be good to define them according to some logic and let someone change it later if they want.
Many will not change it.
Additional problems related to the lack of definitions of shortcuts - I know from the help that there is a function but I cannot find it in the menu…
example:
Spread horizontally
Unfold vertically
I wasn’t able to assign meaningful keyboard shortcuts because they were occupied by other functions…
heap…
because…
…lack of definitions causes collision problems of the same definition for key combinations of different previously defined functions.
Personally, I see the problem. The shortcuts are all as a single key. or a combination with ctrl/alt/shift
these are a lot of combinations, but not necessarily clear and easily associated.
I must admit that the hotkey system in Altium makes it easier to remember and it could be easier to remember
for example, pressing J C consecutively displays the search window for an element after marking.
how much easier and faster would it be to press:
P C - place Component
P W - Place Wire
P V - Place via
P T - Place Text
A V T - Align Vertical Top
A V M - Align Vertical Middle
A V B - Align Vertical Bottom
A H L - Align Horizontal Left
A H M - Align Horizontal Middle
A H R - Align Horizontal Right
or as in Altium
J C - Jump Component
Saving computing power? It’s not bothersome when zoomed in, but
when scrolling the PCB up-down/left-right there are sudden jumps, which makes me lose orientation
repeating sections of elements.
after selecting several lines in the window, the properties of the elements should be edited in order
for all selected items
for change start x:
start or end max x
for changing end x:
start or end min x
for change start y:
start or end max y
= for change end y:
start or end min y
currently if the paths were drawn parallel but with opposite directions
first up-down left-right
the second one down-up right-left
this change, to shorten them on the one hand, requires separate editing of the parameters.
because when selecting and editing several elements at the same time, one will be shortened from the bottom and the other from the top, although based on the PCB view, we expect shortening from the same side since they are parallel.
When drawing a path, it shows the minimum distance to the object. This is great but:
when catching a path and moving it manually, it would be great if the moved path was presented in the same way.
Additionally, when drawing a path, a cursor with vertical and horizontal lines to the nearest paths of the active layer would be indicated
which would make drawing easier without additional alignments and shifts after drawing the path.
This is why I propose this simplified version to be developed in the future.
If we start pulling an existing path as an extension of a previously existing path then w
two entries often appear in the PCB file and the parameters of the beginning or end of the existing track should be changed until the first change of track direction.
this indicates an error because when we end on a path, the new path connects to the existing one. The problem often occurs when crossing the pad
I have a suggestion for selecting multiple elements by dragging the mouse with the left mouse button pressed.
Only elements, vias, etc. should be selected, not paths on active layers whose center point is covered by the selection rectangle.
Currently, when selecting, I regularly grab elements and drag them. This results in multiple approaches to the selection
I marked several parallel paths and tried to catch the end and extend the paths…
effect: paths have been moved.
I propose a slight change:
if we grab the end of one of the selected paths, we can extend the paths.
if we grab it in the middle of one of the selected paths, we can move the selected paths.
I have a suggestion that comes from experience, although I haven’t seen it in the software I used.
I once designed a high-density multi-layer board and the via flanges became a problem.
on all layers I regularly removed hundreds of flanges for grommets by hand
after changing the layers for the paths, I deleted them again in the appropriate places and added the flanges on a new layer.
then multiple inspections to detect the condition when the path comes and there is no flange…
a little horror and a big waste of time.
For stackup, there are layers where via flanges are mandatory and this is due to technological limitations.
the vias in the remaining layers should receive a collar only after the track has been pulled to the via a
Until then, only the outline as far as the collar reaches should be marked.
New project should launch a wizard that goes through by default
asking whether the board requires impedance control
if so, define the srtackup, define the vias, define the impedances used for the paths and then start the board programming environment.
this will make novice users aware of what to do when designing a PCB
Welcome! Just a note in the structure of the community: this is primarily a forum for users helping users. (I’m not a dev, just around on the forum/discord a lot.) There are devs who frequent the forum, but for purposes of getting started with development there are a couple of places to check out (if you haven’t already):
The gitlab issues on the KiCad project, which includes many of your concerns/suggestions in some form or another already. Issues that are likely to be viable for beginners to work on are tagged with “starter”, just make sure you comment in the issue and/or on the email list before you start work to get guidance or suggestions from the core team. https://gitlab.com/kicad/code/kicad/-/issues
The altium style shortcuts have been discussed before, but there are both upsides and downsides to that style. the feature request includes 7 years of discussion on the topic https://gitlab.com/kicad/code/kicad/-/issues/2031
I’m not sure what via flanges means, can you expand on that? I’m guessing it is related to removing unused pads, for which there is a post processing tool built into KiCad. A more intelligent/designed system would likely require custom padstacks, another long term feature request https://gitlab.com/kicad/code/kicad/-/issues/2402
I quite like the idea of a guided board setup, that might be worth a separate thread to discuss in detail
For selection, make sure to play with the selection filters in the bottom right, along with the layer/appearance hiding in the top right. (Also the long click selection menu to pick items under each other). There are a couple of existing feature requests related to that, but that UX is definitely an ongoing challenge so more ideas are great!
As I noted, these are my personal problems that make designing difficult for me and I am aware that this may be due to my ignorance.
about software properties.
I realize that I can raise issues that have been raised but I haven’t gotten to them.
Once I read the topics you provided me with links to, I will respond and I will be able to clarify my statements.
Sorry, I accidentally wrote collar as it is translated in my language (copper ring around the hole on each layer - ring)
The problem is at the routing stage because after drawing the paths it is of little importance, but during routing the rings may block the paths.
Negative statements do not discourage me. what is more important is that I can contribute something positive. If you noticed something positive in my comments, it’s a good sign.
Thank you for your answer and I will analyze the discussions to which you sent links.
I don’t understand (it is possible that it is because of my not perfect understanding English). For me someone can be confused if there are too many hotkeys, and never by too small number of them.
I was using Protel 3 for 20 years and I have to agree with you - it is easier to remember. But for me this parameter (easier to remember) is not on top of the important parameters of the hot-key system.
For 20 years I was not able to use even a single hot-key without moving my eyes from the screen to the keyboard. When in 2017 I moved to KiCad life has become much easier. When designing PCBs I don’t mix moving and routing. I first arrange group of footprints and then route the group. So for example during routing I practically need one hotkey: X so my left hand finger can be positioned on this key and I can use it without looking at keyboard.
What?
I divide my footprints into blocks (like Ethernet (with ESD protection and socket containing trafo), RS485 (with Surge protection and CM choke), microcontroller (with its blocking capacitors and quartz) and so on). Then (outside of PCB) I design each block to take as small area as possible.
After that I select each block and find a place at PCB for it.
What you write I understand that you suggest that my blocks will be moved into PCB but without all (in block) connections I have already done.
Pay attention to left drag and right drag. We copy the behavior found in many CAD where it’s bounding vs. crossing select depending on how you click drag.
In addition to the difference between Right / Left drag of a selection box, there is also the Selection Filter in the lower right corner of the PCB editor, and the control of layers.
I appreciate and applaud you enthusiasm in wanting to contribute to KiCad, but I also see the “beginners effect”, in which a beginner with KiCad has a strong wish for KiCad to work in the same way as the program they were used to work with. KiCad has it’s own workflow, and it takes some time to get used to that. KiCad is also not perfect, and there are many ways it can be improved (There are some 1500 open issues in Gitlab, and a lot of those are requests for new features). There are a lot of nice ideas in other programs, that can be copied and incorporated in KiCad. But they also have to fit within the way that KiCad works. Posting an idea for improving selections if you’re not familiar with all the options built into KiCad for making selections yet is not very useful. KiCad is a very active project. Each month, around 300 issues are both opened and fixed on Gitlab, and the total number of open issues has been around 1500 for quite some (4+?) years now.
KiCad V6 has about 3 years of development in it, and a lot of people were waiting a long time for it to get released. After V6, KiCad adopted a yearly schedule for Mayor releases, and new features (available in the nightlies) are announced in a new thread each year:
And a more compact overview of new features on the blog when each mayor version is released:
The issue of keyboard shortcuts is quite a serious problem in the field of sociology and behavioral science.
They must be easily associated, sometimes resulting from the sequence of processes.
I learned about the problem quite thoroughly when developing devices for the power industry.
When a man starts using something, he tries to use it (while a woman reads the documentation first).
A good device (software) is when:
the person who will use it and knows the issue for which it is used should master it within 5 minutes.
Oscilloscope example. Is there anyone who has read the instructions? I never did that. I only looked at the table of Sample/frequency and voltage parameters.
The program should be fully prepared for work.
About 10 years ago, we purchased PADS in the company. After starting it, I was shocked. The texts displayed in the program were so bad that it was impossible to read the subtitles. Support said that you need to configure it. Every now and then something went wrong and the support response had to be configured. The worst thing is that the built-in help did not work - tested on 5 machines - the support response works on them. The only support after logging in to the website were long-minute (20-50 min) videos. Nobody has time to search whether a given video contains information that solves the problem. It ended up that this software was never used despite the praised thermal simulation for the designed PCB.
This was the result of a lack of proper initial setup.
In KiKad, it is a serious problem that keyboard shortcuts are not pre-configured as a default set.
Currently, there are functions that cannot be found in the menu and do not have keyboard shortcuts assigned to them.
For PCBs, one of the most important functions is the equation of elements left/center/right, top/center/bottom. Unfortunately, after several attempts, I managed to assign them quite sensibly to the numeric keyboard (the laptop is no longer available) because the basic keyboard already had some shortcuts that would be easy to associate.
The problem, of course, is trying to use software that someone else normally works with.
Shortcuts assigned to 300% will be different…
After all, no one will carry the configuration file on a pendrive and replace it on the computers they visit.
In Altium they solved it in a quite simple way
Generally, this is the equivalent of shortcutting through the menu to a function and running it (for functions that are not used very often).
Often used are single characters or their combinations with ctrl/alt/shift.
My praise is not due to the fact that I use this software.
I found an inexpensive, medium-functional commercial PCB design software that takes 5 minutes to learn!
The same happened with the software that was provided free of charge by an electronic parts distributor.
I’m not a mechanic, but it took me 30 minutes to learn CAD CoreInsight.
You have to take the best solutions and follow them.
As I mentioned earlier, my comments are subjective.
Marking the distance between the path and other objects during editing is disabled by default in the configuration, which is a pity…
However, I found something that replaces my other suggestion. cursor in the form of a cross across the entire width and height of the window with the designed PCB. disabled by default, which is a pity…
To be fair we aren’t talking about “pushing” anything. It is pertinent to this discussion, I think, because we are talking about usability and learning curves. It might be quite informative.
Yes. I have not only read the long instruction but made my cheat sheet. As I use oscilloscope very rarely I found this cheat sheet being very useful to fast remind how to get what I want.
For example I remember that at first use I configured it to preserve trigger point screen position when changing time base and few years later I needed to closer look at something what I positioned at screen center by shifting trigger point to the left. So I wanted to change time base changing behavior from trigger point preserving to center screen preserving (by shifting trigger point far to the left off screen). It was much easier for me to find how to do it in my cheat sheet than to find it another way.
I made cheat sheets as spreadsheets. One function = one row. This one has 233 rows.
What for equation of elements is needed and why it is one of the most important functions. I have never used that functions.
For me positions are important only for elements having something to do with device case but this are certain positions and reaching them by equating elements between them is not the best solution for me.
I don’t know what is default setting as KiCad configuration I have done in 2017 is still with me. I suppose you are writing about clearance lines around tracks. What for you need them if KiCad while routing simply preserves clearances pushing other tracks respectively or not allowing you to route if there is not enough room for it.
I have tried such cursor once but it helps in may be 1% of actions and disturbs in rest 99%. So it would be pity if such cursor be default.
Piotr i use many similary instruments and I rely on experiences with others and I rarely miss in my division is too much instruments to read instructions for all.
I also use this approach, but sometimes it’s not possible.
I was designing a 60x60mm board with about 1000 elements, including a BGA 760 ball, and such an approach would not work.
In your situation, this is completely understandable. But you asked if anyone read the manual, and I read so…
I used one (analog/digital) oscilloscope for 15+ years and now I have had a second one for several years. I use it very occasionally and mainly not to simply watch a signal, but, for example, to measure about 2 ns delays between edges and collect the statistics of these delays (min, max, average per several hundred edges).
You give up 90% of the program’s functionality,
This is a very unusual use of KiCad.
Drawing conclusions about what the default settings should be based on such an unusual use of the program is … surprising.
So having it in mind why you suggest that selection (by default - at least I understood you that way) should not select tracks?
I really think the title of this thread should be altered to “Subjective observation by outsider”. Comments made by the OP suggest the default set-up should be to his liking for his use. Another member uses what seems to be a quite different set-up.
No one is going to be entirely happy with a program default set-up, but one of the joys of this program is personal set-ups can be made for the many different user styles.
If something can’t be changed, it must be remembered that this is not the same program with which the user was familiar . Some compromises may be necessary.
Finally; if someone is really not happy with a feature, or lack of; place a request on Gitlab, with a justification or (not so simply) alter the program to suit personal requirements: it is open source.
You have a point. @kubus is obviously a really smart guy and an experienced programmer, but I get the impression he wants to become a developer so he can work on those issues he has identified in his first post. As a new member of the team he would have to fit in with the way it currently works, working on the bugs and features agreed by the team, rather than doing his own thing. I fear he would find it very frustrating.