The overall architecture of the electrical/
directory is:
README.md
: A this document written in markdown format.docs/
: A sub-directory containing documentation.orders/
: A sub-directory contain per order information. This includes schematic symbols, PCB footprints, and parts ordering information.master_board/
: The design files for the main HR2 master PCB. The master board also has theSTM32CubeIDE
project file for pin assignment and associated firmware generation to configure the microcontroller.st_adapter/
: The design files for the ST-Link adapter PCB.encoder/
: The design files for shaft encoder PCB. Over time, additional PCB's a will be added.
Each PCB directory is broken into revision sub-directories:
rev_a/
: This is the first PCB revision.rev_b/
This is the second PCB revision (only started after the first version has been built.)- etc.
The orders
sub-directory is broken into a sequence of sub-directories labeled
order1/
, order2/
, order3/
, ...
The order
N sub-directory attempts to capture all of the schematics symbols,
PCB footprints, and electrical/mechanical parts that are all ordered together
(e.g. PCB Gerbers go to PCB fabrication and parts lists go to parts vendors.)
The requirement is that all PCB's share a consistent set of PCB footprints,
schematic symbols, and electrical parts.
After the orders go out. All of the existing PCB's and contents of the
associated files are locked down into a git
repository. This is so that
subsequent revisions do not the existing designs. For the next revisions,
a new order
N+1 sub-directory is created. Many of the symbols from the
previous order
N sub-directory into the order
N+1 sub-directory,
where they can be freely modified to without breaking any of the older revisions.
The contents of an order
N/
directory are:
Makefile
: This is used by themake
program to build everything.pretty/
sub-directory: This is a sub-directory where all of the shared KiCad PCB footprints live.kiparts/
sub_directory: This is a sub-directory of.csv
files, that specify the various rectangular schematic symbols definitions are stored. There is a program calledkipart
that takes a.csv
file and generates a bot the.lib
and.dcm
file. Since many schematics are full of square modules, program generates the square schematic symbols with the right pin names, numbers, and signal types, it is generally easier to usekipart
to manage KiCad schematic symbols than to use the KiCad schematic symbol library.order
N.lib
: This is the library of generated schematic symbols.order
N.dcm
: This is the schematics symbol documentation file.
The design rules for schematic capture are:
- Almost all text is horizontal. The only exceptions only allowed for "stock" schematic symbola) that come with KiCad.
- Most rectangular symbols have wires coming out vertically connections are horizontal. There can be an occasional exception.
- All net names are upper case letters and digits. An lower case
n
can be used as a prefix indicate an active low logic line. - All wires are on a rectangular grid.
- When possible try to organize the schematic such that inputs are on the left and outputs are on the right.
- Hierarchical design is used to organize the sheets.
- Try to keep "air wires" to a minimum. Instead use "blue" buses to help reduce the wire mazes.
- Make all power and ground connections explicit.
- Footprint names are metric (e.g. 1608 instead of 0603.)
- Footprint names are of the form part_name
;
footprint_name. - Resistors use the older American "3 hump" style of resistor.
- Resistance values use the ISO unit symbol of Ω.
- Capacitance values use the units of µF, nF, and pF.