A few usability questions

I decided to (finally!) make the switch from Protel99SE to Kicad, and I have to say I’m very impressed with this software. It’s working quite well so far, and the learning curve hasn’t been too bad.

I jumped right in to a redesign I’ve been wanting to get back to, a fairly complex project spanning ~8 sheets and a few hundred parts.

During the initial part of this work, I came up with a few questions about features and usability. Maybe the perspective of someone new to Kicad but experienced in PCB design would be helpful.

  1. 3d preview - when I am trying to match a footprint to a 3d model, the alignment is difficult to do accurately by eye. It would be wonderful if there was a way to “align this pin to that hole” feature, or “align this plane to that plane”. I understand that can be difficult from a CAD perspective. Doing it by eye is possible, but there seems to be some distortion - maybe perspective? This is most apparent when looking at an array of pins aligned to holes. If there’s perspective, it should be turned off.

  2. Sometimes I hide a value of a footprint from the silkscreen layer, and instead of it being invisible, it turns gray. Why is that? It no longer shows on the board, but it’s there on pcbnew.

  3. I set my default reference size for text and whatnot (usually smaller, my boards are dense), but when adding new footprints to the layout, they appear in their original size. I can change them after of course, but it’s tedious. There must be a way for the default reference sizes to be honored when adding new parts?

  4. In a multi-sheet project, I like to assign designator numbers per sheet. I see this is supported, with the annotation option “First Free Number after sheet number x100”. But how to I assign the sheet number to my sheet? I’ve been using “Use first free number after [ ]” which is fine, but it would be nice if the value was retained as part of the sheet data.

These are all just little quibbles, overall it’s working really well for me. I am not much of a C++ developer, so I can’t help the project directly with programming, but I hope these usability comments are useful.

  1. Alignment should not be done “by eye”. This is purely an addition for quick and dirty workarounds and special cases. There is a thing called “KLC” which is the KiCad Library Convention, and it gives guidelines for a lot of things to keep the KiCad libraries feeling uniform. https://kicad-pcb.org/libraries/klc/ If you also follow this for your 3D model, then you should not have to tweak offsets for your own made 3D models.

  2. I just turned of visibility of a silk screen item in Pcbnew and it completely disappeared from view. Whether you are still able to view invisible items is a checkbox in the “Layers Manager” on the “Items” tab on the right side of the screen in Pcbnew.

  3. KiCad makes a copy of Library footprints for each instance of it in Pcbnew. New footprints are fresh copies from a library. If you want to change the defaults, you have to maintain your own libraries. https://forum.kicad.info/search?q=library%20management%20category%3A19

  4. Not really supported I think. There have been questions about the printing order of hierarchical sheets and I think this is related. The current workaround is to manually edit the schematic file.

Last:
There are other ways you can help, once you’ve gained some experience. Write documentation, do translations, answer forum questions, detective work to make suspected bugs reproducible, promote KiCad worldwide. Show your projects on public sites, donate monetary units to the project for what it’s worth to you, (Most Right button on: https://kicad-pcb.org/). or in other other ways…

Thanks!

  1. I haven’t had this issue with kicad libraries, but it seems to be a common issue with manufacturer supplied parts, which do not follow the convention, and realistically can’t be expected to. Sure, I could make my own 3d models and follow the convention, but it would be nice if there were an easy way to use manufacturer (or other) 3d models reasonably accurately. The reality is for many parts we’re stuck doing it by eye until a better method is available (aside from “don’t use non-kicad libraries”)

  2. Got it, thanks.

  3. I’m a little confused - what does the default text size apply to, if not for newly placed parts? Only hand-inserted ones? I certainly don’t want to have to make and maintain my own library just to default to smaller text size for designators/references. I would strongly recommend making this a feature, seems it should be straightforward.

  4. I suppose I can manually edit the schematic file, as long as I don’t break anything. I wish the field was persistent at least.

I definitely will help more with this when I get more experience. For the moment, the best I can do is a monetary donation, and promote it to others in my professional field. I can’t share my professional designs openly online, but for side projects and such I can. I can afford to buy Altium if I really wanted to, but honestly I think Kicad will work just fine for me, and why spend the $$ unnecessarily?

If I may, what is the right protocol for offering feature suggestions/fixes like the above? Discuss in the forums, and then add it as a bug/feature request later? I don’t want to clutter either area with my ramblings.

1). KiCad’s main focus is schematic and PCB design. the whole 3D part is already an extra bonus. If you have 3rd-party 3D models, then the workflow that fits bets with KiCad is probably to open the model in a CAD package, use the tools available there to define the origin point, and then save it before you use it in KiCad.

