Skip to main content

Your First KiCad Project

This guide will walk you through creating a complete electronics project in KiCad, from initial concept to manufacturing-ready PCB. We’ll design a simple LED blinker circuit using a 555 timer IC.
This tutorial assumes you have already installed KiCad and the standard component libraries. If not, see the Installation Guide first.

Project Overview

We’ll create an LED blinker circuit with these components:
  • 555 timer IC
  • Resistors and capacitors for timing
  • LED and current-limiting resistor
  • Power connector
You’ll learn:
  • Creating a new project
  • Schematic capture in Eeschema
  • Assigning footprints
  • PCB layout in Pcbnew
  • Generating manufacturing files
1

Create a New Project

Launch KiCad and Create Project

  1. Open KiCad Project Manager
    • Launch KiCad from your applications menu
    • You’ll see the main Project Manager window
  2. Create a New Project
    • Click File > New Project or press Ctrl+N (Windows/Linux) / Cmd+N (macOS)
    • Choose New Project (not “New Project from Template” for now)
  3. Name Your Project
    • Navigate to your desired project directory (e.g., ~/Documents/kicad_projects/)
    • Enter project name: led_blinker
    • Click Save
KiCad creates a project folder with multiple files:
  • led_blinker.kicad_pro - Project configuration
  • led_blinker.kicad_sch - Schematic file
  • led_blinker.kicad_pcb - PCB layout file (created later)

Project Structure

led_blinker/
├── led_blinker.kicad_pro      # Project settings
├── led_blinker.kicad_sch      # Main schematic (created)
├── led_blinker.kicad_pcb      # PCB layout (created later)
├── fp-lib-table               # Footprint library table (created later)
└── sym-lib-table              # Symbol library table (optional)
Your Project Manager now shows the new project with two main files:
  • Schematic file (.kicad_sch)
  • PCB file (.kicad_pcb)
2

Draw the Schematic

Open Schematic Editor

  1. Launch Eeschema
    • In Project Manager, double-click led_blinker.kicad_sch
    • Or click the schematic editor icon in the toolbar
    • Eeschema opens with a blank schematic sheet
  2. Configure Schematic Settings
    • Click File > Schematic Setup
    • Under General, set:
      • Sheet size: A4
      • Title: LED Blinker Circuit
      • Revision: 1.0
    • Click OK

Add Components to Schematic

KiCad uses keyboard shortcuts extensively for efficient workflow:
  • A - Add symbol
  • M - Move item
  • W - Begin wire
  • Esc - Cancel current operation
  1. Add the 555 Timer IC
    • Press A (Add Symbol) or click the “Add Symbol” button
    • In the search box, type: 555
    • Select Timer:NE555 from the list
    • Click OK
    • Move mouse to place component, click to place
    • Press Esc to exit placement mode
  2. Add a Capacitor (C1 - Timing)
    • Press A again
    • Search for: C
    • Select Device:C (generic capacitor)
    • Place it to the right of the 555 timer
    • Press Esc
  3. Add Another Capacitor (C2 - Bypass)
    • Press A, search for C
    • Place below the 555 timer
    • Press Esc
  4. Add Resistors
    • Press A, search for R
    • Select Device:R (generic resistor)
    • Place three resistors:
      • R1 and R2: Near pins 7 and 6 of 555
      • R3: For LED current limiting
    • Press Esc
  5. Add an LED
    • Press A, search for LED
    • Select Device:LED
    • Place near R3
    • Press Esc
  6. Add Power Connector
    • Press A, search for Conn_01x02
    • Select Connector:Conn_01x02 (2-pin connector)
    • Place in upper left corner
    • Press Esc
  7. Add Power Symbols
    • Press P (Add Power Port)
    • Search for VCC
    • Place near the positive supply pins
    • Press P again, search for GND
    • Place near ground connections
    • Press Esc
To rotate components while placing, press R. To flip horizontally, press X. To flip vertically, press Y.

Wire the Components

  1. Connect Components with Wires
    • Press W (Begin Wire) or click the wire tool
    • Click on pin 8 of the 555 (VCC)
    • Click on a VCC power symbol
    • Continue wiring according to standard 555 astable circuit: 555 Timer Connections:
    • Pin 1 (GND) → GND
    • Pin 2 (TRIG) → Pin 6 (THRES)
    • Pin 3 (OUT) → R3 → LED → GND
    • Pin 4 (RESET) → VCC
    • Pin 5 (CTRL) → C2 (0.01µF) → GND
    • Pin 6 (THRES) → R2 → Pin 7
    • Pin 7 (DISCH) → R1 → VCC
    • Pin 8 (VCC) → VCC
    To connect wires, click once to start, click again to create corners, and click on the destination pin to complete the connection.

