Skip to main content

A Python module for interfacing with USB-ISS multifunction USB Communication Module

Project description

pyusbiss

A Python API module for interfacing with USB-ISS multifunction USB Communication Module.

From the USB-ISS’s webpage:

The USB-ISS Multifunction USB Communications Module provides a complete interface between your PC and the I2C bus, SPI bus, a Serial port and general purpose Analogue Input or Digital I/O. The module is powered from the USB. Operating voltage is selectable between 3.3v and 5v and can supply up to 80mA at 5v for external circuitry from a standard 100mA USB port.

Features

Planned features

  • Configure USB-ISS to different operating modes; I2C, SPI, I/O and serial

    • For each mode, the API will mimic the popular APIs such as py-spidev for SPI by having same method and properties names. These names will be used in duck typing. This will ensure miminal adaption of applications wishing to use USB-ISS for prototyping and testing.

  • Query status of USB-ISS

  • Send bytes to and read from components via USB-ISS

Current implementation

  • The SPI mode is implemented with following methods and properties

    • Methods

      • xfer - send N bytes and read N bytes back.

    • Properties

      • mode - SPI modes. Please note that USB-ISS’s SPI modes don’t match up with official SPI modes. Use official SPI mode numbers and the API will configure the USB-ISS correctly.

  • Other modes are not implemented.

Installation

pip install pyusbiss

Usage

  • USBISS only

Connect to your USB-ISS and get information about your USB-ISS.

from usbiss.usbiss import USBISS

port = 'COM4' # Windows
port = '/dev/ttyACM0' # Linux

cxn = USBISS(port)
print(repr(cxn)))
  • SPI mode

Initiate USB-ISS with SPI mode and open a port.

from usbiss.spi import SPI

spi = SPI(port)

spi.mode = 1
spi.max_speed_hz = 500000

print(repr(spi._usbiss))

# SPI transaction

response = spi.xfer([0x00, 0x00])
  • I2C mode

    TODO

  • I/O mode

    TODO

  • Serial mode

    TODO

More Information

Applications

  • Alphasense OPC via dhhagan’s py-opc module using the SPI protocol.

Credits

The project was developed during a NERC’s placement at University of Leeds.

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

Inspired by Waggle’s alphasense.py, where most of USB-ISS functions were copied over.

History

0.1.0 (2016-09-02)

  • Initialised project

0.1.1 (2018-03-08)

  • functional usbiss control and spi control.

0.1.2 (2018-03-08)

  • Changed SPI mode scheme to official SPI scheme rather than USB-ISS scheme.

  • Clarifies project mission in README.rst

0.2.0 (2018-03-10)

  • Refactored the codebase so that each protocol can be controlled by its own class. This means a breaking change in the interface.

  • SPI and USBISS support only in this release with updated usage.

  • Added SPI tests.

  • Updated README.rst with new interface.

0.2.1 (2018-05-05)

  • Refactored USB-ISS driver using property decorator.

  • Updated SPI driver to use updated USBISS driver

  • Fully documented SPI driver

  • Some fixes

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

pyusbiss-0.2.1.tar.gz (14.7 kB view details)

Uploaded Source

Built Distribution

pyusbiss-0.2.1-py2.py3-none-any.whl (9.6 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file pyusbiss-0.2.1.tar.gz.

File metadata

  • Download URL: pyusbiss-0.2.1.tar.gz
  • Upload date:
  • Size: 14.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pyusbiss-0.2.1.tar.gz
Algorithm Hash digest
SHA256 1c73b4208a3a86de7789ec6f407c741f09fe1423db232bb39d44bbb18e4dd5be
MD5 a40fb096365009b50eda5f4ca9c94e79
BLAKE2b-256 fd3690571b5cb0ea6977b0b801b4ce23bbc623efcb8b72f77e51c9b64dde35c1

See more details on using hashes here.

File details

Details for the file pyusbiss-0.2.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for pyusbiss-0.2.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 f5f7f2ab2d4bd8e4cb2aaa625bb6580844f89f571f9fe5ab91afdd4da0156ece
MD5 1ade8e85e418121302d99bd99d1d9e1e
BLAKE2b-256 7bf2b903c84b77be4e6b9c221f5c212303d60a59f53562150e5ca989ce0c5ad1

See more details on using hashes here.

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