Skip to main content

Python API for Numato GPIO Expanders

Project description

Python API for Numato GPIO Expanders

This Python API can be used to control Numato 32 Port USB GPIO expanders.

  • Configure ports as input or output port
  • Write to output ports
  • Read from input ports
  • Read integer values from ADC input ports (1 - 7)
  • Register a callback for input port events (edge detection)

Usage

Install latest development version:

pip install --user git+https://github.com/clssn/numato-gpio.git

Install latest release:

pip install --user numato-gpio

Once installed, the API can be used like:

import numato_gpio as gpio

my_device_id = 0
gpio.discover()
dev = gpio.devices[my_device_id]

# configure port 4 as output and set it to high
dev.setup(4, gpio.OUT)
dev.write(4, 1)

# configure port 27 as input and print its logic level
dev.setup(27, gpio.IN)
print(dev.read(27))

# configure port 2 as input and print its ADC value
dev.setup(2, gpio.IN)
print(dev.adc_read(2))

# configure port 14 as input and setup notification on logic level changes
dev.setup(14, gpio.IN)
def callback(port, level):
    print("{edge:7s} edge detected on port {port} "
        "-> new logic level is {level}".format(
        edge="Rising" if level else "Falling",
        port=port,
        level="high" if level else "low")
    )

dev.add_event_detect(14, callback, gpio.BOTH)
dev.notify(True)

Versions

See changelog.

Known Issues

Though the code works well in a Home Assistant integration since 2018, there are quite some aspects to improve. The following issues are only the ones the author is aware of:

  • No unit tests
  • Some docstrings are hard to understand
  • Device discovery/registry as module-global dict is sub-optimal
  • Only /dev/ACMx devices are scanned which were mapped on the author's Linux

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

numato-gpio-0.6.0.tar.gz (6.3 kB view hashes)

Uploaded Source

Built Distribution

numato_gpio-0.6.0-py3-none-any.whl (7.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page