Tips on how to fine control annotating between multiple sub sheets?

I’m designing an audio mixer and this is highly hierarchical in nature and I want to be pretty thorough in annotating this so I can use the script I’ve seen to later duplicate pcb layout using these annotations.

To be concrete, this is my main sheet:

Up to the left are six identical channels:

Clearly, it’s very important that the annotations are so that each channel is self-contained with two dual opamps. If I just naively annotate the whole schematic I get total chaos like this:

Note that there are three and not two dual opamps involved. So I definitely need to use the sheet numbering:

image

With this, it seems ok with the first channel, but on the last channel for instance I have this:

I’m not sure why this happens, but I think it’s due to the fact that some other subsheets are only using one opamp from a dual package. I was going to handle those later manually, but I really want to nail down a way to first automatically annotate the six channels of 2*2 opamps each. And this seems to mess everything up.

The only thing I’m thinking I might try is to clear everything and then annotate each sub page individually setting a manual starting point with this option:

image

In my case this might be fine, but I would really think this to be properly annoying if I’m to make a 24-channel mixer on a single board one day :slight_smile:

Is there any other way to control the subpages numbering and how they overlap?

I saw another closed thread on controlling page numbering but I’m not even sure that would be enough since there’s still some other thing going on here…

1 Like

For this release you will need to add the missing components and specify NC.

This is fixed for the future:
https://git.launchpad.net/kicad/commit/?id=4f594550a

1 Like

Maybe I wasn’t clear - there are not to be any unused opamps here, it’s just that there are some sheets that only use one (or three) from dual packages. These are however to be using sharing packages with other sheets. But that’s not the case for these six channel strips shown.

Maybe I can start out with these few exceptions and manually handle these. And after that I could auto-annotate the six channel strips while keeping the manual ones?

Fix seems highly relevant though - this is the issue I’m strucking I guess. Could a workaround be to handle all odd exceptions first and do the chunk of the channel strips after that?

There are missing units from the components. These need to be added with their pins connected to NC flags

1 Like

There are missing units from the components.

Not sure I follow, I’m not meaning to leave any opamp NC. All opamps are dual package and I have a mixture of sheets where some are self-contained using 4 opamps in 2 packages but also quite a few that have odd numbers of opamps, like this:

Note that I also needed to externalize the power supply for these odd-opamp-using-sheets. So before the commit mentioned I need to manually annotate the odd ones and do the self-contained sheets afterwards - this is what I did now and it seems to be working. If I tried to do 100X auto-annotation, designations from the odd ones would leak into the ones I meant to be self-contained.

These need to be added with their pins connected to NC flags

Did you mean I could instead have added unused opamps to the odd-number-of-opamp-using-sheets and remove and reuse later?

Is it considered bad practice to share packages between sheets? I could of course have been less strict about reusing identical circuits to make sure no sheets needed sharing of packages with any other sheet, but I really think this is cleaner and easier to maintain - doing as much modularization and reuse as I possibly can.

Ah, got it. Not sure that I understood that.

If you are trying to split the package units across sub-sheets, then yes, you’ll need to annotate by hand or use the sequential annotation.

1 Like

Thx, I think I’m all go for now! Looking forward for that commit and also the possibility to manually number the sheets that I saw in another thread :slight_smile:

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.