mirror of https://github.com/joan2937/pigpio
653 lines
20 KiB
Plaintext
653 lines
20 KiB
Plaintext
|
|
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><b>At the moment pigpio on the Pi4B is experimental. I am not
|
|
sure if the DMA channels being used are safe. The Pi4B defaults are
|
|
primary channel 7, secondary channel 6. If these channels do not
|
|
work you will have to experiment. You can set the channels used by
|
|
the pigpio daemon by invoking it with the -d and -e options, e.g.
|
|
<small>sudo pigpiod -d 5 -e 8</small> to specify primary 5,
|
|
secondary 8.</b></p>
|
|
<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 I am aware of are:<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>
|
|
(fivdi)</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>
|
|
</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>
|