Metadata-Version: 2.4
Name: interface-expander
Version: 1.0.4
Summary: A Python library for controlling the Interface Expander device
Author-email: AlmCoding <your.email@example.com>
License: # LICENSE
        
        ### Copyright Notice
        Copyright © [2024] [AlmCoding]  
        All rights reserved.  
        
        This project is proprietary. Unauthorized copying, distribution, or modification of any part of this project is strictly prohibited without prior written consent from the copyright owner.
        
        ---
        
        ### Third-Party Libraries
        This project uses the following third-party libraries and tools. Their respective licenses and conditions apply to their use:
        
        
        1. **Nanopb**  
           - License: MIT  
           - Copyright © 2011-2023 by Petteri Aimonen and contributors.  
           - GitHub: [Nanopb on GitHub](https://github.com/nanopb/nanopb)
        
        2. **PonyFrame**
           - License: MPL-2.0
           - Copyright © 2015-2023 by MightyPork.
           - Details: [PonyFrame on GitHub](https://github.com/MightyPork/PonyFrame)
        
        3. **PySerial**
           - License: Python Software Foundation (PSF) License
           - Copyright © 2001-2024 by Chris Liechti and contributors.
           - Details: [PonyFrame on GitHub](https://github.com/pyserial/pyserial)
        
        ---
        
        ### License Terms for Third-Party Components
        The inclusion of the third-party libraries listed above does not grant any additional rights to use them beyond their respective license terms.  
        Ensure compliance with their licenses when using or distributing components based on this project.
        
Project-URL: Homepage, https://www.tindie.com/stores/almcoding/
Project-URL: Repository, https://github.com/AlmCoding/expander-py
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: pyserial>=3.5
Requires-Dist: protobuf==5.29.4
Dynamic: license-file

# USB Interface Expander

**`interface-expander`** is a lightweight Python library that allows you to communicate with **USB Interface Expander** devices.  
It provides a simple API for interacting with I²C peripherals and controlling analog outputs (±12 V, 2-channels) directly from Python.

## 🧩 Features

- **USB → I²C bridge** — communicate with I²C sensors and devices from your PC  
- **USB → ±12 V DAC output** — set precise analog voltages from Python  
- **Cross-platform** — works on Windows, macOS, and Linux   
- **Plug-and-play** — automatically detects connected Interface Expander devices (no additional drivers needed)

## 🚀 Getting Started

### ✅ Prerequisites
To use this python library, you will need one of the following two **USB Interface Expander** devices:

- 🔗 [**USB to I²C Converter with GUI**](https://www.tindie.com/products/almcoding/usb-to-i2c-converter-with-gui/)  

- 🔗 [**USB to ±12V DAC Module, 16-bit, 2-Channel Analog**](https://www.tindie.com/products/almcoding/usb-to-12v-dac-module-16-bit-2-channel-analog/)  

![USB Interface Expander](docu/img/expander2_narrow.png)
*Picture of the USB to I²C Converter*

### 📦 Installation

```bash
pip install interface-expander
```

### 💻 Examples

Please checkout this [**folder**](https://github.com/AlmCoding/expander-py/tree/main/examples) for lots of I²C and Analog Output code examples.
