Difference between revisions of "EAGLE Style Guide"

From RoboJackets Wiki
Jump to navigation Jump to search
m (Formatting)
m (footprint layer tValues should be 27 not 26)
 
(42 intermediate revisions by 3 users not shown)
Line 2: Line 2:
 
==Symbol==
 
==Symbol==
 
===Grid===
 
===Grid===
−
*0.1 inches Size
+
*'''Size:''' 0.1 in
−
*0.01 inches Alt
+
*'''Alt:''' 0.01 in
 +
===Name===
 +
*Should be manufacturer part/family number (eg. ATTINY167-SU)
 +
===Description===
 +
*Leave blank
 
===Style===
 
===Style===
−
*Location
+
*Origin
−
**Center origin of grid on the center of the part
+
**Center origin (crosshair) on symbol center
−
*Font
+
*Text
−
**Vector rendered
+
**Keep text horizontal
−
**Ratio 8%, unless made bold for end user benefit
+
**'''Size:''' 0.07 in
−
**Size of 0.07 in
+
**'''Line Distance:''' 50%
−
**Value aligned bottom-left, name on top left of symbol
+
**'''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===
 
===Functionality===
−
*Pins should be labeled in a way that allows the symbol to be applied to any parts in a similar family
+
*Pins
−
*For passive elements, pin labels can be disabled for simplicity
+
**Label pins to allow the symbol to be applied to parts in similar families
−
**“Visible - pin” for just the pin label
+
**'''Name:''' Based on part datasheet
−
**“Visible - pad” for just the pad label
+
**'''Direction:''' pas (passive)
−
*Use passive for the pin type; at a minimum, don’t set any to power even if they are power pins
+
**'''Swap Level:''' 0
−
*For functional layout: Inputs on left, outputs on right, power top-left, ground bottom-right.
+
**'''Length:''' middle
−
*Pin placement
+
**'''Function:''' none
−
**Inputs on left
+
**'''Visible:''' both
−
**Outputs on right
+
*Pin Placement
−
**Power on top (optional)
+
**Power (VCC): top left
−
**Ground on bottom (optional)
+
**Ground (GND): bottom right
−
*Decimal value labeling
+
**Inputs: left edge
−
**For labeling fractional values, include the decimal point. Eg. 3.3V
+
**Outputs: right edge
−
**4.51k → 4,510 kOhm
+
*Passive Pins
−
**NOT 3V3, etc.
+
**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==
 
==Footprint==
−
Grid
+
===Grid===
−
1 mm Size
+
*'''Size:''' 1 mm
−
0.1 mm Alt
+
*'''Alt:''' 0.1 mm
−
Font
+
===Name===
−
Font - Vector
+
*Should be manufacturer footprint name (eg. SOIC-20)
−
Ratio - 8%
+
===Description===
−
unless made bold for end user benefit
+
*Link to datasheet for part/family for pad layout
−
Size - 1 mm
+
===Style===
−
Functionality
+
*Origin
−
Silkscreen
+
**Center origin (crosshair) on footprint center
−
Line for alignment on tPlace/bPlace
+
*Text
−
All ICs should have pin one marked with a dot
+
**Keep text horizontal
−
All diodes should have direction or cathode marks
+
**'''Size:''' 1 mm
−
Clearly indicate polarity as necessary
+
**'''Ratio:''' 10%
−
Try not to overlap pads with silkscreen; although tedious, cut a section out
+
**'''Line Distance:''' 50%
−
Slots
+
**'''Font:''' vector
−
Use the milling layer (46) to draw the outline of the slot
+
*Name
−
Create the pad using the elongated pad
+
**Locate in top left of footprint
−
Set the hole diameter to the width of the slot
+
**'''Align:''' bottom-left
−
Export the milling layer to its own gerber file and attach it with the rest of your gerbers
+
**'''Layer:''' 25 tNames
−
Every manufacturer has its own preferred method, but seems to be accepted widely enough
+
**'''Value:''' >NAME
−
Labeling
+
*Value
−
>NAME label on top
+
**Locate in bottom-left of symbol
−
>VALUE label on below
+
**'''Align:''' top-left
−
Outline of package on tDocu/bDocu
+
**'''Layer:''' 27 tValues
−
Device
+
**'''Value:''' >VALUE
−
Attributes
+
*Outline
−
Name should be manufacturer part number
+
**Use Lines
−
Attribute - DKPN should be filled with the Digi-Key part number
+
***'''Width:''' 0.2 mm
−
Descriptions
+
***'''Style:''' continuous
−
One sentence describes the function of the part
+
***'''Layer:''' 21 tPlace
−
Datasheet link if available
+
**Draw package outline per part/family datasheet
−
Prefix
+
**Used for part placement
−
Chart for Designators
+
*Keepout
−
Letter
+
**Use Rectangles
−
Part Type
+
***'''Layer:''' 39 tKeepout
−
C
+
**Size 0.1 mm larger than the package
−
Capacitor
+
**Used to prevent overlapping parts
−
D
+
*Details
−
Diode, LED
+
**Capture more part details, extensions beyond outline, etc
−
F
+
**Use
−
Fuse
+
***'''Width:''' 0.2 mm
−
J
+
***'''Style:''' continuous
−
Jack or Connector (least moveable connection part)
+
***'''Layer:''' 51 tDocu
−
JP
+
 
−
Jumper
+
===Functionality===
−
K
+
*Pad (Through-hole)
−
Relay or Contactor
+
**'''Name:''' name based on datasheet pin number
−
L
+
**'''Diameter:''' auto
−
Inductor
+
**'''Drill:''' size based on datasheet
−
LS/BZ
+
**'''Shape:''' circle
−
Loudspeaker or buzzer
+
**'''Locked:''' unchecked
−
M
+
**'''Thermals:''' checked
−
Motor
+
**'''Stop:''' checked
−
P
+
**'''First:''' unchecked
−
Plug (most moveable connection part)
+
*Smd (Surface Mount)
−
PS
+
**'''Name:''' name based on datasheet pin number
−
Power Supply
+
**'''Smd Size:''' size based on datasheet
−
Q
+
**'''Layer:''' 1 Top (usually)
−
Transistor (all)
+
**'''Roundness:''' 0%
−
R
+
**'''Locked:''' unchecked
−
Resistor
+
**'''Thermals:''' checked
−
S/SW
+
**'''Stop:''' checked
−
Switch
+
**'''Cream:''' checked
−
T
+
*Polarity Indication
−
Transformer
+
**Through-hole
−
TP
+
***Make pin 1 visually different
−
Test Point
+
***'''Shape:''' square
−
U
+
**Indicate polarity, when necessary
−
Integrated Circuit
+
***Prevents backwards installation
−
X
+
***Direction or cathode indicators for diodes
−
Crystal
+
***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
  
−
Schematics
+
[[Category: Electrical]]
−
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
 

Latest revision as of 21: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