pygpiod

Small wrapper to libgpiod bindings


Keywords
gpio, gpiod, libgpiod
License
MIT
Install
pip install pygpiod==0.2

Documentation

pygpiod

A simple Python wrapper for the libgpiod Python bindings

The libgpiod Python bindings are not very straightforward to use and they lack proper documentation besides the examples.

I've created this simple library to provide an easy-to-use interface to those libs.

This library also makes it easier to set up and use a GPIO by its line-name instead of gpiochip lines/offsets.

Requirements

libgpiod and its Python bindings.

On Debian/Ubuntu:

sudo apt install libgpiod2 python3-libgpiod

Examples

GPIO write

from gpio import GPIO
import time

myGpio = GPIO()

# Get the GPIO by its gpio-line-name on the device tree!

# Setting up GPIO on SODIMM 138 on a Toradex Colibri module
myGpio.setup("SODIMM_138", GPIO.OUT)

# Example: Setting up GPIO on GPIO22 on a Raspberry Pi 3
# myGpio.setup("GPIO22", GPIO.OUT)

myGpio.write(GPIO.HIGH)

time.sleep(1)

myGpio.write(GPIO.LOW)

GPIO write & read

from gpio import GPIO
import time

myGpio = GPIO()

# Get the GPIO by its gpio-line-name on the device tree!

# Setting up GPIO on SODIMM 138 on a Toradex Colibri module
myGpio.setup("SODIMM_138", GPIO.OUT)

# Example: Setting up GPIO on GPIO22 on a Raspberry Pi 3
# myGpio.setup("GPIO22", GPIO.OUT)

myGpio.write(GPIO.HIGH)
print(myGpio.read())

time.sleep(1)

myGpio.write(GPIO.LOW)
print(myGpio.read())

time.sleep(1)

TODO

  • GPIO toggle
  • GPIO set pull-up/pull-down