3). I’m not sure what “default text size” you are referring to, but it’s probably only applicable to new texts added to the PCB. Once texts are in a footrpint, they become part of that footprint, with all their properties. Maybe this function is useful to you: Pcbnew / Edit / Edit Text and Graphics Properties

5). I applaud your enthusiasm of course, but also be careful. For example if you start promoting KiCad to others, and they come with some simple questions you can not answer yet because lack of experience, then the effect may be the reverse of what you intended.

5a). If you’re thinking Altium prices… 10% of what Altium costs would already be quite above average probably. Another way of thinking is to add your donations to the BOM for each project. You’re completely free to do this in any form you like.

6). KiCad has no lack of Ideas for improvements. The main bottleneck is the amount of time the current developers have available to spend on KiCad. on gitlab.com/kicad there are around 1000 open issues, and a portion of those are requests for new features. Also in the current “nightlies” (aka: KiCad V5.99) a lot of changes have already been implemented, and others are currently being implemented. If you have a (new) idea, then first search this forum and gitlab if a similar idea / feature is already thought of. If so then you can add some comments to an existing issue. For new Ideas it’s probably best to reflect them on this forum first, and later possibly combine your ideas with the comments of others to make a feature request on gitlab. If there is a very specific feature that is important to you, you can contact: https://www.kipro-pcb.com/about-us/ The KiCad Services Corporation also offers paid support if you need it.

Thank you. I will keep notes on my observations and try to only bother the forum with more significant/important ones, and reserve (most) feature questions (veiled requests sometimes) until I search through the gitlab, and have more experience. I expect a lot of things will change with 6.0 especially.

For (3), sure, I can globally change the sizes once they are placed, but it would be a lot nicer if they were changed when the parts are placed to my default. I understand the text and size characteristics are part of the footprint, “it sure would be nice” to have this overridden if I set different defaults. No huge deal of course.

I like the idea of “bounties” for specific features, if such things exist. “You really want this done? How much is it worth to you? Update the code, or put your $$ where your mouth is!”

We generally align the model file itself instead of using kicads offset feature. The best option here is the use of freecad plus kicad stepup (allows to import the footprint into freecad, align the 3d model to the footprint and export it already correct for kicad in both wrl and step file formats with the option of adding nice colours to the wrl model for better rendering results)

In the visibility options (right sidebar) there is an item tab where you can select the visibility of hidden fields.

Text sizes are stored inside the footprints. If you want them smaller for ever make a personal lib with smaller text sizes. To know what you can expect from the official lib read the kicad library convention https://kicad-pcb.org/libraries/klc/

1 Like

Using FreeCAD I first rotate the model as needed and then I use measurement tool to precisely measure distances and then calculate the needed move to get model exactly positioned.

1 Like

I think this is probably a matter of opinion. In my opinion, the 3D features are a key part of some design workflows because you need to be able to go back and forth between KiCad and a mechanical CAD tool to check fit in a mechanical design. I think @jr22’s suggestion about better 3D<>2D alignment tools is a good one and it should be added as a feature request (although it may take a while before we are able to do it)

I agree, this also makes sense as a feature request.

We don’t currently have an official bounty system. There is a company run by two of the lead developers, https://www.kipro-pcb.com/ which does offer paid feature development.

1 Like

I’m feeling a bit ignored and sad here. :cry:
I already dropped links both to the KLC and to Kipro in this thread.

Sorry @paulvdh I did not see your link to KiPro above!

But, I don’t think KLC is actually a solution to the lack of 2D<>3D alignment tools. The “KLC way” of fixing this is a tedious workflow when dealing with footprints and 3D models that you didn’t design. From the KLC:

The 3D model must be aligned such that it does not require an additional alignment offset in the footprint options.

Of course this is a good requirement for a curated public library, but it doesn’t have to be the only workflow. This one basically requires that you use an external program like FreeCAD to get things right. Plus, we eventually will want to support placing free 3D models outside of footprints, and so having the right tools to position them will be even more important.

It seems pretty silly though to replicate the 3D geometry engine of FreeCAD just to support this kind of thing. Much better to make Stepup an official component of KiCAD.

1 Like

Well, the 3D geometry engine of FreeCAD is OpenCascade, which we already use in KiCad…

If someone wants to, sure. Probably the reason this hasn’t happened (yet) is because StepUp works well enough, and so we spend our time mostly on things that aren’t possible / don’t work well.

Don’t be sad, I read them both carefully!

(For the immediate question, I understand the need for uniformity in footprints, but like I said it would be really nice to override the text side when placing new parts.)

I mean all the UI stuff also, like constraints and ability to create auxiliary planes/axes that you would need to fully support proper dimensional alignment. You would pretty much be replicating FreeCAD which sounds a lot harder to me than integrating StepUp.

You don’t need a full 3D constraint system in order to provide basic positioning aids for 3D models. Just things like:

  • Pick a 3D face and move it to be at the board surface (or x mm above the board surface, or whatever)
  • Pick a 3D vertex and snap it to be the same X/Y as a 2D point you pick on the board editor

A few more things probably, but you definitely don’t need the full constraint system of a MCAD.

Ok fair enough. Personally I don’t see much need for this over the existing eyeball and freecad workflows, but I won’t be the one programming it so I’ll shut up now.

It’s mostly for precision; if you are relying on KiCad to ensure fit, and using the 3d models for anything except aesthetics, having it “done right” is essential. But for just a pretty looking board for general design guidance, sure, eyeballing it is enough.

I think being able to select a centerpoint or vertex as an origin would be pretty simple to implement.

At the very least, perspective/distortion should be corrected in the 3d view so that we can eyeball it more effectively when aligning manually.

That you can fix with the orthographic projection toggle
image

1 Like

@craftyjon It’s OK, I sort of assumed you mostly concentrated on OP’s posts. Too much text…

Currently 3D alignment of 3d objects with Footprints goes in default steps of half a millimeter, which is a magic number / arbitrary value.
Here I moved a perfectly aligned DIP a bit with the + and - buttons to try it out:

Just as with other entry boxes in KiCad, you can also enter units.
If you type “100mil” or “0.1in” in the entry box, the 3D model is shifted by that amount. If you hover over the + or - buttons and rotate the scroll wheel, then the offset also changes in steps of 0.5mm.

I can see some simple enhancements for some quick and dirty alignment without dragging in complete CAD snap functions from some (extra?) library.

  1. Change the stepsize from “0.5mm” to: a single least significant digit of the current value in the entry box.
  2. Do this increment / decrement of the lsd also with the scrollwheel hovering over the value box instead of only over the plus an minus buttons.
  3. Those number boxes are supposed to accept simple arithmetic. Entering “3+5” does not move the 3D model 8mm.
  4. While entering a number and pressing [Enter] it is interpreted as clicking on the [OK] button, which I personally find slightly annoying. Is this by design or a bug?

Apart from those minor issues, I find the manual ad-hoc alignment quite usable. You can zoom in for a closeup of both a pad from the footprint and a pin of the 3D component to line them up visually. The model in the preview window can looked at from all sides (Press both mouse left button and middle button) and alignment can easily be made visually to about 0.01mm when zoomed in. So if you forget the “theoretically correct” method of snap functions, this should be “good enough” for most practical purposes.

I assume here that jr22 has not discovered the rotate and zoom in the preview window yet. Perspective distortion is a typical artifact that’s mostly visible when zoomed out.
Edit:
Ah, so that is what that grey icon does.

2 Likes

I think that’s a bug, Enter accepts the dialog but should not when you are typing text into a text field