Skip to content

Commit 7f9090c

Browse files
Autogenerated: Convert PyPi packaging and add Readme Updates
1 parent e8c92de commit 7f9090c

File tree

6 files changed

+196
-183
lines changed

6 files changed

+196
-183
lines changed

README.md

Lines changed: 126 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1,122 +1,166 @@
1-
Qwiic_TCA9548A_Py
2-
==============
1+
![Qwiic TCA9548A - Python Package](docs/images/gh-banner.png "qwiic TCA9548A Python Package")
32

4-
<p align="center">
5-
<img src="https://cdn.sparkfun.com/assets/custom_pages/2/7/2/qwiic-logo-registered.jpg" width=200>
6-
<img src="https://www.python.org/static/community_logos/python-logo-master-v3-TM.png" width=240>
7-
</p>
8-
<p align="center">
9-
<a href="https://pypi.org/project/sparkfun-qwiic-tca9548a/" alt="Package">
10-
<img src="https://img.shields.io/pypi/pyversions/sparkfun_qwiic_tca9548a.svg" /></a>
11-
<a href="https://github.com/sparkfun/Qwiic_TCA9548A_Py/issues" alt="Issues">
12-
<img src="https://img.shields.io/github/issues/sparkfun/Qwiic_TCA9548A_Py.svg" /></a>
13-
<a href="https://qwiic-TCA9548A-py.readthedocs.io/en/latest/?" alt="Documentation">
14-
<img src="https://readthedocs.org/projects/qwiic-tca9548a-py/badge/?version=latest&style=flat" /></a>
15-
<a href="https://github.com/sparkfun/Qwiic_TCA9548A_Py/blob/master/LICENSE" alt="License">
16-
<img src="https://img.shields.io/badge/license-MIT-blue.svg" /></a>
17-
<a href="https://twitter.com/intent/follow?screen_name=sparkfun">
18-
<img src="https://img.shields.io/twitter/follow/sparkfun.svg?style=social&logo=twitter"
19-
alt="follow on Twitter"></a>
20-
21-
</p>
3+
# SparkFun Qwiic TCA9548A - Python Package
224

23-
<img src="https://cdn.sparkfun.com/assets/parts/1/5/6/8/9/16784-SparkFun_Qwiic_Mux_Breakout_V2_-_8_Channel__TCA9548A_-01.jpg" align="right" width=300 alt="SparkFun Qwiic Mux for the Raspberry Pi">
5+
![PyPi Version](https://img.shields.io/pypi/v/sparkfun_qwiic_tca9548a)
6+
![GitHub issues](https://img.shields.io/github/issues/sparkfun/qwiic_tca9548a_py)
7+
![License](https://img.shields.io/github/license/sparkfun/qwiic_tca9548a_py)
8+
![X](https://img.shields.io/twitter/follow/sparkfun)
9+
[![API](https://img.shields.io/badge/API%20Reference-blue)](https://docs.sparkfun.com/qwiic_tca9548a_py/classqwiic__tca9548a_1_1_qwiic_t_c_a9548_a.html)
2410

25-
Python module for the [SparkFun Qwiic Mux Breakout - 8 Channel (TCA9548A)](https://www.sparkfun.com/products/16784).
11+
The SparkFun Qwiic I2C Mux TCA9548A Module provides a simple and cost effective solution for adding I2C Mux capabilities to your project. Implementing a SparkFun Qwiic I2C interface, these sensors can be rapidly added to any project with boards that are part of the SparkFun Qwiic ecosystem.
2612

27-
This package should be used in conjunction with the overall [SparkFun qwiic Python Package](https://github.com/sparkfun/Qwiic_Py). New to qwiic? Take a look at the entire [SparkFun qwiic ecosystem](https://www.sparkfun.com/qwiic).
13+
This repository implements a Python package for the SparkFun Qwiic TCA9548A. This package works with Python, MicroPython and CircuitPython.
2814

29-
## Contents
30-
* [Supported Platforms](#supported-platforms)
31-
* [Dependencies](#dependencies)
15+
### Contents
16+
17+
* [About](#about-the-package)
18+
* [Getting Started](#getting-started)
3219
* [Installation](#installation)
33-
* [Documentation](#documentation)
34-
* [Example Use](#example-use)
20+
* [Supported Platforms](#supported-platforms)
21+
* [Documentation](https://docs.sparkfun.com/qwiic_tca9548a_py/classqwiic__tca9548a_1_1_qwiic_t_c_a9548_a.html)
22+
* [Examples](#examples)
23+
24+
## About the Package
25+
26+
This python package enables the user to access the features of the TCA9548A via a single Qwiic cable. This includes enabling channels, disabling channels, listing channels, controlling multiple I2C devices with the same address and more. The capabilities of the TCA9548A are each demonstrated in the included examples.
27+
28+
New to qwiic? Take a look at the entire [SparkFun qwiic ecosystem](https://www.sparkfun.com/qwiic).
3529

36-
Supported Platforms
37-
--------------------
38-
The qwiic TCA9548A Python package current supports the following platforms:
39-
* [Raspberry Pi](https://www.sparkfun.com/search/results?term=raspberry+pi)
40-
<!-- Platforms to be tested
41-
* [NVidia Jetson Nano](https://www.sparkfun.com/products/15297)
42-
* [Google Coral Development Board](https://www.sparkfun.com/products/15318)
43-
-->
30+
### Supported SparkFun Products
4431

45-
Dependencies
46-
---------------
47-
This package depends on the qwiic I2C driver: [Qwiic_I2C_Py](https://github.com/sparkfun/Qwiic_I2C_Py)
32+
This Python package supports the following SparkFun qwiic products on Python, MicroPython and Circuit python.
4833

49-
Documentation
50-
-------------
51-
The SparkFun qwiic TCA9548A module documentation is hosted at [ReadTheDocs](https://qwiic-tca9548a-py.readthedocs.io/en/latest/?)
34+
* [SparkFun I2C Mux Sensor - TCA9548A](https://www.sparkfun.com/products/14685)
5235

53-
Installation
54-
-------------
36+
### Supported Platforms
5537

56-
### PyPi Installation
57-
This repository is hosted on PyPi as the [sparkfun-qwiic-tca9548a](https://pypi.org/project/sparkfun-qwiic-tca9548a/) package. On systems that support PyPi installation via pip, this library is installed using the following commands
38+
| Python | Platform | Boards |
39+
|--|--|--|
40+
| Python | Linux | [Raspberry Pi](https://www.sparkfun.com/raspberry-pi-5-8gb.html) , [NVIDIA Jetson Orin Nano](https://www.sparkfun.com/nvidia-jetson-orin-nano-developer-kit.html) via the [SparkFun Qwiic SHIM](https://www.sparkfun.com/sparkfun-qwiic-shim-for-raspberry-pi.html) |
41+
| MicroPython | Raspberry Pi - RP2, ESP32 | [SparkFun RP2040 Thing+](https://www.sparkfun.com/sparkfun-thing-plus-rp2040.html), [SparkFun RP2350 Thing+](https://www.sparkfun.com/sparkfun-thing-plus-rp2350.html), [SparkFun ESP32 Thing+](https://www.sparkfun.com/sparkfun-thing-plus-esp32-wroom-usb-c.html)
42+
|CircuitPython | Raspberry Pi - RP2, ESP32 | [SparkFun RP2040 Thing+](https://www.sparkfun.com/sparkfun-thing-plus-rp2040.html), [SparkFun RP2350 Thing+](https://www.sparkfun.com/sparkfun-thing-plus-rp2350.html), [SparkFun ESP32 Thing+](https://www.sparkfun.com/sparkfun-thing-plus-esp32-wroom-usb-c.html)
5843

59-
For all users (note: the user must have sudo privileges):
44+
> [!NOTE]
45+
> The listed supported platforms and boards are the primary platform targets tested. It is fully expected that this package will work across a wide variety of Python enabled systems.
46+
47+
## Installation
48+
49+
The first step to using this package is installing it on your system. The install method depends on the python platform. The following sections outline installation on Python, MicroPython and CircuitPython.
50+
51+
### Python
52+
53+
#### PyPi Installation
54+
55+
The package is primarily installed using the `pip3` command, downloading the package from the Python Index - "PyPi".
56+
57+
Note - the below instructions outline installation on a Linux-based (Raspberry Pi) system.
58+
59+
First, setup a virtual environment from a specific directory using venv:
6060
```sh
61-
sudo pip install sparkfun-qwiic-tca9548a
61+
python3 -m venv path/to/venv
6262
```
63-
For the current user:
63+
You can pass any path as path/to/venv, just make sure you use the same one for all future steps. For more information on venv [click here](https://docs.python.org/3/library/venv.html).
6464

65+
Next, install the qwiic package with:
66+
```sh
67+
path/to/venv/bin/pip3 install sparkfun-qwiic-tca9548a
68+
```
69+
Now you should be able to run any example or custom python scripts that have `import qwiic_tca9548a` by running e.g.:
6570
```sh
66-
pip install sparkfun-qwiic-tca9548a
71+
path/to/venv/bin/python3 example_script.py
6772
```
6873

69-
### Local Installation
70-
To install, make sure the setuptools package is installed on the system.
74+
### MicroPython Installation
75+
If not already installed, follow the [instructions here](https://docs.micropython.org/en/latest/reference/mpremote.html) to install mpremote on your computer.
7176

72-
Direct installation at the command line:
77+
Connect a device with MicroPython installed to your computer and then install the package directly to your device with mpremote mip.
7378
```sh
74-
python setup.py install
79+
mpremote mip install github:sparkfun/qwiic_tca9548a_py
7580
```
7681

77-
To build a package for use with pip:
82+
If you would also like to install the examples for this repository, issue the following mip command as well:
7883
```sh
79-
python setup.py sdist
80-
```
81-
A package file is built and placed in a subdirectory called dist. This package file can be installed using pip.
84+
mpremote mip install github:sparkfun/qwiic_tca9548a_py@examples
85+
```
86+
87+
### CircuitPython Installation
88+
If not already installed, follow the [instructions here](https://docs.circuitpython.org/projects/circup/en/latest/#installation) to install CircUp on your computer.
89+
90+
Ensure that you have the latest version of the SparkFun Qwiic CircuitPython bundle.
91+
```sh
92+
circup bundle-add sparkfun/Qwiic_Py
93+
```
94+
95+
Finally, connect a device with CircuitPython installed to your computer and then install the package directly to your device with circup.
96+
```sh
97+
circup install --py qwiic_tca9548a
98+
```
99+
100+
If you would like to install any of the examples from this repository, issue the corresponding circup command from below. (NOTE: The below syntax assumes you are using CircUp on Windows. Linux and Mac will have different path seperators. See the [CircUp "example" command documentation](https://learn.adafruit.com/keep-your-circuitpython-libraries-on-devices-up-to-date-with-circup/example-command) for more information)
101+
82102
```sh
83-
cd dist
84-
pip install sparkfun_qwiic_tca9548a-<version>.tar.gz
85-
103+
circup example qwiic_tca9548a\qwiic_tca9548a_ex1
104+
circup example qwiic_tca9548a\qwiic_tca9548a_ex2
105+
circup example qwiic_tca9548a\simple_disable_channels
106+
circup example qwiic_tca9548a\simple_enable_channels
86107
```
108+
87109
Example Use
88110
---------------
89-
See the examples directory for more detailed use examples.
111+
Below is a quickstart program to print readings from the TCA9548A.
112+
113+
See the examples directory for more detailed use examples and [examples/README.md](https://github.com/sparkfun/qwiic_tca9548a_py/blob/main/examples/README.md) for a summary of the available examples.
90114

91115
```python
116+
117+
92118
import qwiic_tca9548a
119+
import qwiic_i2c
93120
import time
94121
import sys
95122

96123
def runExample():
97124

98-
print("\nSparkFun TCA9548A Example 1\n")
99-
test = qwiic_tca9548a.QwiicTCA9548A()
100-
101-
if test.is_connected() == False:
102-
print("The Qwiic TCA9548A device isn't connected to the system. Please check your connection", \
103-
file=sys.stderr)
104-
return
105-
125+
print("\nSparkFun TCA9548A 8-Channel Mux Example 1\n")
126+
127+
myTca = qwiic_tca9548a.QwiicTCA9548A()
128+
129+
if myTca.connected == False:
130+
print("The Qwiic TCA9548A 8-Channel Mux device isn't connected to the system. Please check your connection", \
131+
file=sys.stderr)
132+
return
133+
134+
i2c = qwiic_i2c.getI2CDriver()
135+
136+
while True:
137+
print("Enabling channels 0 and 1")
138+
myTca.disable_all()
139+
myTca.enable_channels([0,1])
140+
myTca.list_channels()
141+
142+
print("Checking for i2c devices on ports 0 and 1")
143+
devices = i2c.scan()
144+
print("Devices found: ", devices)
145+
time.sleep(2)
146+
147+
print("Enabling channels 2 and 3")
148+
myTca.disable_all()
149+
myTca.enable_channels([2,3])
150+
myTca.list_channels()
151+
152+
print("Checking for i2c devices on ports 2 and 3")
153+
devices = i2c.scan()
154+
print("Devices found: ", devices)
155+
time.sleep(2)
156+
157+
if __name__ == '__main__':
106158
try:
107-
test.list_channels()
108-
time.sleep(2)
109-
110-
test.enable_channels([4,5])
111-
test.list_channels()
112-
time.sleep(2)
113-
114-
test.disable_channels(5)
115-
test.list_channels()
116-
time.sleep(2)
159+
runExample()
160+
except (KeyboardInterrupt, SystemExit) as exErr:
161+
print("\nEnding Example 1")
162+
sys.exit(0)
117163

118-
except Exception as e:
119-
print(e)
120164
```
121165
<p align="center">
122166
<img src="https://cdn.sparkfun.com/assets/custom_pages/3/3/4/dark-logo-red-flame.png" alt="SparkFun - Start Something">

docs/images/gh-banner.png

617 KB
Loading

examples/README.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Sparkfun TCA9548A Examples Reference
2+
Below is a brief summary of each of the example programs included in this repository. To report a bug in any of these examples or to request a new feature or example [submit an issue in our GitHub issues.](https://github.com/sparkfun/qwiic_tca9548a_py/issues).
3+
4+
NOTE: Any numbering of examples is to retain consistency with the Arduino library from which this was ported.
5+
6+
## Qwiic Tca9548A Ex1
7+
Simple example for the Qwiic 8 Channel Mux
8+
9+
## Qwiic Tca9548A Ex2
10+
Example for the Qwiic 8 Channel Mux interfacing with two Qwiic VL53L1X Distance Sensors
11+
12+
## Simple Disable Channels
13+
Written by SparkFun Electronics, June 2019
14+
Author: Wes Furuya
15+
16+
## Simple Enable Channels
17+
Written by SparkFun Electronics, June 2019
18+
Author: Wes Furuya
19+
20+

pyproject.toml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
[build-system]
2+
requires = ["setuptools"]
3+
4+
[project]
5+
name = "sparkfun_qwiic_tca9548a"
6+
version = "0.9.0"
7+
description = "SparkFun Electronics Qwiic TCA9548A"
8+
readme = "DESCRIPTION.rst"
9+
10+
authors = [{name="Sparkfun Electronics", email="info@sparkfun.com"}]
11+
dependencies = ["sparkfun_qwiic_i2c"]
12+
13+
classifiers=[
14+
# How mature is this project? Common values are
15+
# 3 - Alpha
16+
# 4 - Beta
17+
# 5 - Production/Stable
18+
"Development Status :: 5 - Production/Stable",
19+
20+
# Indicate who your project is intended for
21+
"Intended Audience :: Developers",
22+
"Topic :: Software Development :: Build Tools",
23+
24+
# Pick your license as you wish (should match "license" above)
25+
"License :: OSI Approved :: MIT License",
26+
27+
# Specify the Python versions you support here. In particular, ensure
28+
# that you indicate whether you support Python 2, Python 3 or both.
29+
"Programming Language :: Python :: 3.5",
30+
"Programming Language :: Python :: 3.6",
31+
"Programming Language :: Python :: 3.7",
32+
"Programming Language :: Python :: 3.8",
33+
"Programming Language :: Python :: 3.9",
34+
"Programming Language :: Python :: 3.10",
35+
"Programming Language :: Python :: 3.11",
36+
"Programming Language :: Python :: 3.12",
37+
"Programming Language :: Python :: 3.13",
38+
"Programming Language :: Python :: 3.14",
39+
"Programming Language :: Python :: Implementation :: MicroPython",
40+
# NOTE: CircuitPython is also supported, but no classifier exists for it
41+
]
42+
43+
keywords = ["electronics, maker"]
44+
45+
[project.urls]
46+
homepage = "https://www.sparkfun.com/products/14685"
47+
48+
[tool.setuptools]
49+
py-modules = ["qwiic_tca9548a"]

requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
sparkfun_qwiic_i2c

0 commit comments

Comments
 (0)