It was common to use imperial measurement units for printed circuit boards. Nowadays in the age of sub-miniature surface mount components, metric units are commonly used. This results that the PCB (Printed Circuit Board) makes use of both, usually the grid where the components are places is imperial, the outside dimension and SMD (Surface Mount Devices) are metrical. In PCB design the unit mil is quite common: 1mil = 1/1000 inch = 25.4 um
https://kicad.org/ is an open source and thanks to CERN KiCad has a high reputation.
It is recommended to use KiCad AppImages, this way also different versions of KiCad can be used on the same machine. It might happen that an old KiCad project has issues when it is opened using a new KiCad version. If run as AppImage the KiCad application uses a directory under /tmp/.mount_kicad consider this a prefix for the paths in this section.<???>
Under Gentoo, KiCad could be installed with emerge kicad-meta however the possibility that the compilation fails or creates tremendous problems on next system update is high.
Instead of starting from zero, coping and editing an existing project, a template can be used. KiCad comes with many templates in /usr/share/kicad/template/ to allow a quick creation of shields as for Arduinos and Raspberries. To get more templates convert a project into a new template.
When entering a project name a directory with that name is created containing the files. So do not create a project directory manually.
The project is a ASCII readable file with the extension *.kicad_pro. In general all files KiCad is using are ASCII files and can be read and edited.
An example: Copy an rename a directory containing a Kicad project. The rename the files to the new project and and find/replace in the important Kicad files the old project name with the new one.
There is also a *.kicad_prl file that holds user settings as view and others. It is not used for the project.
Even-though Kicad is quite intuitive and allows to start right away to draw schematics and then layout the PCB, at some point there will be an issue with the component libraries. Components might simply not be found in the libraries or Kicad might not find its libraries.
If no troubles appear then this section can be skipped. If troubles appear then this section might give the answer.
KiCad has a big evolution with its libraries. This caused some major library incompatibilities. So opening old KiCad projects with a new KiCad version might end up in a disaster. This section focuses on KiCad version 10.
Du to the library incompatibilities it is recommended to run KiCad as AppImage and have different KiCaD versions available. Keep the versions that match with the projects.
The libraries are in /usr/share/kicad. Under Linux
regular users do not have the permission to mess around in this directory. Therefore create custom libraries as under the ~ directory and do frequently backups.
There is an open source CERN component library: https://home.cern/cerns-kicad-component-library-now-open-source/
https://www.digikey.com/ created a GitHub KiCad library https://github.com/digikey/digikey-kicad-library containing components from their stock.
KiCad can also import eagle component libraries.
Footprint libraries hold the components as seen on the PCB. The footprints have pins but no symbol.
The build in footprints are in /usr/share/kicad/footprints
Local libraries can on any place on the disk and can be added to the build in libraries.
The footprints need to be in a directory that has <library name>.pretty.<footprint name>.kicad_mod
From the KiCad main window open the schematic editor that saves the changes into a *.kicad_sch file.
As with many drawing programs working with a grid is necessary, but often creates frustrating results when the components can not be placed onto the grid. Use as grid of the schematics 50mil, then check by clicking on the components that they use also a 50mil grid.
To verify that the wires connect, click on the components and drag them pressing the G key, so the wire will become a rubber band, when connected. However a weak point is that the wires can not be edited and can become ugly stretched. Select the wires and break them and delete not desired part or if it is really bad delete the complete wire. When moving instead (M key), the wires to the component will detach. With the R key you can rotate the component. The Insert key is also quite useful, it works as a repeat last command key.
Before proceeding further, some steps are required or strongly recommended:
First click on Schematic Annotation, so every component gets an unique name.
Multi-part components are components as the 7400 containing 4 identical gates (=units) that can be placed everywhere on the schematic page. During annotation those units are packeted into a single physical component. Also other components as relays make use of it this method, allowing to place the relays coil on a different location than the relays contacts. Selecting the component and do edit component > unit lets you switch between relays coil and contacts. IC's might have an extra unit that contains the power supply pins.
The Schematic Electric Rule Check will mark all connection points that are not connected. When placing components they need to be annotated otherwise they are like ghosts and it might be not possible to connect them with wires. The errors and warnings caused by the schematic electric rule check produce small arrows that can be clicked to see their reasons. The errors and warnings do not to be removed to proceed.
Some errors that usually pop up are:
The “non connect flag” (blue cross) can be placed on not used output pins to prevent an error.
ERC << Warning Pin power_in not driven (Net 15), is a power net that has no power source. Place the component PWR_FLAG to this net to remove this ERC error.
Mounting holes appear also in the schematics, since they can be done using the 1pin footprint and then edit its parameters.
Click the assign footprint icon in the schematic editor.
Some schematic symbols have a footprint assigned so nothing needs to be done.
For others a footprint must be selected and therefore manually assigned. For this select the footprint library and probably the pin count filter, select footprints and observe the result.
Start the PCB editor and then click update from schematics. The
file will hold the results. Use the command move new modules to get them apart.*.kicad_brd
The PCB has different layers, not all layers are copper layers. Everything is a layer as the silk screen and soldering mask and what comes next the “Edges PCB” layer that defines the boards dimension to be drawn using graphic lines or a polygon. Since the board dimensions must be precise press the space bar to get the origin 0 for the relative coordinates shown on the status bar. The comment, drawings, ECO1 and ECO2 are layers for documentations as to show mechanical dimensions (e.g. drawing layer).
Copper layer is the soldering side (Page Up) does not mean it is the page that points upward, it means the hot key, if you press onto the Page Up key then the copper layer is selected.
Make sure Courtyard layers are visible F.CrtYd and BCrtYd so components are not placed to near.
When placing the modules on the PCB, un-hide modules rats nest to see rubber bands attached to the module and get a feeling where it connects.
Check that the "Add tracks and vias" tool is not enabled otherwise you can not draw the boards outline.
People write books about how to use the mouse. Mostly it is intuitive, but certain things not, therefore here, the how to use the mouse:
Click and release, then move the line, click and release to extend the line.
Press space to set the origin from where the relative distances to the cursor are measured.
To change track width, just modify the default value, the list of track widths will expand.
For mounting holes add the "1pin" footprint, then edit the pad in order to have the correct size (pad diameter and drill value). To have it consistent with the schematic the CONN_1 could be added to the schematics. This gives a plated hole.
Selecting with the mouse a module and use the keystrokes M for move and R for rotate prevent the numerous mouse clicks using the menu. The + and – key select different copper layers. You need to get familiar with different track edit operations, read the manual for that (deleting segments, Backspace key to undo last click, brake track and move via, brake track and move node … ).
When you are done you deserve a 3D view of the result.
If you create a board with more than 2 layers, it might happen that some modules are just for 2 layer, if creating zones, then those holes are not present and causing DRC errors, also it is not possible to wire up inner layer to them. In such cases edit the module. Go to edit pads global, check if the dimensions are ok (pad size 0.056” drill 0.036”), then click on change module and save it to the board.
If your preferred PCB manufacturer supports KiCad then you can send directly the kicad files. If not then Gerber data has to be produced.
Nowadays the manufacturing process usually will not use films anymore that have to be manually placed onto the board to be exposed to light, so there is no need to add fiducial marks, alignment marks and dimensions to the design. For some manufacturers those stuff outside of the board might even disturb and cause additional work or maybe you get a larger board with a higher price, where you have to cut those things off. It is enough to submit the data in an electronically form. However make sure to not to exclude the PCB-Edges layer when creating the board, since this layer defines the outline.
To create Gerber data, just plot the board to Gerber format. For each selected layer a separate
file is produced (*.pho). Consider also to generate the drill file (*.drl) that contains all diameters
of the holes. Otherwise you might end up drilling the holes your self!
With Gerber data it is simply a must to use a Gerber viewer. KiCad includes a Gerber viewer to verify it. However it is still not guaranteed that you get what you expected, since Gerber files depend on a tool set (aperture and drill tables). Last but not least every layer is usually a file and you could end up having the bottom layer as top layer, so for surface mount components the PCB would be useless. So a Gerber viewer that can pack everything together in a single file that is understand by the PCB manufacturer verified by yourself is the way to go.
To be safe, check with your PCB manufacturer, if it supports a viewer project file that puts everything together. As example:
A PCB producer services that will not be scared when ordering little quantities is:
http://www.pcb-pool.com/. The Gerber data can be submitted using GC-prevue down-loadable for free of charge on their site (so is KiCad).
The original place of GC-prevue is: http://www.graphicode.com/
The *.gwk file can be uploaded to get the PCB. Only drawback, GC-prevue is not a Linux
application. However GC-prevue can be installed under Linux using wine. After installing
it do a:
cd ~/.wine/drive_c/GCPREVUE followed by:
wine gcprevue.exe to have it running. Don't forget to copy your Gerber data and
drill file somewhere under ~/.wine/drive_c or better make
a link from ~/.wine/drive_c to where the kicad data is,
so it is in reach of wine. To not confuse the manufacturer, rename and order the layers for a 2 layer
board as follows:
First layer drill.nc the drill data,
Second layer top.ger the top or component side copper layer,
Third layer bottom.ger the bottom or soldering side copper layer
Forth layer tresist.ger solder resist top side
Fifth layer bresist.ger solder resist bottom side
The layers can be imported and the GC-prevue is able to detect automatically what it is. Importing the drill gets probably errors. So do not load the drill automatically, load as drill and a window with options pops up. Check KiCads export options if they are different from its defaults and adjust them to the GC-prevue's Load Drill data window. Additionally you need to manually create the drill diameter table in GC-prevue. Therefore create and open the KiCad Drill report file.
To have the layers end up in GC-prevue's window, you need also to set an offset (x-offset 1” y-offset 10”) you can do it either under edit or when loading the layers.
Then you can observe the result an when happy save all to get a a *.gwk file to be e-mailed
to the PCB manufacturer. Restore all will read *gwk files at later stage.
Check limits of the PCB manufacturer and set the PCB Design Rule Checks accordingly. This should be the first thing when you do a PCB, but putting it right at the beginning would complicate the stuff unnecessary, since most PCB manufacturers can work with the KiCad default rules.
To have nice drawings that are even in 1to1 scale do a plot to postscript first. Then using something as kgostview or gsview to convert it to pdf.
Plot silkscreen on component layer to get an assembly drawing. If the drawings are big as A2 print them first in a A2 pdf and then print them again to shrink.
Or print to SVG and open it using inkscape and convert there to PDF or print from there.
Eagle is a PCB (Printed Circuit Board) design program. It is commercial, but can also be run as Freeware. As Freeware it is limited to one schematic page and 2 layer board with maximum dimensions of 80mm*100mm an non commercial usage. For a hobbyist those limitations are mostly acceptable.
You must first run it as root to install the Freeware license. Add icon on desktop, you find the
binary and an eagle icon in the /opt/eagle/bin directory.
Select on the desktop icon that you want to run it as different user (root). Start it, then change
back to regular user.
After finishing the work eagle lets you export the data in various standard formats as Gerber, where the tooling lists (drills and apertures) needs to be specified. This is a potential source of errors. Luckily, there is a more easy and hassle free way by sending the eagle data as it is to a PCB manufacturer that accepts it. PCB manufacturers specialized for small quantities are: