Difference between revisions of "EAGLE Style Guide"

From RoboJackets Wiki
Jump to navigation Jump to search
Line 1: Line 1:
 
=Part Creation=
 
=Part Creation=
 
 
==Symbol==
 
==Symbol==
 
===Grid===
 
===Grid===
Line 58: Line 57:
 
*Decimal Labeling
 
*Decimal Labeling
 
**For fractional values include the decimal point (eg. 3.3V, 4.5K)
 
**For fractional values include the decimal point (eg. 3.3V, 4.5K)
 
 
==Footprint==
 
==Footprint==
 
===Grid===
 
===Grid===
Line 137: Line 135:
 
****'''Radius:''' 0.2 mm (at minimum)
 
****'''Radius:''' 0.2 mm (at minimum)
 
**Avoid overlapping pads with silkscreen, cut a section out
 
**Avoid overlapping pads with silkscreen, cut a section out
 
 
==Device==
 
==Device==
 
===Name===
 
===Name===
Line 292: Line 289:
 
| External Fuse
 
| External Fuse
 
|}
 
|}
 
 
=Schematics=
 
=Schematics=
==Overall==
+
==Grid==
*Organize subsystems as follows:
+
==Sheets==
*Related subsystems should be grouped into a sheet
+
===Overall===
*Each subsystem in a sheet should be boxed clearly, and that box labeled
+
===Frames===
**Use line tool, width 0.006, shortdash, layer 97 info
+
===Description===
**Label font
 
***Font - vector
 
***Ratio - 12%
 
***Size - 0.25 in
 
***Layer - Info
 
**Every sheet should have the following:
 
***A frame no bigger than 11 x 17" (8½ x 11” preferred), which should have the following info:
 
***A name
 
***Last edit date
 
***Last edit engineer(s)
 
***Schematic version
 
***Page #
 
**Frames within a schematic should all be the same size
 
 
==Nets==
 
==Nets==
*Every net should have a name if possible
+
===Style===
**Use xref tags at 0.05 size
+
===Signals===
*Every bus should have a name and description
+
===Power===
*Every power net should be labeled with the acceptable voltage range and max current at the net driver
+
===Busses===
*Differentially routed nets should be commented as such as the driver and sink
+
==Notes==
*Impedance controlled nets should be commented as such as the driver and sink
+
===Computed Values===
*Power and Ground nets
+
===Specific Parts===
**Use symbol with appropriate name
 
==Configs==
 
*Any value computed (e.g. varies by application) from a datasheet should be noted
 
*Any optional parts should be noted
 
*0ohm isolation resistor and 0ohm jumper resistors should be noted
 
 
=Boards=
 
=Boards=
==Fab House / Validation==
+
==Grid==
*Load fab house DRC before place and route
+
==Board Fab==
*RoboJackets has slightly conservative DRCs for 2 and 4 layer boards
 
 
==Placement==
 
==Placement==
*Keep analog electronics far from high power electronics
+
===General===
*Locate power net status LEDs near power sources
+
===Mechanical Considerations===
*Provide adequate spacing for stitching/shielding if needed
 
*Verify any mechanical considerations
 
**Board mounting holes
 
**Component mounting holes/cutouts
 
**Use tDoc/bDoc and/or tKeepout/bKeepout for bolt head size to prevent traces near mounting
 
*Place decoupling capacitors as close to the power pin of the IC as possible
 
**Smallest values should be closest to pin to minimize parasitic inductance
 
 
==Routing==
 
==Routing==
*Avoid minimum trace width where possible
+
===General Practices===
**Suggestions: 0.2 to 0.3mm for signals, 0.4 to 0.5mm for power (increase as needed for current rating)
+
===Traces===
*Avoid minimum trace spacing where possible
+
===Via===
*Avoid minimum drill/via size where possible
 
**Suggestions: 0.35mm drill, 0.65mm diameter for vias
 
*Do not split differentially routed pairs unless impedance and arrival time can be matched
 
*Avoid vias on signals above 1GHz
 
*Use the same number of vias on differentially routed traces
 
*For two layer boards, try to keep component, signal, and power on the top layer and ground return on the bottom layer
 
*High frequency signals should have continuous low impedance return path directly beneath trace.
 
*Keep high frequency signals isolated from other signals to minimize crosstalk
 
*Route signals orthogonally to avoid cross-talk
 
 
==Silkscreen==
 
==Silkscreen==
*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.
+
===Style===
===Meta===
+
===Labels===
*Have at least a "vMAJOR.minor" version label on the board
+
===General===
*Have your team name and year (optionally month, Ubuntu style) on the board
 
*Have your team logo on the board
 
*Have a filled white square to write in an instance ID
 
**Recommended if more than three boards will be fabricated
 
**e.g. can say "board #2 is broken", there is a "2" written on the white square
 
**Cover ink with Kapton tape
 
*Don’t place them on vias (even tented vias) unless absolutely unavoidable
 
===Components & Connectors===
 
*Set default line width to 0.2mm
 
*Label all power inputs with name and voltage (current optional)
 
*Label all connectors with name
 
*Label all switches with position values
 
*Label all debug LEDs
 
*Label all fuses with current rating (type optional)
 
===Font===
 
*All font should be vector rendered
 
*All font should be ratio 8%, unless made bold for end user benefit
 
*Component font size should be "1"
 
**e.g. R45, Q1, etc.
 
*Layer - t/bPlace
 
 
 
 
[[Category: Electrical]]
 
[[Category: Electrical]]

Revision as of 23:54, 10 July 2020

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
    • Ratio: 8%
    • 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: 8%
    • 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: 26 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: Tolerance
      • Value: blank unless specific to part
      • Type: variable
    • Power
      • Name: Power
      • 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: Tolerance
      • Value: blank unless specific to part
      • Type: variable
    • Voltage
      • Name: Voltage
      • 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: Tolerance
      • Value: blank unless specific to part
      • Type: variable
    • Current
      • Name: Current
      • 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 Designation
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)
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

Sheets

Overall

Frames

Description

Nets

Style

Signals

Power

Busses

Notes

Computed Values

Specific Parts

Boards

Grid

Board Fab

Placement

General

Mechanical Considerations

Routing

General Practices

Traces

Via

Silkscreen

Style

Labels

General