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

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iclib-0.0.0.dev17-py3-none-any.whl (45.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: iclib-0.0.0.dev17.tar.gz
  • Upload date:
  • Size: 37.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for iclib-0.0.0.dev17.tar.gz
Algorithm Hash digest
SHA256 c8fd57507bb3a0587cd6ff06926e4e3c8297263e9a606599e388d6faee1fe4a2
MD5 f53df00887960065d06d81b7b194fd8c
BLAKE2b-256 f470c0f52983a981f641a656698ddfaafca800943729dfe4e0acc61703e9fabc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: iclib-0.0.0.dev17-py3-none-any.whl
  • Upload date:
  • Size: 45.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for iclib-0.0.0.dev17-py3-none-any.whl
Algorithm Hash digest
SHA256 8970e1d4e61b0da96e996fa58c046dfdd008c975b89a439da63001c6fc49b002
MD5 06835b7416ac8486ead7862978bc9386
BLAKE2b-256 2f1db52dda07bcf9cf35e9b9ef693ffc2069213b54dce879459b3c308c61208f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page