rolling a PCB rev

I have a complex board (32 sch sheets, around 1000 parts) that I want to revise, from rev C to D.

I have a schematic with most of the changes done. It was heavily edited from rev C and I call it sch rev D0.

I do not want to do a giant PADS ECO, sch D0 against C, and import the changes to the PCB. It would be a nightmare. For example, if in the edit process I deleted parts and added parts, reference designators got reused and parts on the PCB will be scattered all over.

So my plan is to create sch rev D1 basically identical to the old released rev C schematic. Then

Edit to sch rev D2, but only remove some parts Apply to PCB as D2, removing parts Add some parts as sch D3 Apply to PCB and place/route pcb D3.

We'd work through the sch a sheet or so each such pass, incrementally, with a design review at each step. My pcb designer will do some iterations and I'll do some myself. It will be final reviewed, power pours tweaked, and released as rev D.

I'll have a change log document that we can archive.

Does that sound reasonable? How do you manage and document a major PCB rev?

Reply to
John Larkin
Loading thread data ...

Is the problem that your toolchain is not up to the task? Or, that your meatware wouldn't be able to "keep up"?

The problem, there, is that you have these "informal" intermediate versions that don't represent logical or functional products. So, any comments of the consequences of sheet 4 as seen by sheet 5 will be silenced -- because "we'll get to that when we fix sheet 5".

Then, you risk forgetting to deal with them (the issue that was raised). Or, worse, having folks censor their own similar comments anticipating the inevitability of "when we get to them" (yeah, but you haven't mentioned the issue so we don't know that we have to check for it! *Yours* is the only meatware that may have noticed that point!)

I'm doing a fourth major rewrite of my backup speech synthesizer. Several hundred "pages" of (annotated) code. I will update it in steps that "make sense" and "check in" each incremental update. Ideally, it will remain operational, throughout -- though the quality of output will vary, expectedly.

E.g., I will rewrite the voicing source. Then, the formant filter implementations. Then the control algorithm for the formant filters. Then the prosody encoder. Then...

I *won't* update half of the voicing source and half of the formant filters as an interim release -- counting on doing the "other half" at some later date. I'd be worried of missing something that bridges the two efforts.

Each module/function can then be seen as a subtask that is updated -- or not. Instead of "partially updated" (incomplete!) in one revision, awaiting FULL updating in another.

Reply to
Don Y

afair John annotates the designators to look nice on the pcb With the usual way of each schematic page have its own series of designators there's normally plenty of gaps to not reuse designators

like programming in basic, you increment the line numbers by ten so if you have add something later you don't have to redo everything

Reply to
Lasse Langwadt Christensen

The final thing we do on a board is resequence the reference designators and back-annotate the schematic. Manufacturing and testing like that. The refdesigs don't matter up to that point.

The designators become sequential across the entire board, and the schematic. C1, C2...

Reply to
jlarkin

I'm not sure I understand. When I layout a PCB, I renumber the designators based on their locations on the board -- and the toolchain back-annotates this into the schematic. So, the designators on the schematic may appear to have no rhyme nor reason; they don't have to (their function in the schematic circuit is independant of their designation). OTOH, you want to be able to component N+m from any arbitrary component N that you've managed to locate on the PCB -- even if N+m (for small m) is in no way related, electrically or functionally, to N.

As such, if I actually *remove* a component from the design (instead of just changing the stuffing instructions to leave that site empty), then the new numbers have no bearing on the old.

So, if I change the layout BUT NOT THE SCHEMATIC, I can still have the same number of designated parts -- but in completely different locations on the board.

Reply to
Don Y

When you annotate the schematic changes why not just start the new numbering at say 2000?

Reply to
JM

We've always done pretty much the opposite, the schematic is the "master" designators are in the order on the schematic, 1xx on page one, 2xx on page two and so fort

if you add/remove parts on the schematic none of the designators change on the pcb as long as you don't reuse the removed designators

Reply to
Lasse Langwadt Christensen

Then how do you find components on the PCB? Labeling the two resistors in a divider Rn & Rn+1 doesn't really add any value as you can *see* their relationship, graphically.

OTOH, having your eyes on Rm on the PCB can give you a good idea as to where Rm+1 resides! I.e., there's nothing that says Rn & Rn+1 (in the previous example) need to be located "near" each other on the physical board.

So, Rm (second example) can be proximate to Rx (x >> m) on one layout and on the other end of the PCB on the next?

In "my" scheme, the R closest to Rm will typically have a designator approximately equal to m. But, this means the designators on the schematic are only formalized AFTER the PCB has been laid out.

