Multiple Independant Variants - Page 1
Forum section: electronics / general

author: kuikmaa
author_rank: Newbie
timestamp: September 07, 2018, 05:56:14 pm
content: Hi Everyone,Long time lurker, first time poster, and big fan of EEVBlog.I have a question regarding variants in Altium. With my current project, I have multiple schematic sheets that each require a variant. For example, there is an Hbridge circuit, that needs the option to be depopulated, and a couple of zero ohms populated instead. I need to be able to turn these options on or off independently, on a per sheet basis.For example, If I have my Hbridge circuit as described above, and an RTC circuit, that would follow the same idea (depop, and populate zero ohm), I need the option to change the Hbridge circuit, but not the RTC. Other times, the RTC but not the Hbridge. There are several sheets that follow this logic.My question pertains to whether I am able to independently turn variants on or off, or do I need to make multiple variants that take ALL changes into account, eg:Hbridge on, RTC off - Variant 1Hbridge on, RTC on - Variant 2Hbridge off, RTC on - Variant 3Hbridge off, RTC off - Variant 4Ultimately having 2^x variants. this seems incredibly cumbersome, but I havent seen any alternatives in the documentation.Ideally, I would be able to enable or disable the Hbridge variant, then enable or disable the RTC variant.Any assistance the community here can offer would be greatly appreciated!

author: ajb
author_rank: Super Contributor
timestamp: September 07, 2018, 08:54:40 pm
content: I don't believe there's any way to do this, unfortunately.It's a little weird to have so many different variants within a single board. Is this for a production project? Because if so, managing all of those variants in Altium seems like it will only be the start of your headaches. Unless it's high volume, the cost of managing all of those variants is probably higher than just stuffing all of the boards alike (or at least cutting down to a couple of variants). If it is, then the labor to set up all of those variants in Altium initially will be amortized pretty rapidly.Do you actually intend to *build* every possible variant right from the get-go? If not, I would probably clearly annotate all of the variants directly in the schematic (IE, actually write in the schematic "DNI for non-RTC variants" or "replace with 0R for non-Motor variants" on each affected component), and then create the actual assembly variants as needed.

author: kuikmaa
author_rank: Newbie
timestamp: September 10, 2018, 03:30:10 pm
content: Thank you for the response ajb.Our product is versatile, in that we can modify certain blocks so that we can control our customers devices. On our end, this means depopulating circuits that are not needed to save cost, or modifying others to set proper voltages, etc.In general, Im looking to mitigate risk in our BOM generation, so was hoping the variants option in Altium could help. As of now, I am doing everything manually. Its not a lot of work, but requires carefully screening every schematic to ensure everything is set properly. Are you aware of a better way of doing something like this in Altium outside of the variant manager?

author: ajb
author_rank: Super Contributor
timestamp: September 10, 2018, 06:04:24 pm
content: You could assign custom parameters to components in the schematic that indicated fitted/not fitted/alternate for each subvariant, and export those into the BOM. That would potentially allow you to automatically post-process the BOM to reflect whatever combination of subvariants you want. The post-processing could be anything from a bunch of Excel formulas to some custom software in a language of your choice.The downside is that custom parameters are a bit fragile, in that if you ever need to update your component parameters from your library the custom parameters can easily be lost (either by accident, or due to long-standing bugs in the parameter update mechanism). Ideally you could apply the parameters using directives in the schematic, but last I checked you still can't attach directives to components (only nets).

author: julianhigginson
author_rank: Frequent Contributor
timestamp: September 11, 2018, 03:41:01 am
content: Quote from: kuikmaa on September 10, 2018, 03:30:10 pmI guess it depends just how expensive these parts are, but you need to consider the cost of having (and stocking!) a whole collection of short run products to sell to customers vs the simplicity of just having 1 (or a few) variants that you need to manage, and that you can buy and therefore stock in higher quantity.Also, you talk about manufacturing cost savings, yet every single PCB you assemble with unpopulated areas is bigger and more complex than it needs to be... that costs money too.and really, seriously.. I think this whole thing your'e going through is a management and marketing department problem - someone needs to stop being weak and indecisive, step up and put on their big person pants and make a decision about what options they are going to offer to customers...How many variations are we really talking here? with 6 optional subcircuits you could have 64 build variants of your board, but in the real world, are you REALLY going to have that many variants you market and sell?? how will customers even work that out when looking at the options on your website? they'll spend hours going round in circles with 64 tabs open.. First, confused as hell, then disappointed in themselves, then angry at you, and then they will just go to a competitor who offers them 3 options to choose from, where one of those basically matches what they wanted.Quoteif you really want to do this (and I don't know your situation, but for most situations I can imagine, you really don't want to do it)you COULD assign part number ranges to the part numbers in different subsystems in the design..ie, say you have a flux capacitor driver subcircuit that you don't always want to assemble, then you number all the designators for its parts R1xx, c1xx, U1xx, etc..And when want to remove the flux capacitor driver from an assembly, you remove all R1xx C1xx, U1xx, etc part numbers... (or better just the U1xx, J1xx, etc, and leave the cheap parts on no matter what because they cost fractions of a cent and all you can do by removing them from some variants is shoot yourself in the foot, also it leaves the door open for reworking SKUs to other SKUs if you ever need to..)Anyway - then you can automate the scan for issues in your BOMs if you write a simple c or python program to do so...Though the whole point of the build variants feature, is even if you really had to have a completely stupid number of build variants, you would grit your teeth and set that whole mess of assemblies up once, and from then on, when you make changes to the design in future, you make sure any new parts are assigned/unassigned to each of the necessary build variants as you go - then you just hit the generate BOM button in your outjob for the specific things you want, and the right things pop out! And you know it's right because you have a proper maintainable structured design that you can rely on.