diff options
Diffstat (limited to 'DOC/src/html/index.html')
-rw-r--r-- | DOC/src/html/index.html | 659 |
1 files changed, 659 insertions, 0 deletions
diff --git a/DOC/src/html/index.html b/DOC/src/html/index.html new file mode 100644 index 0000000..0b8e33c --- /dev/null +++ b/DOC/src/html/index.html @@ -0,0 +1,659 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta name="generator" content="Bluefish 2.2.10" > +<meta content="text/html; charset=utf-8" http-equiv="content-type"> +<title>pigpio</title> +</head> +<body> +pigpio is a library for the Raspberry which allows control of the +General Purpose Input Outputs (GPIO). pigpio works on all +versions of the Pi. +<p><a href="download.html">Download</a><br></p> +<h3>Features<br></h3> +<ul> +<li> +<p>hardware timed sampling and time-stamping of GPIO 0-31 every 5 +us<br></p> +</li> +<li> +<p>hardware timed PWM on all of GPIO 0-31<br></p> +</li> +<li> +<p>hardware timed servo pulses on all of GPIO 0-31</p> +</li> +<li> +<p>callbacks on GPIO 0-31 level change (time accurate to a few +us)</p> +</li> +<li> +<p>notifications via pipe on GPIO 0-31 level change<br></p> +</li> +<li> +<p>callbacks at timed intervals</p> +</li> +<li> +<p>reading/writing all of the GPIO in a bank (0-31, 32-53) as a +single operation</p> +</li> +<li> +<p>GPIO reading, writing, modes, and internal pulls<br></p> +</li> +<li> +<p>socket and pipe interfaces for the bulk of the functionality</p> +</li> +<li> +<p>waveforms to generate GPIO level changes (time accurate to a few +us)</p> +</li> +<li> +<p>software serial links using any user GPIO</p> +</li> +<li> +<p>rudimentary permission control through the socket and pipe +interfaces<br></p> +</li> +<li>creating and running scripts on the pigpio daemon</li> +</ul> +<h3>General</h3> +The pigpio <a href="cif.html">library</a> is written in the C +programming language.<br> +<br> +The <a href="pigpiod.html">pigpio daemon</a> offers a <a href= +"sif.html">socket</a> and <a href="pif.html">pipe</a> interface to +the underlying C library.<br> +<br> +A <a href="pdif2.html">C library</a> and a <a href= +"python.html">Python module</a> allow control of the GPIO via the +pigpio daemon.<br> +<br> +There is third party support for a number of <a href= +"index.html#Other_Languages">other languages</a>. +<h3>piscope</h3> +<p><a href="piscope.html">piscope</a> is a logic analyser (digital +waveform viewer).<br></p> +piscope is a GTK+3 application and uses pigpio to provide raw GPIO +level data. piscope may be run on a Pi or on any machine +capable of compiling a GTK+3 application. +<h3><a name="GPIO" id="GPIO"></a>GPIO</h3> +<p><span style="font-weight: bold;">ALL GPIO</span> are identified +by their <span style="font-weight: bold;">Broadcom +number</span>. See <a href= +"http://elinux.org/RPi_Low-level_peripherals#General_Purpose_Input.2FOutput_.28GPIO.29"> +elinux.org</a><br></p> +There are 54 GPIO in total, arranged in two banks.<br> +<p>Bank 1 contains GPIO 0-31. Bank 2 contains GPIO +32-53.<br></p> +For all types of Pi it is safe to read all the GPIO. If you try to +write a system GPIO or change its mode you can crash the Pi or +corrupt the data on the SD card.<br> +<br> +There are several types of board, each with different expansion +headers, giving physical access to different GPIO. +<ul> +<li><a href="#Type_1">Type 1</a> - Model B (original model)</li> +<li><a href="#Type_2">Type 2</a> - Model A, B (revision 2)</li> +<li><a href="#Type_3">Type 3</a> - Model A+, B+, Pi Zero, Pi2B, +Pi3B</li> +<li><a href="#CM">Compute Module</a> - Compute Module</li> +</ul> +<h4><a name="Type_1" id="Type_1"></a>Type 1 - Model B (original +model)</h4> +<ul> +<li>26 pin header (P1).</li> +</ul> +<ul> +<li>Hardware revision numbers of 2 and 3.</li> +</ul> +<ul> +<li>User GPIO 0-1, 4, 7-11, 14-15, 17-18, 21-25.</li> +</ul> +<table summary="" style="width: 60%; text-align: left;" +cellspacing="0" cellpadding="0" border="0"> +<tbody> +<tr> +<td style= +"vertical-align: top; font-weight: bold; text-align: center;"> +<br></td> +<td style= +"vertical-align: top; font-weight: bold; text-align: center;"> +GPIO</td> +<td style="font-weight: bold; text-align: center;">pin</td> +<td style="font-weight: bold; text-align: center;">pin</td> +<td style= +"vertical-align: top; font-weight: bold; text-align: center;"> +GPIO</td> +<td style="font-weight: bold; text-align: center;"><br></td> +</tr> +<tr> +<td style="text-align: center;">3V3</td> +<td style="text-align: center;">-</td> +<td style="text-align: center;">1</td> +<td style="text-align: center;">2</td> +<td style="text-align: center;">-</td> +<td style="text-align: center;">5V</td> +</tr> +<tr> +<td style="text-align: center;">SDA</td> +<td style="text-align: center;">0<br></td> +<td style="text-align: center;">3</td> +<td style="text-align: center;">4</td> +<td style="text-align: center;">-</td> +<td style="text-align: center;">5V</td> +</tr> +<tr> +<td style="text-align: center;">SCL</td> +<td style="text-align: center;">1<br></td> +<td style="text-align: center;">5</td> +<td style="text-align: center;">6</td> +<td style="text-align: center;">-</td> +<td style="text-align: center;">Ground</td> +</tr> +<tr> +<td style="text-align: center;"><br></td> +<td style="text-align: center;">4</td> +<td style="text-align: center;">7</td> +<td style="text-align: center;">8</td> +<td style="text-align: center;">14</td> +<td style="text-align: center;">TXD</td> +</tr> +<tr> +<td style="text-align: center;">Ground</td> +<td style="text-align: center;">-</td> +<td style="text-align: center;">9</td> +<td style="text-align: center;">10</td> +<td style="text-align: center;">15</td> +<td style="text-align: center;">RXD</td> +</tr> +<tr> +<td style="text-align: center;">ce1</td> +<td style="text-align: center;">17</td> +<td style="text-align: center;">11</td> +<td style="text-align: center;">12</td> +<td style="text-align: center;">18</td> +<td style="text-align: center;">ce0</td> +</tr> +<tr> +<td style="text-align: center;"><br></td> +<td style="text-align: center;">21</td> +<td style="text-align: center;">13</td> +<td style="text-align: center;">14</td> +<td style="text-align: center;">-</td> +<td style="text-align: center;">Ground</td> +</tr> +<tr> +<td style="text-align: center;"><br></td> +<td style="text-align: center;">22</td> +<td style="text-align: center;">15</td> +<td style="text-align: center;">16</td> +<td style="text-align: center;">23</td> +<td style="text-align: center;"><br></td> +</tr> +<tr> +<td style="text-align: center;">3V3</td> +<td style="text-align: center;">-<br></td> +<td style="text-align: center;">17</td> +<td style="text-align: center;">18</td> +<td style="text-align: center;">24</td> +<td style="text-align: center;"><br></td> +</tr> +<tr> +<td style="text-align: center;">MOSI</td> +<td style="text-align: center;">10</td> +<td style="text-align: center;">19</td> +<td style="text-align: center;">20</td> +<td style="text-align: center;">-</td> +<td style="text-align: center;">Ground</td> +</tr> +<tr> +<td style="text-align: center;">MISO</td> +<td style="text-align: center;">9</td> +<td style="text-align: center;">21</td> +<td style="text-align: center;">22</td> +<td style="text-align: center;">25</td> +<td style="text-align: center;"><br></td> +</tr> +<tr> +<td style="text-align: center;">SCLK</td> +<td style="text-align: center;">11</td> +<td style="text-align: center;">23</td> +<td style="text-align: center;">24</td> +<td style="text-align: center;">8</td> +<td style="text-align: center;">CE0</td> +</tr> +<tr> +<td style="text-align: center;">Ground</td> +<td style="text-align: center;">-</td> +<td style="text-align: center;">25</td> +<td style="text-align: center;">26</td> +<td style="text-align: center;">7</td> +<td style="text-align: center;">CE1</td> +</tr> +</tbody> +</table> +<br> +<h4><a name="Type_2" id="Type_2"></a>Type 2 - Model A, B (revision +2)</h4> +26 pin header (P1) and an additional 8 pin header (P5). +<ul> +<li>Hardware revision numbers of 4, 5, 6 (B), 7, 8, 9 (A), and 13, +14, 15 (B).</li> +</ul> +<ul> +<li>User GPIO 2-4, 7-11, 14-15, 17-18, 22-25, 27-31.<br></li> +</ul> +<table summary="" style="width: 60%; text-align: left;" +cellspacing="0" cellpadding="0" border="0"> +<tbody> +<tr> +<td style= +"vertical-align: top; font-weight: bold; text-align: center;"> +<br></td> +<td style= +"vertical-align: top; font-weight: bold; text-align: center;"> +GPIO</td> +<td style="font-weight: bold; text-align: center;">pin</td> +<td style="font-weight: bold; text-align: center;">pin</td> +<td style= +"vertical-align: top; font-weight: bold; text-align: center;"> +GPIO</td> +<td style="font-weight: bold; text-align: center;"><br></td> +</tr> +<tr> +<td style="text-align: center;">3V3</td> +<td style="text-align: center;">-</td> +<td style="text-align: center;">1</td> +<td style="text-align: center;">2</td> +<td style="text-align: center;">-</td> +<td style="text-align: center;">5V</td> +</tr> +<tr> +<td style="text-align: center;">SDA</td> +<td style="text-align: center;">2</td> +<td style="text-align: center;">3</td> +<td style="text-align: center;">4</td> +<td style="text-align: center;">-</td> +<td style="text-align: center;">5V</td> +</tr> +<tr> +<td style="text-align: center;">SCL</td> +<td style="text-align: center;">3</td> +<td style="text-align: center;">5</td> +<td style="text-align: center;">6</td> +<td style="text-align: center;">-</td> +<td style="text-align: center;">Ground</td> +</tr> +<tr> +<td style="text-align: center;"><br></td> +<td style="text-align: center;">4</td> +<td style="text-align: center;">7</td> +<td style="text-align: center;">8</td> +<td style="text-align: center;">14</td> +<td style="text-align: center;">TXD</td> +</tr> +<tr> +<td style="text-align: center;">Ground</td> +<td style="text-align: center;">-</td> +<td style="text-align: center;">9</td> +<td style="text-align: center;">10</td> +<td style="text-align: center;">15</td> +<td style="text-align: center;">RXD</td> +</tr> +<tr> +<td style="text-align: center;">ce1</td> +<td style="text-align: center;">17</td> +<td style="text-align: center;">11</td> +<td style="text-align: center;">12</td> +<td style="text-align: center;">18</td> +<td style="text-align: center;">ce0</td> +</tr> +<tr> +<td style="text-align: center;"><br></td> +<td style="text-align: center;">27</td> +<td style="text-align: center;">13</td> +<td style="text-align: center;">14</td> +<td style="text-align: center;">-</td> +<td style="text-align: center;">Ground</td> +</tr> +<tr> +<td style="text-align: center;"><br></td> +<td style="text-align: center;">22</td> +<td style="text-align: center;">15</td> +<td style="text-align: center;">16</td> +<td style="text-align: center;">23</td> +<td style="text-align: center;"><br></td> +</tr> +<tr> +<td style="text-align: center;">3V3</td> +<td style="text-align: center;">-<br></td> +<td style="text-align: center;">17</td> +<td style="text-align: center;">18</td> +<td style="text-align: center;">24</td> +<td style="text-align: center;"><br></td> +</tr> +<tr> +<td style="text-align: center;">MOSI</td> +<td style="text-align: center;">10</td> +<td style="text-align: center;">19</td> +<td style="text-align: center;">20</td> +<td style="text-align: center;">-</td> +<td style="text-align: center;">Ground</td> +</tr> +<tr> +<td style="text-align: center;">MISO</td> +<td style="text-align: center;">9</td> +<td style="text-align: center;">21</td> +<td style="text-align: center;">22</td> +<td style="text-align: center;">25</td> +<td style="text-align: center;"><br></td> +</tr> +<tr> +<td style="text-align: center;">SCLK</td> +<td style="text-align: center;">11</td> +<td style="text-align: center;">23</td> +<td style="text-align: center;">24</td> +<td style="text-align: center;">8</td> +<td style="text-align: center;">CE0</td> +</tr> +<tr> +<td style="text-align: center;">Ground</td> +<td style="text-align: center;">-</td> +<td style="text-align: center;">25</td> +<td style="text-align: center;">26</td> +<td style="text-align: center;">7</td> +<td style="text-align: center;">CE1</td> +</tr> +</tbody> +</table> +<br> +<table summary="" style="width: 60%; text-align: left;" +cellspacing="0" cellpadding="0" border="0"> +<tbody> +<tr> +<td style= +"vertical-align: top; font-weight: bold; text-align: center;"> +<br></td> +<td style= +"vertical-align: top; font-weight: bold; text-align: center;"> +GPIO</td> +<td style="font-weight: bold; text-align: center;">pin</td> +<td style="font-weight: bold; text-align: center;">pin</td> +<td style= +"vertical-align: top; font-weight: bold; text-align: center;"> +GPIO</td> +<td style="font-weight: bold; text-align: center;"><br></td> +</tr> +<tr> +<td style="text-align: center;">5V<br></td> +<td style="text-align: center;">-</td> +<td style="text-align: center;">1</td> +<td style="text-align: center;">2</td> +<td style="text-align: center;">-</td> +<td style="text-align: center;">3V3</td> +</tr> +<tr> +<td style="text-align: center;">SDA<br></td> +<td style="text-align: center;">28</td> +<td style="text-align: center;">3</td> +<td style="text-align: center;">4</td> +<td style="text-align: center;">29</td> +<td style="text-align: center;">SCL</td> +</tr> +<tr> +<td style="text-align: center;"><br></td> +<td style="text-align: center;">30</td> +<td style="text-align: center;">5</td> +<td style="text-align: center;">6</td> +<td style="text-align: center;">31</td> +<td style="text-align: center;"><br></td> +</tr> +<tr> +<td style="text-align: center;">Ground<br></td> +<td style="text-align: center;">-<br></td> +<td style="text-align: center;">7</td> +<td style="text-align: center;">8</td> +<td style="text-align: center;">-<br></td> +<td style="text-align: center;">Ground</td> +</tr> +</tbody> +</table> +<br> +<h4><a name="Type_3" id="Type_3"></a>Type 3 - Model A+, B+, Pi +Zero, Pi Zero W, Pi2B, Pi3B, Pi4B<br></h4> +<ul> +<li>40 pin expansion header (J8).</li> +</ul> +<ul> +<li>Hardware revision numbers of 16 or greater.</li> +</ul> +<ul> +<li>User GPIO 2-27 (0 and 1 are reserved).<br></li> +</ul> +<table summary="" style="width: 60%; text-align: left;" +cellspacing="0" cellpadding="0" border="0"> +<tbody> +<tr> +<td style= +"vertical-align: top; font-weight: bold; text-align: center;"> +<br></td> +<td style= +"vertical-align: top; font-weight: bold; text-align: center;"> +GPIO</td> +<td style="font-weight: bold; text-align: center;">pin</td> +<td style="font-weight: bold; text-align: center;">pin</td> +<td style= +"vertical-align: top; font-weight: bold; text-align: center;"> +GPIO</td> +<td style="font-weight: bold; text-align: center;"><br></td> +</tr> +<tr> +<td style="text-align: center;">3V3</td> +<td style="text-align: center;">-</td> +<td style="text-align: center;">1</td> +<td style="text-align: center;">2</td> +<td style="text-align: center;">-</td> +<td style="text-align: center;">5V</td> +</tr> +<tr> +<td style="text-align: center;">SDA</td> +<td style="text-align: center;">2</td> +<td style="text-align: center;">3</td> +<td style="text-align: center;">4</td> +<td style="text-align: center;">-</td> +<td style="text-align: center;">5V</td> +</tr> +<tr> +<td style="text-align: center;">SCL</td> +<td style="text-align: center;">3</td> +<td style="text-align: center;">5</td> +<td style="text-align: center;">6</td> +<td style="text-align: center;">-</td> +<td style="text-align: center;">Ground</td> +</tr> +<tr> +<td style="text-align: center;"><br></td> +<td style="text-align: center;">4</td> +<td style="text-align: center;">7</td> +<td style="text-align: center;">8</td> +<td style="text-align: center;">14</td> +<td style="text-align: center;">TXD</td> +</tr> +<tr> +<td style="text-align: center;">Ground</td> +<td style="text-align: center;">-</td> +<td style="text-align: center;">9</td> +<td style="text-align: center;">10</td> +<td style="text-align: center;">15</td> +<td style="text-align: center;">RXD</td> +</tr> +<tr> +<td style="text-align: center;">ce1</td> +<td style="text-align: center;">17</td> +<td style="text-align: center;">11</td> +<td style="text-align: center;">12</td> +<td style="text-align: center;">18</td> +<td style="text-align: center;">ce0</td> +</tr> +<tr> +<td style="text-align: center;"><br></td> +<td style="text-align: center;">27</td> +<td style="text-align: center;">13</td> +<td style="text-align: center;">14</td> +<td style="text-align: center;">-</td> +<td style="text-align: center;">Ground</td> +</tr> +<tr> +<td style="text-align: center;"><br></td> +<td style="text-align: center;">22</td> +<td style="text-align: center;">15</td> +<td style="text-align: center;">16</td> +<td style="text-align: center;">23</td> +<td style="text-align: center;"><br></td> +</tr> +<tr> +<td style="text-align: center;">3V3</td> +<td style="text-align: center;">-<br></td> +<td style="text-align: center;">17</td> +<td style="text-align: center;">18</td> +<td style="text-align: center;">24</td> +<td style="text-align: center;"><br></td> +</tr> +<tr> +<td style="text-align: center;">MOSI</td> +<td style="text-align: center;">10</td> +<td style="text-align: center;">19</td> +<td style="text-align: center;">20</td> +<td style="text-align: center;">-</td> +<td style="text-align: center;">Ground</td> +</tr> +<tr> +<td style="text-align: center;">MISO</td> +<td style="text-align: center;">9</td> +<td style="text-align: center;">21</td> +<td style="text-align: center;">22</td> +<td style="text-align: center;">25</td> +<td style="text-align: center;"><br></td> +</tr> +<tr> +<td style="text-align: center;">SCLK</td> +<td style="text-align: center;">11</td> +<td style="text-align: center;">23</td> +<td style="text-align: center;">24</td> +<td style="text-align: center;">8</td> +<td style="text-align: center;">CE0</td> +</tr> +<tr> +<td style="text-align: center;">Ground</td> +<td style="text-align: center;">-</td> +<td style="text-align: center;">25</td> +<td style="text-align: center;">26</td> +<td style="text-align: center;">7</td> +<td style="text-align: center;">CE1</td> +</tr> +<tr> +<td style="text-align: center;">ID_SD</td> +<td style="text-align: center;">0</td> +<td style="text-align: center;">27</td> +<td style="text-align: center;">28</td> +<td style="text-align: center;">1</td> +<td style="text-align: center;">ID_SC</td> +</tr> +<tr> +<td style="text-align: center;"><br></td> +<td style="text-align: center;">5</td> +<td style="text-align: center;">29</td> +<td style="text-align: center;">30</td> +<td style="text-align: center;">-</td> +<td style="text-align: center;">Ground</td> +</tr> +<tr> +<td style="text-align: center;"><br></td> +<td style="text-align: center;">6</td> +<td style="text-align: center;">31</td> +<td style="text-align: center;">32</td> +<td style="text-align: center;">12</td> +<td style="text-align: center;"><br></td> +</tr> +<tr> +<td style="text-align: center;"><br></td> +<td style="text-align: center;">13</td> +<td style="text-align: center;">33</td> +<td style="text-align: center;">34</td> +<td style="text-align: center;">-</td> +<td style="text-align: center;">Ground</td> +</tr> +<tr> +<td style="text-align: center;">miso</td> +<td style="text-align: center;">19</td> +<td style="text-align: center;">35</td> +<td style="text-align: center;">36</td> +<td style="text-align: center;">16</td> +<td style="text-align: center;">ce2</td> +</tr> +<tr> +<td style="text-align: center;"><br></td> +<td style="text-align: center;">26</td> +<td style="text-align: center;">37</td> +<td style="text-align: center;">38</td> +<td style="text-align: center;">20</td> +<td style="text-align: center;">mosi</td> +</tr> +<tr> +<td style="text-align: center;">Ground</td> +<td style="text-align: center;">-</td> +<td style="text-align: center;">39</td> +<td style="text-align: center;">40</td> +<td style="text-align: center;">21</td> +<td style="text-align: center;">sclk</td> +</tr> +</tbody> +</table> +<br> +<h4><a name="CM" id="CM"></a>Compute Module</h4> +<p>All 54 GPIO may be physically accessed. Some are reserved +for system use - refer to the Compute Module documentation.<br></p> +<p>Only GPIO 0-31 are supported for hardware timed sampling, PWM, +servo pulses, alert callbacks, waves, and software serial +links.<br></p> +<h3><a name="Other_Languages" id="Other_Languages"></a>Other +Languages</h3> +<p>There are several third party projects which provide wrappers +for pigpio.<br></p> +<p>Some are listed here:<br></p> +<ul> +<li><a href="https://github.com/skvamme/pigpio">Erlang</a> +(skvamme)</li> +<li><a href="https://github.com/mattjlewis/pigpioj">Java</a> JNI +wrapper around the pigpio C library (mattlewis)</li> +<li><a href="https://github.com/mattjlewis/diozero">Java</a> via +diozero, a high level wrapper around pigpio, Pi4J, wiringPi etc +(mattlewis)</li> +<li><a href="https://github.com/nkolban/jpigpio">Java</a> +(nkolban)</li> +<li><a href= +"https://github.com/unosquare/pigpio-dotnet">.NET/mono</a> +(unosquare)</li> +<li><a href="https://github.com/fivdi/pigpio">Node.js</a> +A wrapper for the pigpio C library (fivdi)</li> +<li><a href="https://github.com/guymcswain/pigpio-client">Node.js</a> +A client for pigpio socket interface (guymcswain)</li> +<li><a href="https://metacpan.org/pod/RPi::PIGPIO">Perl</a> (Gligan +Calin Horea)</li> +<li><a href= +"https://github.com/nak1114/ruby-extension-pigpio">Ruby</a> +(Nak)</li> +<li><a href= +"https://github.com/vasmalltalk/pigpio-vast">Smalltalk</a>(Instantiations)</li> +<li><a href= +"https://github.com/UBogun/Xojo-pigpio">Xojo</a>(UBogun)</li> +<li><a href= +"https://github.com/eugenedakin/pigpio-GPIO">Xojo</a>(Eugene Dakin)</li> +</ul> +<hr style="width: 100%; height: 2px;"> +<p><font size="-2">The PWM and servo pulses are timed using the DMA +and PWM/PCM peripherals. This use was inspired by Richard +Hirst's <a href="https://github.com/richardghirst/PiBits" target= +"_blank">servoblaster</a> kernel module.</font></p> +</body> +</html> |