
== Creating PCBs

=== Basic PCB concepts

A printed circuit board in KiCad is generally made up of *footprints* representing electronic
components and their pads, *nets* defining how those pads connect to each other, *tracks*, *vias*,
and *filled zones* that form the copper connections between pads in each net, and various graphic
shapes defining the board edge, silkscreen markings, and any other desired information.

Pcbnew normally keeps the information about nets on a PCB synchronized with an associated
schematic, but nets can also be created and edited directly within Pcbnew.

=== Capabilities

Pcbnew is capable of creating printed circuit boards with up to 32 copper layers, 14 technical
layers (silkscreen, solder mask, component adhesive, solder paste, etc) and 13 general-purpose
drawing layers.

The internal measurement resolution of all objects in Pcbnew is 1 nanometer, and measurements are
stored as 32-bit integers.  This means it is possible to create boards up to appproximately
4 meters by 4 meters.

KiCad currently supports one board file per project / schematic.

=== Starting from a schematic

Creating a board from a schematic is the recommended workflow for KiCad.  When you create a new
project, KiCad will generate an empty board file with the same name as the project.  To start
designing the board after you have created a schematic, simply open the board file.  You can do
this either from the KiCad project manager, or by clicking the "Open PCB in board editor" button in
Eeschema.

=== Starting from scratch

It is also possible to create a board with no matching schematic, although this workflow has some
limitations and is not recommended for most users.  To do this, you must start Pcbnew standalone
(not from the KiCad project manager).  Before beginning your design, it is a good idea to save the
board file, which will also create a project file to store board settings.  Use "Save As..." from
the File menu to choose where to save your board file.  A project file with the same name will be
created in the same location you choose to save the board file in.

=== Board setup

Before beginning your board design, use the Board Setup dialog to configure the basic parameters of
the board.  To open Board Setup, click the icon in the top toolbar or choose "Board Setup..." from
the File menu.

NOTE: TODO: Add screenshot of Board Setup

==== Configuring board stackup

==== Configuring default text and graphic settings

==== Configuring design rules

Design rules control the behavior of the interactive router, the filling of copper zones, and the
design rule checker.  Design rules can be modified at any time, but it is recommended to establish
all known design rules at the beginning of the board design process.

===== Constraints

Basic constraints are configured in the Constrants section of the Board Setup dialog.  Constraints
in this section apply to the entire board, and should be set to the values recommended by your
board manufacturer.

image::images/board_setup_constraints.png[scaledwidth="70%"]

===== Pre-defined Sizes

NOTE: TODO: Write this section

===== Net Classes

NOTE: TODO: Write this section

===== Custom Rules

NOTE: TODO: Write this section

See Custom Design Rules in the Advanced Topics chapter for more information

===== Violation Severity

NOTE: TODO: Write this section
