Skip to main content

A simple USB to SPI adapter that works.

Project description

A Simple USB to SPI Adapter that works.

The SPI Adapter allows python programs control SPI devices using off the shelf low cost boards such the Raspberry Pico or SparkFun Pro Micro - RP2040. The SPI adapter appears on the computer as a serial port (no device installation required) and acts as a USB to SPI bridge, and this Python package provides an easy to use API to control the SPI transactions.

For example, the schematic below shows the wiring for the oled_demo.py example which drive an I2C OLED display using an I2C Adapter and the luma.oled python package.



Highlights

  • Provides USB to I2C-master bridge.
  • Supports Windows/Mac/Linux.
  • Uses low cost low cost off-the-shelf boards as adapters.
  • Does not require driver installation (it appears on the computer as standard a serial port).
  • Comes with an easy to use Python API.
  • Easy to modify/extend and to adapt to new hardware.
  • Permissive open source license. Comercial use OK, sharing and attribution not required.

Python API Example

Package installation

pip install i2c-adapter --upgrade

In the example below, we use an I2C Adapter that appears as serial port "COM7" to access an I2C device at address 0x08. First we write a single byte 0x00 and then read 20 bytes. Upon completion, the 'data' variable contains a bytearray with 20 bytes.

from i2c_adapter import I2cAdapter

i2c = I2cAdapter(port="COM7")
i2c_addr = 0x08
assert i2c.write(i2c_addr, bytearray([0]))
data = i2c.read(i2c_addr,  20)
print(data)

In the example below we scan the I2C bus address range 0x00 to 0x7f and look for devices that response to an empty write.

from i2c_adapter import I2cAdapter

i2c = I2cAdapter(port="COM18")
print(f"Scanning I2C bus 0x00 to 0x7f:")
for adr in range(0, 127):
    if i2c.write(adr, bytearray([0]), silent=True):
      print(f"  - Device at 0x{adr:02x}")

Documentation

Full documentation is available at https://i2c-adapter.readthedocs.io/

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

spi_adapter-0.0.2.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

spi_adapter-0.0.2-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file spi_adapter-0.0.2.tar.gz.

File metadata

  • Download URL: spi_adapter-0.0.2.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.1

File hashes

Hashes for spi_adapter-0.0.2.tar.gz
Algorithm Hash digest
SHA256 4242a9f20e79b02638c82cfd64b3150f98eb7bba90d7491d8d88288fb5ed41d5
MD5 1f137ff9bd8fb7a0ed8a8169cd7096b4
BLAKE2b-256 19ddad3c11b50ecb074216c824b751a8707925f1fa7ec8252e0e78c97b5859eb

See more details on using hashes here.

File details

Details for the file spi_adapter-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: spi_adapter-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 7.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.1

File hashes

Hashes for spi_adapter-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7726d4eabfa11959afa7ce5852763cec63f345061f2bfe68b4d5f658cb16c99d
MD5 16c245b6800aebb29139e4530913fd38
BLAKE2b-256 e9514b7bc113c4dc33ab39214f2433da923c23d8dba374e0681d5df847b67b31

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