Tutorial: Organizing a Schematic¶
This tutorial demonstrates how to organize a JITX-generated schematic. You can follow the accompanying video above, or refer to the transcript below for code snippets.
Before Starting
You should have built the design from Tutorial: Build circuits with code
Resources¶
- Starting code (JITX Project) – from Tutorial: Build circuits with code
- Final tutorial code (JITX Project) – from this Tutorial: Organizing a schematic
- Schematic View UI Documentation
Key Concepts¶
- JITX automatically generates both a schematic and PCB layout from code.
- Schematics are fully flattened, with globally unique net names.
- Hierarchical structure from code is preserved in the schematic for organization.
- Example:
core.ctl.EEPROM
indicates an EEPROM module inside a controller, itself inside a communications core.
1. Multi-Page Management 1:03¶
1.1 Select Groups or Components¶
- Click and drag to select groups or components within the drawn rectangle.
- Click a single component to select it. Press
Shift + Click
to add more components to the selection.
1.2 Moving Groups to New Pages¶
- Select one or more groups.
- Press
Shift + 2
to move them to page 2. - A hierarchical diagram is automatically added.
- Connections across pages are handled with multi-page ports.
- Text labels on the same page remain as plain text.
1.3 Group Management¶
- Press
Q
to merge groups with the same parent. - Merged groups can be moved together.
- Schematic wires automatically route between merged groups.
2. Net Naming and Symbols 2:04¶
When you add net names to code, JITX updates the schematic accordingly.
2.1 Naming Nets in Code¶
Add a name to the net
statement to identify it clearly.
net (ctl.USB usb-if.USB)
net USB-DATA (ctl.USB usb-if.USB)
2.2 Name Power/Ground Nets and Assign Symbols¶
Check the Schematic
Press Ctrl + Enter
in main.stanza
, then switch to the Schematic view to see newly named nets and power/ground symbols.
Use net
statements to define power or ground nets, and symbol
statements to assign symbols.
; Add these nets within pcb-module communications-core in main.stanza
net VBUS (ctl.VDD-USB.V+)
net P3V3 (ctl.rail-3v3.V+)
net GND (ctl.rail-3v3.V-)
; In the same pcb-module communications-core:
symbol(GND) = GND-SYMB
symbol(VBUS) = PWR-SYMB
symbol(P3V3) = PWR-SYMB
Read more on net
Statements
Read more on symbol
Statements
2.3 Effects and Benefits¶
- More descriptive net names in the schematic.
- Consistent power/ground symbols.
- Improved schematic clarity and automated placement hints.
- Preserves any existing manual layout adjustments.
3. Schematic UI Operations 4:21¶
Pop Out the Schematic View
Use the pop-out button on the Schematic View Toolbar to open the schematic in a stand-alone window.
3.1 Basic Controls¶
- Move: Select and drag.
- Rotate: Press
r
to rotate counter-clockwise,Shift + r
to rotate clockwise. - Mirror:
x
for horizontal mirrory
for vertical mirror- Select net labels: Press
a
to select all wire/net labels on the same net. - You can also rotate or mirror a schematic group or any selection.
- Multiple views: Press the “new view” button to open another schematic window.
Read more on Selecting Schematic Elements
Read more on Transforms
3.2 Wire Management¶
- Split wires: Select a wire, then press
Delete
orz
(Read more on Net Split). - Remove extra net symbols for a cleaner schematic layout.
4. Layout Reuse and Optimization 5:00¶
4.1 Copy/Paste Layouts¶
- Arrange one instance of a repeating circuit.
- Select that group.
- Press
Ctrl + c
to copy. - Press
Ctrl + v
to paste it into similar groups.
4.2 Auto-organization¶
- Local layout optimization: Press
l
- Select a group, then press
l
to invoke local (packing) optimization again. - Organize ports around symbols: Press
g
(Read more on Organize Ports)
Copy/Paste & Auto-Organize
- Select two schematic groups and press
Ctrl + c
, thenCtrl + v
. - Press
g
to organize ports. - Press
l
for local layout optimization.
5. Progress Report Panel 6:20¶
- Click the Progress Report icon in the upper-right corner:
- This panel displays potential issues before exporting the schematic to CAD.
- Double-click an issue to jump directly to that location.
- Typical issues include:
- Wire overlaps
- Text label overlaps
- Connection problems
Read more on Progress Report Panel
6. Advanced Features¶
- Open the command window by pressing the backtick (
`
). - Rebind any hotkey as needed.
- Add custom commands and assign them to new hotkeys.
- Find components:
find R1
finds an exact match.find R1?
finds components starting with “R1,” e.g., R10, R11, R12, R13, but not R1 itself.- Use the arrow key in the Command window to cycle through results.
- Select items:
select R1?
Design Philosophy¶
-
Schematic UI for Layout Only
- Cannot change connectivity in the UI.
- Focus on visual clarity and organization.
- All connections live in the code.
-
Code-First Approach
- Design correctness is driven by code.
- The UI preserves any manual adjustments.
- Powerful code can generate large, complex designs.
- Schematic editing is the lowest-level design layer.
-
Best Practices
- Name significant nets to improve clarity.
- Use consistent symbols for power/ground.
- Organize repeated or similar circuits in the same manner.
- Resolve issues before exporting to CAD.
- Use multiple pages for complex designs.
Common Operations Reference¶
Operation | Command | Purpose |
---|---|---|
Move to Page 2 | Shift + 2 |
Create a multi-page schematic |
Merge Groups | q |
Combine related groups |
Rotate | r |
Rotate selected items |
Mirror H/V | x / y |
Mirror horizontally/vertically |
Select All | a |
Select all nets/labels on the same net |
Organize Ports | g |
Arrange connections automatically |
Relayout | l |
Optimize layout for a selected group |
Split Wire | Delete /z |
Break a wire connection |
Command Menu | ` |
Access command interface for custom commands |
Help Menu | ? or / |
View all available commands |
Help Menu (?
)
Press ?
or click the icon (upper-right corner) for a quick command reference.
Continue to the next tutorial: Tutorial: Autoroute and layout