KiCad Design Guide

For BotFactory Printers

Carlos Ospina (BF)

A hands-on guide to KiCad Design

For BotFactory Printers

The following guide will describe the steps needed to create and upload a circuit using an open source CAD tool, KiCAD. The guide is not meant to be a KiCad tutorial, but will teach you the tips and tricks to create and export designs that will work with BotFactory printers.

Quick Links

This tutorial can be a bit long, but you can jump to the most important points using the following links:

Odoo image and text block

What is a CAD tool?

A Computer Aided Design (CAD) tool is used by architects, engineers, drafters and designers to create precision drawings or technical illustrations. Instead of designing a circuit on paper and manually arranging the components, it can be done automatically with a CAD tool. 

There are many different electrical CAD tools available, both free and paid. This guide will use KiCAD, an open source software that is available as a free download.

Before you begin

You need the following:

  • KiCAD installed (Download)
  • A schematic of the circuit you wish to make (.sch)
  • Footprint library if you are using custom footprints
If you need a more in-depth KiCad tutorial, you may want to check some of the available tutorials here.
Odoo text and image block

Creating a Project

When you launch KiCAD, a existing project may or may not be pre-loaded depending on where you previously left off. We are going to ignore the existing project and create a new one. 

  1. Navigate to File > New > Project
  2. Give your project a name
  3. Save the project in your desired directory
Odoo text and image block

The Schematic Editor

Define the logic and architecture of your design

Schematic Editor

A schematic is a graphical representation of the logic and architecture of an electrical circuit. It shows the components and interconnections of the circuit using standardized symbolic representations. Look for the icon as shown on the right, and launch the schematic layout editor 

Odoo text and image block

Importing your Schematic

If you already have an schematic, KiCAD supports importing existing schematics, as long as they are in a .sch format. 

  1. Navigate to File > Append Schematic Sheet
  2. Select the .sch file and upload

Odoo text and image block

 

Symbol Annotation

Once your schematic is complete, we need to Annotate it. The annotation process will assign a unique identifier to each component of the circuit also know as a "Reference Designator" or "RefDes" for short.
  1. Look for the icon labeled "Annotate schematic symbols" as shown on the right
  2. Select an annotatiion order of your preference
  3. Click on Annotate
  4. Verify that all the components have a label (R0, R1, R2 etc)
Odoo text and image block
Odoo text and image block

Assigning a Footprint

Depending on the component library you use, your components may or may not have associated footprints. Use the following process to verify and associated footprints to your components.
  1. Look for the icon labeled "Assign PCB footprints to schematic symbols" as shown on the right
  2. Assign footprints to every component
Note:
If you are using custom footprints not available in the standard library, import your footprint library. 
Odoo text and image block
Odoo text and image block

Design Rules Check

The DRC is a tool that verifies electrical rules that have been defined for the project. In order to run a DRC:
  1. Look for the icon labeled "Perform electrical rules check" as shown on the right
  2. Click on Run
Note:
You should see "Finished" with no errors in the Messages field. If there are any errors reported, rectify them in the schematic editor.
Odoo text and image block
Odoo text and image block

Generate a Netlist

The netlist is a file defining the connection between your components and the footprints each of them use. You need to generate the netlist everytime the schematic is updated.
  1. Look for the icon labeled "Generate netlist" as shown on the right
  2. Click on Generate netlist in the window that popped up
  3. Save the netlist in the same directory as your project
  4. Close the schematic editor and return to main KiCAD window
Odoo text and image block
Odoo text and image block

The Layout Editor

Defining the physical design of your circuit

Open the PCB Editor

The  PCB editor helps you define the physical aspects of the board: The layers, the routing, the component positioning. To open the PCB editor look for the icon as shown on the right.
Odoo text and image block

Define the Design Rules

This is the best time to set the rules for your traces and vias.
  1. Click the Design Rules menu
  2. Select "Design Rules"
  3. In the "Default" net class, make sure you set the following values, according to the table below:
    1. Clearance
    2. Track Width
    3. Via Diameter
    4. Via Drill
  4. Then click on the "Global Design Rules", and select.
    1. Do not allow blind/buried vias
    2. Do not allow micro-vias
    3. Min Track Width (according to printer)
    4. Min Via Diameter (according to printer)
    5. Min Via Drill (according to printer)
  5. In the custom track widths tables, create the track widths that you may need in your design.
  6. In the custom via sizes table, create the via sizes that you may need.
Min Clearance ​Min Track Width  Min Via Diameter​ Min Via Drill​
Squink ​12mil 10mil​ ​40mil ​30mil
SV2 ​10mil 8mil​ 30mil​ ​20mil

Odoo text and image block

Import Netlist

When the netlist is imported, all the interconnections and footprints defined in the schematic will be imported into the Layout editor.
  1. Navigate to Tools > Load Netlist
  2. The default directory should be the current project directory. If it is a different directory, select the current project directory
  3. Click on Read current netlist
Note:
At this point, all the parts should be in their compact layout and following your cursor. Do not worry about the layout, left click on any location to place the entire layout. We will arrange the parts in the next section.
Odoo text and image block
Odoo text and image block

Part Layout

Arrange the parts in your desired layout.

The following is list of shortcuts that can help you in the process. 

Shortcut​ ​Action ​Description
M​ ​Move The part will now follow your cursor, use the mouse or arrow keys on the keyboard to move it around. Left click or press Enter to confirm placement ​
​R ​Rotate counter-clokwise ​Counterclockwise The highlighted part will be rotated 90 degrees counterclockwise.
​Shift + R ​Rotate clockwise ​The highlighted part will be rotated 90 degrees clockwise.
​F ​Flip ​Flip the part about the surface, changing it to be back facing.
Odoo text and image block

