Files
Linus Torvalds efc74926b2 Make a "Design Block" out of the TAC5242 circuit
When doing the audio jack boards with the TAC5242, I realized that if I
put all the components on the other side of the audio jacks, I could fit
all the code audio components under one single input jack.

I also figured out that if I upgrade to kicad 10, I can start using what
kicad calls "Design Blocks", which is what I really wanted to have
rather than making multiple small modular boards.

One of my main beefs with kicad has been that you can't sanely combine
multiple boards in one design, which is a pain if you just want to have
some semi-modular thing where you re-use components.  So my solution was
to make those small modular boards with the BM28 connectors, design them
separately, and then combine things physically after the fact.

Sure, you could cut-and-paste things between schematics, and that worked
fine (for some definition of "fine": you can't keep two different
schematics open at the same time, so it's an annoying juggling
back-and-forth).

Or you could keep everything in one single schematic on multiple pages
and then remove the parts you didn't need. Horrible.

And none of it helped with routing the PCB.  kicad fundamentally only
does one PCB at a time, with no hierarchical pcb design or anything like
that.

.. until "Design Block".  Now you can make sub-circuit schematics and
pre-route them, and use them as library blocks in other projects.  It's
not perfect, and I've struggled with the zone merging etc, but it mostly
works.

I may be doing things wrong, and I'm most definitely mis-using the
hierarchical bus labels in ways that make ERC unhappy, but it does help
the workflow.

Anyway, this takes the "audio-inputs" design, cuts it down to really
just the single input and the TAC5242 (with the high-Z op-amp input
buffer), and makes a design block of it all:

 - get rid of the 3V3 LDO and prefer an explicitly named +3.3VA
   power rail from the outside

 - don't do the output signal re-biasing, just export the OUT1P
   and OUT2P pins directly

 - make the expected external connections be global netlabels,
   and make some previously global netlabels internal

It then exports the thing as a design block library to be used by other
boards.

Side note: this also ends up starting to use 0201 components for the
100nF bypass capacitors for BOM consolidation reasons.  Not because this
design wants it or needs it, but because I'm also doing the same design
block surgery on the RP2354 board, and using the smaller form factor
makes it easier to route things out of that board.

Yes, it limits the design manufacturability (to "standard assembly" at
JLCPCB), but let's face it, pretty much all my boards ended up being
that anyway due to various other reasons, so it's not as big of a deal
as I used to think it would be.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2026-07-20 08:52:18 -07:00

11 lines
83 B
Plaintext

fp-info-cache
gerbers/
manufacturing/
.history/
*-backups/
*-bak
*.bak
bom
~*.lck