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.dev6.tar.gz (24.8 kB view details)

Uploaded Source

Built Distribution

iclib-0.0.0.dev6-py3-none-any.whl (30.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for iclib-0.0.0.dev6.tar.gz
Algorithm Hash digest
SHA256 6477c9b2adf779a72775da3a0d417ec21f4cd607713459cb55c66e6133ed80d5
MD5 05a7a8e3ea85d85ec8cfee251817247e
BLAKE2b-256 11acbe90efeffcc32f40b68e7aa6527a8f2b917c7594c7efb9c39c1240109070

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for iclib-0.0.0.dev6-py3-none-any.whl
Algorithm Hash digest
SHA256 fa8f95da6f3f497b56f0a7fafc58027c7afac57151775d6f070717343830a73b
MD5 282a864e6cf384f6fc98fb0cacc4b4fb
BLAKE2b-256 516a696a1db5f64a6692d6221278805a1d82228465fb7705ff208d81af61dcb5

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