(A consequence of this is that the schematic is tied to a specific layout; you can't have two different layouts of the same schematic)

Reply to
Don Y

Manufacturing and testing want the parts arranged in physical order, so we resequence and back-annotate the schematic. Engineering doesn't care about the order on the schematic; we can search if we can't find a part.

In PADS Logic, if I delete some parts from a schematic and then add parts in the same session, it tends to reuse a deleted reference designator for a new part. Then if I ECO and send the changes to the PCB, it might put DPAK U12 where US8 U12 used to be. That can be a mess to clean up.

If I do the changes in two steps, the new parts all pile up at (0,0) which is where I want them.

And in general, it seems easier to manage a lot of changes in modest steps, and review/plan/document/check each step.

Reply to
jlarkin

That's one way people do it. It takes a bit more manual intervention.

I wish PADS had an option to always use a bigger refdes number than ever used before, or to always plop incoming parts at (0,0), but I can't find such.

Reply to
John Larkin

just do it like the gubmint does vaccinations.

1a, 1b, 1c, 1b+ etc.

makes perfect sense!

Reply to
Cydrome Leader

Is 1b+ a later schematic/board iteration past 1C? Yikes. What does + mean?

We number development schematic/pdb file pairs D1 D2... during development, and finally review and release as rev D.

I think we've run over 50 on some projects.

Reply to
John Larkin

you look around for it where you expect it to be, search for it or in cad just click on it in the schematic

components near each other in the schematic is most likely near each other on pcb

in some cases they are not but it still makes sense, say you have the supply section of an FPGA on page 5, then all the decoupling caps will be C5xx regardless of whether they are on top or bottom of the PCB

is that a good thing?

Reply to
Lasse Langwadt Christensen

Sounds bad to me. I tend to group numbers to local functional groups on a board. So all the resistors around an op amp will be consecutive. But on tight boards that can be a PITA since no functional grouping can be gleaned by viewing.

I think it is more important to be able to find parts on the board than it is on the schematic. There's no search function on a board.

Speaking of searching schematics... in KiCAD is there a simple way to search for other occurrences of a net name? What I do now is right click the label, select edit in the menu, cntl-c to copy, esc to exit, cntl-f to open the find dialog, cntl-v to paste and click enter or hit return. What a bother! Seems like there should be a short cut to just point, right click and select a search operation.

I seem to recall the search operation will search on all text associated with a schematic, even hidden stuff you can't see unless you open the part info. Strange.

Reply to
Rick C

why can't you search a board?

highlight net (ctrl-b) won't do?

Reply to
Lasse Langwadt Christensen

Perhaps, but not guaranteed. A signal may be sourced somewhere convenient and used in other places around the board. This is particularly true in the digital realm.

But I can *see* the names of the decoupling caps for that FPGA -- even if they aren't sequentially numbered *or* "all begin with '5'"

It's unlikely you will have an identical circuit implemented in two different layouts. If there was a reason for two different (and concurrently produced) layouts, there was probably some other issue involved, as well; so, other aspects of the assembly are likely involved.

E.g., imagine two versions -- one built with thru-hole technology and the other with SMT. Do you really *want* to keep the schematics in lock step? Do you really want to offer two different ways for manufacturing to offer the same product?

Note that the two "identical" designs (loosely speaking) can have different problems, going forward, requiring different remedies. Do you try to keep the schematic(s) in lock step despite this?

[You're making two different products, they deserve to be controlled as two different products]
Reply to
Don Y

but that might be good thing since it tell you where it came from without even looking at the schematic

but you can't tell just by looking at the board

does it make sense to change every designator in the schematic and pcb when making new revision to add a resistor in the corner of a board?

if any of your support documents reference those designators that will also have to be updated

sorta related, Kicad actually keeps an internal 32bit identifier for all components so when you load a new netlist it can tell the difference between "old" R5 and a "new" R5

Reply to
Lasse Langwadt Christensen

Will it *definitvely* tell you? And, for all designs? Do you want to trust that it does -- without verifying on the schematic?

The board isn't the controlling document for the design. Should we label signals based on the designator of the device from which they are (primarily!) sourced?

What if you added an MCU "on the corner" of the board -- an extra U-number? It, no doubt, will have a significant impact on the manufacture of the board (e.g., if ISP) as well as it's maintenance, going forward.

The old schematic no longer applies.

My current design has a huge amount of reuse, throughout. (cuz I simply can't afford the time to optimize individual designs) Each device has a "network-power module" (PoE, regulators, volt-current monitoring, load switching), a "CPU module" (processor, boot ROM, RAM, field interface) and one or more "I/O modules" (application specific hardware).

In many cases, these are discrete, physical modules "stacked" to form a multilayer "sandwich" (because they must be packed into a small, regular, volume). In other cases, they are just abstractions laid out on a single PCB.

But, the most commonly reused "modules" (net-power & CPU) aren't identical from sandwich form to single-board form; e.g., there is no need for interconnect hardware when colocated on a single board! If I make a change to either of these "core" modules, I have to manually propagate the change to all other "part numbers" that have incorporated their "essence" -- but only if the change would actually be needed by those other instances.

E.g., the net-power module may need a revision to accommodate the possibility of a faulty connector to the CPU module. This wouldn't be needed if the net-power module and CPU module were populated on the same PCB.

Exactly. Back-annotation is an expensive process and a feature worth having in your toolchain.

My documents never refer to ANYTHING that can be changed "arbitrarily" by constant text; it's always through a symbolic reference that the document can fill in, where needed, as it is updated. Or, a reference to another document (e.g., photograph) that is included when the document is "rendered".

The document's revision level is tracked just like the schematic's and the PCBs (and BOM and top assembly and...); this assembly uses this schematic, that BoM, this layout, these stuffing directions, this troubleshooting guide, etc.

That doesn't help the guy working from the actual production/test documents.

"Benign" changes to a design are things like "elide C12" or "change R27 to 4K7" or affix a heatsink to U33". The circuit hasn't really changed in a meaningful way.

When you start changing the topology or adding components, there's some point where you no longer have the original design. How do you define that point/criteria?

I worked a summer doing QC for a (hand-)tool manufacturer. I could walk around the line and examine the "output" of any station for quality issues. That may range from checking the color of the handle of a screwdriver to checking the hardness of the heat-treated tip.

Some tests are benign: "Yeah, the handle is red!"

Others compromise the product or even render it defective: "The point of the screwdriver sheered off at 120 lb-ft of applied torque".

Clearly, examining the color of the handle hasn't altered the sale-ability of the product! OTOH, sheering the working end off likely renders it useless!

One could design a test where a given torque was applied and the test result indicated whether or not the tip sheered off (instead of determining at which level of torque it WOULD sheer). So, you MIGHT be able to test an article and not leave any visible indication that you've tested it -- just like inspecting for color!

But, you've likely altered the quality of the item by subjecting it to this test.

So, how to decide when an "inspection event" interferes with the quality of the product and when not?

Simple: if you TOUCH the item, it gets discarded. (So, if you want to check color, do so with your eyes, not by handling the articles).

Creating new part numbers should have a similarly simple rule. Part numbers are cheap. Machines can track them. And, you're typically only dealing with a particular part number (and related subassemblies/documents) at any given time.

[I've seen all sorts of ad hoc schemes of trying to artificially tie "parts" together in the numbering space that were just throwbacks to the days when folks had to track this information in their meatware: SCH12345 uses BOM12345 and PCB12345... this typically only works when you're a small shop with a limited number of items to track. It also forces you to come up with "hacks" to get around changes that you refuse to treat as new items: SCH12345-6, etc.] [[I had a prospective client ask me to design a database to track the numerous properties that their organization owned and was continually acquiring, as the business expanded. He proposed an elaborate numbering scheme where all of the attributes of the property were encoded into its numeric designator.

"Then why do you need a database?"

"Because there are other things to track: property deeds, lease agreements, current occupancy/use, date of last inspection, property taxes, etc. And, those are too hard to incorporate into a designator!"

"So, the designator doesn't do the whole job for you; you're going to have to consult the database regardless! Then why incorporate SOME of that information into the designator instead of looking up that information in the database alongside all of the 'other' stuff?"

"It makes it easy for me to find a particular property!"

"Do you name your children, M2-19750309-Bl to signify 'Male, second born, birthdate 19750309, favorite color Blue'?"

"Well, of course not!"

"ASK the database to find the property you're interested in! If you can remember all of that data about the property to synthesize the designator 'in your head', then you should be able to TELL the database what you're looking for to the same level of specificity! AND, if you've forgotten some key datum, the database can likely give you help by showing possible candidates (where your mind falls short)"]]

Reply to
Don Y

so the board shouldn't have any impact on designators

they normally are unless you explicitly name them

but it doesn't need to change anything one the rest of the board

there's no reason why the part that wasn't changed can't

so you have to invent yet another reference designator for everything because the actual designator can change with even a minor change to the layout?

say if R105 is referenced in one of your documents and after you added an extra resistor in the corner of the PCB in and otherwise unrelated subcircuit it is now R106, how would you handle that?

Reply to
Lasse Langwadt Christensen

What do you expect ctrl-b to do? The manual doesn't show it as a hot key and it does nothing on my installation. 5.1.6

Reply to
Rick C

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.