Tutorial 5 · Design
Designing with Channels
8 min read
What you'll learn
- What a channel is and how it differs from ordinary pin-to-pin wires
- How to set org-wide Channel Defaults so new channels arrive pre-wired with a cable or bundle
- How to draw a channel between two devices and edit its cable / bundle and per-wire properties
- How to show, hide, reorder, and split channels into subports on a device
- How to expand a channel into real cables / wires and collapse wires back into a channel
- How channels behave through connectors, and how they roll up into nets, the Connections Table, and the BOM
Prerequisites
- Complete Tutorial 3: Building Library Parts — specifically the Define channels on a device step, so you have at least two devices that declare a channel of the same protocol (e.g. two devices each with a
CANchannel). - Complete Tutorial 4: Make your First Diagram for placing parts, drawing wires, and using the Properties pane.
Background: channels vs. wires
A channel lets a device expose a multi-pin protocol (CAN, Ethernet, UART, SPI, I2C, RS232/RS422/RS485) as a single interface. On the diagram you wire it with one connection — the channel — that stands in for all the connections of that protocol, so a CAN bus is drawn as a single line instead of three separate wires.
Steps
1Set org Channel Defaults
Channel Defaults tell Artifact which cable or set of wires to apply when a new channel connection is made. They're shared across your organization. Editors and Admins can change them; Viewers see them read-only.
- In the Library sidebar header, click the Library Dashboard button (purple book icon). For the full Library Dashboard walkthrough, see Tutorial 10: Library & Project Dashboards.
- Open the Channel Defaults group. You'll see one row per protocol with its role count (e.g.
CAN — 3 roles). - In a protocol's Select cable or bundle... dropdown, pick either:
- a Cable from your library (only cables with at least as many conductors as the protocol has roles are offered), or
- Bundle of single conductors to wire each role with its own single-conductor part.
- Click the chevron to expand the row and map roles to wires. Drag the role names onto a different wire row to remap which conductor carries which role.
Screenshot
No default is required. If a protocol has no default, a freshly drawn channel starts empty and you assign its part in step 3.
2Place devices and find their channel blocks
- Create or open a diagram (Tutorial 4: Make your First Diagram) and drag two devices that have at least one of the same channel protocol onto the canvas.
- Each device shows its channel block(s): a color-coded header naming the protocol with one row per channel.
- If a channel you expect is missing, it may be hidden by default. Select the device and open the Properties pane (Ctrl/Cmd+P) — the Channels section lists every channel with a show/hide toggle (see step 4).
Screenshot
3Draw a channel
- Hover over the small square inside a channel's row. The cursor becomes a crosshair.
- Click and drag from that box; the channel will follow your cursor.
- Release on a compatible channel row on another device (or a connector — see step 6). The channel snaps and connects.
- Endpoints must be compatible. Incompatible targets won't accept the drop.
- You can also release in empty space to leave the channel dangling with a loose end, and connect the other end later.
- Select the channel to edit parameters in the Properties pane such as:
- Reference name, Harness, and Routed length on the standard property rows (the same fields as an ordinary wire).
- From the properties pane, you can press the "Edit" button which opens a modal where you can set:
- Part — choose a Cable or Bundle of single conductors. (If you configured a Channel Default in step 1, this is already filled in.)
- Auto-name wires — when checked, every conductor's reference name is kept in sync as
<ref name>.<channel name>.<role>. - The per-role table — one row per protocol role showing the Source and Target pins (the target reflects any automatic role swap, e.g. UART
TX↔RX), plus an editable reference name, per-wire Part (bundle mode), Insulation, and Gauge. Click a Source/Target pin cell to highlight that pin on the diagram.
Screenshot
Polarity is handled for you. For protocols that cross conductors (like UART's TX↔RX), Artifact applies the swap exactly once across an end-to-end route — even when the route passes through intermediate connectors — so device A's
TXalways lands on device B'sRX.
4Show, hide, reorder, and split channels
Select a device and open the Channels section of the Properties pane to manage its channel blocks.
- Show / hide — each channel has a checkbox; the protocol header has an eye toggle to flip the whole group. Hiding a channel that has a connection re-roots it to a loose end so you don't lose the connection.
- Reorder — drag a selected channel row within its block to change its order (a drop indicator shows where it lands).
- Move the whole block — drag a block's header or body to relocate it, including onto a different island.
- Split into subports — click the + in a channel row to move it into a new named subport, which renders as a separate block of the same protocol. Rename a subport by clicking its column header. Use this to keep, say, two independent CAN buses in visually distinct blocks.
You can also manage channels directly on the canvas:
- Press F to flip a selected channel block to the other side of the device / island.
- Press Delete / Backspace on a selected channel to hide it.
- Right-click a device, port, or empty canvas → Hide pins used by channels to tuck away the underlying pins a channel covers.
Screenshot
5Expand a channel into wires (and collapse back)
Sometimes you want the real conductors drawn — for routing, hand-editing a single wire, or final documentation. Expand Wires replaces a channel with the actual cables / wires, connected to the correct pins (hidden pins are made visible as needed). Collapsing is the reverse.
To expand:
- Select one or more channels and click Expand Wires in the Properties pane, or
- Click the expand icon on a channel's row in the device Channels section
After expanding, the channel is removed and the new wires / cables are selected. A cable part produces a parent cable plus its child wires; a bundle produces independent wires.
To collapse:
- Click the collapse icon on the channel row in the Channels section, or right-click the channel block → Collapse to channel edge.
Screenshot
6Channels through connectors
When you drop a channel onto a connector pin, Artifact automatically selects pins to connect to. It allocates the needed pins for each role, and for a mated connector, it mirrors the channel onto both sides so the bus passes straight through.
- A connector channel's name is derived as
<device ref>.<channel name>so you can trace the bus end to end. - To change which pins a connector channel uses, select the connector and click the Remap channel pins button in the top-left of the connector — drag the role pills between pin rows. Mated connectors mirror your changes across both ports automatically.
- Fully expanding both sides of a mated connector's channel removes the auto-created blocks, leaving plain pins and wires; collapsing rebuilds them.
Screenshot
7See channels in nets, the Connections Table, and the BOM
Even though individual conductors aren't drawn, channels are fully accounted for downstream — Artifact expands them internally wherever connectivity matters:
- Nets (Ctrl/Cmd+Shift+N) — every role's conductor joins the correct net, including any hidden pins it lands on.
- Connections Table — each conductor of a channel appears as a row. A generated row links back to its parent channel (and surfaces the cable P/N and reference name), so you can jump from a conductor to the channel that owns it.
- BOM & Harness — the channel's cable or bundle parts roll up into the BOM, and conductors assigned a Harness flow into that harness just like ordinary wires (Tutorial 6: Harness Editor).
- ERCs (Ctrl/Cmd+Shift+R) — rule checks include channel conductors and the pins they touch.
Summary
You learned that a channel represents an entire multi-pin protocol as a single line that connects to a device's channel block rather than to pins. You set org-wide Channel Defaults, drew channels between devices, edited their cable / bundle and per-wire properties, and managed channel visibility, ordering, and subports. You expanded channels into real wires and collapsed them back without losing data, saw how channels pass through connectors, and confirmed they roll up into nets, the Connections Table, and the BOM.
What's next
- → Tutorial 6: Harness Editor — assign your channel conductors to a harness and lay out the physical segments and lengths.
- → Tutorial 9: BOMs & Exports — see the channel's cable / bundle parts and conductors in the BOM and Connections Table.