Add Component Values

  1. Edit Component Values
    • Hover over R1, press V (Edit Value)
    • Type: 10k
    • Press Enter
    • Repeat for all components:
      • R1: 10k
      • R2: 100k
      • R3: 330
      • C1: 10µF
      • C2: 0.01µF
      • LED: Red
  2. Add Reference Designators
    • KiCad auto-assigns references (R1, R2, C1, etc.)
    • To manually edit, hover over component and press E
    • These will be automatically numbered later

Annotate Schematic

  1. Assign Reference Designators
    • Click Tools > Annotate Schematic
    • Select Use entire schematic
    • Keep default settings: Sequential numbering
    • Click Annotate
    • Click OK to confirm changes

Run Electrical Rules Check (ERC)

  1. Check for Errors
    • Click Inspect > Electrical Rules Checker
    • Click Run ERC
    • Review any errors or warnings:
      • No errors: Great! Continue to next step
      • ⚠️ Warnings: Review each warning, most are informational
      • Errors: Fix these before proceeding Common warnings you can ignore:
    • “Power pin not driven by any output”
    • “No input pin on net”
  2. Save Your Schematic
    • Press Ctrl+S (Windows/Linux) / Cmd+S (macOS)
    • Or click File > Save
3

Assign Footprints

Each schematic symbol needs a corresponding PCB footprint (physical component package).
  1. Open Footprint Assignment Tool
    • In Eeschema, click Tools > Assign Footprints
    • Or click the footprint assignment icon in toolbar
    • The CvPCB window opens
  2. Assign Footprints to Components Select each component on the left and assign footprints:
    Package_DIP:DIP-8_W7.62mm
    (or Package_SO:SOIC-8_3.9x4.9mm_P1.27mm for SMD)
    
    Through-Hole vs. SMD:
    • THT (Through-Hole): Easier for hand soldering, good for prototypes
    • SMD (Surface Mount): Smaller, better for production, requires more skill
    For your first project, use Through-Hole (THT) components.
  3. Apply and Save
    • Click Apply, Save Schematic & Continue
    • Close the footprint assignment window
    • Return to Eeschema
  4. Verify Footprint Assignments
    • In Eeschema, hover over each component
    • Press E to edit
    • Check that the Footprint field is populated
  5. Save Schematic Again
    • Press Ctrl+S / Cmd+S
4

Create PCB Layout

Import to PCB Editor

  1. Open Pcbnew
    • In Eeschema, click Tools > Update PCB from Schematic
    • Or press F8
    • The Update PCB from Schematic dialog opens
  2. Import Components
    • Click Update PCB
    • New components are highlighted in green
    • Click Close
    • Pcbnew opens with all components floating

Define Board Outline

  1. Draw Board Edge
    • Select Edge.Cuts layer from the Layers panel (right side)
    • Press Ctrl+Shift+P or click Place > Draw Rectangle
    • Draw a rectangle approximately 50mm x 40mm
    • This defines your board physical size
    The Edge.Cuts layer (magenta/pink) defines where the PCB manufacturer will cut the board.

Position Components

  1. Arrange Components on PCB
    • All components initially appear in a cluster
    • Press M to move components
    • Arrange them logically:
      • J1 (connector) at the edge for easy access
      • U1 (555 timer) in the center
      • Arrange R, C components around U1
      • LED near the edge for visibility
    Press F while hovering over a component to flip it to the bottom layer. Press R to rotate.
  2. Check Ratsnest
    • Thin white lines (airwires/ratsnest) show electrical connections
    • Minimize crossings by optimal component placement
    • Try different arrangements to reduce trace complexity

Route Traces

  1. Set Up Design Rules
    • Click File > Board Setup
    • Under Design Rules > Constraints:
      • Minimum track width: 0.25mm (typical for DIY)
      • Minimum clearance: 0.2mm
    • Click OK
  2. Route Copper Traces
    • Press X to start routing
    • Click on a pad to start a trace
    • Click to create corners
    • Click on destination pad to complete
    • Press Esc to cancel current route
    Routing Tips:
    • Route power (VCC, GND) with wider traces (0.5mm or more)
    • Route signal traces with default width (0.25mm)
    • Avoid sharp angles (use 45° turns)
    • Keep traces as short as practical
    F.Cu (Front Copper) - Top layer traces
    B.Cu (Back Copper) - Bottom layer traces
    (Switch layers during routing with 'V' key)
    
  3. Add Ground Plane (Optional but Recommended)
    • Select B.Cu layer
    • Press Ctrl+Shift+Z or Place > Add Filled Zone
    • Click corners to define zone (usually entire board)
    • Right-click and select Close Zone Outline
    • In dialog:
      • Layer: B.Cu
      • Net: GND
      • Clearance: 0.3mm
    • Click OK
    • Press B to rebuild filled zones
    Ground planes improve electrical performance and reduce routing complexity by providing a common ground connection.

