Files

copied
Last update 3 weeks 6 days by Jack Kay
Files
A.1
A.2 - EXAMPLE
B.1 - EXAMPLE
Template-backups
KiCad.gitignore
README.md
Template.kicad_pcb
Template.kicad_prl
Template.kicad_pro
Template.kicad_sch
README.md

KiCad/Cadlab Project Template

The electrical team uses CadLab as a version control system for all PCBs within our products. In order to have proper version control, this template is meant to outline standards and best practices to use while making/changing a PCB design. It is important to maintain consistency within our designs, folders, and work.

High level, each cadlab project will contain a master branch, holding all finalized production PCB packages, and a line of branches, containing the development work done to complete a production PCB. - Only finalized projects shall go into the master branch. If a fix needs to be done on a production design due to component EOL or manufacturing error, we can make a Fix push to the master branch, as to not override any existing information - While developping a board, it is very important to make frequent commits/pushes with thoughtful commit messages to communicate progress. Pushing with messages frequently will make the version control more useful and increase the ability to collaborate/reference more seemlessly.

Please copy the formating of this CadLab project and KiCad project before you begin a PCB design.

Naming Convention

Project names

Cadlab and Kicad projects shall be named as follows: - "PartNumber - Name" (Ex// ELECC_000 - Main Control Board) Please note that no revision number is to be included in the Cadlab project. This will allow one project to encapsulate all versions of that board. This will be the name of the master branch for the cadlab folder.

Branch names

Child branches will represent the different revisions for each board. They will be named as follows:

  • "PartNumber_Name_X.#" (letter to indentify larger design changes) (number to indentify minor design changes)
  • Each branch will only ever be X.# and will never change within the branch. For example the first branch/revision will be A.1 for production designs
    • But what about prototypes?
    • If changes are made within A.1 while protoyping, we can write A.1.1 -> A.1.2 -> A.1.3, etc. in the commit messages within the A.1 branch. Protoypes within design cycles will not recieve their own branch

Folder Structure

Each Kicad project folder/file should be created the same, and follow the same structure. The default folder structure is as follows:

  • KiCad Project
  • Change logs
  • Inputs
  • Outputs

More information about what each of the above folders should contain is seen below.

As a collaborative team, it is very important to provide the appropriate amount of information while working on designs so any other team member is able to pick up where you left off. Information is shared in the form of frequent commits with approriate commit messages, notes on schematics, and additional details in the resources folder.

Change Logs

  • If a design goes from A.1.0 to A.1.1, you must include notes on the changes made throughout protoyping
  • If a design goes from A.1 to A.2, you must include notes on all changes/differences between these two production revs. This will allow for easy reference in the future by not only our team, but all engineering teams as well.
  • Change logs should be similar to commit messages but with more detail

Inputs

Calculations

  • Include any chicken scratch notes, online calculations to support design descisions that others may ask where values came from.

Datasheets

  • Inlcude all datasheets used.

Drawings

  • Include all drawings used.

Resources

  • Include any other resources used.

Outputs

Board Specification

BOM

  • .xlsx BOM

Gerbers

  • Include all gerbers, pos, drl, etc files.

Schematic

  • Inlude a plot view of the schematic here.

MFG Packages

  • Ouput each production package ZIP here.
  • Includes BOM, Gerbers and Schematic folder as well as the Board Specification.
  • Name "SupplierName PartNumber_Name_X.#.# (DDMMMYYY) where the calendar date is the date that you made the files.
Report a bug