← Back to team overview

kicad-developers team mailing list archive

Re: [RFC] Comments for a Layer Stack Manager in Pcbnew


Hi JP,

This will be a great addition to KiCad, and I'm excited to see this
progress. Now it's merged into master, would you prefer feedback on
the mailing list or bug reports?

In any case, the panel display seems to be broken on macOS (I do not
remember this issue when the dialog was standalone, however I do agree
with the panel being part of Board Setup). Please see the attached
screenshot. It was already mentioned above but I also believe wxGrid
would be better for this, and other commercial EDA tools all use grid
controls for this functionality.

I can submit a bug report if you prefer.


On Thu, 5 Sep 2019 at 18:05, jp charras <jp.charras@xxxxxxxxxx> wrote:
> I just committed the Layer Stack Manager feature.
> Some comments below:
> Le 03/09/2019 à 20:47, Evan Shultz a écrit :
> > A few comments from the peanut gallery using Simon's "497" build...
> >
> > Some things Seth suggested that I support and don't see:
> > - Units could be shown once at the top of the panel or in each column
> > header instead of each cell of the table. That would reduce clutter a
> > bit and shorten the string that needs to go into each cell.
> > - Moving the right-side stuff (impedance control and board finish) into
> > a separate panel of the dialog would allow the table to be wider. It's
> > awfully cramped right now.
> > - Alternating a color across each row would make the table easier to
> > visually parse.
> >
> > And some suggestions from me, as a knucklehead who has ran into many
> > issues with stackup:
> > 1. In the left pane of the dialog, there is a mix of "Stack-up" and
> > "Stackup".
> Fixed
> > 2. Dielectric layers are the only items in the Name column that do not
> > start with a capital letter.
> Fixed
> > 3. This panel and the popups use a mix of sentence capitalization, camel
> > case, and capitalizing every word. While it doesn't impair understanding
> > the panel's purpose, it doesn't look polished.
> > 4. The "X" column is not salient. It is the only column header with a
> > popup, and that's required because the function is opaque. Along with
> > the comment above about expanding the table, using a more verbose term
> > (or an icon?) for this column would be nice.
> Good idea.
> > 5. There are tables in the Defaults > Text & Graphics and Design Rules >
> > Net Classes panels. Having column dividers makes the table much easier
> > to read. Adhering to that style, I suspect, would improve readability of
> > the stackup table.
> The layer stack panel does not use a wxGrid.
> My first implementation used a wxGrid, but I had a lot of issues.
> > 6. I don't see the value of the "Board thickness" textbox at the top
> > left. It changes the dielectric layer thicknesses when clicking the Set
> > Dielectric Thickness button, but it sets the thickness of all dielectric
> > layers equal. I have rarely seen this done in practice and never for an
> > impedance-controlled board. This button seems to be mainly of value for
> > simple boards with low layer counts. For a 2- or 4-layer board it's not
> > much of a burden for the user to set the dielectric thickness manually
> > to whatever they want, or leave it alone as the user probably doesn't
> > care, and I can't imagine a high layer count board using controlled
> > impedances having all dieletric layers with the same thickness. So this
> > button doesn't seem useful to me. It's likely I'm daft and just don't
> > get it.
> > 7. One use for this is to specify the materials to be used by the board
> > vendor. Picking a dielectric material type not in the list means keying
> > in the parameters manually, probably after selecting "FR4". This can get
> > tedious. It would be nice to have a list of materials, perhaps from an
> > external file which could be shared company-wide, with approved
> > materials (NanYa NP-175FR, ITEQ IT-180A, etc.). Selecting one of these
> > materials would import the proper parameters. Perhaps an entire stackup,
> > and just the stackup, could be imported from a file or existing board.
> User defined dielectric material is not yet available.
> I'll add it later.
> > 8. Along with the above, allowing a custom name for the dielectric layer
> > lets the user better communicate design intent to the board vendor. And
> > if a custom material can be named once, perhaps it could appear as a
> > selectable material in the list so other dielectric layers could use the
> > same material with just a click. I get that keeping things in sync would
> > then be a pain but I'm trying to imagine ways to avoid manually typing
> > in the same info many times.
> Good idea.
> However it need a modifcation of .gbrjob specifications.
> > 9. Another equally important use for this table is to select track width
> > for single-ended and diff pair tracks (and in both broadside- and
> > edge-coupled DPs). This table is a logical place to report all three
> > impedances in new columns so the user can select the stackup, and then
> > design constraints, before routing begins. While I can understand this
> > being a later piece of the puzzle, I mention it in case there's anything
> > that makes sense to do now.
> Do not dream: one can calculate impedance only is basic cases.
> > 10. It would be convenient if the copper thickness could be selected in
> > ounces, even if that was converted to a mm thickness after selecting a
> > value from the pulldown list. Selecting copper thicknesses (with custom
> > names) and board finishes is another obvious set of selections that
> > could be included in a company configuration as mentioned above.
> You can enter a value with units: for instance 1oz instead of 0.035mm
> > 11. Additionally, selecting the thickness on outer layers does not
> > capture if the thickness is fully copper or copper plated up to the
> > specified thickness. While it doesn't necessarily affect board thickness
> > or impedance, this is an open area that can lead to getting boards NOT
> > as intended which I understand is the whole point of adding this table
> > so far.
> > 12. In order to get the exact stackup I want, often coupled with
> > material availability, I have sometimes used multiple dielectric layers
> > between conductor layers. Currently only a single dielectric layer
> > between conductor pairs is supported.
> Have you a link to this kind of boards?
> > 13. Especially when dealing with board vendors who speak another
> > language, a graphic is a powerful communication tool. Creating a drawing
> > like https://img.taodabai.com/upload/4e/78/4e789a33d80a15c0aa480e11699e1b48.jpg,
> > which captures the materials and shows a proportional drawing of the
> > board cross-section, is a very powerful tool. I wouldn't expect this to
> > be implemented right away because the current features are nice, but
> > having the hooks to make a Python plugin that can generate a board
> > cross-section in the board fab drawing from the stackup table would be
> > very nice.
> >
> > This is awesome and a huge benefit; designing a board doesn't matter if
> > it's not built as desired. Folks making advanced boards with KiCad
> > should appreciate this new feature very much. Please take the above as
> > enthusiastic suggestions and not condemnation.
> >
> > Thanks JP!
> >
> Thanks for your input.
> --
> Jean-Pierre CHARRAS
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp

Attachment: Screenshot 2019-09-06 at 10.56.33.png
Description: PNG image

Follow ups