Add Text and Graphics

  1. Add Silkscreen Text
    • Select F.Silkscreen layer
    • Press Ctrl+Shift+T or Place > Add Text
    • Type: “LED Blinker v1.0”
    • Position on an empty area
    • Press E to edit size if needed
  2. Add KiCad Logo (Optional)
    • Place > Add Footprint
    • Search for: KiCad-Logo
    • Select appropriate size
    • Place on silkscreen layer

Run Design Rule Check (DRC)

  1. Check for Errors
    • Click Inspect > Design Rules Checker
    • Click Run DRC
    • Review results:
      • No errors: Perfect! Ready for manufacturing
      • Errors: Fix each error before proceeding Common DRC errors:
    • Clearance violation: Traces too close
    • Unconnected items: Missing traces
    • Track width: Trace too narrow
  2. Save Your PCB
    • Press Ctrl+S / Cmd+S
    • File > Save
5

View in 3D

Verify Physical Design

  1. Open 3D Viewer
    • In Pcbnew, press Alt+3 or View > 3D Viewer
    • A 3D window opens showing your PCB
  2. Inspect the 3D Model
    • Rotate view: Click and drag
    • Zoom: Mouse wheel
    • Check:
      • Component placement looks correct
      • No physical collisions
      • Board dimensions are appropriate
      • Mounting holes aligned (if added)
If components appear as gray boxes, 3D models are missing. This doesn’t affect PCB functionality but helps visualize the final product. Install the optional 3D models package or download models from component manufacturers.
  1. Export 3D Model (Optional)
    • File > Export > STEP
    • Save for mechanical CAD integration
    • Useful for enclosure design
6

Generate Manufacturing Files

Create Gerber Files for Fabrication

PCB manufacturers require Gerber files to fabricate your board.
  1. Open Plot Dialog
    • In Pcbnew, click File > Plot
    • The Plot dialog opens
  2. Configure Gerber Output
    • Output directory: gerbers/ (relative to project)
    • Plot format: Gerber
    • Include layers:
      • ✅ F.Cu (Front Copper)
      • ✅ B.Cu (Back Copper)
      • ✅ F.SilkS (Front Silkscreen)
      • ✅ B.SilkS (Back Silkscreen)
      • ✅ F.Mask (Front Soldermask)
      • ✅ B.Mask (Back Soldermask)
      • ✅ Edge.Cuts (Board Outline)
    For a 2-layer board, you only need F.Cu and B.Cu. 4+ layer boards require additional internal layers.
  3. Plot Settings
    • Use Protel filename extensions (recommended for most manufacturers)
    • Include netlist attributes
    • Subtract soldermask from silkscreen
    • Coordinate format: 4.6, unit mm
  4. Generate Plot Files
    • Click Plot
    • Gerber files are created in gerbers/ folder
    • Click Generate Drill Files
  5. Generate Drill Files
    • In the Drill Files dialog:
      • Drill units: Millimeters
      • Zeros format: Decimal format
      • Drill file format: Excellon
    • Click Generate Drill File
    • Click Close

Verify Gerber Files

  1. Open GerbView
    • Return to KiCad Project Manager
    • Click the GerbView icon
    • File > Open Gerber Plot File(s)
    • Select all .gbr files in the gerbers/ folder
    • File > Open Excellon Drill File(s)
    • Select the .drl file
  2. Inspect Gerbers
    • Toggle layers on/off in the Layers panel
    • Verify:
      • All copper traces present
      • Silkscreen readable and not on pads
      • Soldermask openings correct
      • Drill holes in correct positions
      • Board outline complete

Create Assembly Files

  1. Generate BOM (Bill of Materials)
    • In Eeschema (schematic editor)
    • Click Tools > Generate BOM
    • Select an export plugin (CSV recommended)
    • Click Generate
    • Save as led_blinker_bom.csv
  2. Generate Pick-and-Place File
    • In Pcbnew
    • File > Fabrication Outputs > Component Placement (.pos)
    • Choose format: CSV
    • Generate separate files for top and bottom
BOM and pick-and-place files are required if you’re ordering assembled PCBs. For DIY assembly, you only need the BOM.

What You’ve Accomplished

Congratulations! You’ve completed your first KiCad project:

Schematic Design

Created a functional 555 timer circuit with proper connections and components

PCB Layout

Designed a 2-layer PCB with proper routing and ground plane

Design Verification

Ran ERC and DRC checks to ensure correctness

Manufacturing Files

Generated Gerber files ready for PCB fabrication

Bill of Materials

Here’s what you need to build this circuit:
ReferenceQtyValuePackageDescription
U11NE555DIP-8Timer IC
R1110kΩAxialResistor
R21100kΩAxialResistor
R31330ΩAxialLED current limiting
C1110µFRadialElectrolytic capacitor
C210.01µFDiscCeramic capacitor
D11Red LED5mmLight emitting diode
J11Conn_01x022.54mmPower connector

