Difference between revisions of "EAGLE Style Guide"

From RoboJackets Wiki
Jump to navigation Jump to search
m (Formatting)
m (Continued formatting)
Line 29: Line 29:
 
**NOT 3V3, etc.
 
**NOT 3V3, etc.
 
==Footprint==
 
==Footprint==
Grid
+
===Grid===
1 mm Size
+
*1 mm Size
0.1 mm Alt
+
*0.1 mm Alt
Font
+
===Font===
Font - Vector
+
*Font - Vector
Ratio - 8%
+
*Ratio - 8%
unless made bold for end user benefit
+
**unless made bold for end user benefit
Size - 1 mm
+
*Size - 1 mm
Functionality
+
===Functionality===
Silkscreen
+
*Silkscreen
Line for alignment on tPlace/bPlace
+
**Line for alignment on tPlace/bPlace
All ICs should have pin one marked with a dot
+
**All ICs should have pin one marked with a dot
All diodes should have direction or cathode marks
+
**All diodes should have direction or cathode marks
Clearly indicate polarity as necessary
+
**Clearly indicate polarity as necessary
Try not to overlap pads with silkscreen; although tedious, cut a section out
+
**Try not to overlap pads with silkscreen; although tedious, cut a section out
Slots
+
*Slots
Use the milling layer (46) to draw the outline of the slot
+
**Use the milling layer (46) to draw the outline of the slot
Create the pad using the elongated pad
+
**Create the pad using the elongated pad
Set the hole diameter to the width of the slot
+
**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
+
**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
+
**Every manufacturer has its own preferred method, but seems to be accepted widely enough
Labeling
+
===Labeling===
>NAME label on top
+
*>NAME label on top
>VALUE label on below
+
*>VALUE label on below
Outline of package on tDocu/bDocu
+
*Outline of package on tDocu/bDocu
Device
+
==Device==
Attributes
+
===Attributes===
Name should be manufacturer part number
+
*Name should be manufacturer part number
Attribute - DKPN should be filled with the Digi-Key part number
+
*Attribute - DKPN should be filled with the Digi-Key part number
Descriptions
+
===Descriptions===
One sentence describes the function of the part
+
*One sentence describes the function of the part*
Datasheet link if available
+
*Datasheet link if available*
Prefix
+
===Prefix===
Chart for Designators
+
*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
+
=Schematics=
Overall
+
==Overall==
Organize subsystems as follows:
+
*Organize subsystems as follows:
Related subsystems should be grouped into a sheet
+
*Related subsystems should be grouped into a sheet
Each subsystem in a sheet should be boxed clearly, and that box labeled
+
*Each subsystem in a sheet should be boxed clearly, and that box labeled
Use line tool, width 0.006, shortdash, layer 97 info
+
**Use line tool, width 0.006, shortdash, layer 97 info
Label font
+
**Label font
Font - vector
+
***Font - vector
Ratio - 12%
+
***Ratio - 12%
Size - 0.25 in
+
***Size - 0.25 in
Layer - Info
+
***Layer - Info
Every sheet should have the following:
+
**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 frame no bigger than 11 x 17" (8½ x 11” preferred), which should have the following info:
A name
+
***A name
Last edit date
+
***Last edit date
Last edit engineer(s)
+
***Last edit engineer(s)
Schematic version
+
***Schematic version
Page #
+
***Page #
Frames within a schematic should all be the same size
+
**Frames within a schematic should all be the same size
Nets
+
==Nets==
Every net should have a name if possible
+
**Every net should have a name if possible
 
Use xref tags at 0.05 size
 
Use xref tags at 0.05 size
 
Every bus should have a name and description
 
Every bus should have a name and description

Revision as of 22:05, 17 March 2020

Part Creation

Symbol

Grid

  • 0.1 inches Size
  • 0.01 inches Alt

Style

  • Location
    • Center origin of grid on the center of the part
  • Font
    • Vector rendered
    • Ratio 8%, unless made bold for end user benefit
    • Size of 0.07 in
    • Value aligned bottom-left, name on top left of symbol

Functionality

  • Pins should be labeled in a way that allows the symbol to be applied to any parts in a similar family
  • For passive elements, pin labels can be disabled for simplicity
    • “Visible - pin” for just the pin label
    • “Visible - pad” for just the pad label
  • Use passive for the pin type; at a minimum, don’t set any to power even if they are power pins
  • For functional layout: Inputs on left, outputs on right, power top-left, ground bottom-right.
  • Pin placement
    • Inputs on left
    • Outputs on right
    • Power on top (optional)
    • Ground on bottom (optional)
  • Decimal value labeling
    • For labeling fractional values, include the decimal point. Eg. 3.3V
    • 4.51k → 4,510 kOhm
    • NOT 3V3, etc.

Footprint

Grid

  • 1 mm Size
  • 0.1 mm Alt

Font

  • Font - Vector
  • 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

Schematics

Overall

  • Organize subsystems as follows:
  • Related subsystems should be grouped into a sheet
  • Each subsystem in a sheet should be boxed clearly, and that box labeled
    • Use line tool, width 0.006, shortdash, layer 97 info
    • 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

    • Every net should have a name if possible

Use xref tags at 0.05 size Every bus should have a name and description Every power net should be labeled with the acceptable voltage range and max current at the net driver Differentially routed nets should be commented as such as the driver and sink Impedance controlled nets should be commented as such as the driver and sink Power and Ground nets 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 Fab House / Validation Load fab house DRC before place and route RoboJackets has slightly conservative DRCs for 2 and 4 layer boards Placement Keep analog electronics far from high power electronics Locate power net status LEDs near power sources 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 Avoid minimum trace width where possible Suggestions: 0.2 to 0.3mm for signals, 0.4 to 0.5mm for power (increase as needed for current rating) Avoid minimum trace spacing where possible 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 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. Meta Have at least a "vMAJOR.minor" version label on the board 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