Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/joan2937/pigpio

pigpio is a C library for the Raspberry which allows control of the General Purpose Input Outputs (GPIO).
https://github.com/joan2937/pigpio

Last synced: about 2 months ago
JSON representation

pigpio is a C library for the Raspberry which allows control of the General Purpose Input Outputs (GPIO).

Awesome Lists containing this project

README

        

NOTE

The initial part of the make, the compilation of pigpio.c,
takes 100 seconds on early model Pis. Be patient. The overall
install takes just over 3 minutes.

INSTALL

Extract the archive to a directory.

IN THAT DIRECTORY

Enter the following two commands (in this order)

make
sudo make install

This will install

o the library (libpigpio.so) in /usr/local/lib
o the library (libpigpiod_if.so) in /usr/local/lib
o the library (libpigpiod_if2.so) in /usr/local/lib
o the header file (pigpio.h) in /usr/local/include
o the header file (pigpiod_if.h) in /usr/local/include
o the header file (pigpiod_if2.h) in /usr/local/include
o the header file (pigs.h) in /usr/local/include
o the daemon (pigpiod) in /usr/local/bin
o the socket interface (pigs) in /usr/local/bin
o the utility pig2vcd in /usr/local/bin
o man pages in /usr/local/man/man1 and /usr/local/man/man3
o the Python module pigpio.py for Python 2 and 3

TEST (optional)

*** WARNING ************************************************
* *
* All the tests make extensive use of gpio 25 (pin 22). *
* Ensure that either nothing or just a LED is connected to *
* gpio 25 before running any of the tests. *
* *
* Some tests are statistical in nature and so may on *
* occasion fail. Repeated failures on the same test or *
* many failures in a group of tests indicate a problem. *
************************************************************

To test the library do

sudo ./x_pigpio

To test the pigpio daemon do

sudo pigpiod

./x_pigpiod_if # test the C I/F to the pigpio daemon
./x_pigpiod_if2 # test the C I/F to the pigpio daemon
./x_pigpio.py # test the Python I/F to the pigpio daemon
./x_pigs # test the socket I/F to the pigpio daemon
./x_pipe # test the pipe I/F to the pigpio daemon

EXAMPLE CODE

x_pigpio.c, pig2vcd.c, and pigpiod.c show examples of interfacing
with the pigpio library.

pigs.c, pigpio.py, x_pigpiod_if, x_pigpiod_if2.c, x_pigpio.py,
x_pigs, and x_pipe show examples of interfacing with the pigpio
daemon. x_pipe uses the pipe interface, the others use the
socket interface.

DAEMON

To launch the daemon do

sudo pigpiod (pigpiod -? for options)

Once the daemon is launched the socket and pipe interfaces will be
available.

When the library starts it locks

/var/run/pigpio.pid

The file should be automatically deleted when the library terminates.

SOCKET INTERFACE

Use pigs for the socket interface (pigs help for help).

PIPE INTERFACE

The pipe interface accepts commands written to /dev/pigpio.

Results are read from /dev/pigout.

Errors are output on /dev/pigerr.

To test the pipe interface perhaps do

cat /dev/pigout &
cat /dev/pigerr &

echo "help" >/dev/pigpio

PYTHON MODULE

The Python pigpio module is installed to the default Python location
for Python 2 and Python 3.

You can install it for additional Python versions by

pythonx.y setup.py install

where x.y is the Python version.

STOP DAEMON

To stop the pigpiod daemon

sudo killall pigpiod

RUNNING ON NON Pi's

You can access the pigpiod daemon running on the Pi from any machine which
is connected to it over the network. This access is via the socket interface.

In particular this allows you to use the following on non-Pi's.

o pigs
o the pigpio Python module
o the C socket I/F using libpigpiod_if (header file pigpiod_if.h)
o the C socket I/F using libpigpiod_if2 (header file pigpiod_if2.h)

On a Linux machine

make -f MakeRemote clean
make -f MakeRemote
make -f MakeRemote install

This will install

o the library (libpigpiod_if.so) in /usr/local/lib
o the library (libpigpiod_if2.so) in /usr/local/lib
o the header file (pigpio.h) in /usr/local/include
o the header file (pigpiod_if.h) in /usr/local/include
o the header file (pigpiod_if2.h) in /usr/local/include
o the socket interface (pigs) in /usr/local/bin
o man pages in /usr/local/man/man1 and /usr/local/man/man3
o the Python module pigpio.py

On Windows machines (and possibly Macs)

The Python module should install with

python setup.py install

pigs, pigpiod_if, and pigpiod_if2 will need minor mods to
reflect the Windows/Mac socket interface.

DOCUMENTATION

The most up to date should be http://abyz.me.uk/rpi/pigpio/

On the Pi try

man pigs
man pigpiod
man pig2vcd

man pigpio
man pigpiod_if
man pigpiod_if2

pydoc pigpio