Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 7 days ago
JSON representation
pigpio is a C library for the Raspberry which allows control of the General Purpose Input Outputs (GPIO).
- Host: GitHub
- URL: https://github.com/joan2937/pigpio
- Owner: joan2937
- License: unlicense
- Created: 2013-12-12T10:18:12.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2024-06-24T15:18:29.000Z (6 months ago)
- Last Synced: 2024-11-28T10:07:07.753Z (14 days ago)
- Language: C
- Homepage:
- Size: 7.19 MB
- Stars: 1,470
- Watchers: 69
- Forks: 411
- Open Issues: 91
-
Metadata Files:
- Readme: README
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
- my-awesome-starred - joan2937/pigpio - pigpio is a C library for the Raspberry which allows control of the General Purpose Input Outputs (GPIO). (C)
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 installThis 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 3TEST (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 daemonEXAMPLE 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 installThis 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.pyOn 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 pig2vcdman pigpio
man pigpiod_if
man pigpiod_if2pydoc pigpio