Skip to main content

A collection of integrated circuit libraries in pure Python

Project description

ADC78H89 is a A collection of integrated circuit libraries in pure Python.

Features

  • High-level integrated circuit usage.

  • Low-level integrated circuit usage.

Installation

pip install iclib

Usage

Below shows a sample usage of ADC78H89.

from iclib.adc78h89 import ADC78H89
from periphery import SPI

spi = SPI('/dev/spidev0.0', 3, 1e6)
adc78h89 = ADC78H89(spi)
voltages = adc78h89.sample_all()

print(voltages[ADC78H89.InputChannel.AIN1])
print(voltages[ADC78H89.InputChannel.GROUND])

Below shows a sample usage of MCP4161.

from iclib.mcp4161 import MCP4161
from periphery import SPI

spi = SPI('/dev/spidev0.0', 3, 1e6)
mcp4161 = MCP4161(spi)

mcp4161.set_wiper_step(123, True)  # eeprom
mcp4161.set_wiper_step(123)

Below shows a sample usage of SN74HCS137.

from time import sleep
from unittest.mock import MagicMock

from periphery import GPIO
from iclib.sn78hcs137 import SN74HCS137

latch_enable_gpio = GPIO('/dev/gpiochip0', 0, 'out', inverted=True)
strobe_input_gpio = GPIO('/dev/gpiochip0', 1, 'out', inverted=True)
address_select_0_gpio = GPIO('/dev/gpiochip0', 2, 'out', inverted=False)
address_select_1_gpio = GPIO('/dev/gpiochip0', 3, 'out', inverted=False)
address_select_2_gpio = GPIO('/dev/gpiochip0', 4, 'out', inverted=False)
sn78hcs137 = SN74HCS137(
    latch_enable_gpio,
    MagicMock(),
    strobe_input_gpio,
    address_select_0_gpio,
    address_select_1_gpio,
    address_select_2_gpio,
)

sn78hcs137.select(SN74HCS137.Address.Y3)
sleep(1)
sn78hcs137.deselect()

Below shows a sample usage of NHD-C12864A1Z-FSW-FBW-HTT.

from time import sleep

from periphery import GPIO, SPI
from iclib.nhd_c12864a1z_fsw_fbw_htt import NHDC12864A1ZFSWFBWHTT

spi = SPI('/dev/spidev0.0', 3, 10e6)
a0 = GPIO('/dev/gpiochip0', 8, 'out')
not_reset = GPIO('/dev/gpiochip0', 9, 'out')
display = NHDC12864A1ZFSWFBWHTT(spi, a0, not_reset)

display.configure()
display.clear_screen()

display.draw_rect(0, 0, 127, 63)

display.set_font('dejavusans.ttf')
display.set_size(8, 14)
display.draw_word('Welcome to Blue Sky solar racing! 12345678910', 2, 2)
display.set_size(16, 16)
display.draw_word('@#$%*^', 1, int(driver.HEIGHT * 0.7))
display.display()

sleep(5)

display.clear_screen()

 # Fill screen
 for row in range(display.HEIGHT)
     for col in range(display.WIDTH)
         display.write_pixel(col, row)

 display.display()

 # Create checkerboard pattern
 for row in range(display.HEIGHT)
     for col in range(display.WIDTH)
         if (row + col) % 2 == 1:  # Checker pattern
             display.clear_pixel(col, row)

Testing and Validation

ICLib has extensive test coverage, passes mypy static type checking with strict parameter, and has been validated through extensive use in real-life scenarios.

Contributing

Contributions are welcome! Please read our Contributing Guide for more information.

License

ICLib is distributed under the MIT license.

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

iclib-0.0.0.dev5.tar.gz (23.8 kB view details)

Uploaded Source

Built Distribution

iclib-0.0.0.dev5-py3-none-any.whl (28.7 kB view details)

Uploaded Python 3

File details

Details for the file iclib-0.0.0.dev5.tar.gz.

File metadata

  • Download URL: iclib-0.0.0.dev5.tar.gz
  • Upload date:
  • Size: 23.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.9

File hashes

Hashes for iclib-0.0.0.dev5.tar.gz
Algorithm Hash digest
SHA256 0883b24eca914f509d87c4950a2bec914213f033a87321d105a05796398399af
MD5 9319b4b8c44fdcc8c7e4ebdb1c343d08
BLAKE2b-256 1e6b5d2dacb90e6ea2828e621bbbf2697c4562a7247c558f820ed17c9565d78b

See more details on using hashes here.

File details

Details for the file iclib-0.0.0.dev5-py3-none-any.whl.

File metadata

  • Download URL: iclib-0.0.0.dev5-py3-none-any.whl
  • Upload date:
  • Size: 28.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.9

File hashes

Hashes for iclib-0.0.0.dev5-py3-none-any.whl
Algorithm Hash digest
SHA256 4d4950756a248f9cac613ea63cb10dab6440165c952d63aaba59008534d528a6
MD5 6f581bfcb5562ef0e2a8f51873332c7b
BLAKE2b-256 6dd19abc7d74c52e0458a8264084d3697074f5c317e3554dabf50a817cc97567

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