Routing

You may either route the tracks using an autorouter such as FreeRouting, or manually in KiCAD.

Note:

The track width and spacing should meet the minimum specifications of BotFactory printers.

​Squink SV2​
Trace Width​ ​>10mil >8mil​
​Trace spacing >12mil​ ​>10mil

Using an autorouter:

  1. Navigate to File > Export > Spectra DSN
  2. Save the file in the project directory
  3. Import the DSN file into an autorouter of your choice
  4. Navigate to File > Import > Spectra Session and import the routed layout

Routing manually:

Route the components according to the schematic, keeping in mind the specifications provided

Tip:

Use the keyboard shortcuts below to help you:

Shirtcut​ Action ​Description
​Shift + X Place Track​ ​Changes cursor to track placement mode. Left click on any part to start placing a track, left clicking again on an empty space inserts an anchor point. Left click on another part joins the 2 parts together with a single track. Double click to force routing end.
​Delete Delete​ ​Deletes the highlighted objet. If no object is highlighted, KiCAD will try to delete an object that the cursor is hovering above.
​E Properties​ ​Opens the properties window of the highlighted track. You can adjust the track width and position.
​G Drag, free angle​ Drags the highlighted track with the cursor.
​D Drag 45 degrees angle​ ​rags the highlighted track with the cursor, maintaining a 45 degrees angle.

Odoo text and image block
Odoo text and image block

Creating an outline

An outline defines the edge of the board. It needs to be defined in order to be used with BotFactory's printers

  1. Make the outline layer the active layer by clicking on Edge.Cuts in the layers panel on the right.
  2. Click on "Add Graphical Line" next to the layers panel (keyboard shortcut: Ctrl+Shift+L"
  3. Enclose your circuit layout with an outline.
  4. Verify that your circuit layout is within the maximum dimension.
Note:
We recommend a maximum dimension of 125mm x 125mm.
Odoo text and image block
 

Setting an origin

The origin, also know as "Auxiliary Axis", needs to be defined in order to use your design in a BotFactory Printer.
  1. Click on the button labeled  "Set origin point for grid" in the right panel
  2. Place an auxillary axis origin at the bottom left corner of your circuit outline             
  3. Click on the button labeled "Set origin for place and drill" in the right panel.
  4. Set the origin point to be the bottom left corner of your circuit outline. Aligned with the "Origin point for grid"
Odoo text and image block

Generating the Gerber Files

Now we need to generate the gerber files that describe the PCB copper disposition in the board.

  1. Click on the button labeled "Plot" 
  2. Select the layers you wish to plot. The layers required are explained in the table below.
  3. Select Plot Format: Gerber
  4. Select an output folder
  5. Make sure the following options are selected:
    1. Use auxiliary axis as origin
    2. Use Protel filename extensions
    3. Plot footprint references
    4. Format: 4.6mm
  6. Click on Plot.

The resulting files will be placed on the selected output folder. There will be one file per selected layer.

Layer Reference Guide for 2 Layers:

Layer​ ​Description
​F.Cu Front copper (top copper)​
​B.Cu​ Back copper (bottom copper)​​
​Edge.Cuts Outline​ (edge of the board)
​F.Mask Top Solder mask​
F.Paste Top Paste layer​
Layer Reference Guide for 4 Layers:
Layer​ ​Description
​F.Cu Front copper (top copper)​
In1.Cu Internal Copper 1 (under top copper)
​In2.Cu Internal Copper 2 (under In1.Cu)​
​B.Cu​ Back copper (bottom copper)​​
​Edge.Cuts Outline​ (edge of the board)
​F.Mask Top Solder mask​
F.Paste Top Paste layer​

       

Odoo text and image block
Odoo text and image block

Generating the Drill Files

Now we need to generate the drill files. BotFactory printers will use drill files to create vias between the different layers. 

  1. Click on the button labeled "Plot" 
  2. Click on the button labeled "Generate Drill Files"
  3. Select an output folder
  4. Make sure the following options are selected:
    1. Drill units: Millimiters
    2. Zeros Format: Decimal
    3. Drill Origin: Auxiliary Axis
  5. Click on "Drill File"

The resulting file will be placed on the selected output folder. There will be one drill file for the whole circuit if micro-vias or buried vias

Note: BotFactory printers only support Excellon drill files, which are text (ASCII) files. Other formats like Map files or binary files are not currently supported.


Odoo text and image block

Generating the PnP files (center and rotation)

Now we need to generate the center and rotation files for the Pick and Place process. 

  1. Click on the file menu
  2. Select "Fabrication outputs"
  3. Select "Footprint position"
  4. Select the output folder
  5. Make sure the following options are selected:
    1. Units: Millimiters
    2. Fooprint selection: With Insert attribute 
  6. Click "OK"

The resulting file will be placed on the selected output folder. 


Odoo text and image block

Final Check

Navigate to the output folder you previously selected, and verify that you have these files in the folder.

<Project Name>-all.pos
<Project Name>-Edge.Cuts.gbr
<Project Name>-F.Cu.gbr
<Project Name>-F.Paste.gbr

Odoo text and image block

Uploading files to printer

Odoo CMS - a big picture
Navigate to the printer's URL, and select Single Layer print. Upload the files in the following order:
Layer​ File
Outline Edge.Cuts.gbr
Traces F.Cu.gbr
Glue F.Paste.gbr
Pick and Place all.pos
Follow on screen instructions to print and assemble your circuit!