Added pages and pin descriptions

This commit is contained in:
Phil Howard 2015-02-24 22:07:11 +00:00
parent 572cb41b54
commit 8aadb75f11
43 changed files with 550 additions and 80 deletions

21
description/index.md Normal file
View File

@ -0,0 +1,21 @@
#Pinout!
###The comprehensive Raspberry Pi Pinout guide for the Raspberry Pi, now with Model B+ and Pi 2
Pinout isn't meant to be printable, but it's a great quick-reference and a comprehensive starter guide to learning about your Raspberry Pi's GPIO pins.
##What do these numbers mean, anyway?
* BCM - Broadcom pin number, these are the ones you probably want to use with RPi.GPIO
* WiringPi - Wiring Pi pin number, for Gordon's Wiring Pi library
* Physical - Number corresponding to the pins physical location on the header
##Pi 2+
To celebrate the launch of the Pi 2 and the new Pi-enthusiasts it'll bring, Pinout has been updated to be cleaner, more comprehensive and more accurate.
##Model B+
Now that the Raspberry Pi Model B Plus is here, I've updated Pinout with the 14 extra pins you'll find on your shiny new board.
Note: While I've placed a gap to visually separate the additional 14 pins on the B+, you wont find this gap on the actual board!

View File

@ -1,5 +1,3 @@
#3v3 Power
###The 3v3, 3.3 volt, supply pin on the Pi has a max available current of about 50 mA. Enough to power a couple of LEDs or a microprocessor, but not much more.
You should generally use the 5v supply, coupled with a 3v3 regulator for 3.3v projects.

1
description/pins/pin-14.md Symbolic link
View File

@ -0,0 +1 @@
pin-6.md

View File

@ -1,5 +1,3 @@
#5v Power
###The 5v power pins are connected directly to the Pi's power input and will capably provide the full current of your mains adaptor, less that used by the Pi itself.
With a decent power supply, such as the official Pi adaptor, you can expect to pull about 1.5A.

1
description/pins/pin-20.md Symbolic link
View File

@ -0,0 +1 @@
pin-6.md

1
description/pins/pin-25.md Symbolic link
View File

@ -0,0 +1 @@
pin-6.md

23
description/pins/pin-3.md Normal file
View File

@ -0,0 +1,23 @@
It's easy to get started writing a digital HIGH or LOW to a GPIO pin, but you've got to remember a few things:
* Run your script as root
* Set your pin's mode to OUTPUT (1)
Assuming you've installed WiringPi2-Python ( pip install wiringpi2 ) then try pasting the following into a .py file:
```python
import wiringpi2 as wiringpi
HIGH = 1
LOW = 0
OUTPUT = 1
INPUT = 0
wiringpi.wiringPiSetup()
wiringpi.pinMode(8,OUTPUT)
wiringpi.digitalWrite(8,HIGH)
```
Then run it with:
```bash
sudo python myscript.py
```

1
description/pins/pin-30.md Symbolic link
View File

@ -0,0 +1 @@
pin-6.md

1
description/pins/pin-34.md Symbolic link
View File

@ -0,0 +1 @@
pin-6.md

1
description/pins/pin-39.md Symbolic link
View File

@ -0,0 +1 @@
pin-6.md

View File

@ -1 +0,0 @@

1
description/pins/pin-4.md Symbolic link
View File

@ -0,0 +1 @@
pin-2.md

10
description/pins/pin-5.md Normal file
View File

@ -0,0 +1,10 @@
```python
require 'wiringpi2'
HIGH = 1
LOW = 0
OUTPUT = 1
INPUT = 0
io = WiringPi::GPIO.new
io.pin_mode(9,OUTPUT)
io.digital_write(9,HIGH)
```

View File

@ -0,0 +1 @@
Ground!

1
description/pins/pin-9.md Symbolic link
View File

@ -0,0 +1 @@
pin-6.md

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python
import json
import markdown, gfm
import markdown
import unicodedata
import re
@ -24,19 +24,25 @@ def load_overlay(overlay):
except IOError:
return None
loaded['long_description'] = load_text(overlay)
loaded['long_description'] = load_md('description/overlay/{}.md'.format(overlay))
return loaded
def load_text(overlay):
def load_md(filename):
try:
return markdown.markdown(open('description/overlay/{}.md'.format(overlay)).read(), extensions=[gfm.HiddenHiliteExtension([]),'fenced_code'])
html = markdown.markdown(open(filename).read(), extensions=['fenced_code'])
return html
#return markdown.markdown(open(filename).read(), extensions=[gfm.HiddenHiliteExtension([]),'fenced_code'])
except IOError:
return None
def render_pin_text(pin_num, pin_url, pin_name, pin_subtext):
return '<article class="{}"><h1>{}</h1>{}{}</article>'.format(pin_url,pin_name,pin_subtext,load_md('description/pins/pin-{}.md'.format(pin_num)))
def render_overlay_page(overlay):
if overlay == None:
return ''
return '<article id="{}">{}</article>'.format(slugify(overlay['name']),overlay['long_description'])
return '<article class="page_{}">{}</article>'.format(slugify(overlay['name']),overlay['long_description'])
db = json.load(open('pi-pinout.json'))
@ -45,9 +51,11 @@ pins = db['pins']
html_odd = ''
html_even = ''
overlay_text = map(load_text,overlays)
overlays = map(load_overlay,overlays)
pages = [render_overlay_page({'name':'Index','long_description':load_md('description/index.md')})]
pages += map(render_overlay_page,overlays)
def render_alternate(handle, name):
handle = slugify(handle.lower())
return '<span class="alternate legend_{}">{}</span>'.format(handle,name)
@ -57,8 +65,14 @@ def render_pin(pin_num):
pin_type = list([x.strip() for x in pin['type'].lower().split('/')])
pin_url = pin['name']
pin_name = pin['name']
pin_text_name = pin['name']
pin_subtext = []
alternates = []
pin_subtext.append('Physical pin {}'.format(pin_num))
for overlay in overlays:
if overlay != None:
if str(pin_num) in overlay['pin']:
@ -68,22 +82,36 @@ def render_pin(pin_num):
if 'bcm' in pin['scheme']:
bcm = pin['scheme']['bcm']
pin_subname = ''
pin_subname_text = ''
#if pin_url == '':
pin_url = 'gpio{}'.format(bcm)
if pin['name'] != '':
pin_subname = '<small>({})</small>'.format(pin['name'])
pin_name = 'GPIO {} {}'.format(bcm, pin_subname)
pin_subname_text = '({})'.format(pin['name'])
pin_name = 'BCM {} {}'.format(bcm, pin_subname)
pin_text_name = 'BCM {} {}'.format(bcm, pin_subname_text)
pin_subtext.append('BCM pin {}'.format(bcm))
if 'wiringpi' in pin['scheme']:
wiringpi = pin['scheme']['wiringpi']
pin_subtext.append('Wiring Pi pin {}'.format(wiringpi))
alternates.append(render_alternate('wiringpi','Wiring Pi pin {}'.format(wiringpi)))
if 'bcmAlt' in pin['scheme']:
bcmAlt = pin['scheme']['bcmAlt']
pin_subtext.append('BCM pin {} on Rev 1 ( very early ) Pi'.format(bcmAlt))
#print(pin_type)
return '<li class="pin{} {}"><a href="/pindb/pin{}_{}"><span class="default"><span class="phys">{}</span> {}</span><span class="pin"></span>\n{}</a></li>\n'.format(
pin_url = slugify('pin{}_{}'.format(pin_num,pin_url))
pin_text = render_pin_text(pin_num,pin_url,pin_text_name,'<ul><li>{}</li></ul>'.format('</li><li>'.join(pin_subtext)))
if pin_text != None:
pages.append(pin_text)
return '<li class="pin{} {}"><a href="/pindb/{}"><span class="default"><span class="phys">{}</span> {}</span><span class="pin"></span>\n{}</a></li>\n'.format(
pin_num,
' '.join(map(slugify,pin_type)),
pin_num,
slugify(pin_url),
pin_url,
pin_num,
pin_name,
'\n'.join(alternates)
@ -93,7 +121,6 @@ for odd in range(1,len(pins),2):
html_odd += render_pin(odd)
html_even += render_pin(odd+1)
pages = map(render_overlay_page,overlays)
html = '''<ul class="bottom">
{}</ul>

View File

@ -174,23 +174,23 @@ div#pinbasebplus {
left:162px;
top:401px;
}
h1 {
.logo {
width:250px;
font-size:34px;
color:#888888;
margin-bottom:5px;
cursor:pointer;
}
h1 img {float:left;position:relative;top:0px;margin:0 13px;
.logo img {float:left;position:relative;top:0px;margin:0 13px;
-moz-transform:rotate(-45deg);
-webkit-transform:rotate(-45deg);
transform:rotate(-45deg);
width:30px;
}
h1 span {
.logo span {
color:#D6264E;
}
h1 span.out {
.logo span.out {
color:#5FB12D;
}
.pin27, .pin28 {margin-top:16px;}

View File

@ -1,12 +1,14 @@
jQuery(document).ready(function(){
var History = window.History;
var homepage = jQuery('article.homepage').index();
var homepage = jQuery('article.page_index').index();
var pincount = 40;
History.Adapter.bind(window,'statechange',function(){
var State = History.getState();
var url = State.url.replace('http://pi.gadgetoid.com','');
console.log(State);
if( url == '/pinout' )
{
jQuery('h1').click();
@ -37,7 +39,7 @@ jQuery(document).ready(function(){
jQuery('span.alternate').hide();
var legend = jQuery(this).parent().attr('class');
var page = jQuery('article.' + legend).index();
var page = jQuery('article.page_' + legend).index();
var pins = [];
if( jQuery(this).parent().data('pins') ){
pins = jQuery(this).parent().data('pins').split(',');
@ -54,20 +56,30 @@ jQuery(document).ready(function(){
History.pushState({legend:jQuery(this).attr('class'),url:jQuery(this).attr('href')}, 'Raspberry Pi Pinout - ' + title, url)
});
function showPage(object,offset){
function showPage(object){
var url;
var page;
jQuery('span.default').show();
jQuery('span.alternate').hide();
jQuery('nav#gpio li').removeClass('legend active');
jQuery('#pages').cycle(offset+object.parent().index());
url = object.attr('href').split('/');
url = url[url.length-1];
page = jQuery('article.' + url).index();
jQuery('#pages').cycle(page);
object.parent().addClass('active');
title = 'Pin ' + object.find('span.default').text().replace(' ',': ');
History.pushState({pin:offset+object.parent().index(),url:object.attr('href')}, title, object.attr('href'));
History.pushState({pin:page,url:object.attr('href')}, title, object.attr('href'));
}
jQuery('nav#gpio ul.bottom a').on('click',function(e){
e.preventDefault();showPage(jQuery(this),0);});
e.preventDefault();showPage(jQuery(this));});
jQuery('nav#gpio ul.top a').on('click',function(e){
e.preventDefault();showPage(jQuery(this),pincount/2);});
e.preventDefault();showPage(jQuery(this));});
jQuery('h1').on('click',function(){
jQuery('span.default').show();

View File

@ -0,0 +1,2 @@
PR.registerLangHandler(PR.createSimpleLexer([["com",/^#[^\n\r]*/,null,"#"],["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"],["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,null,'"']],[["kwd",/^(?:ADS|AD|AUG|BZF|BZMF|CAE|CAF|CA|CCS|COM|CS|DAS|DCA|DCOM|DCS|DDOUBL|DIM|DOUBLE|DTCB|DTCF|DV|DXCH|EDRUPT|EXTEND|INCR|INDEX|NDX|INHINT|LXCH|MASK|MSK|MP|MSU|NOOP|OVSK|QXCH|RAND|READ|RELINT|RESUME|RETURN|ROR|RXOR|SQUARE|SU|TCR|TCAA|OVSK|TCF|TC|TS|WAND|WOR|WRITE|XCH|XLQ|XXALQ|ZL|ZQ|ADD|ADZ|SUB|SUZ|MPY|MPR|MPZ|DVP|COM|ABS|CLA|CLZ|LDQ|STO|STQ|ALS|LLS|LRS|TRA|TSQ|TMI|TOV|AXT|TIX|DLY|INP|OUT)\s/,
null],["typ",/^(?:-?GENADR|=MINUS|2BCADR|VN|BOF|MM|-?2CADR|-?[1-6]DNADR|ADRES|BBCON|[ES]?BANK=?|BLOCK|BNKSUM|E?CADR|COUNT\*?|2?DEC\*?|-?DNCHAN|-?DNPTR|EQUALS|ERASE|MEMORY|2?OCT|REMADR|SETLOC|SUBRO|ORG|BSS|BES|SYN|EQU|DEFINE|END)\s/,null],["lit",/^'(?:-*(?:\w|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?)?/],["pln",/^-*(?:[!-z]|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?/],["pun",/^[^\w\t\n\r "'-);\\\xa0]+/]]),["apollo","agc","aea"]);

View File

@ -0,0 +1,19 @@
var a=null;
PR.registerLangHandler(PR.createSimpleLexer(
[
["com",/^@[^\n\r]*/,a,"@"],
["pln",/^[\t\n\r \xa0]+/,a,"\t\n\r \xa0"],
["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,a,'"']
],
[
["typ",/^(?:\.ascii|\.long)\b/,a],
["cls",/^(?:\.data|\.text|\.globl|\.code)\b/,a],
["fun",/^b(eq|le)?[\ \t]*(?:[A-Za-z_]*)\b/,a],
["kwd",/^(?:mov|ldr|svc|cmp|beq|add|ble|b|LSL|LSR)\b/,a],
["cls",/^r\d/],
["fun",/^[A-Za-z_]*:/],
["fun",/^\=[A-Za-z_]*\b/],
["arg",/^\#\dx[\d]+/]
]
),["asm"]
);

View File

@ -0,0 +1,19 @@
/**
* @fileoverview
* Registers a language handler for Ruby.
* When in doubt, this module attempts to mimic vim.
* Ruby grammar: http://www.cse.buffalo.edu/~regan/cse305/RubyBNF.pdf
*
* @author matthew.y.king@gmail.com
*/
PR.registerLangHandler(PR.createSimpleLexer([], [
['fun', /^\b(?:sudo)\b/],
[PR['PR_KEYWORD'], /^\b(?:grep|awk|apt-get|chkconfig|vi|modprobe)\b/]
]), ['bash']);

View File

@ -0,0 +1,18 @@
/*
Copyright (C) 2011 Google Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
var a=null;
PR.registerLangHandler(PR.createSimpleLexer([["opn",/^[([{]+/,a,"([{"],["clo",/^[)\]}]+/,a,")]}"],["com",/^;[^\n\r]*/,a,";"],["pln",/^[\t\n\r \xa0]+/,a,"\t\n\r \xa0"],["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,a,'"']],[["kwd",/^(?:def|if|do|let|quote|var|fn|loop|recur|throw|try|monitor-enter|monitor-exit|defmacro|defn|defn-|macroexpand|macroexpand-1|for|doseq|dosync|dotimes|and|or|when|not|assert|doto|proxy|defstruct|first|rest|cons|defprotocol|deftype|defrecord|reify|defmulti|defmethod|meta|with-meta|ns|in-ns|create-ns|import|intern|refer|alias|namespace|resolve|ref|deref|refset|new|set!|memfn|to-array|into-array|aset|gen-class|reduce|map|filter|find|nil?|empty?|hash-map|hash-set|vec|vector|seq|flatten|reverse|assoc|dissoc|list|list?|disj|get|union|difference|intersection|extend|extend-type|extend-protocol|prn)\b/,a],
["typ",/^:[\dA-Za-z-]+/]]),["clj"]);

View File

@ -0,0 +1,2 @@
PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\f\r ]+/,null," \t\r\n "]],[["str",/^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/,null],["str",/^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/,null],["lang-css-str",/^url\(([^"')]*)\)/i],["kwd",/^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i],["com",/^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//],["com",
/^(?:<\!--|--\>)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#[\da-f]{3,6}/i],["pln",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],["pun",/^[^\s\w"']+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^"')]+/]]),["css-str"]);

View File

@ -0,0 +1 @@
PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"],["pln",/^(?:"(?:[^"\\]|\\[\S\s])*(?:"|$)|'(?:[^'\\]|\\[\S\s])+(?:'|$)|`[^`]*(?:`|$))/,null,"\"'"]],[["com",/^(?:\/\/[^\n\r]*|\/\*[\S\s]*?\*\/)/],["pln",/^(?:[^"'/`]|\/(?![*/]))+/]]),["go"]);

View File

@ -0,0 +1,2 @@
PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t-\r ]+/,null,"\t\n \r "],["str",/^"(?:[^\n\f\r"\\]|\\[\S\s])*(?:"|$)/,null,'"'],["str",/^'(?:[^\n\f\r'\\]|\\[^&])'?/,null,"'"],["lit",/^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)/i,null,"0123456789"]],[["com",/^(?:--+[^\n\f\r]*|{-(?:[^-]|-+[^}-])*-})/],["kwd",/^(?:case|class|data|default|deriving|do|else|if|import|in|infix|infixl|infixr|instance|let|module|newtype|of|then|type|where|_)(?=[^\d'A-Za-z]|$)/,
null],["pln",/^(?:[A-Z][\w']*\.)*[A-Za-z][\w']*/],["pun",/^[^\d\t-\r "'A-Za-z]+/]]),["hs"]);

View File

@ -0,0 +1,3 @@
var a=null;
PR.registerLangHandler(PR.createSimpleLexer([["opn",/^\(+/,a,"("],["clo",/^\)+/,a,")"],["com",/^;[^\n\r]*/,a,";"],["pln",/^[\t\n\r \xa0]+/,a,"\t\n\r \xa0"],["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,a,'"']],[["kwd",/^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/,a],
["lit",/^[+-]?(?:[#0]x[\da-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[de][+-]?\d+)?)/i],["lit",/^'(?:-*(?:\w|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?)?/],["pln",/^-*(?:[_a-z]|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?/i],["pun",/^[^\w\t\n\r "'-);\\\xa0]+/]]),["cl","el","lisp","scm"]);

View File

@ -0,0 +1,2 @@
PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"],["str",/^(?:"(?:[^"\\]|\\[\S\s])*(?:"|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$))/,null,"\"'"]],[["com",/^--(?:\[(=*)\[[\S\s]*?(?:]\1]|$)|[^\n\r]*)/],["str",/^\[(=*)\[[\S\s]*?(?:]\1]|$)/],["kwd",/^(?:and|break|do|else|elseif|end|false|for|function|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,null],["lit",/^[+-]?(?:0x[\da-f]+|(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?)/i],
["pln",/^[_a-z]\w*/i],["pun",/^[^\w\t\n\r \xa0][^\w\t\n\r "'+=\xa0-]*/]]),["lua"]);

View File

@ -0,0 +1,2 @@
PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"],["com",/^#(?:if[\t\n\r \xa0]+(?:[$_a-z][\w']*|``[^\t\n\r`]*(?:``|$))|else|endif|light)/i,null,"#"],["str",/^(?:"(?:[^"\\]|\\[\S\s])*(?:"|$)|'(?:[^'\\]|\\[\S\s])(?:'|$))/,null,"\"'"]],[["com",/^(?:\/\/[^\n\r]*|\(\*[\S\s]*?\*\))/],["kwd",/^(?:abstract|and|as|assert|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|if|in|inherit|inline|interface|internal|lazy|let|match|member|module|mutable|namespace|new|null|of|open|or|override|private|public|rec|return|static|struct|then|to|true|try|type|upcast|use|val|void|when|while|with|yield|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|global|include|method|mixin|object|parallel|process|protected|pure|sealed|trait|virtual|volatile)\b/],
["lit",/^[+-]?(?:0x[\da-f]+|(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?)/i],["pln",/^(?:[_a-z][\w']*[!#?]?|``[^\t\n\r`]*(?:``|$))/i],["pun",/^[^\w\t\n\r "'\xa0]+/]]),["fs","ml"]);

View File

@ -0,0 +1,4 @@
var a=null;
PR.registerLangHandler(PR.createSimpleLexer([["str",/^(?:'(?:[^\n\r'\\]|\\.)*'|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,a,'"'],["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,a,"#"],["pln",/^\s+/,a," \r\n\t\xa0"]],[["str",/^@"(?:[^"]|"")*(?:"|$)/,a],["str",/^<#[^#>]*(?:#>|$)/,a],["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,a],["com",/^\/\/[^\n\r]*/,a],["com",/^\/\*[\S\s]*?(?:\*\/|$)/,
a],["kwd",/^(?:abstract|and|as|base|catch|class|def|delegate|enum|event|extern|false|finally|fun|implements|interface|internal|is|macro|match|matches|module|mutable|namespace|new|null|out|override|params|partial|private|protected|public|ref|sealed|static|struct|syntax|this|throw|true|try|type|typeof|using|variant|virtual|volatile|when|where|with|assert|assert2|async|break|checked|continue|do|else|ensures|for|foreach|if|late|lock|new|nolate|otherwise|regexp|repeat|requires|return|surroundwith|unchecked|unless|using|while|yield)\b/,
a],["typ",/^(?:array|bool|byte|char|decimal|double|float|int|list|long|object|sbyte|short|string|ulong|uint|ufloat|ulong|ushort|void)\b/,a],["lit",/^@[$_a-z][\w$@]*/i,a],["typ",/^@[A-Z]+[a-z][\w$@]*/,a],["pln",/^'?[$_a-z][\w$@]*/i,a],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,a,"0123456789"],["pun",/^.[^\s\w"-$'./@`]*/,a]]),["n","nemerle"]);

View File

@ -0,0 +1 @@
PR.registerLangHandler(PR.sourceDecorator({keywords:"bytes,default,double,enum,extend,extensions,false,group,import,max,message,option,optional,package,repeated,required,returns,rpc,service,syntax,to,true",types:/^(bool|(double|s?fixed|[su]?int)(32|64)|float|string)\b/,cStyleComments:!0}),["proto"]);

View File

@ -0,0 +1,60 @@
/**
* @fileoverview
* Registers a language handler for Ruby.
* When in doubt, this module attempts to mimic vim.
* Ruby grammar: http://www.cse.buffalo.edu/~regan/cse305/RubyBNF.pdf
*
* @author matthew.y.king@gmail.com
*/
PR.registerLangHandler(PR.createSimpleLexer([
// # comment
[PR['PR_COMMENT'], /^#[^\r\n]*/, null, '#']
// 'foo', "foo", `foo`
// String interpolation is unsupported.
, [PR['PR_STRING'], /^([\'\"\`])(?:(?!\1)|[^\\]|\\[\s\S])*?(?:\1|$)/, null, '\'\"\`']
], [
// =begin
// comment
// =end
// `=begin` must be located at the beginning of the line.
// At this time, the case where `=begin` begins a source file is not accounted for.
[PR['PR_COMMENT'], /^[\r\n]=begin\b[\s\S]*?(?:=end|$)/]
// %q{}, %q[], %q(), %q<> (balanced quotes)
// Nested balanced quotes are unsupported.
, [PR['PR_STRING'], /^%[qQ](?:\{(?:[^\}\\]|\\[\s\S])*?(?:\}|$)|\[(?:[^\]\\]|\\[\s\S])*?(?:\]|$)|\((?:[^\)\\]|\\[\s\S])*?(?:\)|$)|\<(?:[^\>\\]|\\[\s\S])*?(?:\>|$))/]
// %q||, etc (generic non-balanced quotes)
, [PR['PR_STRING'], /^%[qQ](.)(?:(?!\1)|[^\\]|\\[\s\S])*?(?:\1|$)/]
// <<HEREDOC
, [PR['PR_STRING'], /^<<(\w+)[\s\S]*?[\r\n]\1/]
// <<'HEREDOC'
// For quoted heredocs, ruby requires `'` or `"` quotes, and ruby does not allow escaped quotes or line breaks.
, [PR['PR_STRING'], /^<<(?=[\'\"]([ \w]+)[\'\"])(?:\'\1\'|\"\1\")[\s\S]*?[\r\n]\1/]
// <<-HEREDOC
, [PR['PR_STRING'], /^<<-(\w+)[\s\S]*?\1/]
// <<-'HEREDOC'
, [PR['PR_STRING'], /^<<-(?=[\'\"]([ \w]+)[\'\"])(?:\'\1\'|\"\1\")[\s\S]*?\1/]
// /regex/options
, ['lang-regex', /^(?:^^\.?|[+-]|[!=]=?=?|\#|%=?|&&?=?|\(|\*=?|[+\-]=|->|\/=?|::?|<<?=?|>>?>?=?|,|;|\?|@|\[|~|{|\^\^?=?|\|\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof|when)\s*(\/(?:[^\/\\]|\\[\s\S])+?(?:\/|$)[a-z]*)/]
// %r{}, %r[], %r{}, %r<> (balanced delimiters)
, [PR['PR_STRING'], /^%r(?:\{(?:[^\}\\]|\\[\s\S])*?(?:\}|$)|\[(?:[^\]\\]|\\[\s\S])*?(?:\]|$)|\((?:[^\)\\]|\\[\s\S])*?(?:\)|$)|\<(?:[^\>\\]|\\[\s\S])*?(?:\>|$))[a-z]*/]
// %r||, etc (generic non-balanced delimiters)
, [PR['PR_STRING'], /^%r(.)(?:(?!\1)|[^\\]|\\[\s\S])*?(?:\1|$)[a-z]*/]
// :symbol, :'symbol', symbol:
, [PR['PR_LITERAL'], /^(?::[\w\?!]+|:([\'\"\`])(?:(?!\1)|[^\\]|\\[\s\S])*?(?:\1|$)|[\w\?!]+:(?!:))/]
// Exclude `::` (as in Foo::method)
, [PR['PR_PLAIN'], /^::/]
// ?a (the character 'a')
, [PR['PR_LITERAL'], /^(?:\?.)\b/]
// Exclude `method?`
, [PR['PR_PLAIN'], /^\w\?/]
// 0b01, 0x1aA, 1.2e12
// Accept `_` within numbers.
, [PR['PR_LITERAL'], /^\b(?:0b[_01]+|0x[_a-f0-9]+|\d+[_\d]*\.?(?:\d[_\d]*)?(?:e[+\-]?\d[_\d]*)?)\b/i]
// Exclude `method1`
, [PR['PR_PLAIN'], /^\w\d+/]
// scope variables (@foo, @@foo, $foo), capitalized types, CONSTANTs, built-in dollar variables
, [PR['PR_TYPE'], /^(?:(?:@|@@|\$)\w+|[A-Z]+[a-z]\w+|[A-Z][_A-Z0-9]*)\b|\$./]
// keywords
, [PR['PR_KEYWORD'], /^\b(?:BEGIN|END|alias|and|begin|break|case|class|def|do|else|elsif|end|ensure|extend|false|for|if|lambda|in|include|module|next|nil|not|or|private|proc|protected|redo|require|rescue|retry|return|self|super|true|undef|unless|until|when|while|yield)\b/]
]), ['rb']);

View File

@ -0,0 +1,66 @@
/**
* @fileoverview
* Registers a language handler for Ruby.
* When in doubt, this module attempts to mimic vim.
* Ruby grammar: http://www.cse.buffalo.edu/~regan/cse305/RubyBNF.pdf
*
* @author matthew.y.king@gmail.com
*/
PR.registerLangHandler(PR.createSimpleLexer([
// # comment
[PR['PR_COMMENT'], /^#[^\r\n]*/, null, '#']
// 'foo', "foo", `foo`
// String interpolation is unsupported.
, [PR['PR_STRING'], /^([\'\"\`])(?:(?!\1)|[^\\]|\\[\s\S])*?(?:\1|$)/, null, '\'\"\`']
], [
// =begin
// comment
// =end
// `=begin` must be located at the beginning of the line.
// At this time, the case where `=begin` begins a source file is not accounted for.
[PR['PR_COMMENT'], /^[\r\n]=begin\b[\s\S]*?(?:=end|$)/]
// %q{}, %q[], %q(), %q<> (balanced quotes)
// Nested balanced quotes are unsupported.
, [PR['PR_STRING'], /^%[qQ](?:\{(?:[^\}\\]|\\[\s\S])*?(?:\}|$)|\[(?:[^\]\\]|\\[\s\S])*?(?:\]|$)|\((?:[^\)\\]|\\[\s\S])*?(?:\)|$)|\<(?:[^\>\\]|\\[\s\S])*?(?:\>|$))/]
// %q||, etc (generic non-balanced quotes)
// <<HEREDOC
, [PR['PR_STRING'], /^%[qQ](.)(?:(?!\1)|[^\\]|\\[\s\S])*?(?:\1|$)/]
// <<HEREDOC
, ['cons', /[A-Z_]{2,10}/]
, [PR['PR_STRING'], /^<<(\w+)[\s\S]*?[\r\n]\1/]
// <<'HEREDOC'
// For quoted heredocs, ruby requires `'` or `"` quotes, and ruby does not allow escaped quotes or line breaks.
, [PR['PR_STRING'], /^<<(?=[\'\"]([ \w]+)[\'\"])(?:\'\1\'|\"\1\")[\s\S]*?[\r\n]\1/]
// <<-HEREDOC
, [PR['PR_STRING'], /^<<-(\w+)[\s\S]*?\1/]
// <<-'HEREDOC'
, [PR['PR_STRING'], /^<<-(?=[\'\"]([ \w]+)[\'\"])(?:\'\1\'|\"\1\")[\s\S]*?\1/]
// /regex/options
, ['lang-regex', /^(?:^^\.?|[+-]|[!=]=?=?|\#|%=?|&&?=?|\(|\*=?|[+\-]=|->|\/=?|::?|<<?=?|>>?>?=?|,|;|\?|@|\[|~|{|\^\^?=?|\|\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof|when)\s*(\/(?:[^\/\\]|\\[\s\S])+?(?:\/|$)[a-z]*)/]
// %r{}, %r[], %r{}, %r<> (balanced delimiters)
, [PR['PR_STRING'], /^%r(?:\{(?:[^\}\\]|\\[\s\S])*?(?:\}|$)|\[(?:[^\]\\]|\\[\s\S])*?(?:\]|$)|\((?:[^\)\\]|\\[\s\S])*?(?:\)|$)|\<(?:[^\>\\]|\\[\s\S])*?(?:\>|$))[a-z]*/]
// %r||, etc (generic non-balanced delimiters)
, [PR['PR_STRING'], /^%r(.)(?:(?!\1)|[^\\]|\\[\s\S])*?(?:\1|$)[a-z]*/]
// :symbol, :'symbol', symbol:
, [PR['PR_LITERAL'], /^(?::[\w\?!]+|:([\'\"\`])(?:(?!\1)|[^\\]|\\[\s\S])*?(?:\1|$)|[\w\?!]+:(?!:))/]
// Exclude `::` (as in Foo::method)
, [PR['PR_PLAIN'], /^::/]
// ?a (the character 'a')
, [PR['PR_LITERAL'], /^(?:\?.)\b/]
// Exclude `method?`
, [PR['PR_PLAIN'], /^\w\?/]
// 0b01, 0x1aA, 1.2e12
// Accept `_` within numbers.
, [PR['PR_LITERAL'], /^\b(?:0b[_01]+|0x[_a-f0-9]+|\d+[_\d]*\.?(?:\d[_\d]*)?(?:e[+\-]?\d[_\d]*)?)\b/i]
// Exclude `method1`
, [PR['PR_PLAIN'], /^\w\d+/]
// scope variables (@foo, @@foo, $foo), capitalized types, CONSTANTs, built-in dollar variables
, [PR['PR_TYPE'], /^(?:(?:@|@@|\$)\w+|[A-Z]+[a-z]\w+|[A-Z][_A-Z0-9]*)\b|\$./]
// keywords
, ['pun', /^(?:\||\{|\}|\(|\)|\[|\]|\,|\.)/]
, ['fun', /^(?:read|write|shiftout|mode)/]
, [PR['PR_KEYWORD'], /^\b(?:BEGIN|END|alias|and|begin|break|case|class|def|do|else|elsif|end|ensure|extend|false|for|if|lambda|in|include|module|next|nil|not|or|private|proc|protected|redo|require|rescue|retry|return|self|super|true|undef|unless|until|when|while|yield)\b/]
]), ['ruby']);

View File

@ -0,0 +1,2 @@
PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"],["str",/^"(?:""(?:""?(?!")|[^"\\]|\\.)*"{0,3}|(?:[^\n\r"\\]|\\.)*"?)/,null,'"'],["lit",/^`(?:[^\n\r\\`]|\\.)*`?/,null,"`"],["pun",/^[!#%&(--:-@[-^{-~]+/,null,"!#%&()*+,-:;<=>?@[\\]^{|}~"]],[["str",/^'(?:[^\n\r'\\]|\\(?:'|[^\n\r']+))'/],["lit",/^'[$A-Z_a-z][\w$]*(?![\w$'])/],["kwd",/^(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|object|override|package|private|protected|requires|return|sealed|super|throw|trait|try|type|val|var|while|with|yield)\b/],
["lit",/^(?:true|false|null|this)\b/],["lit",/^(?:0(?:[0-7]+|x[\da-f]+)l?|(?:0|[1-9]\d*)(?:(?:\.\d+)?(?:e[+-]?\d+)?f?|l?)|\\.\d+(?:e[+-]?\d+)?f?)/i],["typ",/^[$_]*[A-Z][\d$A-Z_]*[a-z][\w$]*/],["pln",/^[$A-Z_a-z][\w$]*/],["com",/^\/(?:\/.*|\*(?:\/|\**[^*/])*(?:\*+\/?)?)/],["pun",/^(?:\.+|\/)/]]),["scala"]);

View File

@ -0,0 +1,2 @@
PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"],["str",/^(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/,null,"\"'"]],[["com",/^(?:--[^\n\r]*|\/\*[\S\s]*?(?:\*\/|$))/],["kwd",/^(?:add|all|alter|and|any|as|asc|authorization|backup|begin|between|break|browse|bulk|by|cascade|case|check|checkpoint|close|clustered|coalesce|collate|column|commit|compute|constraint|contains|containstable|continue|convert|create|cross|current|current_date|current_time|current_timestamp|current_user|cursor|database|dbcc|deallocate|declare|default|delete|deny|desc|disk|distinct|distributed|double|drop|dummy|dump|else|end|errlvl|escape|except|exec|execute|exists|exit|fetch|file|fillfactor|for|foreign|freetext|freetexttable|from|full|function|goto|grant|group|having|holdlock|identity|identitycol|identity_insert|if|in|index|inner|insert|intersect|into|is|join|key|kill|left|like|lineno|load|match|merge|national|nocheck|nonclustered|not|null|nullif|of|off|offsets|on|open|opendatasource|openquery|openrowset|openxml|option|or|order|outer|over|percent|plan|precision|primary|print|proc|procedure|public|raiserror|read|readtext|reconfigure|references|replication|restore|restrict|return|revoke|right|rollback|rowcount|rowguidcol|rule|save|schema|select|session_user|set|setuser|shutdown|some|statistics|system_user|table|textsize|then|to|top|tran|transaction|trigger|truncate|tsequal|union|unique|update|updatetext|use|user|using|values|varying|view|waitfor|when|where|while|with|writetext)(?=[^\w-]|$)/i,
null],["lit",/^[+-]?(?:0x[\da-f]+|(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?)/i],["pln",/^[_a-z][\w-]*/i],["pun",/^[^\w\t\n\r "'\xa0][^\w\t\n\r "'+\xa0-]*/]]),["sql"]);

View File

@ -0,0 +1 @@
PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"],["com",/^%[^\n\r]*/,null,"%"]],[["kwd",/^\\[@-Za-z]+/],["kwd",/^\\./],["typ",/^[$&]/],["lit",/[+-]?(?:\.\d+|\d+(?:\.\d*)?)(cm|em|ex|in|pc|pt|bp|mm)/i],["pun",/^[()=[\]{}]+/]]),["latex","tex"]);

View File

@ -0,0 +1,2 @@
PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0\u2028\u2029]+/,null,"\t\n\r Â\xa0

"],["str",/^(?:["\u201c\u201d](?:[^"\u201c\u201d]|["\u201c\u201d]{2})(?:["\u201c\u201d]c|$)|["\u201c\u201d](?:[^"\u201c\u201d]|["\u201c\u201d]{2})*(?:["\u201c\u201d]|$))/i,null,'"“â€<C3A2>'],["com",/^['\u2018\u2019].*/,null,"'‘’"]],[["kwd",/^(?:addhandler|addressof|alias|and|andalso|ansi|as|assembly|auto|boolean|byref|byte|byval|call|case|catch|cbool|cbyte|cchar|cdate|cdbl|cdec|char|cint|class|clng|cobj|const|cshort|csng|cstr|ctype|date|decimal|declare|default|delegate|dim|directcast|do|double|each|else|elseif|end|endif|enum|erase|error|event|exit|finally|for|friend|function|get|gettype|gosub|goto|handles|if|implements|imports|in|inherits|integer|interface|is|let|lib|like|long|loop|me|mod|module|mustinherit|mustoverride|mybase|myclass|namespace|new|next|not|notinheritable|notoverridable|object|on|option|optional|or|orelse|overloads|overridable|overrides|paramarray|preserve|private|property|protected|public|raiseevent|readonly|redim|removehandler|resume|return|select|set|shadows|shared|short|single|static|step|stop|string|structure|sub|synclock|then|throw|to|try|typeof|unicode|until|variant|wend|when|while|with|withevents|writeonly|xor|endif|gosub|let|variant|wend)\b/i,
null],["com",/^rem.*/i],["lit",/^(?:true\b|false\b|nothing\b|\d+(?:e[+-]?\d+[dfr]?|[dfilrs])?|(?:&h[\da-f]+|&o[0-7]+)[ils]?|\d*\.\d+(?:e[+-]?\d+)?[dfr]?|#\s+(?:\d+[/-]\d+[/-]\d+(?:\s+\d+:\d+(?::\d+)?(\s*(?:am|pm))?)?|\d+:\d+(?::\d+)?(\s*(?:am|pm))?)\s+#)/i],["pln",/^(?:(?:[a-z]|_\w)\w*|\[(?:[a-z]|_\w)\w*])/i],["pun",/^[^\w\t\n\r "'[\]\xa0\u2018\u2019\u201c\u201d\u2028\u2029]+/],["pun",/^(?:\[|])/]]),["vb","vbs"]);

View File

@ -0,0 +1,3 @@
PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"]],[["str",/^(?:[box]?"(?:[^"]|"")*"|'.')/i],["com",/^--[^\n\r]*/],["kwd",/^(?:abs|access|after|alias|all|and|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|mod|nand|new|next|nor|not|null|of|on|open|or|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|rem|report|return|rol|ror|select|severity|shared|signal|sla|sll|sra|srl|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with|xnor|xor)(?=[^\w-]|$)/i,
null],["typ",/^(?:bit|bit_vector|character|boolean|integer|real|time|string|severity_level|positive|natural|signed|unsigned|line|text|std_u?logic(?:_vector)?)(?=[^\w-]|$)/i,null],["typ",/^'(?:active|ascending|base|delayed|driving|driving_value|event|high|image|instance_name|last_active|last_event|last_value|left|leftof|length|low|path_name|pos|pred|quiet|range|reverse_range|right|rightof|simple_name|stable|succ|transaction|val|value)(?=[^\w-]|$)/i,null],["lit",/^\d+(?:_\d+)*(?:#[\w.\\]+#(?:[+-]?\d+(?:_\d+)*)?|(?:\.\d+(?:_\d+)*)?(?:e[+-]?\d+(?:_\d+)*)?)/i],
["pln",/^(?:[a-z]\w*|\\[^\\]*\\)/i],["pun",/^[^\w\t\n\r "'\xa0][^\w\t\n\r "'\xa0-]*/]]),["vhdl","vhd"]);

View File

@ -0,0 +1,2 @@
PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\d\t a-gi-z\xa0]+/,null,"\t Â\xa0abcdefgijklmnopqrstuvwxyz0123456789"],["pun",/^[*=[\]^~]+/,null,"=*~^[]"]],[["lang-wiki.meta",/(?:^^|\r\n?|\n)(#[a-z]+)\b/],["lit",/^[A-Z][a-z][\da-z]+[A-Z][a-z][^\W_]+\b/],["lang-",/^{{{([\S\s]+?)}}}/],["lang-",/^`([^\n\r`]+)`/],["str",/^https?:\/\/[^\s#/?]*(?:\/[^\s#?]*)?(?:\?[^\s#]*)?(?:#\S*)?/i],["pln",/^(?:\r\n|[\S\s])[^\n\r#*=A-[^`h{~]*/]]),["wiki"]);
PR.registerLangHandler(PR.createSimpleLexer([["kwd",/^#[a-z]+/i,null,"#"]],[]),["wiki.meta"]);

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,2 @@
var a=null;
PR.registerLangHandler(PR.createSimpleLexer([["pun",/^[:>?|]+/,a,":|>?"],["dec",/^%(?:YAML|TAG)[^\n\r#]+/,a,"%"],["typ",/^&\S+/,a,"&"],["typ",/^!\S*/,a,"!"],["str",/^"(?:[^"\\]|\\.)*(?:"|$)/,a,'"'],["str",/^'(?:[^']|'')*(?:'|$)/,a,"'"],["com",/^#[^\n\r]*/,a,"#"],["pln",/^\s+/,a," \t\r\n"]],[["dec",/^(?:---|\.\.\.)(?:[\n\r]|$)/],["pun",/^-/],["kwd",/^\w+:[\n\r ]/],["pln",/^\w+/]]),["yaml","yml"]);

View File

@ -0,0 +1,35 @@
.com { color: #93a1a1; }
.lit { color: #195f91; }
.pun, .opn, .clo { color: #93a1a1; }
.fun { color: #dc322f; }
.str, .atv { color: #D6264F; }
.kwd, .linenums .tag { color: #425AD6; }
.typ, .atn, .dec, .var { color: #60B22E; }
.pln { color: #778; }
.cls { color: #ff99cc; }
.arg { color: #00aadd; }
.cons {color:#112;}
.prettyprint {
padding: 8px;
background-color: #f7f7f9;
background-color: rgba(250, 250, 250, 0.5);
border: 1px solid #e1e1e8;
}
.prettyprint.linenums {
-webkit-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
-moz-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
}
/* Specify class=linenums on a pre to get line numbering */
ol.linenums {
margin: 0; /* IE indents via margin-left */
}
ol.linenums li {
padding-left: 12px;
color: #bebec5;
line-height: 18px;
text-shadow: 0 1px 0 #fff;
margin-bottom:0;
}

View File

@ -0,0 +1,28 @@
var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;
(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a=
[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c<i;++c){var j=f[c];if(/\\[bdsw]/i.test(j))a.push(j);else{var j=m(j),d;c+2<i&&"-"===f[c+1]?(d=m(f[c+2]),c+=2):d=j;b.push([j,d]);d<65||j>122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;c<b.length;++c)i=b[c],i[0]<=j[1]+1?j[1]=Math.max(j[1],i[1]):f.push(j=i);b=["["];o&&b.push("^");b.push.apply(b,a);for(c=0;c<
f.length;++c)i=f[c],b.push(e(i[0])),i[1]>i[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c<b;++c){var j=f[c];j==="("?++i:"\\"===j.charAt(0)&&(j=+j.substring(1))&&j<=i&&(d[j]=-1)}for(c=1;c<d.length;++c)-1===d[c]&&(d[c]=++t);for(i=c=0;c<b;++c)j=f[c],j==="("?(++i,d[i]===void 0&&(f[c]="(?:")):"\\"===j.charAt(0)&&
(j=+j.substring(1))&&j<=i&&(f[c]="\\"+d[i]);for(i=c=0;c<b;++c)"^"===f[c]&&"^"!==f[c+1]&&(f[c]="");if(a.ignoreCase&&s)for(c=0;c<b;++c)j=f[c],a=j.charAt(0),j.length>=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p<d;++p){var g=a[p];if(g.ignoreCase)l=!0;else if(/[a-z]/i.test(g.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){s=!0;l=!1;break}}for(var r=
{b:8,t:9,n:10,v:11,f:12,r:13},n=[],p=0,d=a.length;p<d;++p){g=a[p];if(g.global||g.multiline)throw Error(""+g);n.push("(?:"+y(g)+")")}return RegExp(n.join("|"),l?"gi":"g")}function M(a){function m(a){switch(a.nodeType){case 1:if(e.test(a.className))break;for(var g=a.firstChild;g;g=g.nextSibling)m(g);g=a.nodeName;if("BR"===g||"LI"===g)h[s]="\n",t[s<<1]=y++,t[s++<<1|1]=a;break;case 3:case 4:g=a.nodeValue,g.length&&(g=p?g.replace(/\r\n?/g,"\n"):g.replace(/[\t\n\r ]+/g," "),h[s]=g,t[s<<1]=y,y+=g.length,
t[s++<<1|1]=a)}}var e=/(?:^|\s)nocode(?:\s|$)/,h=[],y=0,t=[],s=0,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=document.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);m(a);return{a:h.join("").replace(/\n$/,""),c:t}}function B(a,m,e,h){m&&(a={a:m,d:a},e(a),h.push.apply(h,a.e))}function x(a,m){function e(a){for(var l=a.d,p=[l,"pln"],d=0,g=a.a.match(y)||[],r={},n=0,z=g.length;n<z;++n){var f=g[n],b=r[f],o=void 0,c;if(typeof b===
"string")c=!1;else{var i=h[f.charAt(0)];if(i)o=f.match(i[1]),b=i[0];else{for(c=0;c<t;++c)if(i=m[c],o=f.match(i[1])){b=i[0];break}o||(b="pln")}if((c=b.length>=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m),
l=[],p={},d=0,g=e.length;d<g;++d){var r=e[d],n=r[3];if(n)for(var k=n.length;--k>=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,
q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/,
q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g,
"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a),
a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e}
for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g<d.length;++g)e(d[g]);m===(m|0)&&d[0].setAttribute("value",
m);var r=s.createElement("OL");r.className="linenums";for(var n=Math.max(0,m-1|0)||0,g=0,z=d.length;g<z;++g)l=d[g],l.className="L"+(g+n)%10,l.firstChild||l.appendChild(s.createTextNode("\xa0")),r.appendChild(l);a.appendChild(r)}function k(a,m){for(var e=m.length;--e>=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*</.test(m)?"default-markup":"default-code";return A[a]}function E(a){var m=
a.g;try{var e=M(a.h),h=e.a;a.a=h;a.c=e.c;a.d=0;C(m,h)(a);var k=/\bMSIE\b/.test(navigator.userAgent),m=/\n/g,t=a.a,s=t.length,e=0,l=a.c,p=l.length,h=0,d=a.e,g=d.length,a=0;d[g]=s;var r,n;for(n=r=0;n<g;)d[n]!==d[n+2]?(d[r++]=d[n++],d[r++]=d[n++]):n+=2;g=r;for(n=r=0;n<g;){for(var z=d[n],f=d[n+1],b=n+2;b+2<=g&&d[b+1]===f;)b+=2;d[r++]=z;d[r++]=f;n=b}for(d.length=r;h<p;){var o=l[h+2]||s,c=d[a+2]||s,b=Math.min(o,c),i=l[h+1],j;if(i.nodeType!==1&&(j=t.substring(e,b))){k&&(j=j.replace(m,"\r"));i.nodeValue=
j;var u=i.ownerDocument,v=u.createElement("SPAN");v.className=d[a+1];var x=i.parentNode;x.replaceChild(v,i);v.appendChild(i);e<o&&(l[h+1]=i=u.createTextNode(t.substring(b,o)),x.insertBefore(i,v.nextSibling))}e=b;e>=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],
"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],
H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+
I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),
["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",
/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),
["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes",
hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p<h.length&&l.now()<e;p++){var n=h[p],k=n.className;if(k.indexOf("prettyprint")>=0){var k=k.match(g),f,b;if(b=
!k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p<h.length?setTimeout(m,
250):a&&a()}for(var e=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],h=[],k=0;k<e.length;++k)for(var t=0,s=e[k].length;t<s;++t)h.push(e[k][t]);var e=q,l=Date;l.now||(l={now:function(){return+new Date}});var p=0,d,g=/\blang(?:uage)?-([\w.]+)(?!\S)/;m()};window.PR={createSimpleLexer:x,registerLangHandler:k,sourceDecorator:u,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",
PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ"}})();

View File

@ -6,7 +6,7 @@
<link href='/prettify/prettify.css' rel='stylesheet' />
<link href="//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css" rel="stylesheet">
<link href="/pinout.css?v=0010" rel="stylesheet">
<script type='text/javascript'>
<!--script type='text/javascript'>
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-32070014-1']);
_gaq.push(['_trackPageview']);
@ -15,63 +15,63 @@
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</script-->
</head>
<body>
<div id="container">
<div class="latest" style="padding:10px;font-size:14px;margin-bottom:10px;text-align:right;">
Latest at Gadgetoid: <a href="http://pi.gadgetoid.com/article/parallax-propeller-p8x32a-first-impressions">Propeller ASC+, the Arduino-compatible multi-core micro: read my first impressions</a>
</div>
<h1><img src="/pinout-logo.png" style="top:8px;" /><span>Pi</span>n<span class="out">out</span></h1>
<h1 class="logo"><img src="/pinout-logo.png" style="top:8px;" /><span>Pi</span>n<span class="out">out</span></h1>
<nav id="gpio">
<div id="pinbase"></div>
<div id="pinbaseplus"></div>
<div id="pinbasebplus"></div>
<ul class="bottom">
<li class="pin1 3v3"><a href="/pindb/pin1_3v3_power"><span class="default"><span class="phys">1</span> 3v3 Power</span><span class="pin"></span>
</a></li>
<li class="pin3 gpio i2c"><a href="/pindb/pin3_gpio2"><span class="default"><span class="phys">3</span> GPIO 2 <small>(SDA)</small></span><span class="pin"></span>
<li class="pin3 gpio i2c"><a href="/pindb/pin3_gpio2"><span class="default"><span class="phys">3</span> BCM 2 <small>(SDA)</small></span><span class="pin"></span>
<span class="alternate legend_wiringpi">Wiring Pi pin 8</span></a></li>
<li class="pin5 gpio i2c"><a href="/pindb/pin5_gpio3"><span class="default"><span class="phys">5</span> GPIO 3 <small>(SCL)</small></span><span class="pin"></span>
<li class="pin5 gpio i2c"><a href="/pindb/pin5_gpio3"><span class="default"><span class="phys">5</span> BCM 3 <small>(SCL)</small></span><span class="pin"></span>
<span class="alternate legend_wiringpi">Wiring Pi pin 9</span></a></li>
<li class="pin7 gpio"><a href="/pindb/pin7_gpio4"><span class="default"><span class="phys">7</span> GPIO 4 <small>(GPCLK0)</small></span><span class="pin"></span>
<li class="pin7 gpio"><a href="/pindb/pin7_gpio4"><span class="default"><span class="phys">7</span> BCM 4 <small>(GPCLK0)</small></span><span class="pin"></span>
<span class="alternate legend_pibrella">Green LED</span>
<span class="alternate legend_wiringpi">Wiring Pi pin 7</span></a></li>
<li class="pin9 gnd"><a href="/pindb/pin9_ground"><span class="default"><span class="phys">9</span> Ground</span><span class="pin"></span>
</a></li>
<li class="pin11 gpio"><a href="/pindb/pin11_gpio17"><span class="default"><span class="phys">11</span> GPIO 17 </span><span class="pin"></span>
<li class="pin11 gpio"><a href="/pindb/pin11_gpio17"><span class="default"><span class="phys">11</span> BCM 17 </span><span class="pin"></span>
<span class="alternate legend_pibrella">Yellow LED</span>
<span class="alternate legend_wiringpi">Wiring Pi pin 0</span></a></li>
<li class="pin13 gpio"><a href="/pindb/pin13_gpio27"><span class="default"><span class="phys">13</span> GPIO 27 <small>(PCM_D)</small></span><span class="pin"></span>
<li class="pin13 gpio"><a href="/pindb/pin13_gpio27"><span class="default"><span class="phys">13</span> BCM 27 <small>(PCM_D)</small></span><span class="pin"></span>
<span class="alternate legend_pibrella">Red LED</span>
<span class="alternate legend_wiringpi">Wiring Pi pin 2</span></a></li>
<li class="pin15 gpio"><a href="/pindb/pin15_gpio22"><span class="default"><span class="phys">15</span> GPIO 22 </span><span class="pin"></span>
<li class="pin15 gpio"><a href="/pindb/pin15_gpio22"><span class="default"><span class="phys">15</span> BCM 22 </span><span class="pin"></span>
<span class="alternate legend_pibrella">Output A</span>
<span class="alternate legend_wiringpi">Wiring Pi pin 3</span></a></li>
<li class="pin17 3v3"><a href="/pindb/pin17_3v3_power"><span class="default"><span class="phys">17</span> 3v3 Power</span><span class="pin"></span>
</a></li>
<li class="pin19 gpio spi"><a href="/pindb/pin19_gpio10"><span class="default"><span class="phys">19</span> GPIO 10 <small>(MOSI)</small></span><span class="pin"></span>
<li class="pin19 gpio spi"><a href="/pindb/pin19_gpio10"><span class="default"><span class="phys">19</span> BCM 10 <small>(MOSI)</small></span><span class="pin"></span>
<span class="alternate legend_pibrella">Input D</span>
<span class="alternate legend_wiringpi">Wiring Pi pin 12</span></a></li>
<li class="pin21 gpio spi"><a href="/pindb/pin21_gpio9"><span class="default"><span class="phys">21</span> GPIO 9 <small>(MISO)</small></span><span class="pin"></span>
<li class="pin21 gpio spi"><a href="/pindb/pin21_gpio9"><span class="default"><span class="phys">21</span> BCM 9 <small>(MISO)</small></span><span class="pin"></span>
<span class="alternate legend_pibrella">Input A</span>
<span class="alternate legend_wiringpi">Wiring Pi pin 13</span></a></li>
<li class="pin23 gpio spi"><a href="/pindb/pin23_gpio11"><span class="default"><span class="phys">23</span> GPIO 11 <small>(SCKL)</small></span><span class="pin"></span>
<li class="pin23 gpio spi"><a href="/pindb/pin23_gpio11"><span class="default"><span class="phys">23</span> BCM 11 <small>(SCKL)</small></span><span class="pin"></span>
<span class="alternate legend_pibrella">Button</span>
<span class="alternate legend_wiringpi">Wiring Pi pin 14</span></a></li>
<li class="pin25 gnd"><a href="/pindb/pin25_ground"><span class="default"><span class="phys">25</span> Ground</span><span class="pin"></span>
</a></li>
<li class="pin27 gpio i2c"><a href="/pindb/pin27_id_sd"><span class="default"><span class="phys">27</span> ID_SD</span><span class="pin"></span>
</a></li>
<li class="pin29 gpio"><a href="/pindb/pin29_gpio5"><span class="default"><span class="phys">29</span> GPIO 5 </span><span class="pin"></span>
<li class="pin29 gpio"><a href="/pindb/pin29_gpio5"><span class="default"><span class="phys">29</span> BCM 5 </span><span class="pin"></span>
<span class="alternate legend_wiringpi">Wiring Pi pin 0</span></a></li>
<li class="pin31 gpio"><a href="/pindb/pin31_gpio6"><span class="default"><span class="phys">31</span> GPIO 6 </span><span class="pin"></span>
<li class="pin31 gpio"><a href="/pindb/pin31_gpio6"><span class="default"><span class="phys">31</span> BCM 6 </span><span class="pin"></span>
<span class="alternate legend_wiringpi">Wiring Pi pin 0</span></a></li>
<li class="pin33 gpio"><a href="/pindb/pin33_gpio13"><span class="default"><span class="phys">33</span> GPIO 13 </span><span class="pin"></span>
<li class="pin33 gpio"><a href="/pindb/pin33_gpio13"><span class="default"><span class="phys">33</span> BCM 13 </span><span class="pin"></span>
<span class="alternate legend_wiringpi">Wiring Pi pin 0</span></a></li>
<li class="pin35 gpio spi"><a href="/pindb/pin35_gpio19"><span class="default"><span class="phys">35</span> GPIO 19 <small>(MISO)</small></span><span class="pin"></span>
<li class="pin35 gpio spi"><a href="/pindb/pin35_gpio19"><span class="default"><span class="phys">35</span> BCM 19 <small>(MISO)</small></span><span class="pin"></span>
<span class="alternate legend_wiringpi">Wiring Pi pin 0</span></a></li>
<li class="pin37 gpio"><a href="/pindb/pin37_gpio26"><span class="default"><span class="phys">37</span> GPIO 26 </span><span class="pin"></span>
<li class="pin37 gpio"><a href="/pindb/pin37_gpio26"><span class="default"><span class="phys">37</span> BCM 26 </span><span class="pin"></span>
<span class="alternate legend_wiringpi">Wiring Pi pin 0</span></a></li>
<li class="pin39 gnd"><a href="/pindb/pin39_ground"><span class="default"><span class="phys">39</span> Ground</span><span class="pin"></span>
</a></li>
@ -83,70 +83,158 @@
</a></li>
<li class="pin6 gnd"><a href="/pindb/pin6_ground"><span class="default"><span class="phys">6</span> Ground</span><span class="pin"></span>
</a></li>
<li class="pin8 gpio uart"><a href="/pindb/pin8_gpio14"><span class="default"><span class="phys">8</span> GPIO 14 <small>(TXD)</small></span><span class="pin"></span>
<li class="pin8 gpio uart"><a href="/pindb/pin8_gpio14"><span class="default"><span class="phys">8</span> BCM 14 <small>(TXD)</small></span><span class="pin"></span>
<span class="alternate legend_wiringpi">Wiring Pi pin 15</span></a></li>
<li class="pin10 gpio uart"><a href="/pindb/pin10_gpio15"><span class="default"><span class="phys">10</span> GPIO 15 <small>(RXD)</small></span><span class="pin"></span>
<li class="pin10 gpio uart"><a href="/pindb/pin10_gpio15"><span class="default"><span class="phys">10</span> BCM 15 <small>(RXD)</small></span><span class="pin"></span>
<span class="alternate legend_wiringpi">Wiring Pi pin 16</span></a></li>
<li class="pin12 gpio"><a href="/pindb/pin12_gpio18"><span class="default"><span class="phys">12</span> GPIO 18 <small>(PCM_C)</small></span><span class="pin"></span>
<li class="pin12 gpio"><a href="/pindb/pin12_gpio18"><span class="default"><span class="phys">12</span> BCM 18 <small>(PCM_C)</small></span><span class="pin"></span>
<span class="alternate legend_pibrella">Buzzer</span>
<span class="alternate legend_wiringpi">Wiring Pi pin 1</span></a></li>
<li class="pin14 gnd"><a href="/pindb/pin14_ground"><span class="default"><span class="phys">14</span> Ground</span><span class="pin"></span>
</a></li>
<li class="pin16 gpio"><a href="/pindb/pin16_gpio23"><span class="default"><span class="phys">16</span> GPIO 23 </span><span class="pin"></span>
<li class="pin16 gpio"><a href="/pindb/pin16_gpio23"><span class="default"><span class="phys">16</span> BCM 23 </span><span class="pin"></span>
<span class="alternate legend_pibrella">Output B</span>
<span class="alternate legend_wiringpi">Wiring Pi pin 4</span></a></li>
<li class="pin18 gpio"><a href="/pindb/pin18_gpio24"><span class="default"><span class="phys">18</span> GPIO 24 </span><span class="pin"></span>
<li class="pin18 gpio"><a href="/pindb/pin18_gpio24"><span class="default"><span class="phys">18</span> BCM 24 </span><span class="pin"></span>
<span class="alternate legend_pibrella">Output C</span>
<span class="alternate legend_wiringpi">Wiring Pi pin 5</span></a></li>
<li class="pin20 gnd"><a href="/pindb/pin20_ground"><span class="default"><span class="phys">20</span> Ground</span><span class="pin"></span>
</a></li>
<li class="pin22 gpio"><a href="/pindb/pin22_gpio25"><span class="default"><span class="phys">22</span> GPIO 25 </span><span class="pin"></span>
<li class="pin22 gpio"><a href="/pindb/pin22_gpio25"><span class="default"><span class="phys">22</span> BCM 25 </span><span class="pin"></span>
<span class="alternate legend_pibrella">Output D</span>
<span class="alternate legend_wiringpi">Wiring Pi pin 6</span></a></li>
<li class="pin24 gpio spi"><a href="/pindb/pin24_gpio8"><span class="default"><span class="phys">24</span> GPIO 8 <small>(CE0)</small></span><span class="pin"></span>
<li class="pin24 gpio spi"><a href="/pindb/pin24_gpio8"><span class="default"><span class="phys">24</span> BCM 8 <small>(CE0)</small></span><span class="pin"></span>
<span class="alternate legend_pibrella">Input C</span>
<span class="alternate legend_wiringpi">Wiring Pi pin 10</span></a></li>
<li class="pin26 gpio spi"><a href="/pindb/pin26_gpio7"><span class="default"><span class="phys">26</span> GPIO 7 <small>(CE1)</small></span><span class="pin"></span>
<li class="pin26 gpio spi"><a href="/pindb/pin26_gpio7"><span class="default"><span class="phys">26</span> BCM 7 <small>(CE1)</small></span><span class="pin"></span>
<span class="alternate legend_pibrella">Input B</span>
<span class="alternate legend_wiringpi">Wiring Pi pin 11</span></a></li>
<li class="pin28 gpio"><a href="/pindb/pin28_id_sc"><span class="default"><span class="phys">28</span> ID_SC</span><span class="pin"></span>
</a></li>
<li class="pin30 gnd"><a href="/pindb/pin30_ground"><span class="default"><span class="phys">30</span> Ground</span><span class="pin"></span>
</a></li>
<li class="pin32 gpio"><a href="/pindb/pin32_gpio12"><span class="default"><span class="phys">32</span> GPIO 12 </span><span class="pin"></span>
<li class="pin32 gpio"><a href="/pindb/pin32_gpio12"><span class="default"><span class="phys">32</span> BCM 12 </span><span class="pin"></span>
<span class="alternate legend_wiringpi">Wiring Pi pin 0</span></a></li>
<li class="pin34 gnd"><a href="/pindb/pin34_ground"><span class="default"><span class="phys">34</span> Ground</span><span class="pin"></span>
</a></li>
<li class="pin36 gpio"><a href="/pindb/pin36_gpio16"><span class="default"><span class="phys">36</span> GPIO 16 </span><span class="pin"></span>
<li class="pin36 gpio"><a href="/pindb/pin36_gpio16"><span class="default"><span class="phys">36</span> BCM 16 </span><span class="pin"></span>
<span class="alternate legend_wiringpi">Wiring Pi pin 0</span></a></li>
<li class="pin38 gpio spi"><a href="/pindb/pin38_gpio20"><span class="default"><span class="phys">38</span> GPIO 20 <small>(MOSI)</small></span><span class="pin"></span>
<li class="pin38 gpio spi"><a href="/pindb/pin38_gpio20"><span class="default"><span class="phys">38</span> BCM 20 <small>(MOSI)</small></span><span class="pin"></span>
<span class="alternate legend_wiringpi">Wiring Pi pin 0</span></a></li>
<li class="pin40 gpio spi"><a href="/pindb/pin40_gpio21"><span class="default"><span class="phys">40</span> GPIO 21 <small>(SCLK)</small></span><span class="pin"></span>
<li class="pin40 gpio spi"><a href="/pindb/pin40_gpio21"><span class="default"><span class="phys">40</span> BCM 21 <small>(SCLK)</small></span><span class="pin"></span>
<span class="alternate legend_wiringpi">Wiring Pi pin 0</span></a></li>
</ul>
</nav>
<div id="content">
<article id="pibrella"><h1>Pibrella</h1>
<div id="pages">
<article class="page_index"><h1>Pinout!</h1>
<h3>The comprehensive Raspberry Pi Pinout guide for the Raspberry Pi, now with Model B+ and Pi 2</h3>
<p>Pinout isn't meant to be printable, but it's a great quick-reference and a comprehensive starter guide to learning about your Raspberry Pi's GPIO pins.</p>
<h2>What do these numbers mean, anyway?</h2>
<ul>
<li>BCM - Broadcom pin number, these are the ones you probably want to use with RPi.GPIO</li>
<li>WiringPi - Wiring Pi pin number, for Gordon's Wiring Pi library</li>
<li>Physical - Number corresponding to the pins physical location on the header</li>
</ul>
<h2>Pi 2+</h2>
<p>To celebrate the launch of the Pi 2 and the new Pi-enthusiasts it'll bring, Pinout has been updated to be cleaner, more comprehensive and more accurate.</p>
<h2>Model B+</h2>
<p>Now that the Raspberry Pi Model B Plus is here, I've updated Pinout with the 14 extra pins you'll find on your shiny new board.</p>
<p>Note: While I've placed a gap to visually separate the additional 14 pins on the B+, you wont find this gap on the actual board!</p></article>
<article class="page_pibrella"><h1>Pibrella</h1>
<p>The all-in-one light, sound, input and output add-on board from Pimoroni vs Cyntech uses lots of IO on the Pi but leaves both Serial and I2C free leaving plenty of room for expansion if you get creative.</p>
<p>Pibrella is easy to use, first you should install the module using LXTerminal/Command Line:</p>
<pre class="codehilite"><code class="language-bash">sudo apt-get install python-pip
sudo pip install pibrella</code></pre>
<pre><code class="bash">sudo apt-get install python-pip
sudo pip install pibrella
</code></pre>
<p>Then import it into your Python script and start tinkering:</p>
<pre class="codehilite"><code class="language-bash">import pibrella
pibrella.light.red.on()</code></pre></article>
<pre><code class="bash">import pibrella
pibrella.light.red.on()
</code></pre></article>
<article class="pin1_3v3_power"><h1>3v3 Power</h1><ul><li>Physical pin 1</li></ul><h3>The 3v3, 3.3 volt, supply pin on the Pi has a max available current of about 50 mA. Enough to power a couple of LEDs or a microprocessor, but not much more.</h3>
<p>You should generally use the 5v supply, coupled with a 3v3 regulator for 3.3v projects.</p></article>
<article class="pin2_5v_power"><h1>5v Power</h1><ul><li>Physical pin 2</li></ul><h3>The 5v power pins are connected directly to the Pi's power input and will capably provide the full current of your mains adaptor, less that used by the Pi itself.</h3>
<p>With a decent power supply, such as the official Pi adaptor, you can expect to pull about 1.5A.</p>
<p>Don't be disuaded by what sounds like a measly low voltage. You can do a lot with 5v. Power Arduinos, and even run a small Electroluminescent wire inverter right off the 5v pin!</p></article>
<article class="pin3_gpio2"><h1>BCM 2 (SDA)</h1><ul><li>Physical pin 3</li><li>BCM pin 2</li><li>Wiring Pi pin 8</li><li>BCM pin 0 on Rev 1 ( very early ) Pi</li></ul><p>It's easy to get started writing a digital HIGH or LOW to a GPIO pin, but you've got to remember a few things:</p>
<ul>
<li>Run your script as root</li>
<li>Set your pin's mode to OUTPUT (1)</li>
</ul>
<p>Assuming you've installed WiringPi2-Python ( pip install wiringpi2 ) then try pasting the following into a .py file:</p>
<pre><code class="python">import wiringpi2 as wiringpi
HIGH = 1
LOW = 0
OUTPUT = 1
INPUT = 0
wiringpi.wiringPiSetup()
wiringpi.pinMode(8,OUTPUT)
wiringpi.digitalWrite(8,HIGH)
</code></pre>
<p>Then run it with:</p>
<pre><code class="bash">sudo python myscript.py
</code></pre></article>
<article class="pin4_5v_power"><h1>5v Power</h1><ul><li>Physical pin 4</li></ul><h3>The 5v power pins are connected directly to the Pi's power input and will capably provide the full current of your mains adaptor, less that used by the Pi itself.</h3>
<p>With a decent power supply, such as the official Pi adaptor, you can expect to pull about 1.5A.</p>
<p>Don't be disuaded by what sounds like a measly low voltage. You can do a lot with 5v. Power Arduinos, and even run a small Electroluminescent wire inverter right off the 5v pin!</p></article>
<article class="pin5_gpio3"><h1>BCM 3 (SCL)</h1><ul><li>Physical pin 5</li><li>BCM pin 3</li><li>Wiring Pi pin 9</li><li>BCM pin 1 on Rev 1 ( very early ) Pi</li></ul><pre><code class="python">require 'wiringpi2'
HIGH = 1
LOW = 0
OUTPUT = 1
INPUT = 0
io = WiringPi::GPIO.new
io.pin_mode(9,OUTPUT)
io.digital_write(9,HIGH)
</code></pre></article>
<article class="pin6_ground"><h1>Ground</h1><ul><li>Physical pin 6</li></ul><p>Ground!</p></article>
<article class="pin7_gpio4"><h1>BCM 4 (GPCLK0)</h1><ul><li>Physical pin 7</li><li>BCM pin 4</li><li>Wiring Pi pin 7</li></ul>None</article>
<article class="pin8_gpio14"><h1>BCM 14 (TXD)</h1><ul><li>Physical pin 8</li><li>BCM pin 14</li><li>Wiring Pi pin 15</li></ul>None</article>
<article class="pin9_ground"><h1>Ground</h1><ul><li>Physical pin 9</li></ul><p>Ground!</p></article>
<article class="pin10_gpio15"><h1>BCM 15 (RXD)</h1><ul><li>Physical pin 10</li><li>BCM pin 15</li><li>Wiring Pi pin 16</li></ul>None</article>
<article class="pin11_gpio17"><h1>BCM 17 </h1><ul><li>Physical pin 11</li><li>BCM pin 17</li><li>Wiring Pi pin 0</li></ul>None</article>
<article class="pin12_gpio18"><h1>BCM 18 (PCM_C)</h1><ul><li>Physical pin 12</li><li>BCM pin 18</li><li>Wiring Pi pin 1</li></ul>None</article>
<article class="pin13_gpio27"><h1>BCM 27 (PCM_D)</h1><ul><li>Physical pin 13</li><li>BCM pin 27</li><li>Wiring Pi pin 2</li><li>BCM pin 21 on Rev 1 ( very early ) Pi</li></ul>None</article>
<article class="pin14_ground"><h1>Ground</h1><ul><li>Physical pin 14</li></ul><p>Ground!</p></article>
<article class="pin15_gpio22"><h1>BCM 22 </h1><ul><li>Physical pin 15</li><li>BCM pin 22</li><li>Wiring Pi pin 3</li></ul>None</article>
<article class="pin16_gpio23"><h1>BCM 23 </h1><ul><li>Physical pin 16</li><li>BCM pin 23</li><li>Wiring Pi pin 4</li></ul>None</article>
<article class="pin17_3v3_power"><h1>3v3 Power</h1><ul><li>Physical pin 17</li></ul>None</article>
<article class="pin18_gpio24"><h1>BCM 24 </h1><ul><li>Physical pin 18</li><li>BCM pin 24</li><li>Wiring Pi pin 5</li></ul>None</article>
<article class="pin19_gpio10"><h1>BCM 10 (MOSI)</h1><ul><li>Physical pin 19</li><li>BCM pin 10</li><li>Wiring Pi pin 12</li></ul>None</article>
<article class="pin20_ground"><h1>Ground</h1><ul><li>Physical pin 20</li></ul><p>Ground!</p></article>
<article class="pin21_gpio9"><h1>BCM 9 (MISO)</h1><ul><li>Physical pin 21</li><li>BCM pin 9</li><li>Wiring Pi pin 13</li></ul>None</article>
<article class="pin22_gpio25"><h1>BCM 25 </h1><ul><li>Physical pin 22</li><li>BCM pin 25</li><li>Wiring Pi pin 6</li></ul>None</article>
<article class="pin23_gpio11"><h1>BCM 11 (SCKL)</h1><ul><li>Physical pin 23</li><li>BCM pin 11</li><li>Wiring Pi pin 14</li></ul>None</article>
<article class="pin24_gpio8"><h1>BCM 8 (CE0)</h1><ul><li>Physical pin 24</li><li>BCM pin 8</li><li>Wiring Pi pin 10</li></ul>None</article>
<article class="pin25_ground"><h1>Ground</h1><ul><li>Physical pin 25</li></ul><p>Ground!</p></article>
<article class="pin26_gpio7"><h1>BCM 7 (CE1)</h1><ul><li>Physical pin 26</li><li>BCM pin 7</li><li>Wiring Pi pin 11</li></ul>None</article>
<article class="pin27_id_sd"><h1>ID_SD</h1><ul><li>Physical pin 27</li></ul>None</article>
<article class="pin28_id_sc"><h1>ID_SC</h1><ul><li>Physical pin 28</li></ul>None</article>
<article class="pin29_gpio5"><h1>BCM 5 </h1><ul><li>Physical pin 29</li><li>BCM pin 5</li><li>Wiring Pi pin 0</li></ul>None</article>
<article class="pin30_ground"><h1>Ground</h1><ul><li>Physical pin 30</li></ul><p>Ground!</p></article>
<article class="pin31_gpio6"><h1>BCM 6 </h1><ul><li>Physical pin 31</li><li>BCM pin 6</li><li>Wiring Pi pin 0</li></ul>None</article>
<article class="pin32_gpio12"><h1>BCM 12 </h1><ul><li>Physical pin 32</li><li>BCM pin 12</li><li>Wiring Pi pin 0</li></ul>None</article>
<article class="pin33_gpio13"><h1>BCM 13 </h1><ul><li>Physical pin 33</li><li>BCM pin 13</li><li>Wiring Pi pin 0</li></ul>None</article>
<article class="pin34_ground"><h1>Ground</h1><ul><li>Physical pin 34</li></ul><p>Ground!</p></article>
<article class="pin35_gpio19"><h1>BCM 19 (MISO)</h1><ul><li>Physical pin 35</li><li>BCM pin 19</li><li>Wiring Pi pin 0</li></ul>None</article>
<article class="pin36_gpio16"><h1>BCM 16 </h1><ul><li>Physical pin 36</li><li>BCM pin 16</li><li>Wiring Pi pin 0</li></ul>None</article>
<article class="pin37_gpio26"><h1>BCM 26 </h1><ul><li>Physical pin 37</li><li>BCM pin 26</li><li>Wiring Pi pin 0</li></ul>None</article>
<article class="pin38_gpio20"><h1>BCM 20 (MOSI)</h1><ul><li>Physical pin 38</li><li>BCM pin 20</li><li>Wiring Pi pin 0</li></ul>None</article>
<article class="pin39_ground"><h1>Ground</h1><ul><li>Physical pin 39</li></ul><p>Ground!</p></article>
<article class="pin40_gpio21"><h1>BCM 21 (SCLK)</h1><ul><li>Physical pin 40</li><li>BCM pin 21</li><li>Wiring Pi pin 0</li></ul>None</article>
</div>
<script type="text/javascript" src="//cdn.jsdelivr.net/jquery/1.9.1/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="//cdn.jsdelivr.net/cycle/2.9999.81/jquery.cycle.all.js"></script>
<script type="text/javascript" src="//cdn.jsdelivr.net/prettify/0.1/prettify.js"></script>
</div>
<script type="text/javascript" src="http://cdn.jsdelivr.net/jquery/1.9.1/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="http://cdn.jsdelivr.net/cycle/2.9999.81/jquery.cycle.all.js"></script>
<script type="text/javascript" src="http://cdn.jsdelivr.net/prettify/0.1/prettify.js"></script>
<script src='/prettify/lang-ruby.js'></script>
<script src='/prettify/lang-bash.js'></script>
<script src='//cdn.jsdelivr.net/history.js/1.7.1/history.js'></script>
<script src='//cdn.jsdelivr.net/history.js/1.7.1/history.adapter.jquery.js'></script>
<script src='http://cdn.jsdelivr.net/history.js/1.7.1/history.js'></script>
<script src='http://cdn.jsdelivr.net/history.js/1.7.1/history.adapter.jquery.js'></script>
<script src='/pinout.js?v=0.8'></script>
<script type="text/javascript">if (typeof NREUMQ !== "undefined") { if (!NREUMQ.f) { NREUMQ.f=function() {
<!--script type="text/javascript">if (typeof NREUMQ !== "undefined") { if (!NREUMQ.f) { NREUMQ.f=function() {
NREUMQ.push(["load",new Date().getTime()]);
var e=document.createElement("script");
e.type="text/javascript";
@ -157,6 +245,7 @@ if(NREUMQ.a)NREUMQ.a();
};
NREUMQ.a=window.onload;window.onload=NREUMQ.f;
};
NREUMQ.push(["nrfj","bam.nr-data.net","3cd5994c2d","2368869","Jl1cQ0MODVRUSho1DAtTRkVQTiBIQRdyIzFFQltZXhQVFxlja0laRm8ZHg==",0,1,new Date().getTime(),"","","","",""]);}</script></body>
NREUMQ.push(["nrfj","bam.nr-data.net","3cd5994c2d","2368869","Jl1cQ0MODVRUSho1DAtTRkVQTiBIQRdyIzFFQltZXhQVFxlja0laRm8ZHg==",0,1,new Date().getTime(),"","","","",""]);}</script-->
</body>
</html>

View File

@ -6,7 +6,7 @@
<link href='/prettify/prettify.css' rel='stylesheet' />
<link href="//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css" rel="stylesheet">
<link href="/pinout.css?v=0010" rel="stylesheet">
<script type='text/javascript'>
<!--script type='text/javascript'>
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-32070014-1']);
_gaq.push(['_trackPageview']);
@ -15,14 +15,14 @@
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</script-->
</head>
<body>
<div id="container">
<div class="latest" style="padding:10px;font-size:14px;margin-bottom:10px;text-align:right;">
Latest at Gadgetoid: <a href="http://pi.gadgetoid.com/article/parallax-propeller-p8x32a-first-impressions">Propeller ASC+, the Arduino-compatible multi-core micro: read my first impressions</a>
</div>
<h1><img src="/pinout-logo.png" style="top:8px;" /><span>Pi</span>n<span class="out">out</span></h1>
<h1 class="logo"><img src="/pinout-logo.png" style="top:8px;" /><span>Pi</span>n<span class="out">out</span></h1>
<nav id="gpio">
<div id="pinbase"></div>
@ -30,17 +30,19 @@
{{nav}}
</nav>
<div id="content">
<div id="pages">
{{content}}
</div>
<script type="text/javascript" src="//cdn.jsdelivr.net/jquery/1.9.1/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="//cdn.jsdelivr.net/cycle/2.9999.81/jquery.cycle.all.js"></script>
<script type="text/javascript" src="//cdn.jsdelivr.net/prettify/0.1/prettify.js"></script>
</div>
<script type="text/javascript" src="http://cdn.jsdelivr.net/jquery/1.9.1/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="http://cdn.jsdelivr.net/cycle/2.9999.81/jquery.cycle.all.js"></script>
<script type="text/javascript" src="http://cdn.jsdelivr.net/prettify/0.1/prettify.js"></script>
<script src='/prettify/lang-ruby.js'></script>
<script src='/prettify/lang-bash.js'></script>
<script src='//cdn.jsdelivr.net/history.js/1.7.1/history.js'></script>
<script src='//cdn.jsdelivr.net/history.js/1.7.1/history.adapter.jquery.js'></script>
<script src='http://cdn.jsdelivr.net/history.js/1.7.1/history.js'></script>
<script src='http://cdn.jsdelivr.net/history.js/1.7.1/history.adapter.jquery.js'></script>
<script src='/pinout.js?v=0.8'></script>
<script type="text/javascript">if (typeof NREUMQ !== "undefined") { if (!NREUMQ.f) { NREUMQ.f=function() {
<!--script type="text/javascript">if (typeof NREUMQ !== "undefined") { if (!NREUMQ.f) { NREUMQ.f=function() {
NREUMQ.push(["load",new Date().getTime()]);
var e=document.createElement("script");
e.type="text/javascript";
@ -51,5 +53,6 @@ if(NREUMQ.a)NREUMQ.a();
};
NREUMQ.a=window.onload;window.onload=NREUMQ.f;
};
NREUMQ.push(["nrfj","bam.nr-data.net","3cd5994c2d","2368869","Jl1cQ0MODVRUSho1DAtTRkVQTiBIQRdyIzFFQltZXhQVFxlja0laRm8ZHg==",0,1,new Date().getTime(),"","","","",""]);}</script></body>
NREUMQ.push(["nrfj","bam.nr-data.net","3cd5994c2d","2368869","Jl1cQ0MODVRUSho1DAtTRkVQTiBIQRdyIzFFQltZXhQVFxlja0laRm8ZHg==",0,1,new Date().getTime(),"","","","",""]);}</script-->
</body>
</html>