kicad-developers team mailing list archive
Mailing list archive
Re: [RFC] Comments for a Layer Stack Manager in Pcbnew
KiCad Developers <kicad-developers@xxxxxxxxxxxxxxxxxxx>
jp charras <jp.charras@xxxxxxxxxx>
Thu, 5 Sep 2019 19:04:23 +0200
Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Thunderbird/60.8.0
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
> 2. Dielectric layers are the only items in the Name column that do not
> start with a capital letter.
> 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.
> 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.
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.