//Translations of this page are also available in the following languages:// [[pcb-quick_reference.fr|Français]], [[pcb-quick_reference.ru|Русский]].
====== PCB: Quick Reference ======
===== Additional information =====
More information on PCB you can find in the PCB Command reference
(//''refcard.pdf''//) containing description of all PCB shortcuts
and in the PCB Manual (//''pcb.pdf''// or //''pcb.html''//)
residing in the //''doc/''// directory of your PCB installation
(its path may vary on various systems).
===== Default Key Mapping =====
==== All Keystrokes ====
^ Key ^ Mnemonic ^ Description ^
| esc | select | enter select mode (same as space, or F11) |
| esc | end of action | terminate the current action, e.g. stop drawing tracks |
| insert | insert point | enter insert point mode. Click and drag on track to insert a point |
| return | click | same as a click on the left mouse button |
| space | select | enter select mode (same as esc, or F11) |
| tab | flip up/down | view: vertical flip |
| S-tab | flip left/right | view: horizontal flip |
| C-S-tab | far side | view: exchange the roles of front side and far side |
| del | delete | delete object under the mouse cursor |
| C-S L-Mouse | delete | delete object under the mouse cursor (fast) |
| S-del | del-sel | delete objects in selection |
| backspace | del-sel | delete objects in selection |
| S-backspace | del-copper | deletes connected copper under the cursor. Rats are considered a connection. |
| | | thin-draw | toggles thin draw mode |
| a | set same | read the parameters to use for new objects from the object below the cursor. |
| A-a | select-all | select all objects on active layers. Deactivated layers are ignored. |
| S-A-a | unselect | clear selection |
| b | to other side | flip object to the other side of the board |
| c | center | view: center display at cursor position |
| C-c | copy to buffer | copy selection to buffer and unselect |
| d | display name | display pin or pad name |
| S-d | pinout dialog | open pinout window for element under mouse cursor |
| e | eliminate rats | delete all rats |
| S-e | eliminate some rats| delete selected rats |
| f | find | highlight connections to object under mouse cursor. This includes rats and objects on invisible layers |
| C-f | add to found | add connections to object under mouse cursor to the set of found objects |
| S-f | un-find | un-highlight found connections |
| g | incr grid mil | increment grid by configured imperial increment |
| S-g | decr grid mil | decrement grid by configured imperial increment |
| C-g | incr grid mm | increment grid by configured metric increment |
| C-S-g | decr grid mm | decrement grid by configured metric increment |
| h | hide | toggle the visibility of the refdes or value attached to the component under the cursor |
| S-h | hide sel | toggle the visibility of the refdes or value attached to selected components |
| C-h | holeplate | toggle plating of a via. Used to produce non metalized mounting holes |
| j | lineclear | toggle the polygon clear flag of the line under the cursor |
| S-j | lineclear sel | toggle the polygon clear flag of selected lines |
| k | klear | increment clearance (soldermask to copper edge) |
| S-k | klear (-) | decrement clearance (soldermask to copper edge (NOTE: can go negative!)) |
| C-k | klear sel | increment clearance of selected objects (soldermask to copper edge) |
| S-C-k | klear sel (-) | decrement clearance of selected objects (soldermask to copper edge) |
| l | increase line | increment width of the line tool, adds to the settings of the current line style |
| S-l | decrease line | reduce the current linewidth |
| m | move to layer | move the object under the cursor to the current layer |
| S-m | move selection to layer | move selected objects to the current working layer (see [[geda:pcb_tips#how_do_i_move_one_set_of_layer_tracks_to_another_layer|pcb tip]]) |
| C-m | move origin | set the origin to the current position of the mouse pointer |
| n | name | show object refdes / pin number at mouse pointer |
| S-n | next | Select the shortest unselected rat on the board |
| o | optimize rats | optimize and redraw all rats |
| S-o | optimize some rats | optimize and redraw selected nets only |
| C-o | octagon | toggle the octagon flag of the object under the cursor |
| S-p | polygon close | connect the first point of a polygon with the last |
| q | square toggle | toggle square/round corners on pads |
| S-r | redo | redo what was undone with undo |
| C-r | report | show object report |
| s | size | increment size of the object under the cursor |
| S-s | size (-) | decrement size of the object under the cursor |
| A-s | sizehole | increase the hole of the object under the cursor |
| A-S-s | sizehole (-) | decrease the hole of the object under the cursor |
| C-s | sizehole | increase the hole of the object under the cursor |
| C-S-s | sizehole (-) | decrease the hole size |
| t | text tool size | increase the size of new text by 10 mil |
| S-t | text tool size (-) | decrease the size of new text by 10 mil |
| v | view extents | global view of working area |
| S-v | via tool dia | increase the diameter of new vias by 5 mil |
| C-v | paste buffer | paste from buffer |
| C-S-v | via tool dia (-) | decrease the diameter of new vias by 5 mil |
| A-v | via tool drill | increase the drill diameter of new vias by 5 mil |
| S-A-v | via tool drill (-) | decrease the drill diameter of new vias by 5 mil |
| C-x | cut to buffer | cut selection to buffer |
| z | zoom | view: zoom in |
| S-z | un-zoom | view: zoom out |
| F1 | via | enter via tool |
| F2 | line | enter line tool |
| F3 | arc | enter arc tool |
| F4 | text | enter text tool |
| F5 | rectangle | enter rectangle tool|
| F6 | polygon | enter polygon tool |
| F7 | buffer | enter buffer mode |
| F8 | delete | enter remove mode |
| F9 | rotate | enter rotate mode |
| F10 | file menu | file menu |
| F11 | select | enter select mode (same as space, or esc) |
| F12 | lock | enter lock mode |
==== Viewport Keystrokes ====
^ Key ^ Mnemonic ^ Description ^
| v | view extents | global view of working area |
| c | center | centers view on cursor |
| z | zoom | zoom in |
| S-z | un-zoom | zoom out |
| | | thin-draw | toggles thin draw mode |
| tab | flip up/down | vertical flip |
| S-tab | flip left/right | horizontal flip |
| C-S-tab | far side | exchange the roles of front and far side |
==== Layers ====
^ Key ^ Mnemonic ^ Description ^
| 1 to 9 | - | select layers 1 to 9 |
| 0 | - | select layer 10* |
| A-1 to A-9 | - | select layers 11 to 19* |
| A-0 | - | select layer 20* |
| C-1 to C-9 | - | toggle visibility of layers 1 to 9* |
| C-0 | - | toggle visibility of layer 10* |
| C-A-1 to C-A-9 | - | toggle visibility of 11 to 19* |
| C-A-0 | - | toggle visibility of 20* |
* These accels are available in PCB, GTK GUI in versions after August 2011
====== Footprint Quick Reference ======
The Master document for footprint creation is the [[http://pcb.geda-project.org/manual.html|PCB Manual]]. There is also Stuart Brorson’s [[http://www.brorson.com/gEDA/land_patterns_20050129.pdf|Footprint Creation for the Open-Source Layout Program PCB]].
===== General syntax =====
A pcb footprint file may contain any of the following commands:
* **''Element [element_flags, description, pcb_name, value, mark_x, mark_y, text_x, text_y, text_direction, text_scale, text_flags]''**
* **''Pad [x1 y1 x2 y2 thickness clearance mask name pad_number flags]''**
* **''Pin [x y thickness clearance mask drillholedia name number flags]''**
* **''ElementArc [x y r1 r2 startangle sweepangle thickness]''**
* **''ElementLine [x1 y1 x2 y2 thickness] –> thickness != 1000 = 10 mils almost for all footprints''**
* Comment lines start with the ‘**''#''**’-sign
===== PCB Units =====
PCB handles metric and imperial units in the following way:
* The base Imperial unit is the "centimil", or 1/100 of a thousandth, or 1/100,000 inch, or 0.00001 inch.
* Allowable imperial value range: "0.04" (0.0000004 inches) to approx. "78740000" (about 78-3/4")
* The base Metric unit is 1nm (one nanometer). PCB parses in metric if the number has a "mm" behind it.
* Allowable metric value range: "0.000001mm" to "2000mm"
* NOTES:
* use "mm" after number to specify metric
* imperial and metric may be mixed within a footprint (!)
===== Elements =====
**''Element [element_flags, description, pcb_name, value, mark_x, mark_y, text_x, text_y, text_direction, text_scale, text_flags]''**
^ ^ Allowed value (unit = 1e-5 inches) ^ Allowed Value (mm) ^ explanation ^ comment ^
| element_flags | unsigned hex value | | |
| description | string | | text description of footprint | user-defined |
| pcb_name | string | | generic refdes (R?, U? etc.) | user-defined |
| value | string | | component value (layout specific) | user-defined (blank) |
| mark_x | "1" to ~ "78740000" | "0.000001mm" to "2000mm" | (x,y) loc. of center mark | |
| mark_y | "1" to ~ "78740000" | "0.000001mm" to "2000mm" | | |
| text_x | "1" to ~ "78740000" | "0.000001mm" to "2000mm" | (x,y) loc. of REFDES | |
| text_y | "1" to ~ "78740000" | "0.000001mm" to "2000mm" | | |
| text_direction | decimal integer | | 0=horiz; 1=ccw90; 2=180; 3=cw90 | |
| text_scale | decimal integer | | | usu. set to 100 |
| text_flags | unsigned hex | | | |
===== Pads =====
**''Pad[x1 y1 x2 y2 thickness clearance mask name pad_number flags]''**
^ Item ^ Allowed Value ^ Explanation ^ Comment ^
| x1 | 1/100th mil | x (1st point) | |
| y1 | 1/100th mil | y (1st point) | |
| x2 | 1/100th mil | x (2nd point) | |
| y2 | 1/100th mils | y (2nd point) | |
| thickness | 1/100 mils | width of metal surrounding line segment |see Brorson .pdf |
| clearance | 1/100 mils | distance to any other copper on any layer |actually 1/2 of this number is used! |
| mask | 1/100th mils | width of mask relief |actual width of the mask centered on pad copper |
| name | string | name of pad (arb. string) |e.g. %%"pad_1"%% or %%"positive"%% or any other string |
| pad_number | string | pad # | used for nets. it MUST be consistent with the definitions on the netlist. |
| flags | hex or string | | examples: |
===== Pins =====
**''Pin[x y thickness clearance mask drillholedia name number flags]''**
^ Item ^ Allowed Value ^ Explanation ^ Comment ^
| x | 1/100th mils | pin x coord. | |
| y | 1/100th mils | pin y coord. | |
| thickness | 1/100th mils | copper diameter | |
| clearance | 1/100th mils | 2*(cu to cu clearance) |if you want a 10 mil clearance, put 2000 (20 mils) here |
| mask | 1/100th mils | diameter of mask aperture |actual dia. of hole in mask |
| drillholedia | 1/100th mils | dia. of hole | |
| name | string | arb. pin name | |
| number | decimal integer | pin number used by nets/rats | |
| flags | hex | xxx | |
===== Examples =====
* **''%%Pad[-24606 14760 -19538 14760 1181 2000 3181 "" "16" "square"]%%''**
* **''%%Pad[-14760 19538 -14760 24606 1181 2000 3181 "" "17" "square,edge2"]%%''**
* **''%%Pad[-240.00mil 0.0000 -80.00mil 0.0000 40.00mil 20.00mil 46.00mil "2" "2" "onsolder,square"]%%''**
* **''%%Pad[80.00mil 0.0000 240.00mil 0.0000 40.00mil 20.00mil 46.00mil "1" "1" "onsolder,square,edge2"]%%''**
* **''%%Pin[0 0 12000 2000 12500 6400 "" "1" 0×00000001]%%''**
* **''%%Pin[0 0 11500 11800 35000 12500 "" "1" 0x08]%%''** <-- unplated / nonplated hole
* **''%%ElementArc [0 0 6800 6800 0 360 1000]%%''**
* **''%%ElementLine [-26696 -26696 26696 -26696 1000]%%''**
* **''%%# notes within PCB Footprints go after the pound sign%%''**
====== PCB Command Line Action Reference (abridged) ======
|:FreeRotateBuffer(degrees)||Rotate buffer arbitrarily |
|:MoveObject(x,y,unit) ||Move Absolute (x,y,mil) or Relative(+x,-y,mil)|
|:ChangeClearSize(Selected,,)|| Clearance Size|
|:ChangeSize(SelectedPins, SIZE)|| Pin Size |
|:ChangeSize(SelectedLines,+N,mils)|| Line Size |
|:MinClearGap(Selected,,)|| Clearance Gap |
* units can be specified as mm or mil.
* [[http://pcb.geda-project.org/pcb-20100929/pcb.html#Action-Reference|Action Reference from the PCB Manual]]
====== PCB Physical Layer Reference ======
* outline layer reference
* physical layer how-to (outline, direct (x,y) footprint placement, part insertion)