Difference between revisions of "EAGLE Style Guide"

From RoboJackets Wiki
Jump to navigation Jump to search
(Initial Eagle guide)
 
m (footprint layer tValues should be 27 not 26)
 
(44 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Symbol
+
=Part Creation=
Grid
+
==Symbol==
0.1 inches Size
+
===Grid===
0.01 inches Alt
+
*'''Size:''' 0.1 in
Style
+
*'''Alt:''' 0.01 in
Location
+
===Name===
Center origin of grid on the center of the part
+
*Should be manufacturer part/family number (eg. ATTINY167-SU)
Font
+
===Description===
Vector rendered
+
*Leave blank
Ratio 8%, unless made bold for end user benefit
+
===Style===
Size of 0.07 in
+
*Origin
Value aligned bottom-left, name on top left of symbol
+
**Center origin (crosshair) on symbol center
Functionality
+
*Text
Pins should be labeled in a way that allows the symbol to be applied to any parts in a similar family
+
**Keep text horizontal
For passive elements, pin labels can be disabled for simplicity
+
**'''Size:''' 0.07 in
“Visible - pin” for just the pin label
+
**'''Line Distance:''' 50%
“Visible - pad” for just the pad label
+
**'''Font:''' proportional
Use passive for the pin type; at a minimum, don’t set any to power even if they are power pins
+
*Name
For functional layout: Inputs on left, outputs on right, power top-left, ground bottom-right.
+
**Locate in top left of symbol
Pin placement
+
**'''Align:''' bottom-left
Inputs on left
+
**'''Layer:''' 95 Names
Outputs on right
+
**'''Value:''' >NAME
Power on top (optional)
+
*Value
Ground on bottom (optional)
+
**Locate in bottom-left of symbol
Decimal value labeling
+
**'''Align:''' top-left
For labeling fractional values, include the decimal point. Eg. 3.3V
+
**'''Layer:''' 96 Values
4.51k → 4,510 kOhm
+
**'''Value:''' >VALUE
NOT 3V3, etc.
+
*Outline
Footprint
+
**Use Lines
Grid
+
***'''Width:''' 0.01 in
1 mm Size
+
***'''Style:''' continuous
0.1 mm Alt
+
***'''Layer:''' 94 Symbol
Font
+
***'''Curve:''' 0
Font - Vector
+
**Try to have a length/width that is a 0.1 in multiple (eg. 0.4 in by 0.4 in)
Ratio - 8%
 
unless made bold for end user benefit
 
Size - 1 mm
 
Functionality
 
Silkscreen
 
Line for alignment on tPlace/bPlace
 
All ICs should have pin one marked with a dot
 
All diodes should have direction or cathode marks
 
Clearly indicate polarity as necessary
 
Try not to overlap pads with silkscreen; although tedious, cut a section out
 
Slots
 
Use the milling layer (46) to draw the outline of the slot
 
Create the pad using the elongated pad
 
Set the hole diameter to the width of the slot
 
Export the milling layer to its own gerber file and attach it with the rest of your gerbers
 
Every manufacturer has its own preferred method, but seems to be accepted widely enough
 
Labeling
 
>NAME label on top
 
>VALUE label on below
 
Outline of package on tDocu/bDocu
 
Device
 
Attributes
 
Name should be manufacturer part number
 
Attribute - DKPN should be filled with the Digi-Key part number
 
Descriptions
 
One sentence describes the function of the part
 
Datasheet link if available
 
Prefix
 
Chart for Designators
 
Letter
 
Part Type
 
C
 
Capacitor
 
D
 
Diode, LED
 
F
 
Fuse
 
J
 
Jack or Connector (least moveable connection part)
 
JP
 
Jumper
 
K
 
Relay or Contactor
 
L
 
Inductor
 
LS/BZ
 
Loudspeaker or buzzer
 
M
 
Motor
 
P
 
Plug (most moveable connection part)
 
PS
 
Power Supply
 
Q
 
Transistor (all)
 
R
 
Resistor
 
S/SW
 
Switch
 
T
 
Transformer
 
TP
 
Test Point
 
U
 
Integrated Circuit
 
X
 
Crystal
 
  
Schematics
+
===Functionality===
Overall
+
*Pins
Organize subsystems as follows:
+
**Label pins to allow the symbol to be applied to parts in similar families
Related subsystems should be grouped into a sheet
+
**'''Name:''' Based on part datasheet
Each subsystem in a sheet should be boxed clearly, and that box labeled
+
**'''Direction:''' pas (passive)
Use line tool, width 0.006, shortdash, layer 97 info
+
**'''Swap Level:''' 0
Label font
+
**'''Length:''' middle
Font - vector
+
**'''Function:''' none
Ratio - 12%
+
**'''Visible:''' both
Size - 0.25 in
+
*Pin Placement
Layer - Info
+
**Power (VCC): top left
Every sheet should have the following:
+
**Ground (GND): bottom right
A frame no bigger than 11 x 17" (8½ x 11” preferred), which should have the following info:
+
**Inputs: left edge
A name
+
**Outputs: right edge
Last edit date
+
*Passive Pins
Last edit engineer(s)
+
**Specifically resistors, capacitors, inductors, fuses, diodes
Schematic version
+
**'''Visible:''' off
Page #
+
*Connector Pins
Frames within a schematic should all be the same size
+
**Try to reuse an existing symbol for the size of connector
Nets
+
**If need to make a new one, for pins:
Every net should have a name if possible
+
***'''Visible:''' pad
Use xref tags at 0.05 size
+
*Decimal Labeling
Every bus should have a name and description
+
**For fractional values include the decimal point (eg. 3.3V, 4.5K)
Every power net should be labeled with the acceptable voltage range and max current at the net driver
+
==Footprint==
Differentially routed nets should be commented as such as the driver and sink
+
===Grid===
Impedance controlled nets should be commented as such as the driver and sink
+
*'''Size:''' 1 mm
Power and Ground nets
+
*'''Alt:''' 0.1 mm
Use symbol with appropriate name
+
===Name===
Configs
+
*Should be manufacturer footprint name (eg. SOIC-20)
Any value computed (e.g. varies by application) from a datasheet should be noted
+
===Description===
Any optional parts should be noted
+
*Link to datasheet for part/family for pad layout
0ohm isolation resistor and 0ohm jumper resistors should be noted
+
===Style===
Boards
+
*Origin
Fab House / Validation
+
**Center origin (crosshair) on footprint center
Load fab house DRC before place and route
+
*Text
RoboJackets has slightly conservative DRCs for 2 and 4 layer boards
+
**Keep text horizontal
Placement
+
**'''Size:''' 1 mm
Keep analog electronics far from high power electronics
+
**'''Ratio:''' 10%
Locate power net status LEDs near power sources
+
**'''Line Distance:''' 50%
Provide adequate spacing for stitching/shielding if needed
+
**'''Font:''' vector
Verify any mechanical considerations
+
*Name
Board mounting holes
+
**Locate in top left of footprint
Component mounting holes/cutouts
+
**'''Align:''' bottom-left
Use tDoc/bDoc and/or tKeepout/bKeepout for bolt head size to prevent traces near mounting
+
**'''Layer:''' 25 tNames
Place decoupling capacitors as close to the power pin of the IC as possible
+
**'''Value:''' >NAME
Smallest values should be closest to pin to minimize parasitic inductance
+
*Value
Routing
+
**Locate in bottom-left of symbol
Avoid minimum trace width where possible
+
**'''Align:''' top-left
Suggestions: 0.2 to 0.3mm for signals, 0.4 to 0.5mm for power (increase as needed for current rating)
+
**'''Layer:''' 27 tValues
Avoid minimum trace spacing where possible
+
**'''Value:''' >VALUE
Avoid minimum drill/via size where possible
+
*Outline
Suggestions: 0.35mm drill, 0.65mm diameter for vias
+
**Use Lines
Do not split differentially routed pairs unless impedance and arrival time can be matched
+
***'''Width:''' 0.2 mm
Avoid vias on signals above 1GHz
+
***'''Style:''' continuous
Use the same number of vias on differentially routed traces
+
***'''Layer:''' 21 tPlace
For two layer boards, try to keep component, signal, and power on the top layer and ground return on the bottom layer
+
**Draw package outline per part/family datasheet
High frequency signals should have continuous low impedance return path directly beneath trace.  
+
**Used for part placement
Keep high frequency signals isolated from other signals to minimize crosstalk
+
*Keepout
route signals orthogonally to avoid cross-talk
+
**Use Rectangles
Silkscreen
+
***'''Layer:''' 39 tKeepout
This is far more important than most people realize and can take a significant amount of time to get right. A good silkscreen makes a board easier to use, easier to debug, and harder to break.
+
**Size 0.1 mm larger than the package
Meta
+
**Used to prevent overlapping parts
Have at least a "vMAJOR.minor" version label on the board
+
*Details
Have your team name and year (optionally month, Ubuntu style) on the board
+
**Capture more part details, extensions beyond outline, etc
Have your team logo on the board
+
**Use
Have a filled white square to write in an instance ID
+
***'''Width:''' 0.2 mm
Recommended if more than three boards will be fabricated
+
***'''Style:''' continuous
e.g. can say "board #2 is broken", there is a "2" written on the white square
+
***'''Layer:''' 51 tDocu
Cover ink with Kapton tape
+
 
Don’t place them on vias (even tented vias) unless absolutely unavoidable
+
===Functionality===
Components & Connectors
+
*Pad (Through-hole)
Set default line width to 0.2mm
+
**'''Name:''' name based on datasheet pin number
Label all power inputs with name and voltage (current optional)
+
**'''Diameter:''' auto
Label all connectors with name
+
**'''Drill:''' size based on datasheet
Label all switches with position values
+
**'''Shape:''' circle
Label all debug LEDs
+
**'''Locked:''' unchecked
Label all fuses with current rating (type optional)
+
**'''Thermals:''' checked
Font
+
**'''Stop:''' checked
All font should be vector rendered
+
**'''First:''' unchecked
All font should be ratio 8%, unless made bold for end user benefit
+
*Smd (Surface Mount)
Component font size should be "1"
+
**'''Name:''' name based on datasheet pin number
e.g. R45, Q1, etc.
+
**'''Smd Size:''' size based on datasheet
Layer - t/bPlace
+
**'''Layer:''' 1 Top (usually)
 +
**'''Roundness:''' 0%
 +
**'''Locked:''' unchecked
 +
**'''Thermals:''' checked
 +
**'''Stop:''' checked
 +
**'''Cream:''' checked
 +
*Polarity Indication
 +
**Through-hole
 +
***Make pin 1 visually different
 +
***'''Shape:''' square
 +
**Indicate polarity, when necessary
 +
***Prevents backwards installation
 +
***Direction or cathode indicators for diodes
 +
***Stripe or plus-minus for capacitors
 +
**Indicate Pin 1 for ICs
 +
***Use a circle (dot)
 +
****'''Width:''' 0 mm
 +
****'''Layer:''' 21 tPlace
 +
****'''Radius:''' 0.2 mm (at minimum)
 +
**Avoid overlapping pads with silkscreen, cut a section out
 +
==Device==
 +
===Name===
 +
*Should be manufacturer part number (eg. ATTINY167-SU)
 +
*Wildcards
 +
**Allows devices with multiple technologies (specifications) or packages
 +
***Uses wildcards in device name
 +
***Technology Name: *
 +
***Package Name: ?
 +
**Example
 +
***Regulator with two voltage (3.3V and 1.8V) technologies
 +
****AP2138N-3.3TRG1 for 3.3V
 +
****AP2138N-1.8TRG1 for 1.8V
 +
****Becomes AP2138N-*TRG1 with technology 3.3 and 1.8
 +
===Description===
 +
*One sentence part function overview (valid for all variants)
 +
*Datasheet link
 +
===Value===
 +
*Off unless its a passive part (resistors, capacitors, inductors, fuses, diodes)
 +
*If its a specific passive part with a value, add an attribute
 +
**'''Name:''' VALUE
 +
**'''Value:''' the value
 +
**'''Type:''' variable
 +
===Symbol===
 +
*Use specific symbol for that part/family
 +
*Connectors are an exception
 +
**Generic symbol used for all connectors of a certain size
 +
===Footprint===
 +
*Use specific footprint if unique
 +
*Try to reuse a footprint if it matches
 +
===Attribute (non-Passives)===
 +
*Part number
 +
**'''Name:''' DKPN
 +
**'''Value:''' the Digi-Key Part Number (eg. ATTINY167-SU-ND)
 +
**'''Type:''' variable
 +
===Attribute (Passives)===
 +
*Part number
 +
**'''Name:''' DKPN
 +
**'''Value:''' blank unless specific to part
 +
**'''Type:''' variable
 +
*Resistors
 +
**Should have tolerance and power ratings that is blank by default
 +
**Value is for resistance only
 +
**Tolerance
 +
***'''Name:''' TOL
 +
***'''Value:''' blank unless specific to part
 +
***'''Type:''' variable
 +
**Power
 +
***'''Name:''' POW
 +
***'''Value:''' blank unless specific to part
 +
***'''Type:''' variable
 +
*Capacitors
 +
**Should have tolerance and voltage ratings that is blank by default
 +
**Value is for capacitance only
 +
**Tolerance
 +
***'''Name:''' TOL
 +
***'''Value:''' blank unless specific to part
 +
***'''Type:''' variable
 +
**Voltage
 +
***'''Name:''' VOLT
 +
***'''Value:''' blank unless specific to part
 +
***'''Type:''' variable
 +
*Inductors
 +
**Should have tolerance and current ratings that is blank by default
 +
**Value is for inductance only
 +
**Tolerance
 +
***'''Name:''' TOL
 +
***'''Value:''' blank unless specific to part
 +
***'''Type:''' variable
 +
**Current
 +
***'''Name:''' CUR
 +
***'''Value:''' blank unless specific to part
 +
***'''Type:''' variable
 +
*Fuses
 +
**Value is for current rating
 +
*Diodes
 +
**LEDs
 +
***Value should be color
 +
**Normal Diode
 +
***Value should be reverse voltage
 +
**TVS Diode
 +
***Value should be [Working Voltage]-[Breakdown Voltage] (e.g. 8V-8.5V)
 +
 
 +
===Prefix===
 +
{| class="wikitable"
 +
|+ Chart for Prefix Designators
 +
|-
 +
! Letter
 +
! Part Type
 +
|-
 +
| A
 +
| Separate Assembly or Subassembly
 +
|-
 +
| C
 +
| Capacitor
 +
|-
 +
| D
 +
| Diode or LED
 +
|-
 +
| F
 +
| Fuse
 +
|-
 +
| FB
 +
| Ferrite bead
 +
|-
 +
| J
 +
| Jack or Connector (least moveable connection part)
 +
|-
 +
| JP
 +
| Jumper
 +
|-
 +
| K
 +
| Relay or Contactor
 +
|-
 +
| L
 +
| Inductor
 +
|-
 +
| LS/BZ
 +
| Loudspeaker or Buzzer
 +
|-
 +
| M
 +
| Motor
 +
|-
 +
| P
 +
| Plug (most moveable connection part)
 +
|-
 +
| POT
 +
| Potentiometer
 +
|-
 +
| PS
 +
| Power Supply
 +
|-
 +
| Q
 +
| Transistor
 +
|-
 +
| R
 +
| Resistor
 +
|-
 +
| RN
 +
| Resistor Network
 +
|-
 +
| S/SW
 +
| Switch
 +
|-
 +
| T
 +
| Transformer
 +
|-
 +
| TP
 +
| Test Point
 +
|-
 +
| U
 +
| Integrated Circuit
 +
|-
 +
| X
 +
| Crystal
 +
|-
 +
| XF
 +
| External Fuse
 +
|}
 +
 
 +
=Schematics=
 +
==Grid==
 +
*'''Size:''' 0.1 in
 +
*'''Alt:''' 0.01 in
 +
==Sheets==
 +
===Overall===
 +
*Group related subsystems into a sheet
 +
*Have only 1 frame per sheet
 +
===Frames===
 +
*A 11 x 17" frame with the following attributes
 +
**'''TEAM:''' RoboJackets team name
 +
**'''SCH_DESC:''' Short summary of content in the frame
 +
**'''REVISION:''' Schematic version
 +
*Group related subsystems into boxes
 +
**Use Lines
 +
***'''Width:''' 0.006 in
 +
***'''Style:''' shortdash
 +
***'''Layer:''' 97 Info
 +
***'''Curve:''' 0
 +
**Label using Text
 +
***'''Size:''' 0.07 in
 +
***'''Ratio:''' 8%
 +
***'''Line Distance:''' 50%
 +
***'''Font:''' proportional
 +
***'''Align:''' bottom-left
 +
***'''Layer:''' 97 Info
 +
===Description===
 +
*Should match the SCH_DESC from the frame
 +
==Nets==
 +
===Style===
 +
*Text
 +
**'''Size:''' 0.05 in
 +
**'''Ratio:''' 8%
 +
**'''Line Distance:''' 50%
 +
**'''Font:''' proportional
 +
**'''Align:''' bottom-left
 +
**'''Layer:''' 97 Info
 +
===Signals===
 +
*Should have a name if possible
 +
*Label every net:
 +
**'''Size:''' 0.05
 +
**'''Ratio:''' 8%
 +
**'''Font:''' proportional
 +
**'''Align:''' bottom-left
 +
**'''Layer:''' 95 Names
 +
**'''Xref:''' checked
 +
===Power===
 +
*Use symbols with appropriate name as necessary
 +
*Label with the voltage range and max current at driver  
 +
*Use Text
 +
===Busses===
 +
*Should have a name and description
 +
*Use Text
 +
==Notes==
 +
===Computed Values===
 +
*Note values derived from a datasheet with a short explanation
 +
*Use Text within the box of the part in question
 +
===Specific Parts===
 +
*Note optional parts
 +
*Note 0ohm isolation resistors and 0ohm jumper resistors
 +
*Use Text within the box of the part in question
 +
=Boards=
 +
==Grid==
 +
*'''Size:''' 1 mm
 +
*'''Alt:''' 0.1 mm
 +
==Board Fab==
 +
*Load design rules before placement and routing
 +
**Allows spacing constraints to be known to tool
 +
*Check [https://github.com/RoboJackets/eagle-libraries/tree/master/design%20rules this repo] for common EAGLE DRC files per fab
 +
==Placement==
 +
===General===
 +
*LEDs
 +
**Locate power status LEDs near power sources
 +
*Noise prevention
 +
**Keep analog electronics far from high power electronics
 +
**Provide adequate spacing for via stitching/shielding if needed
 +
*Decoupling capacitors
 +
**Recommended 1 per power pin on an IC
 +
**Place as close as possible to the power pin
 +
**Use multiple if necessary
 +
***Reduces noise
 +
***Place smallest value closest to the pin
 +
===Mechanical Considerations===
 +
*Plan for board mounting holes
 +
**Figure out size of the hole and necessary clearance
 +
**Prevent components and traces from being near bolt heads
 +
*Plan for board cutouts and shape
 +
**Mark these before placement and routing
 +
***Use 51 tDoc / 52 bDoc to indicate cutout
 +
**Prevent components and traces from being near the cutout
 +
*Prevent components and traces from overlapping
 +
**Use 39 tKeepout / 40 bKeepout to block components
 +
**Use 41 tKeepout / 42 bKeepout to block copper and traces
 +
==Routing==
 +
===General Practices===
 +
*For two layer boards, try to keep components, signals, and power on the top layer and a ground plane on the bottom layer
 +
**Use Polygon
 +
***'''Width:''' 0.2mm
 +
***'''Cap:''' round
 +
***'''Layer:''' 16 Bottom
 +
***'''Curve:''' 0
 +
***'''Polygon Pour:''' solid
 +
***'''Spacing:''' 0.05
 +
***'''Isolate:''' 0
 +
***'''Rank:''' 1
 +
***'''Orphans:''' unchecked
 +
***'''Thermals:''' unchecked
 +
*Use extra internal layers when necessary
 +
**Allows for simplified power routing
 +
**Leaves more space for signal traces
 +
**Put power planes internally
 +
***Layer 2 and 15 on 4 layer boards
 +
***Layer 2, 3, 14, and 15 on 6 layer boards
 +
*Route signals orthogonally to avoid cross-talk between different layers (for boards >2 layers)
 +
*Differential signals
 +
**Do not split differentially routed pairs unless impedance and arrival time can be matched
 +
*High frequency
 +
**High frequency signals should have continuous low impedance return path directly beneath trace.  
 +
**Keep high frequency signals isolated from other signals to minimize crosstalk
 +
===Traces===
 +
*In general
 +
**'''Style:''' continuous
 +
**'''Cap:''' round
 +
**'''Curve:''' 0
 +
*Signals
 +
**'''Width:''' 0.3mm
 +
*Power
 +
**'''Width:''' 0.5mm (increase as necessary for [https://www.4pcb.com/trace-width-calculator.html current requirements])
 +
*Avoid minimum sizing (based on the DRC) when possible
 +
===Vias===
 +
*At minimum
 +
**'''Diameter:''' 0.65mm
 +
**'''Drill:''' 0.35mm
 +
**'''Shape:''' round
 +
**'''Layer:''' 1-16
 +
*Avoid minimum sizing (based on the DRC) when possible
 +
*Avoid vias on signals above 1GHz
 +
*Use the same number of vias on differentially routed traces
 +
==Silkscreen==
 +
*Far more important than most people realize and can take a significant amount of time to get right
 +
*Makes a board easier to use, easier to debug, and harder to break
 +
===Style===
 +
*Text
 +
**'''Size:''' 1 mm (at minimum)
 +
**'''Ratio:''' 8% (Important text can be bolded using 15%)
 +
**'''Line Distance:''' 50%
 +
**'''Font:''' vector
 +
**'''Layer:''' 21 tPlace / 22 bPlace
 +
*Markings (anything not already in footprints)
 +
**Will be in final board output
 +
**Use Lines
 +
***'''Width:''' 0.2 mm
 +
***'''Style:''' continuous
 +
***'''Layer:''' 21 tPlace / 22 bPlace
 +
*Extra Details
 +
**Will not be in final board output
 +
**Capture more details, extensions beyond outline, etc
 +
**Use Lines
 +
***'''Width:''' 0.2 mm
 +
***'''Style:''' continuous
 +
***'''Layer:''' 51 tDocu / 52 bDocu
 +
*Measurements
 +
**Will not be in final board output
 +
**Useful to mark critical distances
 +
**Can mark outer board dimensions
 +
**Use Dimension
 +
***'''Size:''' 2 mm
 +
***'''Ratio:''' 8% (Important dimensions can be bolded using 15%)
 +
***'''Layer:''' 47 Measures
 +
***'''DType:''' parallel
 +
***'''Line Width:''' 0.2mm
 +
***'''Ext. Line Width:v auto
 +
***'''Ext. Line Length:''' auto
 +
***'''Ext. Line Offset:''' auto
 +
***'''Unit:''' mm
 +
***'''Precision:''' 3
 +
***'''Show unit:''' checked
 +
===Labels===
 +
*Label all power inputs with name and voltage (current optional)
 +
*Label all connectors with name
 +
*Label all switches with position values (e.g. on or off)
 +
*Label all debug LEDs (e.g. MCU Status)
 +
*Label all fuses with current rating
 +
===General===
 +
*Aesthetics
 +
**Don’t place silkscreen on vias (even tented vias) unless absolutely unavoidable
 +
**Have your team logo on the board (e.g. RoboBuzz)
 +
*Versioning
 +
**Have a "vMAJOR.minor" version text label on the board (e.g. v2.1)
 +
**Have your team name and year on the board (e.g. RoboCup 2020)
 +
*Board ID
 +
**White square to allow for a board ID (e.g. written 2 means board 2)
 +
**Recommended if more than three boards will be fabricated
 +
**Use Rectangle
 +
***Make width and height 5mm by 5mm (minimum)
 +
***'''Layer:''' 21 tPlace / 22 bPlace
 +
 
 +
[[Category: Electrical]]

Latest revision as of 20:17, 6 July 2021

Part Creation

Symbol

Grid

  • Size: 0.1 in
  • Alt: 0.01 in

Name

  • Should be manufacturer part/family number (eg. ATTINY167-SU)

Description

  • Leave blank

Style

  • Origin
    • Center origin (crosshair) on symbol center
  • Text
    • Keep text horizontal
    • Size: 0.07 in
    • Line Distance: 50%
    • Font: proportional
  • Name
    • Locate in top left of symbol
    • Align: bottom-left
    • Layer: 95 Names
    • Value: >NAME
  • Value
    • Locate in bottom-left of symbol
    • Align: top-left
    • Layer: 96 Values
    • Value: >VALUE
  • Outline
    • Use Lines
      • Width: 0.01 in
      • Style: continuous
      • Layer: 94 Symbol
      • Curve: 0
    • Try to have a length/width that is a 0.1 in multiple (eg. 0.4 in by 0.4 in)

Functionality

  • Pins
    • Label pins to allow the symbol to be applied to parts in similar families
    • Name: Based on part datasheet
    • Direction: pas (passive)
    • Swap Level: 0
    • Length: middle
    • Function: none
    • Visible: both
  • Pin Placement
    • Power (VCC): top left
    • Ground (GND): bottom right
    • Inputs: left edge
    • Outputs: right edge
  • Passive Pins
    • Specifically resistors, capacitors, inductors, fuses, diodes
    • Visible: off
  • Connector Pins
    • Try to reuse an existing symbol for the size of connector
    • If need to make a new one, for pins:
      • Visible: pad
  • Decimal Labeling
    • For fractional values include the decimal point (eg. 3.3V, 4.5K)

Footprint

Grid

  • Size: 1 mm
  • Alt: 0.1 mm

Name

  • Should be manufacturer footprint name (eg. SOIC-20)

Description

  • Link to datasheet for part/family for pad layout

Style

  • Origin
    • Center origin (crosshair) on footprint center
  • Text
    • Keep text horizontal
    • Size: 1 mm
    • Ratio: 10%
    • Line Distance: 50%
    • Font: vector
  • Name
    • Locate in top left of footprint
    • Align: bottom-left
    • Layer: 25 tNames
    • Value: >NAME
  • Value
    • Locate in bottom-left of symbol
    • Align: top-left
    • Layer: 27 tValues
    • Value: >VALUE
  • Outline
    • Use Lines
      • Width: 0.2 mm
      • Style: continuous
      • Layer: 21 tPlace
    • Draw package outline per part/family datasheet
    • Used for part placement
  • Keepout
    • Use Rectangles
      • Layer: 39 tKeepout
    • Size 0.1 mm larger than the package
    • Used to prevent overlapping parts
  • Details
    • Capture more part details, extensions beyond outline, etc
    • Use
      • Width: 0.2 mm
      • Style: continuous
      • Layer: 51 tDocu

Functionality

  • Pad (Through-hole)
    • Name: name based on datasheet pin number
    • Diameter: auto
    • Drill: size based on datasheet
    • Shape: circle
    • Locked: unchecked
    • Thermals: checked
    • Stop: checked
    • First: unchecked
  • Smd (Surface Mount)
    • Name: name based on datasheet pin number
    • Smd Size: size based on datasheet
    • Layer: 1 Top (usually)
    • Roundness: 0%
    • Locked: unchecked
    • Thermals: checked
    • Stop: checked
    • Cream: checked
  • Polarity Indication
    • Through-hole
      • Make pin 1 visually different
      • Shape: square
    • Indicate polarity, when necessary
      • Prevents backwards installation
      • Direction or cathode indicators for diodes
      • Stripe or plus-minus for capacitors
    • Indicate Pin 1 for ICs
      • Use a circle (dot)
        • Width: 0 mm
        • Layer: 21 tPlace
        • Radius: 0.2 mm (at minimum)
    • Avoid overlapping pads with silkscreen, cut a section out

Device

Name

  • Should be manufacturer part number (eg. ATTINY167-SU)
  • Wildcards
    • Allows devices with multiple technologies (specifications) or packages
      • Uses wildcards in device name
      • Technology Name: *
      • Package Name: ?
    • Example
      • Regulator with two voltage (3.3V and 1.8V) technologies
        • AP2138N-3.3TRG1 for 3.3V
        • AP2138N-1.8TRG1 for 1.8V
        • Becomes AP2138N-*TRG1 with technology 3.3 and 1.8

Description

  • One sentence part function overview (valid for all variants)
  • Datasheet link

Value

  • Off unless its a passive part (resistors, capacitors, inductors, fuses, diodes)
  • If its a specific passive part with a value, add an attribute
    • Name: VALUE
    • Value: the value
    • Type: variable

Symbol

  • Use specific symbol for that part/family
  • Connectors are an exception
    • Generic symbol used for all connectors of a certain size

Footprint

  • Use specific footprint if unique
  • Try to reuse a footprint if it matches

Attribute (non-Passives)

  • Part number
    • Name: DKPN
    • Value: the Digi-Key Part Number (eg. ATTINY167-SU-ND)
    • Type: variable

Attribute (Passives)

  • Part number
    • Name: DKPN
    • Value: blank unless specific to part
    • Type: variable
  • Resistors
    • Should have tolerance and power ratings that is blank by default
    • Value is for resistance only
    • Tolerance
      • Name: TOL
      • Value: blank unless specific to part
      • Type: variable
    • Power
      • Name: POW
      • Value: blank unless specific to part
      • Type: variable
  • Capacitors
    • Should have tolerance and voltage ratings that is blank by default
    • Value is for capacitance only
    • Tolerance
      • Name: TOL
      • Value: blank unless specific to part
      • Type: variable
    • Voltage
      • Name: VOLT
      • Value: blank unless specific to part
      • Type: variable
  • Inductors
    • Should have tolerance and current ratings that is blank by default
    • Value is for inductance only
    • Tolerance
      • Name: TOL
      • Value: blank unless specific to part
      • Type: variable
    • Current
      • Name: CUR
      • Value: blank unless specific to part
      • Type: variable
  • Fuses
    • Value is for current rating
  • Diodes
    • LEDs
      • Value should be color
    • Normal Diode
      • Value should be reverse voltage
    • TVS Diode
      • Value should be [Working Voltage]-[Breakdown Voltage] (e.g. 8V-8.5V)

Prefix

Chart for Prefix Designators
Letter Part Type
A Separate Assembly or Subassembly
C Capacitor
D Diode or LED
F Fuse
FB Ferrite bead
J Jack or Connector (least moveable connection part)
JP Jumper
K Relay or Contactor
L Inductor
LS/BZ Loudspeaker or Buzzer
M Motor
P Plug (most moveable connection part)
POT Potentiometer
PS Power Supply
Q Transistor
R Resistor
RN Resistor Network
S/SW Switch
T Transformer
TP Test Point
U Integrated Circuit
X Crystal
XF External Fuse

Schematics

Grid

  • Size: 0.1 in
  • Alt: 0.01 in

Sheets

Overall

  • Group related subsystems into a sheet
  • Have only 1 frame per sheet

Frames

  • A 11 x 17" frame with the following attributes
    • TEAM: RoboJackets team name
    • SCH_DESC: Short summary of content in the frame
    • REVISION: Schematic version
  • Group related subsystems into boxes
    • Use Lines
      • Width: 0.006 in
      • Style: shortdash
      • Layer: 97 Info
      • Curve: 0
    • Label using Text
      • Size: 0.07 in
      • Ratio: 8%
      • Line Distance: 50%
      • Font: proportional
      • Align: bottom-left
      • Layer: 97 Info

Description

  • Should match the SCH_DESC from the frame

Nets

Style

  • Text
    • Size: 0.05 in
    • Ratio: 8%
    • Line Distance: 50%
    • Font: proportional
    • Align: bottom-left
    • Layer: 97 Info

Signals

  • Should have a name if possible
  • Label every net:
    • Size: 0.05
    • Ratio: 8%
    • Font: proportional
    • Align: bottom-left
    • Layer: 95 Names
    • Xref: checked

Power

  • Use symbols with appropriate name as necessary
  • Label with the voltage range and max current at driver
  • Use Text

Busses

  • Should have a name and description
  • Use Text

Notes

Computed Values

  • Note values derived from a datasheet with a short explanation
  • Use Text within the box of the part in question

Specific Parts

  • Note optional parts
  • Note 0ohm isolation resistors and 0ohm jumper resistors
  • Use Text within the box of the part in question

Boards

Grid

  • Size: 1 mm
  • Alt: 0.1 mm

Board Fab

  • Load design rules before placement and routing
    • Allows spacing constraints to be known to tool
  • Check this repo for common EAGLE DRC files per fab

Placement

General

  • LEDs
    • Locate power status LEDs near power sources
  • Noise prevention
    • Keep analog electronics far from high power electronics
    • Provide adequate spacing for via stitching/shielding if needed
  • Decoupling capacitors
    • Recommended 1 per power pin on an IC
    • Place as close as possible to the power pin
    • Use multiple if necessary
      • Reduces noise
      • Place smallest value closest to the pin

Mechanical Considerations

  • Plan for board mounting holes
    • Figure out size of the hole and necessary clearance
    • Prevent components and traces from being near bolt heads
  • Plan for board cutouts and shape
    • Mark these before placement and routing
      • Use 51 tDoc / 52 bDoc to indicate cutout
    • Prevent components and traces from being near the cutout
  • Prevent components and traces from overlapping
    • Use 39 tKeepout / 40 bKeepout to block components
    • Use 41 tKeepout / 42 bKeepout to block copper and traces

Routing

General Practices

  • For two layer boards, try to keep components, signals, and power on the top layer and a ground plane on the bottom layer
    • Use Polygon
      • Width: 0.2mm
      • Cap: round
      • Layer: 16 Bottom
      • Curve: 0
      • Polygon Pour: solid
      • Spacing: 0.05
      • Isolate: 0
      • Rank: 1
      • Orphans: unchecked
      • Thermals: unchecked
  • Use extra internal layers when necessary
    • Allows for simplified power routing
    • Leaves more space for signal traces
    • Put power planes internally
      • Layer 2 and 15 on 4 layer boards
      • Layer 2, 3, 14, and 15 on 6 layer boards
  • Route signals orthogonally to avoid cross-talk between different layers (for boards >2 layers)
  • Differential signals
    • Do not split differentially routed pairs unless impedance and arrival time can be matched
  • High frequency
    • High frequency signals should have continuous low impedance return path directly beneath trace.
    • Keep high frequency signals isolated from other signals to minimize crosstalk

Traces

  • In general
    • Style: continuous
    • Cap: round
    • Curve: 0
  • Signals
    • Width: 0.3mm
  • Power
  • Avoid minimum sizing (based on the DRC) when possible

Vias

  • At minimum
    • Diameter: 0.65mm
    • Drill: 0.35mm
    • Shape: round
    • Layer: 1-16
  • Avoid minimum sizing (based on the DRC) when possible
  • Avoid vias on signals above 1GHz
  • Use the same number of vias on differentially routed traces

Silkscreen

  • Far more important than most people realize and can take a significant amount of time to get right
  • Makes a board easier to use, easier to debug, and harder to break

Style

  • Text
    • Size: 1 mm (at minimum)
    • Ratio: 8% (Important text can be bolded using 15%)
    • Line Distance: 50%
    • Font: vector
    • Layer: 21 tPlace / 22 bPlace
  • Markings (anything not already in footprints)
    • Will be in final board output
    • Use Lines
      • Width: 0.2 mm
      • Style: continuous
      • Layer: 21 tPlace / 22 bPlace
  • Extra Details
    • Will not be in final board output
    • Capture more details, extensions beyond outline, etc
    • Use Lines
      • Width: 0.2 mm
      • Style: continuous
      • Layer: 51 tDocu / 52 bDocu
  • Measurements
    • Will not be in final board output
    • Useful to mark critical distances
    • Can mark outer board dimensions
    • Use Dimension
      • Size: 2 mm
      • Ratio: 8% (Important dimensions can be bolded using 15%)
      • Layer: 47 Measures
      • DType: parallel
      • Line Width: 0.2mm
      • Ext. Line Width:v auto
      • Ext. Line Length: auto
      • Ext. Line Offset: auto
      • Unit: mm
      • Precision: 3
      • Show unit: checked

Labels

  • Label all power inputs with name and voltage (current optional)
  • Label all connectors with name
  • Label all switches with position values (e.g. on or off)
  • Label all debug LEDs (e.g. MCU Status)
  • Label all fuses with current rating

General

  • Aesthetics
    • Don’t place silkscreen on vias (even tented vias) unless absolutely unavoidable
    • Have your team logo on the board (e.g. RoboBuzz)
  • Versioning
    • Have a "vMAJOR.minor" version text label on the board (e.g. v2.1)
    • Have your team name and year on the board (e.g. RoboCup 2020)
  • Board ID
    • White square to allow for a board ID (e.g. written 2 means board 2)
    • Recommended if more than three boards will be fabricated
    • Use Rectangle
      • Make width and height 5mm by 5mm (minimum)
      • Layer: 21 tPlace / 22 bPlace