Drawing a Clean KiCad Schematic: Net Labels, Power Symbols and ERC
A schematic is not just the input to the PCB layout. It is the document you, your teammates and your future self will read when the board does not work. A clean schematic shows the signal flow at a glance, uses names instead of long crossing wires, and passes the Electrical Rules Checker (ERC) with zero errors.
This article covers the habits that make schematics readable, explains the three kinds of labels in KiCad 8, shows how power symbols and PWR_FLAG work, and walks through the ERC messages beginners hit most often.
Layout Habits That Make a Schematic Readable
- Signals flow left to right: inputs and connectors on the left, outputs on the right. Power flows top to bottom, with positive rails at the top and ground at the bottom.
- Group by function: draw the power supply, the microcontroller, sensors and connectors as separate blocks, each with a text heading. Use Place > Add Rectangle or a graphic box to frame a block if it helps.
- Avoid four-way junctions: where four wires meet at one dot, it is easy to misread. Offset them into two T-junctions.
- Keep the default grid: KiCad symbol pins sit on a 50 mil (1.27 mm) grid. Changing the grid causes wires that look connected but are not.
- Show values and important notes: write the part value, tolerance or voltage rating where it matters, for example
10uF 25V.
Decoupling capacitors deserve a special mention. Draw them next to the IC they serve, not in a separate corner of the sheet. This tells the layout person which cap belongs to which pin, which matters a lot during placement.
Net Labels: Connecting Without Wires
Any two points with the same label name on the same net scope are connected, even if no wire joins them. Labels let you replace a long wire crossing the sheet with two short named stubs. KiCad 8 offers three kinds.
| Label type | Menu and hotkey | Scope |
|---|---|---|
| Local label | Place > Add Label (L) | Connects only within the same sheet |
| Global label | Place > Add Global Label (Ctrl+L) | Connects across every sheet in the project |
| Hierarchical label | Place > Add Hierarchical Label (H) | Connects to a pin on the parent sheet symbol |
Use meaningful names: I2C_SDA, UART_TX, LED_EN, VBAT_SENSE. The label name becomes the net name in the PCB Editor, so good names make routing and DRC messages much easier to understand. For differential pairs, end names with _P and _N or + and -, for example USB_D+ and USB_D-, because the KiCad router uses these suffixes to recognise pairs.
Power Symbols and PWR_FLAG
Power symbols such as +3V3, +5V and GND, placed with Place > Add Power (P), behave like global labels. Every GND symbol on every sheet is the same net. This keeps ground wires off the schematic entirely.
ERC checks that every pin marked as a power input is driven by a pin marked as a power output. A voltage regulator's output pin is usually typed as power output, so the rail it feeds is satisfied. But if power enters from a connector or a battery, the connector pins are passive, and ERC reports that the power input pins are not driven. The fix is to place a PWR_FLAG symbol on that net. PWR_FLAG tells ERC that this net is powered from outside.
J1 pin 1 ---+--- +5V (net +5V, connector pin is passive)
|
PWR_FLAG (declares the net as externally driven)
J1 pin 2 ---+--- GND
|
PWR_FLAGAdd PWR_FLAG only where power genuinely enters the board. Placing it everywhere silences ERC and hides real mistakes such as a rail that was never connected to the regulator.
Running ERC and Fixing Common Errors
Run Inspect > Electrical Rules Checker and click Run ERC. Each marker points to a location on the sheet. Work through them until the list is empty.
| ERC message (paraphrased) | Usual cause and fix |
|---|---|
| Pin not connected | Wire missing, or the pin is intentionally unused; add a no-connect flag with Q |
| Input power pin not driven by any output power pins | Power comes from a connector or battery; add PWR_FLAG on that net |
| Label not connected to anything | Label placed beside the wire instead of on its end |
| Wire end unconnected | Dangling wire stub left after editing; delete it |
| Pins of type output connected | Two outputs driving one net, a real design error |
| Symbol has not been annotated | Run Tools > Annotate Schematic |
Use no-connect flags deliberately. Placing one on an unused microcontroller pin documents that you chose to leave it open. Do not use them to silence pins you forgot to wire.
Pre-Layout Schematic Checklist
- Every IC has its power and ground pins connected, including hidden or duplicated ones listed in the datasheet.
- Every decoupling capacitor is drawn next to its IC with its value shown.
- All nets that go to the PCB have meaningful labels rather than default names such as
Net-(R1-Pad2). - Polarised parts (LEDs, diodes, electrolytic caps) are oriented correctly.
- Annotation is complete and footprints are assigned.
- ERC shows zero errors, and every remaining warning is understood.
Summary
Readable schematics flow left to right, group circuits by function, and use labels and power symbols instead of long wires. Local, global and hierarchical labels connect nets at different scopes. PWR_FLAG marks nets powered from outside, and no-connect flags document unused pins. Running ERC until it is clean is the cheapest debugging you will ever do, because every error caught here is one less cut track on a real board.