home scroll PCBMaking

Process 2018

Table of Contents

Overview

The entire process of creating a printed circuit board with isolation milling is described.

The operating system is Ubuntu 18.04

Steps:

Design a circuit with KiCAD 5

freerouting

pcb2gcode

Autoleveller AE

cnc.js

Installation

KiCAD 5:

http://kicad-pcb.org/download/ubuntu/

freeRouting.jar

source: https://github.com/nikropht/FreeRouting/tree/master/gui

KiCAD Configuration and Usage

using your previously created user libraries for symbols:
open symbol library editor
Preferences -> manage symbol libraries
click on browse libraries and find your Library

your previously created user libraries for footprints:
open footprint library editor
Preferences -> manage symbol libraries
click on browse libraries and find your Library

EESchema (Schematics Editor)

Remove Title

Zooming in with the title section enabled makes it difficult to see the diagram when zooming to fit page.

File-> Page Settings

Page layout description file:

empty.kicad_wks

then change page size to smaller

Panning

to pan: press and hold F4

move the mouse

PCBnew (Layout Editor)

Disable red frame with title:
https://forum.kicad.info/t/how-to-disable-red-frame-with-title-etc/11511/2 deselecting the ‘worksheet' box in the render panel.

Create PCB Edge for Cutting

In layout manager, select edge.cuts

(blue triangle)

Use Add graphic lines to draw board edge

Create your own library

In main program:
click on Symbol library editor
Click on File -> New Library
Click on Preferences -> Manage Symbol libraries
On Global Libraries, Append your library

Clone a footprint

Open footprint editor

File -> Open Footprint

modify footprint as needed

File -> Save

Save in Library allows to choose new library to save in

Convert board to footprint

https://forum.kicad.info/t/converting-board-to-footprint/2781
http://linuxg.net/how-to-install-freecad-0-17-on-ubuntu-18-10-ubuntu-18-04-and-derivative-systems/

Footprint Editor

KiCAD clone pad properties

-Right click on the modified pad -> Pads->Copy pad settings

-Right click on a NON-modified pad you want to modify ->Pads -> Apply (or Push for several) pad settings

https://forum.kicad.info/t/how-do-you-edit-several-pads-at-once-in-footprint-editor/9209

Steps for Creating a PCB

Circuit Design

Open KiCAD EESchema (Schematics Editor)

Import Parts

snapEDA

click on generate net list

Board Design

Open KiCAD Pcbnew

load net list

Trace width and spacing

In the process of routing the traces, you may need to delete the existing traces.

wider traces:

To delete all traces:

Edit -> Global Deletions

Autorouter

  • KiCAD Pcbnew export DSN Specctra

  • freerouting import

  • autoroute

  • export Specctra session file

  • KiCAD Pcbnew import session file

Note: When you change rules in KiCAD, those are not considered unless you first delete the rules file in freerouting.

batterymonitor.rules

FreeRouting opens a file chooser in the user's home directory. This adds extra steps every time a design is changed. Improvement?

cp batterymonitor.dsn ~

java -jar ../../../../../../applications/freeRouting/freeRouting.jar batterymonitor.dsn

cp ~/batterymonitor.ses .

Export Board Design

Open KiCAD pcbnew.

File -> Plot

generate a single drill hole file:

http://support.seeedstudio.com/knowledgebase/articles/1824574-how-to-generate-gerber-and-drill-files-from-kicad

Generate G-Code

Open pcb2gcodeGUI

Input/output tab:

add front gcode so that mounting holes are drilled

add back gcode with actual traces

add outline so that autoleveller knows offset from board edge for probing grid

add drill file

Common tab:

Change Movement height to 2 mmm

Remove G64 (to prevent error in GRBL)

Drill tab:

set "board side for drilling" to back (same as traces)

check single drill bit size to reduce tool change

check "Remove G81" because GRBL and TinyG do not support canned cycles

Autolevel

  • import your PCB gcode into Autoleveller AE

  • generate probing gcode with Probe File Generator

  • run probe file in cnc.js

  • save probing results as Raw Probe File

  • load Raw Probe File in Autoleveller AE

  • generate autolevelled PCB gcode

  • run autolevelled PCB gcode on your PCB in cnc.js.

If the physical PCB is exactly the size of the designed board, enter insets so that the probing does not start at the edge of the board.

The probing grid file that is generated by Autoleveller does not work unedited with cnc.js.

Simply remove the initial comment section.

Mill PCB

open cnc.js

load gcode

> G64 P0.01000 ( set maximum deviation from commanded toolpath ) (line=26)

error:20 (Unsupported command)

ALARM:1 (Hard limit)

[MSG:Reset to continue]

perhaps electrical issue?

just disable hard limits

$21=0

Sometimes program gets stuck at the end and can only be unlocked by resetting Arduino which is a problem because zero position gets lost.

Solution: Add M0 at the end of the program. When it is reached, don't continue but

Instead, move spindle to zero x and y.

Then stop program.

Appendix

Freerouting Rules File

data/batterymonitor.rules

How to make a single sided board, only back?

In Pcbnew: Setup -> Layers Setup

In freeRouting:

Utilities -> Parameter -> Autoroute


Follow Me

discord