-
Notifications
You must be signed in to change notification settings - Fork 3
Hierarchical Schematics (Sub‐sheets)
Each PCB in the master schematic will be represented by a sub-sheet, which is just another schematic file for that PCB. The end goal is for every PCB's schematic to look and act like a symbol for a component, so that we can just wire them up like physical components in the master schematic. Unlike the actual PCB projects, this won't have a PCB layout (it's just a diagram).
A label just states a connection without drawing out a wire.
Use the
~
key to highlight all connections to a wire/symbol after you've selected it.
There are three types of labels:
- Local: These labels only exist "locally", meaning within the sheet they're in. If local labels with the same name exist in different sheets, they'll be treated as entirely separate labels on their respective sheets.
Notice that
LocalLabel
is independent of each sheet. They're similar to local variables in code.
- Global: These labels exist through every level of sheet, from the highest to lowest level. We will NOT use these as they prevent our master schematic from being helpful.
Notice that
GlobalLabel
is connected to every level of sheet, like a global variable in code.
- Hierarchical: These are special, they let you connect a sub-sheet to its parent sheet (the sheet it's contained in). You define it as an input or output, and in the parent schematic you can right click the sub-sheet to "import the pin(s)". Those pins are the hierarchical labels, and let you connect stuff in your parent sheet to the sub-sheet. They basically let you treat a schematic just like a component with pins, except the "component" is an entire schematic in itself.
Notice that I selected the wire for the input to the sub-sheet, and when highlighting its connections it went all the way to the output. That connection was defined inside the sub-sheet, but it connected all the way through. This will be how our sub-sheets work in the master schematic. These are like getter/setter methods in code.
Putting it simply, they defeat the purpose of our master schematic.
Say we had a global label +24V_Shooter
and tacked it onto its PMM (Power Management Module) output. Then we attached that label to the associated motors in the turret as well. The schematic would tell us they're connected, but never tell us how they're connected.
In reality, we wire from the PMM to an input on the Chassis PCB, which outputs it through the slipring and to an input on the Turret PCB, which will then output it to the motor controllers.
Each of these connections of an input port to output port has to be defined within the PCB sub-sheets. If we don't, those connections won't exist on the PCB.
Have any burning questions? Feel free to contact cheebri or breezyjoe on Discord!