Ordering Your PCB

Your gerbers/ folder contains everything needed for manufacturing:
1

Choose a Manufacturer

Popular PCB manufacturers:
  • JLCPCB - Low cost, fast shipping
  • PCBWay - Good quality, reliable
  • OSH Park - US-based, purple PCBs
  • Aisler - EU-based, good for small batches
2

Upload Gerbers

  1. Visit manufacturer website
  2. Click “Quote Now” or “Instant Quote”
  3. Upload your Gerber zip file
  4. Specify:
    • Layers: 2
    • Dimensions: Detected automatically
    • Quantity: 5 (minimum for most)
    • Thickness: 1.6mm
    • Copper: 1 oz
    • Color: Green (or your preference)
    • Surface finish: HASL or ENIG
3

Review and Order

  • Review the auto-detected board dimensions
  • Check pricing
  • Add to cart and checkout
  • Typical lead time: 1-2 weeks
First-time manufacturer tip: Most manufacturers offer automatic Gerber validation. If they report errors, review your files in GerbView and regenerate if necessary.

Circuit Operation

Your LED blinker circuit operates as follows:
555 Timer in Astable Mode:
- R1 and R2 charge C1 through pins 6 and 7
- When C1 reaches 2/3 VCC, pin 3 goes LOW
- C1 discharges through R2 and pin 7
- When C1 reaches 1/3 VCC, pin 3 goes HIGH
- Cycle repeats

Blink frequency ≈ 1.44 / ((R1 + 2×R2) × C1)
= 1.44 / ((10k + 200k) × 10µF)
≈ 0.69 Hz (about 1.5 seconds per cycle)

Next Steps and Advanced Topics

Multi-Sheet Schematics

Learn hierarchical design for complex projects with reusable sub-circuits

Custom Libraries

Create your own symbol and footprint libraries for frequently used components

4-Layer PCBs

Design multi-layer boards with dedicated power and ground planes

Python Scripting

Automate repetitive tasks and create custom tools using KiCad’s Python API

SPICE Simulation

Simulate circuit behavior before building with integrated ngspice

High-Speed Design

Learn about impedance control, differential pairs, and length matching

Common Beginner Mistakes

Always run Tools > Annotate Schematic before assigning footprints. Otherwise, components may have duplicate reference designators.
If you skip footprint assignment, Pcbnew won’t know what physical package to use. Every component needs a footprint.
DRC errors indicate real problems (traces too close, unconnected nets, etc.). Always fix errors before manufacturing.
Leave at least 3-5mm clearance between the board edge and components/traces for mechanical stability and manufacturing tolerances.
Silkscreen text on solder pads gets removed during manufacturing. Keep text away from pads and vias.
Power traces should be wider than signal traces. Use 0.5mm or more for VCC/GND connections, or use ground planes.

Troubleshooting

Schematic Issues

Components won't place
issue
Solution: Press Esc to cancel any active tool, then try again. Make sure you’re not in another editing mode.
Can't find component in library
issue
Solution: Try different search terms. For example, search “res” instead of “resistor”, or “cap” instead of “capacitor”.
ERC shows many errors
issue
Solution: Check that all components are properly connected with wires (not just visually overlapping). Ensure power symbols are used for VCC and GND.

PCB Issues

Traces won't connect
issue
Solution: Make sure you’re on the correct layer (F.Cu or B.Cu). Press PgUp/PgDn to switch layers during routing.
DRC shows clearance violations
issue
Solution: Move traces farther apart or reduce trace width. Check Board Setup > Design Rules for minimum clearance values.
Ground plane not filling
issue
Solution: Press B to rebuild all zones. Check that the zone is assigned to the GND net and has valid clearances.

Resources and Learning

Official Documentation

Comprehensive manuals for all KiCad tools

KiCad Forum

Active community for questions and discussions

Demo Projects

Explore included demos in /usr/share/kicad/demos/ for real-world examples

YouTube Tutorials

Search “KiCad tutorial” for video walkthroughs

Keyboard Shortcuts Reference

Eeschema (Schematic)

ShortcutAction
AAdd symbol
PAdd power symbol
WBegin wire
MMove item
EEdit properties
VEdit value
RRotate
XFlip horizontal
YFlip vertical
DelDelete item
Ctrl+ZUndo
Ctrl+SSave

Pcbnew (PCB Layout)

ShortcutAction
XRoute track
VAdd via (while routing)
MMove item
FFlip to back
RRotate
EEdit properties
DelDelete item
PgUp/PgDnSwitch layer
Ctrl+Shift+ZAdd filled zone
BRebuild zones
Alt+33D viewer
Ctrl+ZUndo
Ctrl+SSave

Build docs developers (and LLMs) love