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.
Python 3 (2 TODO)
Requires pyserial
Free software: MIT license
Documentation: https://pyusbiss.readthedocs.io.
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1c73b4208a3a86de7789ec6f407c741f09fe1423db232bb39d44bbb18e4dd5be |
|
MD5 | a40fb096365009b50eda5f4ca9c94e79 |
|
BLAKE2b-256 | fd3690571b5cb0ea6977b0b801b4ce23bbc623efcb8b72f77e51c9b64dde35c1 |
File details
Details for the file pyusbiss-0.2.1-py2.py3-none-any.whl
.
File metadata
- Download URL: pyusbiss-0.2.1-py2.py3-none-any.whl
- Upload date:
- Size: 9.6 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5f7f2ab2d4bd8e4cb2aaa625bb6580844f89f571f9fe5ab91afdd4da0156ece |
|
MD5 | 1ade8e85e418121302d99bd99d1d9e1e |
|
BLAKE2b-256 | 7bf2b903c84b77be4e6b9c221f5c212303d60a59f53562150e5ca989ce0c5ad1 |