Author Topic: (un)Availability of PCB materials is causing a mess of Altium projects.  (Read 2636 times)

0 Members and 1 Guest are viewing this topic.

Offline brandonTopic starter

  • Newbie
  • Posts: 2
  • Country: us
Hi all,
I am finding myself spending more time than I think I should creating multiple versions of the same design due to shortages in PCB materials and long lead times... Does anyone know a way to manage this from within Altium Designer?

Here's my process:
I submit my design for quote using the same material/stackup that was previously used. The fab sends back a "proposed stackup" which uses a different material, which I accept to keep lead times down.
So I copy the entire project folder then go into the new PCB and make the necessary changes to the stackup, trace widths, etc. This leaves a lot of room for errors and much confusion downstream when there are changes to the design and probably changes in material again at some point. It's very hard to maintain, well, tedious and time consuming at least.

Question(s):
I've looked through AD's online documentation and can't find anything that really helps with this problem... am I just missing it in the online docs?
I thought I could have 'variants' of the PCB to accommodate the differences but when I tried that it seemed to be more geared towards populated/non-populated components which make up the variations of the board.
Is there a better way to manage this?
How do you deal with material changes on a run by run basis?
Or is there a very basic solution that I'm overlooking? (<--- this wouldn't surprise me)

Thanks for the help,
Brandon
 

Offline jmw

  • Frequent Contributor
  • **
  • Posts: 285
  • Country: us
I would put the project files under a version control system (git, mercurial) and create a branch for each stackup variant.
 

Offline ANTALIFE

  • Frequent Contributor
  • **
  • Posts: 509
  • Country: au
  • ( ͡° ͜ʖ ͡°)
    • Muh Blog
Random question, is it actually important for you to specify the full spec? Like are you building a simple/cheap 2/4-layer board or do you have "fancy stuff" like impedance controlled traces on there?

If it's the former then all I would do is specify a "typical" stackup and state more important items like: copper thickness, soldermask colour, silkscreen colour, pad finish, Tg rating...
If it's the latter then I would state what sort of tolerances your stackup has. For example, impedance controlled traces to be 90Ω ± 5%, or trace width & spacing to be ± 20%... That way if you go with a new PCB fabhouse you can just check if their stackup is within your tolerances, rather than issue a new manufacturing pack
 
The following users thanked this post: thm_w

Offline ajb

  • Super Contributor
  • ***
  • Posts: 2601
  • Country: us
Is this just about getting the right impedances based on the changed stackup, where in theory all you need to do is adjust trace widths/spacing, or is there more to it than that? 

Variants really are just about assembly, not fabrication, so they're not going to help here. 

Any time you have to do a lot of branching iteration like this, source control is a good idea.  I haven't looked at source control in Altium in a while, but if the project data survives branching, merging, and rebasing (which it might not depending on the file formats and project file structures, idk) then it could be very helpful in keeping functional changes in sync across revisions that have different fabrication changes.  In order to really benefit from this, you will have to develop good source control habits and a fair bit of discipline in keeping your commits clean and atomic, just like you would in a similarly volatile source code repository (and just like you should in ANY source control setting, but lots of projects are more forgiving and it's easy to get lazy/complacent).  Keeping notes about what changes were made at each revision (especially if you have functional changes in addition to the fab changes) as a supplement wouldn't hurt.

As far as the actual changes, it seems like the best thing you can do within Altium is to really use the design automation tools as much as possible.  So make sure that you have net classes defined for anything that needs specific design rules (whether that's for impedance, clearance/creepage, or current handling), and preferably define those net classes in the schematic with directives so that you can see them.  Then structure your design rules based on those nets to be as streamlined as possible, and minimize the number of places you need to change parameters.  So for example, if you have multiple different impedance targets on the same board, define one net class per impedance instead of different net classes for each interface that requires that impedance, which requires you to resolve fewer classes into design rules than if you had separate classes for each interface. 

There are some things you can do in the initial design phase to make this easier on yourself, like leaving some extra space in the routing to move things around when you need to change trace widths/spacings.  If everything is crammed together as tightly as possible then there's more work required to make an adjustment and more opportunity for error.  With all of your rules set correctly, adjusting to a new stackup should just( :bullshit: ) be a matter of updating the rules, running DRC, and then fixing the errors one by one.  If you've got a pretty roomy layout, you might be able to use a filter to select all the tracks in a given net class and adjust the width in one go, at least for single-ended tracks.  If you need to change diffpairs, I think you'll need to reroute those manually since once they're routed they're just normal tracks, so you can't just change the spacing like you can change the width.
 

Offline Feynman

  • Regular Contributor
  • *
  • Posts: 192
  • Country: ch
You should only specify what's important to you, I guess. One way is to specify an IPC 4101 Slash Sheet to give the fabricator a little more choice, e. g. IPC 4101/126 for standard FR4.
 

Offline free_electron

  • Super Contributor
  • ***
  • Posts: 8517
  • Country: us
    • SiliconValleyGarage
you cast your stackup in stone BEFORE you even put down a single trace ! . stackup is not an afterthought. if your fabricator cannot supply : run.
Professional Electron Wrangler.
Any comments, or points of view expressed, are my own and not endorsed , induced or compensated by my employer(s).
 

Offline brandonTopic starter

  • Newbie
  • Posts: 2
  • Country: us
Thanks jmh, a revision control system seems the logical solution (and a good idea anyway).
 

Offline alexwhittemore

  • Frequent Contributor
  • **
  • Posts: 365
if your fabricator cannot supply : run.

You haven't tried to build hardware in the last two months, huh?
 

Offline thm_w

  • Super Contributor
  • ***
  • Posts: 6359
  • Country: ca
  • Non-expert
You haven't tried to build hardware in the last two months, huh?

Google tesla sales and see how many have been produced in the past few months.
Profile -> Modify profile -> Look and Layout ->  Don't show users' signatures
 

Offline alexwhittemore

  • Frequent Contributor
  • **
  • Posts: 365
Google tesla sales and see how many have been produced in the past few months.

I can't say I follow your point - that manufacturing right now is easy simply on the basis that one extremely well-capitalized company with a relatively low production volume vs its industry has been able to expand?
 
The following users thanked this post: hammy

Offline thm_w

  • Super Contributor
  • ***
  • Posts: 6359
  • Country: ca
  • Non-expert
I can't say I follow your point

The person you responded to is the lead PCB designer at tesla. I would tend to take his advice if you are involved in quality PCB production (industrial/avionics/auto/etc).
Of course if this is a low quality consumer product (OP provided no details on that, or why the stackup is critical at all), then feel free to ignore. At that point I may consider a generic JLC stackup and just order from them, assuming their spec is good enough. Redesigning the PCB each time is asking for trouble.
Profile -> Modify profile -> Look and Layout ->  Don't show users' signatures
 

Offline alexwhittemore

  • Frequent Contributor
  • **
  • Posts: 365
Ahh, so you're saying free_electron is personally responsible for all of OP's laminate supply evaporating ;)
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf