docs / workbenches / PCB Workbench

PCB Workbench

Id: pcb · Ninth entry in the workbench dropdown

PCB is the electronics flow: schematic capture and board layout, with the schematic and the board as two views of one design. It runs eCAD's sheet-and-board editor on the document's schematic in place of the 3D view.

What it offers

PCB creates no features. It adds:

Parts and assembly placement

Assembly parts lists native occurrences with symbols or pads. A part you add to the assembly takes the next free reference designator for its symbol's prefix (U1, U2, R1…), and its symbol's value (KiCad's Value field: R for a resistor, LM358 for that op amp), which you type over with the part's own in the Inspector (10k; see Inspector). The value is what the sheet draws under the reference, what the parts BOM groups by, and what the netlist and pick-and-place write. The designator is written into its BOM row in the same undo step as the add. The BOM owns it: rename a part in the BOM pane's Reference_Designator column, and both sheets and the board follow. A part the board seats on its own goes on the schematic clear of the parts already there. A footprint left unnamed in Pads takes the part's name. A part whose pads or symbol a sheet cannot hold (a zero-sized pad, say) is not listed, and a notice says which part and why. The board follows that list on its own: an occurrence with pads gains its footprint on the next frame, with no view switch and no button, and a part placed on the PCB schematic is on the board in the same undo step. Update from parts forces that pass, re-framing the board when it added or removed a part — for a sync that was undone, or a stored board out of step with its components. A board is an assembly, and the sheets are two views of it: every symbol and every footprint is an assembly component, added through Add component, and there is no other way to put one down. Deleting a component on the schematic, the board or the Diagram deletes the assembly component it is, in the same undo step; the other views let go of it and a notice lists what went. Duplicate (Ctrl+D) on a component whose part has every occurrence on the sheet adds another occurrence of that part to the assembly and, on the schematic, puts its symbol in your hand (a part with pads is seated by the board on its own). A board saved before 2026-10-14 may hold symbols and footprints with no assembly behind them: opening it gives it one, with no undo step and nothing to save — one assembly component per footprint, labelled and posed as it was drawn, from a part that is its own symbol and pads (it has no source file, so Update components has nothing to read for it). Symbols and pads come from their native parts. Update Components refreshes both snapshots. A part edited in its own open tab (a pin renumbered, a footprint renamed), saved or not, reaches the board when you switch to the board's tab, as it reaches any open assembly. A notice names the part and what the update carried over, and one Undo takes it back. When the part file was changed while the board was not open, each component placed from it is ringed in amber, on the schematic and on the board, and a card over the top of the sheet names the parts. Its Update parts button takes the saved versions in as one undo step; Later folds the card and keeps what is placed. Entering the workbench never updates by itself. Deleting a part's occurrence from the assembly also takes it off the schematic, the board and the Diagram, and removes its harness connections. The wires and tracks that ran to it stay, unconnected. A notice lists what went, and one undo brings it all back. An electronics part can be placed before it has a 3D model; its ports and occurrence still exist, and a later model arrives through the same refresh.

Moving or rotating a board placement updates that occurrence's assembly transform in the same undo step, and the reverse: a component moved or turned in the Assembly workbench (the gizmo, the transform parameters) moves its footprint on the board in that edit's own step. A pose a board cannot hold — a tilt, a turn that is no quarter — leaves the footprint where it was, and a notice says so. Board coordinates are micrometres with Y down; assembly coordinates are millimetres with Y up. A bottom-side placement turns the part over about Y. A top-side part sits at Z = 0 and a bottom-side part 1.6 mm below it: the board is a fixed 1.6 mm thick, with no thickness setting.

Checking the schematic

The Inspector's Connectivity section lists the schematic's nets and holds the electrical rules check (ERC). Run electrical rules check grades how the pins are joined by their electrical types, which KiCad parts carry and the Symbol workbench sets. The rules are a reduced form of KiCad's:

Click a finding to zoom the sheet to it; a ring marks each finding there. The row selects nothing, so the list stays where it is. A finding that one edit answers offers it under its row, as one undo step:

The same marks are on the schematic's toolbar, for placing them as you draw rather than after a finding:

The findings follow every edit while they are shown; Hide the findings takes the rows and the rings away. The unit rule works on today's model, where every unit of a part is placed together: an unused unit shows up as one whose pins are all open.

Manufacturing files

File ▸ Export has a row of its own for the board, enabled once the board has parts on it:

The assembly's own BOM (CSV) beside it is the mechanical one and keeps its columns.

STEP exports the board as the 3D view shows it, for the mechanical side. The board is one solid: its outline, 1.6 mm thick, with a hole through it for every via and through-hole pad. Each pad, track segment and via ring is its own thin copper solid, named by layer and net (PCB_F.Cu/GND#3), and each via barrel is a tube (PCB_Vias#1). The copper solids overlap where a track meets a pad, because they are not fused. A zone's fill is one copper solid per piece, with its holes cut, named the same way. The part bodies are placed as they are on the board, bottom-side parts under it. Each part is one product, named after its part (lm358), not the file it came from, and each placement is named by its reference (U1). Solder mask and silkscreen are not exported.

A board with design-rule findings still exports, since the files are complete, but the dialog stays open with the findings on its status line and a notice, so the files are not ordered unread. From a script, document_export takes fabrication, pick_place_csv, ecad_bom_csv and kicad_netlist.

Copper zones

A zone is a polygon on one copper layer that pours one net, usually GND. Choose Draw zone, pick the net in the Inspector (GND is chosen for you when the sheet has one), and click the corners on the active layer; click the first corner again, double-click or press Enter to close it. It is filled at once and selected, so its corners can be dragged. Dragging a corner or the whole zone refills it when it is let go, and dragging the dot in the middle of an edge puts a new corner there.

The fill is the zone's polygon inside the board outline by the edge clearance, kept clear of every pad, track and via of another net by the larger of the two nets' class clearances (see Net classes below). A surface-mount pad, a track or a via of the zone's own net is solid copper under the fill. A through-hole pad of its net is joined by a thermal relief: a gap all round it, at least its net's class clearance, bridged by up to four spokes, left, right, up and down, each laid only where the fill is there to meet it. Parts narrower than the zone's minimum width are left out, and a piece of fill that touches no copper of its net is removed. A via with no net inside a zone counts as the zone's own, so a via dropped in a pour stitches it to the other side. Where two zones of different nets overlap, the one drawn first keeps the ground they share. The Inspector shows the filled area, the pieces and holes, and the spokes each relieved pad got, and sets the net, the layer, the thermal gap, the spoke width and the minimum width.

The fill is copper like any other: it joins the pads of its net, so their airwires go, and the design rule check holds it to the board's clearances. It is not refilled on every edit. After tracks or parts move, the zone's outline turns the warning colour, and Fill zones (B) refills every zone. The design rule check refills before it checks. The manufacturing files are made from a fresh fill whatever the board shows, and the zone is written to the copper Gerber as regions. The 3D view and the STEP export show the fill that was last made.

Net classes

A net class is a clearance, a track width and a via size for a group of nets: wider, further apart supply nets, say. Default is always there and is the board's own Design rules. Open Net classes in the board's Inspector to add a class (Add net class starts one with the Default sizes), rename it, set its sizes, and give it patterns: net names, separated by commas, where * is any run of characters and ? any one, so +*V* takes +5V and +3V3. Pick a net, or select a track, pad, via or zone, and the section says which class the net is in and why; Put in assigns it to a class outright. An assignment beats a pattern, the first class whose pattern matches beats the later ones, and a net nothing puts anywhere is Default.

Two nets keep the larger of their two classes' clearances, the rule KiCad uses. The design rule check reads it for every pair, names the class in the finding ("Power clearance 0.400 mm required"), and flags a track narrower than its net's class width. A zone keeps the same clearance from other nets' copper. A new track from a pad starts at the width of the pad's net's class, and a layer change drops a via of the class's size; Apply net widths gives every track its class's width. A width set for one net under Design rules beats its class's width. The autorouter reads the class widths but not yet the class clearances or vias.

Toolbar buttons

Eighteen of their own, which are eCAD's own commands, lit and greyed by eCAD's own rules. The schematic's tools are there in the schematic, the board's on the board, and a tool's own commands while it is in hand. A command that is on the row but cannot act yet is drawn greyed, with the reason on hover.

ButtonIdOfferedWhat it does
Schematicpcb.view.schematicalwaysShows the schematic
PCBpcb.view.boardalwaysShows the board, laid out from the schematic's parts and nets; greyed while the autorouter runs
Selectpcb.sheet.tool.selectin the schematicPicks and drags components, wires and labels; drag between terminals to connect
Draw wirepcb.sheet.tool.wirein the schematicDraws a wire from a pin or grid point
Junctionpcb.sheet.tool.junctionin the schematicJoins two crossing wires with a dot, or removes one
Net labelpcb.sheet.tool.labelin the schematicNames a net by labelling a wire or pin
No-connectpcb.sheet.tool.no_connectin the schematicMarks the pin clicked as meant to be left open (), so the electrical rule check does not ask for it to be joined; a second click takes the mark off
Power flagpcb.sheet.tool.power_flagin the schematicPuts a PWR_FLAG on the pin clicked, or on the net of the wire clicked, so its power inputs read as driven from off the sheet; a second click takes it off
Power symbolpcb.sheet.tool.powerin the schematicPlaces a power symbol (GND, VCC, +3V3, +5V or a typed name); every symbol of one name is one net, which the netlist carries under that name
Selectpcb.board.tool.selecton the boardDrags parts; picks tracks and vias
Route trackpcb.board.tool.routeon the boardDraws a copper track from a pad
Draw zonepcb.board.tool.zoneon the boardDraws a copper zone corner by corner on the active layer, pouring the net chosen in the Inspector (GND until one is chosen); closing it fills it
Copper layerpcb.board.layeron the boardOpens the board's copper layers by name (F.Cu … B.Cu), the one tracks go on ticked
Rotate 90°pcb.sheet.place.rotatewhile placing a partTurns the part being placed a quarter turn
Bend directionpcb.sheet.wire.bendwhile drawing a wireSwitches which way the wire bends: vertical or horizontal first
Finish wirepcb.sheet.wire.finishwhile drawing a wireEnds the wire being drawn; greyed until one is started
Corner directionpcb.board.route.cornerwhile routing a trackSwitches which way the track corners: 45° or straight first
Place viapcb.board.route.viawhile routing a trackDrops a via and carries the track on to the next copper layer; greyed until a track is started on a board with more than one layer
Finish trackpcb.board.route.finishwhile routing a trackEnds the track being drawn; greyed until one is started
Close zonepcb.board.zone.finishwhile drawing a zoneCloses the zone being drawn and fills it; greyed until it has three corners
Fill zonespcb.board.zones.fillon the boardRefills every zone against the copper as it is now (B); greyed while the board has no zones

After its own eighteen the row carries one borrowed button, Assembly's Add component (assembly.add_component, always offered) — see Assembly — so a part can be placed without leaving the board.

Copper layer is a menu rather than six buttons, because a layer's name depends on how many the board has: the second layer is B.Cu on a two-layer board and In1.Cu on a four-layer one. Its entries are buttons of their own, pcb.board.layer.1 to pcb.board.layer.6, one for each layer the board has. The menu's label names the layer tracks go on.

Undo and Redo are the main toolbar's own, so the row carries neither. With the pointer over the editor, the mouse wheel zooms without fixed limits; the Zoom buttons have the same range. F fits it (the main toolbar's Zoom to fit does not). Keys reach the editor wherever the pointer is, unless a text field has the keyboard. The selection is deleted with Delete and turned with R, as in eCAD's own editor. Ctrl+D duplicates on the schematic; the board has no duplicate. Pressing Select or Escape puts any tool down, which is why the row has no "Done" buttons.

Choosing this workbench while a sketch is being edited finishes the sketch, as its Finish button does, so the drawing is kept.